- From: Dirk Schulze <dschulze@adobe.com>
- Date: Mon, 10 Mar 2014 05:52:48 +0000
- To: Rik Cabanier <cabanier@gmail.com>
- Cc: "whatwg@whatwg.org" <whatwg@whatwg.org>
> On Mar 10, 2014, at 3:44 AM, "Rik Cabanier" <cabanier@gmail.com> wrote: > >> 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? Slightly better. Still not sure. Dirk
Received on Monday, 10 March 2014 05:53:16 UTC