X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/0aecaf45e8f7d5b1401b3872d06b07fea9497e7e..1b4d28edd06e98cd8b06a129b4aad3e29de38938:/ITWindowEffect.m diff --git a/ITWindowEffect.m b/ITWindowEffect.m index 300819d..b58a0fb 100644 --- a/ITWindowEffect.m +++ b/ITWindowEffect.m @@ -1,12 +1,14 @@ #import "ITWindowEffect.h" #import "ITTransientStatusWindow.h" - +#import +#import +#import @implementation ITWindowEffect + (NSArray *)effectClasses { - NSArray *classes = [NSArray arrayWithObjects: + NSMutableArray *classes = [NSArray arrayWithObjects: NSClassFromString(@"ITCutWindowEffect"), NSClassFromString(@"ITDissolveWindowEffect"), NSClassFromString(@"ITSlideHorizontallyWindowEffect"), @@ -15,9 +17,18 @@ NSClassFromString(@"ITZoomWindowEffect"), NSClassFromString(@"ITSpinWindowEffect"), NSClassFromString(@"ITSpinAndZoomWindowEffect"), - NSClassFromString(@"ITCoreImageWindowEffect"), nil]; - + + 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]; + return classes; }