- NSOpenGLContext *ctx = [view oglContext];
-
-# ifndef USE_IPHONE
-
- if (!ctx) {
-
- NSOpenGLPixelFormatAttribute attrs[40];
- 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;
-
- Bool ms_p = get_boolean_resource (mi->dpy, "multiSample", "MultiSample");
-
- /* Sometimes, turning on multisampling kills performance. At one point,
- I thought the answer was, "only run multisampling on one screen, and
- leave it turned off on other screens". That's what this code does,
- but it turns out, that solution is insufficient. I can't really tell
- what causes poor performance with multisampling, but it's not
- predictable. Without changing the code, some times a given saver will
- perform fine with multisampling on, and other times it will perform
- very badly. Without multisampling, they always perform fine.
- */
-// if (ms_p && [[view window] screen] != [[NSScreen screens] objectAtIndex:0])
-// ms_p = 0;
-
- if (ms_p) {
- attrs[i++] = NSOpenGLPFASampleBuffers; attrs[i++] = 1;
- attrs[i++] = NSOpenGLPFASamples; attrs[i++] = 6;
- // Don't really understand what this means:
- // attrs[i++] = NSOpenGLPFANoRecovery;
- }
-
- attrs[i] = 0;
-
- NSOpenGLPixelFormat *pixfmt =
- [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
-
- if (ms_p && !pixfmt) { // Retry without multisampling.
- i -= 2;
- attrs[i] = 0;
- pixfmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
- }
-
- NSAssert (pixfmt, @"unable to create NSOpenGLPixelFormat");
-
- // #### Analyze says: "Potential leak of an object stored into pixfmt"
- ctx = [[NSOpenGLContext alloc]
- initWithFormat:pixfmt
- shareContext:nil];
-// [pixfmt release]; // #### ???
- }