- From: Ian Hickson <ian@hixie.ch>
- Date: Thu, 31 Jan 2008 02:21:34 +0000 (UTC)
On Sun, 1 Jul 2007, Philip Taylor wrote: > > "The clearRect() method ... The fillRect() method ... The strokeRect() > method ..." - should say "clearRect(x, y, w, h)" etc, for consistency > with all the other function definitions. Fixed. > "Shapes are ... subject to ... shadow effects, global alpha, ... and > global composition operators" is a bit confusing since clearRect isn't > subject to those things. (Actually, clearRect is subject to shadow > effects in Safari, and subject to composition operators in Opera, but > I'd say those are just bugs.) Fixed. > strokeRect: The definition is vague about where line-joins occur, in the > normal case and in the "If only one of [width and height] is zero ..." > case, since it doesn't really say that it's a closed path. Fixed as part of the earlier changes to lines and strokes, I think. Is it better now? > There is minor implementation disagreement in the zero-width case > (<http://canvex.lazyilluminati.com/misc/rects.html>) - in Safari it is > equivalent to drawing a rectangle with infinitesimal width (hence with > four line-joins connecting perpendicular edges), whereas in > FF/Opera/spec it's equivalent to a line (with two line-joins connecting > parallel edges). Also, Safari/FF3 draw stuff in the width=height=0 case, > though that's related to the more general line-caps-on-zero-length-lines > thing (as in > <http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2007-June/011883.html>). > I believe it would be nice (for consistency and predictability) if > strokeRect worked the same as rect+stroke (and the same as > moveTo+lineTo+lineTo+lineTo+closePath+stroke) - that is what everyone > except Safari does, but it doesn't seem to be explicit or obvious in the > spec. This is basically now the case, I think, but mostly because of the changes we made before for zero-length line segments, and so on. > Perhaps it would be easier and most precise to define strokeRect in > terms of existing methods, like: "The strokeRect(x, y, w, h) method must > be equivalent to the following sequence of method calls: beginPath(); > rect(x, y, w, h); stroke(); except with the current path after calling > the strokeRect method remaining the same as before the call." The "except" is why I don't really want to do this. Could you take a look again and let me know if you think the new definitions work ok? Don't hesitate to tell me that they're still broken. :-) -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Wednesday, 30 January 2008 18:21:34 UTC