> On Mar 10, 2014, at 3:44 AM, "Rik Cabanier" <caban...@gmail.com> wrote: > >> On Wed, Mar 5, 2014 at 1:46 PM, Rik Cabanier <caban...@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