http://www.jwz.org/xscreensaver/xscreensaver-5.09.tar.gz
[xscreensaver] / utils / visual-gl.c
index 09aee67a868844feba6ee3b8ca9508ea14b602a9..45ef596d02e89b28ded1680ee6fb6f3db828d8aa 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1999, 2000, 2003 by Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999-2009 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
@@ -40,26 +40,28 @@ get_gl_visual (Screen *screen)
 # define R GLX_RED_SIZE
 # define G GLX_GREEN_SIZE
 # define B GLX_BLUE_SIZE
+# define A GLX_ALPHA_SIZE
 # 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, 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 */
+   { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, 0 }, /* rgb double, stencil */
+   { 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;
@@ -140,6 +142,18 @@ describe_gl_visual (FILE *f, Screen *screen, Visual *visual,
         printf ("    GLX type:          indexed (%d)\n", value);
       }
 
+# ifndef  GLX_NONE_EXT       /* Hooray for gratuitious name changes. */
+#  define GLX_NONE_EXT                    GLX_NONE
+#  define GLX_TRANSPARENT_TYPE_EXT        GLX_TRANSPARENT_TYPE
+#  define GLX_TRANSPARENT_INDEX_EXT       GLX_TRANSPARENT_INDEX
+#  define GLX_TRANSPARENT_INDEX_VALUE_EXT GLX_TRANSPARENT_INDEX_VALUE
+#  define GLX_TRANSPARENT_RGB_EXT         GLX_TRANSPARENT_RGB
+#  define GLX_TRANSPARENT_RED_VALUE_EXT   GLX_TRANSPARENT_RED_VALUE
+#  define GLX_TRANSPARENT_GREEN_VALUE_EXT GLX_TRANSPARENT_GREEN_VALUE
+#  define GLX_TRANSPARENT_BLUE_VALUE_EXT  GLX_TRANSPARENT_BLUE_VALUE
+#  define GLX_TRANSPARENT_ALPHA_VALUE_EXT GLX_TRANSPARENT_ALPHA_VALUE
+# endif
+
 # ifdef GLX_VISUAL_CAVEAT_EXT
     if (!glXGetConfig (dpy, vi_out, GLX_VISUAL_CAVEAT_EXT, &value) &&
         value != GLX_NONE_EXT)