if (share != NULL)
share_glx = GDK_X11_GL_CONTEXT_GLX (share);
+ gdk_x11_display_error_trap_push (display);
+
supported_versions = gdk_gl_versions_get_for_api (api);
for (j = 0; gdk_gl_version_greater_equal (&supported_versions[j], &version); j++)
{
context_attribs [major_idx] = gdk_gl_version_get_major (&supported_versions[j]);
context_attribs [minor_idx] = gdk_gl_version_get_minor (&supported_versions[j]);
- gdk_x11_display_error_trap_push (display);
-
/* If we don't have access to GLX_ARB_create_context_profile, then
* we have to fall back to the old GLX 1.3 API.
*/
True,
context_attribs);
- if (ctx == NULL)
- {
- gdk_x11_display_error_trap_pop_ignored (display);
- }
- else if (gdk_x11_display_error_trap_pop (display))
- {
- glXDestroyContext (dpy, ctx);
- ctx = NULL;
- }
- else
+ if (ctx != NULL)
break;
}
+ gdk_x11_display_error_trap_pop_ignored (display);
+
+ if (ctx == NULL)
+ {
+ GDK_DISPLAY_DEBUG (display, OPENGL, "Failed to create a GLX context");
+ return 0;
+ }
+
GDK_DISPLAY_DEBUG (display, OPENGL,
"Realized GLX context[%p], %s, version: %d.%d",
context_glx->glx_context,