http://ftp.ussg.iu.edu/linux/slackware/slackware-9.0/source/xap/xscreensaver/xscreens...
[xscreensaver] / utils / visual-gl.c
index 92fbc1a25a5dd3a2c9fc7a51207dfbd9d6b26554..09aee67a868844feba6ee3b8ca9508ea14b602a9 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1999, 2000 by Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999, 2000, 2003 by Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -43,19 +43,23 @@ get_gl_visual (Screen *screen)
 # define D GLX_DEPTH_SIZE
 # define I GLX_BUFFER_SIZE
 # define DB GLX_DOUBLEBUFFER
+# define ST GLX_STENCIL_SIZE
 
   int attrs[][20] = {
-    { GLX_RGBA, R, 8, G, 8, B, 8, D, 8, DB, 0 }, /* rgb double */
-    { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, DB, 0 },
-    { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, DB, 0 },
-    { GLX_RGBA, R, 8, G, 8, B, 8, D, 8,     0 }, /* rgb single */
-    { GLX_RGBA, R, 4, G, 4, B, 4, D, 4,     0 },
-    { GLX_RGBA, R, 2, G, 2, B, 2, D, 2,     0 },
-    { I, 8,                       D, 8, DB, 0 }, /* cmap double */
-    { I, 4,                       D, 4, DB, 0 },
-    { I, 8,                       D, 8,     0 }, /* cmap single */
-    { I, 4,                       D, 4,     0 },
-    { GLX_RGBA, R, 1, G, 1, B, 1, D, 1,     0 }  /* monochrome */
+   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8, DB, ST,1, 0 }, /* rgb double, stencil */
+   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, DB, ST,1, 0 },
+   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, DB, ST,1, 0 },
+   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8, DB,       0 }, /* rgb double */
+   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, DB,       0 },
+   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, DB,       0 },
+   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8,           0 }, /* rgb single */
+   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4,           0 },
+   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2,           0 },
+   { I, 8,                       D, 8, DB,       0 }, /* cmap double */
+   { I, 4,                       D, 4, DB,       0 },
+   { I, 8,                       D, 8,           0 }, /* cmap single */
+   { I, 4,                       D, 4,           0 },
+   { GLX_RGBA, R, 1, G, 1, B, 1, D, 1,           0 }  /* monochrome */
   };
 
   int i;
@@ -139,13 +143,18 @@ describe_gl_visual (FILE *f, Screen *screen, Visual *visual,
 # ifdef GLX_VISUAL_CAVEAT_EXT
     if (!glXGetConfig (dpy, vi_out, GLX_VISUAL_CAVEAT_EXT, &value) &&
         value != GLX_NONE_EXT)
+#   ifdef GLX_NON_CONFORMANT_EXT
       printf ("    GLX rating:        %s\n",
               (value == GLX_NONE_EXT ? "none" :
                value == GLX_SLOW_VISUAL_EXT ? "slow" :
-#   ifdef GLX_NON_CONFORMANT_EXT
                value == GLX_NON_CONFORMANT_EXT ? "non-conformant" :
-#   endif /* GLX_NON_CONFORMANT_EXT */
                "???"));
+#   else      
+      printf ("    GLX rating:        %s\n",
+              (value == GLX_NONE_EXT ? "none" :
+               value == GLX_SLOW_VISUAL_EXT ? "slow" :
+               "???"));
+#   endif /* GLX_NON_CONFORMANT_EXT */
 # endif /* GLX_VISUAL_CAVEAT_EXT */
 
     if (!glXGetConfig (dpy, vi_out, GLX_DOUBLEBUFFER, &value))