#include #include #if 0 #include #include #include #include #include #include #include #include #include #endif #include #include #include #if 0 #include #include #include #endif #include extern const char *__progname; #define UNUSED __attribute__((__unused__)) typedef struct attr ATTR; struct attr { int attrib; const char *name; } ; static Display *disp; static int nvi; static XVisualInfo *vi; static ATTR attribs[] = { #define INITATTR(x) { x, #x } INITATTR(GLX_USE_GL), INITATTR(GLX_BUFFER_SIZE), INITATTR(GLX_LEVEL), INITATTR(GLX_RGBA), INITATTR(GLX_DOUBLEBUFFER), INITATTR(GLX_STEREO), INITATTR(GLX_AUX_BUFFERS), INITATTR(GLX_RED_SIZE), INITATTR(GLX_GREEN_SIZE), INITATTR(GLX_BLUE_SIZE), INITATTR(GLX_ALPHA_SIZE), INITATTR(GLX_DEPTH_SIZE), INITATTR(GLX_STENCIL_SIZE), INITATTR(GLX_ACCUM_RED_SIZE), INITATTR(GLX_ACCUM_GREEN_SIZE), INITATTR(GLX_ACCUM_BLUE_SIZE), INITATTR(GLX_ACCUM_ALPHA_SIZE) }; static int nattribs = sizeof(attribs) / sizeof(attribs[0]); static const char *classname(int cl) { static char *badbuf = 0; switch (cl) { case StaticGray: return("StaticGray"); break; case GrayScale: return("GrayScale"); break; case StaticColor: return("StaticColor"); break; case PseudoColor: return("PseudoColor"); break; case TrueColor: return("TrueColor"); break; case DirectColor: return("DirectColor"); break; } free(badbuf); asprintf(&badbuf,"?%d",cl); return(badbuf); } int main(void); int main(void) { int i; int e; int value; int j; disp = XOpenDisplay(0); if (disp == 0) { fprintf(stderr,"%s: can't open display\n",__progname); exit(1); } vi = XGetVisualInfo(disp,0,0,&nvi); printf("visual count: %d\n",nvi); for (i=0;i