-
- 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 */
+# define ST GLX_STENCIL_SIZE
+
+# if defined(GL_SAMPLE_BUFFERS)
+# define SB GL_SAMPLE_BUFFERS
+# define SM GL_SAMPLES
+# elif defined(GLX_SAMPLE_BUFFERS)
+# define SB GLX_SAMPLE_BUFFERS
+# define SM GLX_SAMPLES
+# elif defined(GLX_SAMPLE_BUFFERS_ARB)
+# define SB GLX_SAMPLE_BUFFERS_ARB
+# define SM GLX_SAMPLES_ARB
+# elif defined(GLX_SAMPLE_BUFFERS_SGIS)
+# define SB GLX_SAMPLE_BUFFERS_SGIS
+# define SM GLX_SAMPLES_SGIS
+# endif
+
+ int attrs[][40] = {
+# ifdef SB /* rgba double stencil multisample */
+ { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, SB,1, SM,8, 0 },
+ { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, SB,1, SM,6, 0 },
+ { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, SB,1, SM,4, 0 },
+ { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, SB,1, SM,2, 0 },
+# define SB_COUNT 4 /* #### Kludgey count of preceeding lines! */
+# endif
+ { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, 0 }, /* rgba 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, A,8, D,8, DB, 0 }, /* rgba double */
+ { 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, A,8, D,8, 0 }, /* rgba single */
+ { 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 */