Re: Drawing Pixels with NSBezierPath
Re: Drawing Pixels with NSBezierPath
- Subject: Re: Drawing Pixels with NSBezierPath
- From: Shaun Wexler <email@hidden>
- Date: Tue, 6 Jul 2004 12:00:13 -0700
On Jul 3, 2004, at 11:34 AM, Christopher O'Neill wrote:
Hi all. The program I am writing requires a view to be drawn with
every pixel being a different color. The only way I can see to do it
is to create a new 1x1 NSRect and draw them to their correct
locations. However, this takes a long time to draw. It constantly
has to be redrawn as one pixel changes color with every click of the
mouse. I have increased speed dramatically by splitting it up into
smaller subviews and only updating the ones that need updating, but
sometimes every pixel needs to be changed, so it will again take a
long time to update. Is there a faster way to do it that I have not
seen, possibly by drawing an array of colors at one pixel each? Any
help is appreciated.
Use OpenGL.
<
http://developer.apple.com/opengl>
<
http://developer.apple.com/documentation/Cocoa/Conceptual/OpenGL>
Create a rectangular texture the same size as your view's bounds, and
set the context to per-pixel orthogonal projection. Enable client
storage and texture range, and texture priority 0. Now you can write
into the texture's memory buffer and store direct pixel color values,
using row/col indexing. Many ways to do what you want with the pixels.
Your speed should increase a hundred-fold, and it's only a little more
complicated to support hardware that requires power-of-2 texture sizes
(ATI Rage 128/Pro/M3).
--
Shaun Wexler
MacFOH
http://www.macfoh.com
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.