- From: <bugzilla@jessica.w3.org>
- Date: Wed, 09 Jan 2013 00:50:46 +0000
- To: public-html-admin@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20612 Bug ID: 20612 Summary: Canvas 2D Context needs to support fillRule attribute Classification: Unclassified Product: HTML WG Version: unspecified Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P2 Component: HTML Canvas 2D Context Assignee: jaymunro@microsoft.com Reporter: jmann@microsoft.com QA Contact: public-html-bugzilla@w3.org CC: mike@w3.org, public-html-admin@w3.org, public-html-wg-issue-tracking@w3.org Developers should be able to specify which fill rule to use, even-odd or non-zero winding rule, when painting a geometry created by sub-paths. Whereas SVG and other technologies support both fill rules, Canvas 2D Context currently only supports non-zero winding rule. I recommend we update the specification to include support for the following attribute on the CanvasRenderingContext2D interface, with a default value of “nonzero” to be compatible with current Canvas sites and apps. attribute DOMString fillRule; // "evenodd", "nonzero" (default: "nonzero") I recommend updating “Section 12 Drawing paths to the canvas” with language similar to the SVG fill-rule property, http://www.w3.org/TR/SVG/painting.html. An example of text could be: "The fillRule attribute represents the algorithm which is used to determine which subpaths are considered inside a closed path. The two valid values are nonzero and evenodd. On getting, it must return the current value. On setting, if the new value is one of the literal strings nonzero, or evenodd, then the current value must be changed to the new value; other values must be ignored, leaving the value unchanged. "Nonzero" This fill rule determines whether an independent subpath is inside a closed path by drawing a ray from a point inside the subpath to infinity in any direction and then examining the places where the subpaths of the path crosses the ray. Starting with a count of zero, add one each time a subpath crosses the ray from left to right and subtract one each time a subpath crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the closed path. Otherwise, it is inside. "evenodd" This fill rule determines whether an independent subpath is inside a closed path by drawing a ray from a point inside the subpath to infinity in any direction and counting the number of subpaths of the path that the ray crosses. If this number is odd, the point is inside; if even, the point is outside." Definitions of fill(), clip(), and isPointInPath() methods would need to be updated. -- You are receiving this mail because: You are on the CC list for the bug.
Received on Wednesday, 9 January 2013 00:50:47 UTC