On Apr 6, 2014, at 8:24 AM, Rik Cabanier <caban...@gmail.com> wrote:

> 
> 
> 
> On Sat, Apr 5, 2014 at 11:00 PM, Dirk Schulze <dschu...@adobe.com> wrote:
> 
> On Apr 6, 2014, at 3:23 AM, Rik Cabanier <caban...@gmail.com> wrote:
> 
> >
> >
> >
> > On Sat, Apr 5, 2014 at 9:01 AM, Dirk Schulze <dschu...@adobe.com> wrote:
> > Hi,
> >
> > I looked at the behavior of negative width or height for the rect() and 
> > strokeRect() functions.
> >
> > All browsers normalize the passed parameters for strokeRect() to have 
> > positive width and height.
> >
> > strokeRect(90,10,-80,80) —> strokeRect(10,10,80,80)
> >
> > http://jsfiddle.net/za945/
> >
> >> It also seems that only firefox is following the spec [1] when width or 
> >> height are 0: http://jsfiddle.net/za945/2/
> >> I'm unsure why such a rectangle is defined as a straight line.
> 
> You mean you would rather let it draw a one dimensional rectangle? So for the 
> dimension that is not zero, you would see two overlapping lines + the 0 
> dimensional sides?
> 
> yes 
> 
> That seems indeed to be the case for IE, Safari and Blink: 
> http://jsfiddle.net/Gh9XK/
> 
> >
> > Just WebKit seems to normalize for rect() as well:
> >
> > http://jsfiddle.net/VT4MG/
> >
> > The behavior of normalizing is not specified. Especially it seems odd that 
> > the behavior for fillRect()/strokeRect() should differ from rect(). So we 
> > should either normalize for all functions or don’t do it for all IMO.
> >
> > Note: fillRect() and clearRect() are not affected. The behavior for rect() 
> > is important for filling with different winding rules as well. It is not 
> > just stroking with dash arrays that is effected.
> >
> >> yes, the spec needs to say "in that order" as it does for fillRect and 
> >> strokeRect.
> 
> Ok, that means you would be in favor not to normalize. Again, all current 
> browser normalize and do NOT draw “in that order” for fillRect() and 
> strokeRect(). That means you would require to give up the currently 
> interoperable behavior.
> 
> I changed your test a bit so you can more easily see the normalisation: 
> http://jsfiddle.net/za945/3/
> Safari and Chrome are doing as you say, but Firefox does not. (I don't have 
> IE to test)

Firefox has a strange different behavior if dash >= gap. If the gap is smaller 
it behaves like IE, Blink and WebKit. This also answers your question: Your 
example renders in IE the same as in WebKit and Blink.

Greetings,
Dirk

> 
> I would be in favor to change the blink/webkit behavior as the specified one 
> makes more sense.

Reply via email to