5 static int glXRating(Display *display, XVisualInfo *v)
9 RrDebug("evaluating visual %d\n", (int)v->visualid);
10 glXGetConfig(display, v, GLX_BUFFER_SIZE, &val);
11 RrDebug("buffer size %d\n", val);
25 glXGetConfig(display, v, GLX_LEVEL, &val);
26 RrDebug("level %d\n", val);
30 glXGetConfig(display, v, GLX_DEPTH_SIZE, &val);
31 RrDebug("depth size %d\n", val);
46 glXGetConfig(display, v, GLX_DOUBLEBUFFER, &val);
47 RrDebug("double buffer %d\n", val);
53 struct RrInstance *RrInit(Display *display,
56 int count, i = 0, val, best = 0, rate = 0, temp;
57 XVisualInfo vimatch, *vilist;
58 struct RrInstance *ret = NULL;
60 vimatch.screen = screen;
61 vimatch.class = TrueColor;
62 vilist = XGetVisualInfo(display, VisualScreenMask | VisualClassMask,
66 RrDebug("looking for a GL visual in %d visuals\n", count);
67 for (i = 0; i < count; i++) {
68 glXGetConfig(display, &vilist[i], GLX_USE_GL, &val);
70 temp = glXRating(display, &vilist[i]);
79 RrDebug("picked visual %d with rating %d\n", best, rate);
80 ret = RrInstanceNew(display, screen, vilist[best]);
85 void RrDestroy(struct RrInstance *inst)