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)
+ 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
break;
}
- if (ctx == NULL)
- {
- gdk_x11_display_error_trap_pop_ignored (display);
- return 0;
- }
-
- if (gdk_x11_display_error_trap_pop (display))
- {
- glXDestroyContext (dpy, ctx);
- return 0;
- }
-
GDK_DISPLAY_DEBUG (display, OPENGL,
"Realized GLX context[%p], %s, version: %d.%d",
context_glx->glx_context,