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

Reply via email to