[whatwg] new constructor method for Path2D

Rik Cabanier cabanier at gmail.com
Sun Mar 9 19:43:00 PDT 2014

On Wed, Mar 5, 2014 at 1:46 PM, Rik Cabanier <cabanier at 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.


More information about the whatwg mailing list