- From: Justin Novosad <junov@google.com>
- Date: Mon, 12 Aug 2013 17:26:08 -0400
- To: Simon Sarris <simon.sarris@gmail.com>
- Cc: WHATWG List <whatwg@whatwg.org>, Stephen White <senorblanco@chromium.org>, Rik Cabanier <cabanier@gmail.com>, Ian Hickson <ian@hixie.ch>
Ok, so here is a simple proposal: IDL: enum CanvasSaveMode { "all", "transform", "clip", "transform-and-clip" }; save(optional CanvasSaveMode mode); Modes: all: save the entire rendering context state transform: save only the current transform clip: save only the current clip if mode is not specified, the entire context state is saved (for backward compatibility) The restore method's interface does not change. It restores whatever state was saved by the matching save call. On Mon, Aug 12, 2013 at 4:56 PM, Simon Sarris <simon.sarris@gmail.com>wrote: > > Good point, I think part of the problem has to do with the fact that save > > is non-selective (saves all of the state). > > Yes, since save() and restore() save and restore everything, it creates > the side effect of needing to set ctx.font/fillStyle/strokeStyle more often > than otherwise, which are slow to set, probably because of some CSS parser > activity, but I'm not wise enough to know. > > If there was merely a way to save and restore the context, or perhaps some > other subset of state, that would probably work nicely too. > > > > > >
Received on Monday, 12 August 2013 21:26:35 UTC