• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Core Animation/Core Image Crash
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Core Animation/Core Image Crash


  • Subject: Core Animation/Core Image Crash
  • From: Simon Haertel <email@hidden>
  • Date: Fri, 30 Jan 2009 17:17:05 +0100

Hi all,

In our application we have a window with a layer-backed NSView which has a content filter applied. The view also has a CAAnimation attached, which alters one of the filter's parameters.

Our problem is: When we repeatedly close and re-open the window, the application crashes. (Note that the window's isReleasedWhenClosed flag is not set!) We broke down our setup to the following code, which always causes a crash after opening and closing the window a few times:


@implementation MyView

- (void) drawRect: (NSRect) dirtyRect
{
    [[NSColor greenColor] set];
    NSRectFill( [self bounds] );
}

@end

@implementation MyController

- (void) toggleWindow: (NSWindow*) window
{
    if ( [window isVisible] ) {
        [window close];
    } else {
        [window makeKeyAndOrderFront:self];
    }

[self performSelector:@selector(toggleWindow:) withObject:window afterDelay:0.2];
}


- (void) awakeFromNib
{
NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect( 0.0, 0.0, 500.0, 300.0 )
styleMask:NSTitledWindowMask backing:NSBackingStoreBuffered defer:NO]; // not released
[window setReleasedWhenClosed:NO];
[window center];
[[window contentView] setWantsLayer:YES];


MyView* view = [[MyView alloc] initWithFrame:NSMakeRect( 20.0, 20.0, 200.0, 100.0 )];
[[window contentView] addSubview:view];
[view release];


    CIFilter* bloomFilter = [CIFilter filterWithName:@"CIBloom"];
    [bloomFilter setDefaults];
    [bloomFilter setName:@"bloomFilter"];
    [view setContentFilters:[NSArray arrayWithObject:bloomFilter]];

CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"filters.bloomFilter.inputRadius"];
animation.fromValue = [NSNumber numberWithFloat:0.0];
animation.toValue = [NSNumber numberWithFloat:10.0];
animation.repeatCount = FLT_MAX;
[[view layer] addAnimation:animation forKey:@"theAnimation"];


    [self toggleWindow:window];
}

@end


We've already tried removing the filter and animation before the window closes (by listening to the NSWindowWillCloseNotification), but this only seems to delay the crash a bit.


Does anybody have a clue what's wrong here? Thanks in advance.

Simon Haertel
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Prev by Date: Re: keydown woes update
  • Next by Date: OpenMP installation question on Leopard 10.5.6
  • Previous by thread: Re: keydown woes update
  • Next by thread: OpenMP installation question on Leopard 10.5.6
  • Index(es):
    • Date
    • Thread