- From: Rik Cabanier <cabanier@gmail.com>
- Date: Sun, 9 Mar 2014 19:43:00 -0700
- 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