X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/1b4d28edd06e98cd8b06a129b4aad3e29de38938..HEAD:/ITWindowEffect.m diff --git a/ITWindowEffect.m b/ITWindowEffect.m index b58a0fb..a99f54a 100644 --- a/ITWindowEffect.m +++ b/ITWindowEffect.m @@ -8,7 +8,7 @@ + (NSArray *)effectClasses { - NSMutableArray *classes = [NSArray arrayWithObjects: + NSMutableArray *classes = [[NSArray arrayWithObjects: NSClassFromString(@"ITCutWindowEffect"), NSClassFromString(@"ITDissolveWindowEffect"), NSClassFromString(@"ITSlideHorizontallyWindowEffect"), @@ -17,19 +17,22 @@ NSClassFromString(@"ITZoomWindowEffect"), NSClassFromString(@"ITSpinWindowEffect"), NSClassFromString(@"ITSpinAndZoomWindowEffect"), - nil]; + nil] mutableCopy]; - NSOpenGLView *view = [[NSOpenGLView alloc] initWithFrame:NSMakeRect(0, 0, 1, 1) pixelFormat:[NSOpenGLView defaultPixelFormat]]; - if ([view openGLContext]) { - NSString *string = [NSString stringWithCString:glGetString(GL_EXTENSIONS)]; - NSRange result = [string rangeOfString:@"ARB_fragment_program"]; - if (result.location != NSNotFound) { - [classes addObject:NSClassFromString(@"ITCoreImageWindowEffect")]; + long version; + if ((Gestalt(gestaltSystemVersion, &version) == noErr) && (version >= 4160) && (version < 4166)) { + NSOpenGLView *view = [[NSOpenGLView alloc] initWithFrame:NSMakeRect(0, 0, 1, 1) pixelFormat:[NSOpenGLView defaultPixelFormat]]; + if ([view openGLContext]) { + NSString *string = [NSString stringWithCString:glGetString(GL_EXTENSIONS)]; + NSRange result = [string rangeOfString:@"ARB_fragment_program"]; + if (result.location != NSNotFound) { + [classes addObject:NSClassFromString(@"ITCoreImageWindowEffect")]; + } } + [view release]; } - [view release]; - return classes; + return [classes autorelease]; } - (id)initWithWindow:(NSWindow *)window