X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utils%2Fvisual-gl.c;h=45ef596d02e89b28ded1680ee6fb6f3db828d8aa;hb=f0261d8acab611f3433160e4f07367b870439739;hp=0a52e160c2c76cc0fafab2680312249942f6279e;hpb=de041722414a2e31c1c04caa10aaec9d6952e9b4;p=xscreensaver diff --git a/utils/visual-gl.c b/utils/visual-gl.c index 0a52e160..45ef596d 100644 --- a/utils/visual-gl.c +++ b/utils/visual-gl.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999, 2000 by Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2009 by Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -40,21 +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, GLX_DOUBLEBUFFER, 0 }, /* rgb double */ - { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, GLX_DOUBLEBUFFER, 0 }, - { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, GLX_DOUBLEBUFFER, 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, GLX_DOUBLEBUFFER, 0 }, /* cmap double */ - { I, 4, D, 4, GLX_DOUBLEBUFFER, 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; @@ -135,16 +142,33 @@ 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) +# 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))