- if ((qglXChooseVisual = GL_GetProcAddress("glXChooseVisual")) == NULL
- || (qglXCreateContext = GL_GetProcAddress("glXCreateContext")) == NULL
- || (qglXMakeCurrent = GL_GetProcAddress("glXMakeCurrent")) == NULL
- || (qglXSwapBuffers = GL_GetProcAddress("glXSwapBuffers")) == NULL
- || (qglXQueryExtensionsString = GL_GetProcAddress("glXQueryExtensionsString")) == NULL)
- Sys_Error("glX functions not found in %s\n", gl_driver);
-
- visinfo = NULL;
-// LordHavoc: FIXME: finish this code, we need to allocate colors before we can store them
-#if 0
- if (!COM_CheckParm("-nogamma"))
- visinfo = qglXChooseVisual(vidx11_display, scrnum, gammaattrib);
-#endif
+ if ((qglXChooseVisual = (XVisualInfo *(GLAPIENTRY *)(Display *dpy, int screen, int *attribList))GL_GetProcAddress("glXChooseVisual")) == NULL
+ || (qglXCreateContext = (GLXContext (GLAPIENTRY *)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct))GL_GetProcAddress("glXCreateContext")) == NULL
+ || (qglXDestroyContext = (void (GLAPIENTRY *)(Display *dpy, GLXContext ctx))GL_GetProcAddress("glXDestroyContext")) == NULL
+ || (qglXMakeCurrent = (Bool (GLAPIENTRY *)(Display *dpy, GLXDrawable drawable, GLXContext ctx))GL_GetProcAddress("glXMakeCurrent")) == NULL
+ || (qglXSwapBuffers = (void (GLAPIENTRY *)(Display *dpy, GLXDrawable drawable))GL_GetProcAddress("glXSwapBuffers")) == NULL
+ || (qglXQueryExtensionsString = (const char *(GLAPIENTRY *)(Display *dpy, int screen))GL_GetProcAddress("glXQueryExtensionsString")) == NULL)
+ {
+ Con_Printf("glX functions not found in %s\n", gl_driver);
+ return false;
+ }
+
+ VID_BuildGLXAttrib(attrib, bpp == 32, stereobuffer);
+ visinfo = qglXChooseVisual(vidx11_display, vidx11_screen, attrib);