- From: Rik Cabanier <cabanier@gmail.com>
- Date: Tue, 15 Jan 2013 12:42:42 -0800
- To: public-canvas-api@w3.org
- Message-ID: <CAGN7qDBOBWiJOCtv6tYWyJGM8-dyMB14XjuDFOB+7stcLx2QLQ@mail.gmail.com>
All,
there was a recent discussion on adding winding rules to canvas. As you may
know until now, canvas only supported even-odd winding.
Maybe graphics libraries and SVG also support non-zero winding.[1][2]
Mozilla exposes this currently with 'mozFillRule'. Making this part of the
graphics state has several drawbacks.
The biggest is that fill/clip will now have to check the state every time,
or set/reset it. Winding is also part of path geometry.
I have the following proposal:
enum CanvasWindingRule { "nonzero", "evenodd" };
void fill(optional CanvasWindingRule w = "nonzero");
void clip(optional CanvasWindingRule w = "nonzero");
boolean isPointInPath(unrestricted double x, unrestricted double y,
optional CanvasWindingRule w = "nonzero");
proposed patches for this API can be found here:
https://bugs.webkit.org/show_bug.cgi?id=105508
https://bugzilla.mozilla.org/show_bug.cgi?id=827053
What do people think?
1: http://www.w3.org/TR/SVG/painting.html#FillRuleProperty
2: http://en.wikipedia.org/wiki/Nonzero-rule
Received on Tuesday, 15 January 2013 20:43:10 UTC