[whatwg] Canvas pixel manipulation and performance
bzbarsky at MIT.EDU
Sun Nov 29 20:48:04 PST 2009
On 11/29/09 11:22 PM, Oliver Hunt wrote:
> The CanvasPixelArray implementation in WebKit has always matched the
> spec and been a clamping bytearray, eg. one byte per channel, per
I assume you mean "the spec as it is now" and not "the spec as it was
when Gecko implemented get/putImageData"? The latter was quite
different, as I recall.
> Just for future reference for all who are interested: in WebKit the JS interface to a DOM object is merely a binding to a C++ implementation
Sure; the point is that in Gecko the thing returned by
getImageData().data is not a DOM object at all but a JS Array.
Similarly, the object returned by getImageData() is not a DOM object,
but a JS Object. Likewise, putImageData accepts any JS Object with the
right properties on it (width, height, and data).
I _think_ as of when the implementation was created some of this (e.g.
the putImageData behavior) was called for by the then-whatwg spec. See
http://www.whatwg.org/specs/web-apps/2007-10-26/ for example; I believe
there were other drafts between the 2005-01 draft and that one that had
still other behavior.
As you note the spec has since changed; the Gecko implementation hasn't
been changed yet pending us having some indication that the spec is
actually stable now. Once burnt, twice shy and all.
In any case, I simply didn't know whether CanvasPixelArray was
implemented as a host object or a native object in webkit, and didn't
want to make any claims about it as a result.
More information about the whatwg