X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=OSX%2FXScreenSaverGLView.m;h=1ce659903e2b3ca4ab6fd8fa5337ed2f0740d6b2;hb=5f1f12f2a37da634000f96d18d59cc73a8814ef7;hp=6168e3de85ff75b340f697b6f88f9bbe8878f5cb;hpb=f0261d8acab611f3433160e4f07367b870439739;p=xscreensaver diff --git a/OSX/XScreenSaverGLView.m b/OSX/XScreenSaverGLView.m index 6168e3de..1ce65990 100644 --- a/OSX/XScreenSaverGLView.m +++ b/OSX/XScreenSaverGLView.m @@ -108,12 +108,17 @@ init_GL (ModeInfo *mi) if (!ctx) { - NSOpenGLPixelFormatAttribute attrs[] = { - NSOpenGLPFADoubleBuffer, - NSOpenGLPFAColorSize, 24, - NSOpenGLPFAAlphaSize, 8, - NSOpenGLPFADepthSize, 16, - 0 }; + NSOpenGLPixelFormatAttribute attrs[20]; + int i = 0; + attrs[i++] = NSOpenGLPFAColorSize; attrs[i++] = 24; + attrs[i++] = NSOpenGLPFAAlphaSize; attrs[i++] = 8; + attrs[i++] = NSOpenGLPFADepthSize; attrs[i++] = 16; + + if (get_boolean_resource (mi->dpy, "doubleBuffer", "DoubleBuffer")) + attrs[i++] = NSOpenGLPFADoubleBuffer; + + attrs[i] = 0; + NSOpenGLPixelFormat *pixfmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]; @@ -125,6 +130,7 @@ init_GL (ModeInfo *mi) // Sync refreshes to the vertical blanking interval GLint r = 1; [ctx setValues:&r forParameter:NSOpenGLCPSwapInterval]; + check_gl_error ("NSOpenGLCPSwapInterval"); [ctx makeCurrentContext]; check_gl_error ("makeCurrentContext"); @@ -150,7 +156,6 @@ init_GL (ModeInfo *mi) } } - // Caller expects a pointer to an opaque struct... which it dereferences. // Don't ask me, it's historical... static int blort = -1;