Thanks. That's the code I thought I'd written last night but clearly I hadn't because it wasn't working. I'll start fresh this evening instead of trying to jam it in badly like I was.
On 30 Oct, 2012, at 6:47 AM, Graham Cox <graham....@bigpond.com> wrote: > I have the following method in a category on NSBezierPath, which seems to be > what you want, and works in the same way as -addClip: > > > - (void) addInverseClip > // this is similar to -addClip, except that it excludes the area > bounded by the path instead of includes it. It works by combining this path > // with the existing clip area using the E/O winding rule, then setting > the result as the clip area. This should be called between > // calls to save and restore the gstate, as for addClip. > > CGContextRef context = [[NSGraphicsContext currentContext] > graphicsPort]; > CGRect cbbox = CGContextGetClipBoundingBox( context ); > > NSBezierPath* cp = [NSBezierPath bezierPathWithRect:*(NSRect*)&cbbox]; > [cp appendBezierPath:self]; > [cp setWindingRule:NSEvenOddWindingRule]; > [cp addClip]; > } > > > > --Graham > > > > > On 30/10/2012, at 12:22 AM, Roland King <r...@rols.org> wrote: > >> I have a graphics context and a path and I want to clip everything inside >> the path, ie not display it, and leave everything outside the path >> displayed. The path is simple and doesn't cross itself, for sake of example >> it may as well be a circle. If I start with a clip-free GC and set that >> circle as a clipping path, I'll get the opposite, everything in the circle >> will show, how do I do the other way around? Does it work if I set a path at >> the bound rect of the GC plus my shape in the middle? That would seem to >> have two crossings to get into the shape, one at the bounds of the rect, one >> as you cross the shape, which should mean everything inside the shape is >> 'outside' but does a path at the very extremities of the GC, or even outside >> it, count as 'crossed'? >> >> The more I think about it, the more clipping sounds hard to implement > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com