Re: [whatwg] canvas miterLimit property
Hi Ian, The main thing driving this API is back-compat with canvas implementations, not consistency with SVG. :-) As always, whatever random crap gets implemented first becomes the official standard we have to support forever in the name of backwards compatibility because it already has a few dozen users :) Cheers, Michael
Re: [whatwg] canvas miterLimit property
On Fri, 21 Sep 2012, Michael Day wrote: > > > > Its trivial to treat numbers 0.0 < q <= 1.0 as 1.0. No need to fail. > > Browsers (at least Opera, Safari, Firefox, and Chrome) consistently > > follow the spec here. > > Yes, we can clamp it to 1.0 when we generate the PDF, just wanted to > point out another inconsistency with SVG, where miter limit values less > than 1.0 will be ignored as invalid. The main thing driving this API is back-compat with canvas implementations, not consistency with SVG. :-) -- Ian Hickson U+1047E)\._.,--,'``.fL http://ln.hixie.ch/ U+263A/, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Re: [whatwg] canvas miterLimit property
Hi Ian, In Prince we are clamping it to 1.0, as the PDF spec is consistent with SVG this time, and Adobe Reader will fail if the miter limit is dropped below 1.0. What do you mean by fail? I mean if you try to set the miter limit to a number less than 1.0 in a PDF page content stream Adobe Reader will stop at that point and not execute the remaining commands in the page content stream, resulting in a half-drawn page. Its trivial to treat numbers 0.0 < q <= 1.0 as 1.0. No need to fail. Browsers (at least Opera, Safari, Firefox, and Chrome) consistently follow the spec here. Yes, we can clamp it to 1.0 when we generate the PDF, just wanted to point out another inconsistency with SVG, where miter limit values less than 1.0 will be ignored as invalid. Best regards, Michael
Re: [whatwg] canvas miterLimit property
On Tue, 11 Sep 2012, Michael Day wrote: > > The canvas miterLimit property has a default value of 10, while the SVG > stroke-miterlimit property has a default value of 4. Is there a reason > for this inconsistency? It's what Apple implemented when they invented . > For reference, the PDF rendering model also has a default value of 10 > for miterLimit, making SVG apparently the odd one out here. That's probably why Apple used 10. On Tue, 11 Sep 2012, Rik Cabanier wrote: > > This is a problem with the new Path object that takes an SVG path > string. A user will have to remember to set the miter limit to the SVG > default otherwise the path might render differently in Canvas. More specifically, they'll have to remember to set the miter limit to whatever they want the miter limit to be. This is the same as when drawing paths in canvas or SVG today, it's not new just becauser we support using SVG path syntax in canvas. On Wed, 12 Sep 2012, Michael Day wrote: > > While we are on the subject, in SVG stroke-miterlimit must be >= 1.0, > whereas in the canvas it must be >= 0.0. > > In Prince we are clamping it to 1.0, as the PDF spec is consistent with > SVG this time, and Adobe Reader will fail if the miter limit is dropped > below 1.0. What do you mean by fail? Unless I'm doing my maths wrong, a miter limit below 1.0 is equivalent to one equal to 1.0, since 1.0 is the lower possible miter ratio (the distance from the join point to the outer intersection point can't possibly be less than the line width, otherwise it wouldn't be the outside of the join, no?). Its trivial to treat numbers 0.0 < q <= 1.0 as 1.0. No need to fail. Browsers (at least Opera, Safari, Firefox, and Chrome) consistently follow the spec here. -- Ian Hickson U+1047E)\._.,--,'``.fL http://ln.hixie.ch/ U+263A/, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Re: [whatwg] canvas miterLimit property
Hi Rik, I'm unsure why SVG is different. While we are on the subject, in SVG stroke-miterlimit must be >= 1.0, whereas in the canvas it must be >= 0.0. In Prince we are clamping it to 1.0, as the PDF spec is consistent with SVG this time, and Adobe Reader will fail if the miter limit is dropped below 1.0. Best regards, Michael
Re: [whatwg] canvas miterLimit property
Good catch! I'm unsure why SVG is different. This is a problem with the new Path object [1] that takes an SVG path string. A user will have to remember to set the miter limit to the SVG default otherwise the path might render differently in Canvas. If we ever harmonize the path object so it can be shared by SVG and Canvas, we will need to account for this. Rik 1: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path On Tue, Sep 11, 2012 at 9:11 AM, Michael Day wrote: > Hi, > > The canvas miterLimit property has a default value of 10, while the SVG > stroke-miterlimit property has a default value of 4. Is there a reason for > this inconsistency? > > For reference, the PDF rendering model also has a default value of 10 for > miterLimit, making SVG apparently the odd one out here. > > Cheers, > > Michael >