diff options
author | Adel Gadllah <adel.gadllah@gmail.com> | 2015-07-26 11:27:00 +0200 |
---|---|---|
committer | Adel Gadllah <adel.gadllah@gmail.com> | 2015-07-26 16:04:14 +0200 |
commit | 4f8254f1ae74c9be3cb3153cc1e9c0604c103758 (patch) | |
tree | 8b202d358be778ab62b1dea218b2b809205b2488 /cogl | |
parent | 853a9b6e4904c897c17d675d764d69b1708f7824 (diff) | |
download | mutter-4f8254f1ae74c9be3cb3153cc1e9c0604c103758.tar.gz |
winsys-glx: Add error traps in create_context
Both create_gl3_context and glXCreateNewContext can fail with an X error.
https://bugzilla.gnome.org/show_bug.cgi?id=742678
Diffstat (limited to 'cogl')
-rw-r--r-- | cogl/winsys/cogl-winsys-glx.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c index ae35c6afe..44138732b 100644 --- a/cogl/winsys/cogl-winsys-glx.c +++ b/cogl/winsys/cogl-winsys-glx.c @@ -1075,6 +1075,8 @@ create_context (CoglDisplay *display, CoglError **error) COGL_NOTE (WINSYS, "Creating GLX Context (display: %p)", xlib_renderer->xdpy); + _cogl_xlib_renderer_trap_errors (display->renderer, &old_state); + if (display->renderer->driver == COGL_DRIVER_GL3) glx_display->glx_context = create_gl3_context (display, config); else @@ -1085,7 +1087,8 @@ create_context (CoglDisplay *display, CoglError **error) NULL, True); - if (glx_display->glx_context == NULL) + if (_cogl_xlib_renderer_untrap_errors (display->renderer, &old_state) || + glx_display->glx_context == NULL) { _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_CREATE_CONTEXT, |