X-Git-Url: https://git.ralfj.de/gltest.git/blobdiff_plain/867982470c8f197aaa6364da1c52d530a2023dec..c33e31157c4bfec02e8d0cabb78e3619fb1e581c:/glxbackend.cpp diff --git a/glxbackend.cpp b/glxbackend.cpp index 2023954..a5c9e0c 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -32,6 +32,7 @@ static int configAttribs[] = { GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT, GLX_DOUBLEBUFFER, True, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4, @@ -58,9 +59,9 @@ VisualID GLXBackend::initialize(Display *display) int glxMajor, glxMinor; glXQueryVersion(display, &glxMajor, &glxMinor); printf("Using GLX version: %d.%d\n", glxMajor, glxMinor); - if (glxMajor < 1 || (glxMajor == 1 && glxMinor < 3)) { - // glXChooseFBConfig and glXCreateNewContext require GLX 1.3 - die("Need at least GLX 1.3 to function properly\n"); + if (glxMajor == 1 && glxMinor < 4) { + // glXChooseFBConfig and glXCreateNewContext require GLX 1.3; GLX_ARB_create_context requires GLX 1.4 + die("Need at least GLX 1.4 to function properly\n"); } // check for extension-based functions funSwapIntervalMesa = (PFNGLXSWAPINTERVALMESAPROC)resolveGLXFunction("GLX_MESA_swap_control", "glXSwapIntervalMESA"); @@ -77,6 +78,9 @@ VisualID GLXBackend::initialize(Display *display) } // return visual ID XVisualInfo *vi = glXGetVisualFromFBConfig(display, config); + if (vi== NULL) { + die("The GLXFBConfig I got is invalid\n"); + } VisualID visualid = vi->visualid; XFree(vi); return visualid;