I narrowed this down by removing the filters, and the leak is still there. And what a leak! Everytime I draw the view the memory usage increases with the size of the drawn image. Yet this exact same code is used in the Core Image Programming Guide. So I figure it's a bug in Core Image. But how can I avoid it?
- (void) drawRect:(NSRect)rect { CIImage *image = [CIImage imageWithData:[[self image] TIFFRepresentation]]; if (image !=nil) { CGRect cg; CIContext *context = [[NSGraphicsContext currentContext] CIContext]; cg = CGRectMake(NSMinX(rect), NSMinY(rect), NSWidth(rect), NSHeight(rect)); [context drawImage:image atPoint:cg.origin fromRect:cg]; } } On Mon, Mar 10, 2008 at 5:33 PM, <[EMAIL PROTECTED]> wrote: > Hi, > > I'm applying a Core Image filter to an image in a NSImageView > subclass. The drawing works fine, except it leaks memory, not sure > why. This is my drawRect method. Anything wrong with it? Thanks. > > > - (void) drawRect:(NSRect)rect > { > > [[self image] setFlipped:YES]; > CIImage *image = [CIImage imageWithData:[[self image] > TIFFRepresentation]]; > if (image !=nil) { > CIFilter *filter = [CIFilter > filterWithName:@"CIGaussianBlur"]; > [filter setDefaults]; > [filter setValue: image forKey: @"inputImage"]; > [filter setValue: [NSNumber numberWithFloat:0.7] forKey: > @"inputRadius"]; > image = [filter valueForKey: @"outputImage"]; > > filter = [CIFilter filterWithName:@"CIPerspectiveTransform"]; > [filter setDefaults]; > [filter setValue: image forKey: @"inputImage"]; > [filter setValue:[CIVector vectorWithX:NSMinX(rect) > Y:NSMinY(rect) + > bLeft ] forKey:@"inputBottomLeft"]; > [filter setValue:[CIVector vectorWithX:NSMaxX(rect) > Y:NSMinY(rect) + > bRight ] forKey:@"inputBottomRight"]; > [filter setValue:[CIVector vectorWithX:NSMinX(rect) > Y:NSMaxY(rect) + > tLeft ] forKey:@"inputTopLeft"]; > [filter setValue:[CIVector vectorWithX:NSMaxX(rect) > Y:NSMaxY(rect) + > tRight ] forKey:@"inputTopRight"]; > image = [filter valueForKey: @"outputImage"]; > > CGRect cg; > CIContext *context = [[NSGraphicsContext currentContext] > CIContext]; > cg = CGRectMake(NSMinX(rect), NSMinY(rect), NSWidth(rect), > NSHeight(rect)); > [context drawImage:image > atPoint:cg.origin > fromRect:cg]; > > } > } > _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]