[whatwg] More random comments on the putImageData definition

Oliver Hunt oliver at apple.com
Fri Jan 25 12:00:41 PST 2008

On Jan 25, 2008, at 6:53 AM, Adam Roben wrote:

> On Jan 25, 2008, at 6:56 AM, Oliver Hunt wrote:
>> With the current model for putImageData there is no way for them to  
>> specify a dirty rect, which means their only option is to update  
>> the entire display -- they have to copy the entire buffer.
> I think it would be less confusing for the repaint region to always  
> have its origin at (dx, dy). This would be more similar to Windows'  
> BitBlt API. Something like:
> void putImageData(in ImageData imageData, in float destX, in float  
> destY, in float srcX, in float srcY, in float width, in float height)
> destX and destY are in canvas coordinates
> srcX and srcY are in ImageData coordinates
> The data from the ImageData in the rectangle specified by (srcX,  
> srcY, width, height) is then painted into the canvas in the  
> rectangle (destX, destY, width, height).
The problem in that case is that it would not be backwards compatible  
-- eg.
puImageData(data, destx, desty, srcx, srcy, width, height)

If the UA supports dirty region mapping then it would effectively be  
mapping (0,0) on the ImageData to (destx - srcx, desty - srcy),  
whereas a UA that does not support dirty regions would be mapping  
(0,0) to (destx,desty) and so wouldbe broken.  That's why i said the  
dirty rect should be relative to the imagedata origin, i also feel it  
makes more sense to say "this area of the imagedata is the interesting  
bit" rather than "once you've blitted, this area of the *canvas* will  
be interesting"


> -Adam

More information about the whatwg mailing list