[whatwg] CanvasRenderingContext2D with addPath, currentPath
Dean Jackson
dino at apple.com
Mon Nov 4 15:17:00 PST 2013
FWIW - I think that
ctx.currentPath != ctx.currentPath
is a horrible mistake and we should fix WebKit.
Dean
On 4 Nov 2013, at 2:47 pm, Rik Cabanier <cabanier at gmail.com> wrote:
> On Mon, Nov 4, 2013 at 11:25 AM, Rik Cabanier <cabanier at gmail.com> wrote:
>
>>
>>
>>
>> On Mon, Nov 4, 2013 at 1:49 AM, Jürg Lehni <lists at scratchdisk.com> wrote:
>>
>>>> What's the use case?
>>>>
>>>> I intentionally didn't add this to the spec when I was adding the last
>>> set
>>>> of path-related features, because it seems entirely redundant with Path
>>>> objects. I thought we'd want people to move away from using the implicit
>>>> path, rather than making it more powerful.
>>>
>>> I like this feature a lot. One advantage to not underestimate is the
>>> amount of effort it takes to change existing code to make use off the new
>>> Path feature, while staying backward compatible with older browsers that
>>> don't implement this spec. For example, in Paper.js it took only three
>>> added lines of code to use cached paths if they exist rather than redrawing
>>> them each time
>>>
>>
>> Do you think getCurrentPath should return a path in user space or in the
>> current transformation matrix?
>>
>
> Answering my own question, when reading the canvas spec [1], it should be
> in user space:
>
> When the intended path is a
> Path<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path>
> object,
> the coordinates and lines of its subpaths must be transformed according to
> the CanvasRenderingContext2D<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#canvasrenderingcontext2d>
> object's current transformation
> matrix<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#transformations>
> when
> used by these methods (without affecting the
> Path<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path>
> object
> itself). When the intended path is the current default
> path<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#current-default-path>,
> it is not affected by the transform. (*This is because transformations
> already affect the **current default
> path*<http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#current-default-path>*
> when
> it is constructed, so applying it when it is painted as well would result
> in a double transformation*.)
>
>
> In light of this, does anyone have objections to these 2 new methods:
>
> Path getCurrentPath();
>
> void setCurrentPath(Path);
>
>
> With the path in user space (so it is not affected by the CTM).
>
> 1:
> http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#drawing-paths-to-the-canvas
More information about the whatwg
mailing list