wayland/x11: Set constraints on the CoglRenderer
When using the Wayland backend this sets a constraint that the CoglRenderer selects the Wayland EGL winsys. When a Wayland compositor display is set it now also sets a constraint that the render should use EGL because only EGL renderers will set up the required wl_drm global object. The X11 backend now sets the X11 constraint. Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
This commit is contained in:
parent
a0d3b01aa9
commit
1f7968e5f9
@ -269,6 +269,12 @@ clutter_backend_real_create_context (ClutterBackend *backend,
|
||||
if (backend->cogl_renderer == NULL)
|
||||
goto error;
|
||||
|
||||
/* If the application is trying to act as a Wayland compositor then
|
||||
it needs to have an EGL-based renderer backend */
|
||||
if (_wayland_compositor_display)
|
||||
cogl_renderer_add_constraint (backend->cogl_renderer,
|
||||
COGL_RENDERER_CONSTRAINT_USES_EGL);
|
||||
|
||||
CLUTTER_NOTE (BACKEND, "Connecting the renderer");
|
||||
if (!cogl_renderer_connect (backend->cogl_renderer, &internal_error))
|
||||
goto error;
|
||||
|
@ -215,6 +215,8 @@ clutter_backend_wayland_get_renderer (ClutterBackend *backend,
|
||||
|
||||
renderer = cogl_renderer_new ();
|
||||
|
||||
cogl_renderer_set_winsys_id (renderer, COGL_WINSYS_ID_EGL_WAYLAND);
|
||||
|
||||
cogl_wayland_renderer_set_foreign_display (renderer,
|
||||
backend_wayland->wayland_display);
|
||||
cogl_wayland_renderer_set_foreign_compositor (renderer,
|
||||
|
@ -697,6 +697,8 @@ clutter_backend_x11_get_renderer (ClutterBackend *backend,
|
||||
|
||||
renderer = cogl_renderer_new ();
|
||||
|
||||
cogl_renderer_add_constraint (renderer, COGL_RENDERER_CONSTRAINT_USES_X11);
|
||||
|
||||
/* set the display object we're using */
|
||||
cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user