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>
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;
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,
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);