W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2014

Re: [whatwg] new constructor method for Path2D

From: Rik Cabanier <cabanier@gmail.com>
Date: Sun, 9 Mar 2014 19:43:00 -0700
Message-ID: <CAGN7qDDxQTg9OLxtaisDr=cj34Uy06zOmZv-ODb0ySoZO8fUNg@mail.gmail.com>
To: "whatwg@whatwg.org" <whatwg@whatwg.org>
On Wed, Mar 5, 2014 at 1:46 PM, Rik Cabanier <cabanier@gmail.com> wrote:

> While implementing the Path2D object in mozilla, we ran into a performance
> issue.
>
> The mozilla implementation uses different "backends" for the canvas 2D
> context.
> Even within the same document, different canvas objects can be on top of
> different graphics libraries. For best performance, the Path2D object
> should use the same graphics interface as the canvas context you're
> applying it to. If this is not the case, the path segments have to be
> walked and converted which is a costly operation.
>
> To work around this, we could add a couple of constructor methods to the
> 2D context:
>
> Path2D createPath();
>
> Creates a new empty Path object.
>
> Path2D createPath(path);
>
> Creates a new Path object that is a copy of the argument.
>
> Path2D createPath(d);
>
> Creates a new path with the path described by the argument, interpreted as
> SVG path data. [SVG]
>
> This way, we can guarantee that they use the same underlying technology
> and performance won't be impacted.
> You could still pass these objects to other canvas contexts but
> performance might be impacted.
>

I was thinking about this a bit more and an alternate solution would be to
pass an optional 2D context to the Path2D constructors.
A UA could ignore that context, or it could see it as a hint that the path
is going to be used with that context.

Thoughts?
Received on Monday, 10 March 2014 02:43:28 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 17:00:17 UTC