[whatwg] Canvas pixel manipulation and performance
Ian Hickson
ian at hixie.ch
Thu Mar 11 01:25:25 PST 2010
On Thu, 26 Nov 2009, Jason Oster wrote:
>
> I've been using canvas to draw pixel art (NES/SNES game screens and
> sprites) similar to what an emulator would do. Doing this kind of
> drawing requires direct access to the pixel buffer.
>
> My problem with the canvas spec (as it is now) is that it tends to
> artificially bounds pixel drawing performance to JavaScript when doing
> any sort of pixel access. Setting four unsigned 8-bit array elements
> (R, G, B, and A) is a slower operation that setting just one unsigned
> 32-bit array element (RGBA or ABGR). Sadly, we don't have this latter
> option for canvas.
>
> My comment is a request for a new set of pixel access methods on the
> CanvasRenderingContext2D object. Specifically, alternatives to
> createImageData(), getImageData(), and putImageData() methods for
> providing an array of unsigned 32-bit elements for pixel manipulation.
This comes up every now and then, but in the big picture, this problem
isn't a huge issue. I think it's better that we wait for the rest of the
spec to be better implemented before we start adding more features to
<canvas>. Even in <canvas>, there are a number of features that would
probably be more important than this, such as reusable path objects, text
on a path, or dotted or dashed line styles.
If we had data showing that it was a problem, that might change matters.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list