- From: Rik Cabanier <cabanier@gmail.com>
- Date: Tue, 29 Jan 2013 20:50:32 -0800
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: WHATWG List <whatwg@whatwg.org>, "public-canvas-api@w3.org" <public-canvas-api@w3.org>
On Tue, Jan 29, 2013 at 8:23 PM, Tab Atkins Jr. <jackalmage@gmail.com>wrote: > On Tue, Jan 29, 2013 at 6:10 PM, Rik Cabanier <cabanier@gmail.com> wrote: > > It restores the graphics state back to the state at 'save' time and this > > includes the clip area. > > 'Clip' is a nested operation so every clip will be the intersection of > the > > existing clip area and the new one. > > > > PDF also has no initclip/resetClip and since CG is based on that model, > > maybe they didn't bother to add it. > > I can certainly see its use though (it's used quite often in PostScript) > > I find that bizarre, but I've seen weirder APIs, so whatever. > > It may still be possible without being too hacky - if the UA manually > rewinds and replays the state stack, only omitting clip() changes, it > would be the same thing. You'd have to be clever to allow the user to > restore() from that state again, though - maybe by recording the stack > of clip() operations and doing *another* rewind+replay, but this time > with the clip() calls happening again. > > My definition of "not too hacky" may be miscalibrated. > Yes, that's why I said "without significant overhead" in my original message. :-) You'd have to store all the paths to the clips + the drawing states just in case someone calls 'resetClip' in order to pull this off. Not impossible, but the CG canvas code will get very ugly.
Received on Wednesday, 30 January 2013 04:50:56 UTC