From http://www.jwz.org/xscreensaver/xscreensaver-5.37.tar.gz
[xscreensaver] / hacks / glx / noof.c
index 6ec5793e7f50d358976fd69acc9e45da94e95a3a..ab483f9ab6ce2ff237d3eae5bd7331106e1612e2 100644 (file)
@@ -16,6 +16,8 @@
 #define DEFAULTS       "*delay:        10000       \n" \
                        "*showFPS:      False       \n" \
                        "*fpsSolid:     True        \n" \
+                       "*doubleBuffer: False       \n" \
+                       "*suppressRotationAnimation: True\n" \
 
 # define refresh_noof 0
 # define release_noof 0
@@ -26,9 +28,7 @@
 
 #define N_SHAPES 7
 
-/* For some reason this hack screws up on Cocoa if we try to double-buffer it.
-   It looks fine single-buffered, so let's just do that. */
-static int dbuf_p = 0;
+static int dbuf_p = 1;  /* always */
 
 ENTRYPOINT ModeSpecOpt noof_opts = {0, NULL, 0, NULL, NULL};
 
@@ -444,21 +444,13 @@ init_noof (ModeInfo *mi)
   int i;
   noof_configuration *bp;
 
-  if (!bps) {
-    bps = (noof_configuration *)
-      calloc (MI_NUM_SCREENS(mi), sizeof (noof_configuration));
-    if (!bps) {
-      fprintf(stderr, "%s: out of memory\n", progname);
-      exit(1);
-    }
-  }
+  MI_INIT (mi, bps, NULL);
 
   bp = &bps[MI_SCREEN(mi)];
 
   bp->glx_context = init_GL(mi);
 
   glDrawBuffer(dbuf_p ? GL_BACK : GL_FRONT);
-  glClearColor(0.0, 0.0, 0.0, 1.0);
   glEnable(GL_LINE_SMOOTH);
   glShadeModel(GL_FLAT);
   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);