mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
glx: Fix error messages and debug notes
Instead of using g_critical() inside the create_context() implementation of the ClutterBackendGLX we should use the passed GError, so that the error message can bubble up to the caller.
This commit is contained in:
parent
ede2cbfab0
commit
479fdffc7d
@ -350,7 +350,7 @@ clutter_backend_glx_get_features (ClutterBackend *backend)
|
|||||||
if (!(flags & CLUTTER_FEATURE_SYNC_TO_VBLANK))
|
if (!(flags & CLUTTER_FEATURE_SYNC_TO_VBLANK))
|
||||||
CLUTTER_NOTE (BACKEND, "DRI vblank setup failed");
|
CLUTTER_NOTE (BACKEND, "DRI vblank setup failed");
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* __linux__ */
|
||||||
|
|
||||||
if (!(flags & CLUTTER_FEATURE_SYNC_TO_VBLANK))
|
if (!(flags & CLUTTER_FEATURE_SYNC_TO_VBLANK))
|
||||||
CLUTTER_NOTE (BACKEND, "no use-able vblank mechanism found");
|
CLUTTER_NOTE (BACKEND, "no use-able vblank mechanism found");
|
||||||
@ -489,11 +489,11 @@ clutter_backend_glx_create_context (ClutterBackend *backend,
|
|||||||
{
|
{
|
||||||
g_set_error (error, CLUTTER_INIT_ERROR,
|
g_set_error (error, CLUTTER_INIT_ERROR,
|
||||||
CLUTTER_INIT_ERROR_BACKEND,
|
CLUTTER_INIT_ERROR_BACKEND,
|
||||||
"Unable to find suitable fbconfig for GL context");
|
"Unable to find suitable fbconfig for the GLX context");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLUTTER_NOTE (GL, "Creating GL Context (display: %p)", xdisplay);
|
CLUTTER_NOTE (BACKEND, "Creating GLX Context (display: %p)", xdisplay);
|
||||||
|
|
||||||
backend_glx->gl_context = glXCreateNewContext (xdisplay,
|
backend_glx->gl_context = glXCreateNewContext (xdisplay,
|
||||||
config,
|
config,
|
||||||
@ -515,15 +515,17 @@ clutter_backend_glx_create_context (ClutterBackend *backend,
|
|||||||
: "indirect");
|
: "indirect");
|
||||||
_cogl_set_indirect_context (!is_direct);
|
_cogl_set_indirect_context (!is_direct);
|
||||||
|
|
||||||
/* in order to query the GL and GLX implementation we
|
/* COGL assumes that there is always a GL context selected; in order
|
||||||
* need to bind the GLX context to a Drawable; we create
|
* to make sure that a GLX context exists and is made current, we use
|
||||||
* a simple, off-screen override-redirect window that we
|
* a dummy, offscreen override-redirect window to which we can always
|
||||||
* then destroy at the end of this function
|
* fall back if no stage is available
|
||||||
*/
|
*/
|
||||||
xvisinfo = glXGetVisualFromFBConfig (xdisplay, config);
|
xvisinfo = glXGetVisualFromFBConfig (xdisplay, config);
|
||||||
if (xvisinfo == None)
|
if (xvisinfo == None)
|
||||||
{
|
{
|
||||||
g_critical ("Unable to retrieve the X11 visual");
|
g_set_error (error, CLUTTER_INIT_ERROR,
|
||||||
|
CLUTTER_INIT_ERROR_BACKEND,
|
||||||
|
"Unable to retrieve the X11 visual");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,6 +541,9 @@ clutter_backend_glx_create_context (ClutterBackend *backend,
|
|||||||
CWOverrideRedirect,
|
CWOverrideRedirect,
|
||||||
&attrs);
|
&attrs);
|
||||||
|
|
||||||
|
CLUTTER_NOTE (BACKEND, "Selecting dummy 0x%x for the GLX context",
|
||||||
|
(unsigned int) backend_glx->dummy_xwin);
|
||||||
|
|
||||||
glXMakeContextCurrent (xdisplay,
|
glXMakeContextCurrent (xdisplay,
|
||||||
backend_glx->dummy_xwin,
|
backend_glx->dummy_xwin,
|
||||||
backend_glx->dummy_xwin,
|
backend_glx->dummy_xwin,
|
||||||
@ -546,7 +551,9 @@ clutter_backend_glx_create_context (ClutterBackend *backend,
|
|||||||
|
|
||||||
if (clutter_x11_untrap_x_errors ())
|
if (clutter_x11_untrap_x_errors ())
|
||||||
{
|
{
|
||||||
g_critical ("Unable to retrieve the GLX features");
|
g_set_error (error, CLUTTER_INIT_ERROR,
|
||||||
|
CLUTTER_INIT_ERROR_BACKEND,
|
||||||
|
"Unable to select the newly created GLX context");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -590,7 +597,7 @@ clutter_backend_glx_ensure_context (ClutterBackend *backend,
|
|||||||
CLUTTER_NOTE (BACKEND,
|
CLUTTER_NOTE (BACKEND,
|
||||||
"Setting context for stage of type %s, window: 0x%x",
|
"Setting context for stage of type %s, window: 0x%x",
|
||||||
G_OBJECT_TYPE_NAME (impl),
|
G_OBJECT_TYPE_NAME (impl),
|
||||||
(int) stage_x11->xwin);
|
(unsigned int) stage_x11->xwin);
|
||||||
|
|
||||||
/* no GL context to set */
|
/* no GL context to set */
|
||||||
if (backend_glx->gl_context == None)
|
if (backend_glx->gl_context == None)
|
||||||
@ -621,7 +628,7 @@ clutter_backend_glx_ensure_context (ClutterBackend *backend,
|
|||||||
CLUTTER_NOTE (BACKEND,
|
CLUTTER_NOTE (BACKEND,
|
||||||
"MakeContextCurrent dpy: %p, window: 0x%x (%s), context: %p",
|
"MakeContextCurrent dpy: %p, window: 0x%x (%s), context: %p",
|
||||||
backend_x11->xdpy,
|
backend_x11->xdpy,
|
||||||
(int) stage_x11->xwin,
|
(unsigned int) stage_x11->xwin,
|
||||||
stage_x11->is_foreign_xwin ? "foreign" : "native",
|
stage_x11->is_foreign_xwin ? "foreign" : "native",
|
||||||
backend_glx->gl_context);
|
backend_glx->gl_context);
|
||||||
|
|
||||||
@ -634,7 +641,7 @@ clutter_backend_glx_ensure_context (ClutterBackend *backend,
|
|||||||
if (clutter_x11_untrap_x_errors ())
|
if (clutter_x11_untrap_x_errors ())
|
||||||
g_critical ("Unable to make the stage window 0x%x the current "
|
g_critical ("Unable to make the stage window 0x%x the current "
|
||||||
"GLX drawable",
|
"GLX drawable",
|
||||||
(int) stage_x11->xwin);
|
(unsigned int) stage_x11->xwin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user