| 1190 | |
| 1191 | |
| 1192 | void configVsVisual(Display *dpy, GLXFBConfig config, XVisualInfo *vis) |
| 1193 | { |
| 1194 | int ctemp, vtemp, r, g, b, bs; |
| 1195 | if(!dpy) THROWNL("Invalid display handle"); |
| 1196 | if(!config) THROWNL("Invalid FB config"); |
| 1197 | if(!vis) THROWNL("Invalid visual pointer"); |
| 1198 | GLXFBConfig config0 = glXGetFBConfigFromVisualSGIX(dpy, vis); |
| 1199 | if(cfgid(dpy, config0) != cfgid(dpy, config)) |
| 1200 | THROWNL("glXGetFBConfigFromVisualSGIX()"); |
| 1201 | GET_CFG_ATTRIB(config, GLX_VISUAL_ID, ctemp); |
| 1202 | if(ctemp != (int)vis->visualid) |
| 1203 | THROWNL("Visual ID mismatch"); |
| 1204 | GET_CFG_ATTRIB(config, GLX_RENDER_TYPE, ctemp); |
| 1205 | GET_VIS_ATTRIB(vis, GLX_RGBA, vtemp); |
| 1206 | if((ctemp & GLX_RGBA_BIT) != 0 && vtemp != 1) |
| 1207 | THROWNL("GLX_RGBA mismatch w/ X visual"); |
| 1208 | COMPARE_ATTRIB(config, vis, GLX_BUFFER_SIZE, bs); |
| 1209 | COMPARE_ATTRIB(config, vis, GLX_LEVEL, ctemp); |
| 1210 | COMPARE_ATTRIB(config, vis, GLX_DOUBLEBUFFER, ctemp); |
| 1211 | COMPARE_ATTRIB(config, vis, GLX_STEREO, ctemp); |
| 1212 | COMPARE_ATTRIB(config, vis, GLX_AUX_BUFFERS, ctemp); |
| 1213 | COMPARE_ATTRIB(config, vis, GLX_RED_SIZE, r); |
| 1214 | COMPARE_ATTRIB(config, vis, GLX_GREEN_SIZE, g); |
| 1215 | COMPARE_ATTRIB(config, vis, GLX_BLUE_SIZE, b); |
| 1216 | COMPARE_ATTRIB(config, vis, GLX_ALPHA_SIZE, ctemp); |
| 1217 | COMPARE_ATTRIB(config, vis, GLX_DEPTH_SIZE, ctemp); |
| 1218 | COMPARE_ATTRIB(config, vis, GLX_STENCIL_SIZE, ctemp); |
| 1219 | COMPARE_ATTRIB(config, vis, GLX_ACCUM_RED_SIZE, ctemp); |
| 1220 | COMPARE_ATTRIB(config, vis, GLX_ACCUM_GREEN_SIZE, ctemp); |
| 1221 | COMPARE_ATTRIB(config, vis, GLX_ACCUM_BLUE_SIZE, ctemp); |
| 1222 | COMPARE_ATTRIB(config, vis, GLX_ACCUM_ALPHA_SIZE, ctemp); |
| 1223 | COMPARE_ATTRIB(config, vis, GLX_SAMPLE_BUFFERS_ARB, ctemp); |
| 1224 | COMPARE_ATTRIB(config, vis, GLX_SAMPLES_ARB, ctemp); |
| 1225 | COMPARE_ATTRIB(config, vis, GLX_X_VISUAL_TYPE, ctemp); |
| 1226 | if(visualClassToGLXVisualType(vis->c_class) != ctemp) |
| 1227 | THROWNL("GLX_X_VISUAL_TYPE mismatch w/ X visual"); |
| 1228 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_TYPE_EXT, ctemp); |
| 1229 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_INDEX_VALUE_EXT, ctemp); |
| 1230 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_RED_VALUE_EXT, ctemp); |
| 1231 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_GREEN_VALUE_EXT, ctemp); |
| 1232 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_BLUE_VALUE_EXT, ctemp); |
| 1233 | COMPARE_ATTRIB(config, vis, GLX_TRANSPARENT_ALPHA_VALUE_EXT, ctemp); |
| 1234 | } |
| 1235 | |
| 1236 | |
| 1237 | int cfgid(Display *dpy, GLXFBConfig config) |
no test coverage detected