xwayland: mandatory EGL backend API

The API init_wl_registry() and has_wl_interfaces() are marked as being
optional, but both GBM And EGLStream backends implement them so there is
point in keeping those optional.

Suggested-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
This commit is contained in:
Olivier Fourdan 2018-06-11 09:21:08 +02:00 committed by Adam Jackson
parent 792359057b
commit 92daeb31fa
2 changed files with 3 additions and 11 deletions

View File

@ -72,14 +72,12 @@ xwl_glamor_init_wl_registry(struct xwl_screen *xwl_screen,
uint32_t version) uint32_t version)
{ {
if (xwl_screen->gbm_backend.is_available && if (xwl_screen->gbm_backend.is_available &&
xwl_screen->gbm_backend.init_wl_registry &&
xwl_screen->gbm_backend.init_wl_registry(xwl_screen, xwl_screen->gbm_backend.init_wl_registry(xwl_screen,
registry, registry,
id, id,
interface, interface,
version)); /* no-op */ version)); /* no-op */
else if (xwl_screen->eglstream_backend.is_available && else if (xwl_screen->eglstream_backend.is_available &&
xwl_screen->eglstream_backend.init_wl_registry &&
xwl_screen->eglstream_backend.init_wl_registry(xwl_screen, xwl_screen->eglstream_backend.init_wl_registry(xwl_screen,
registry, registry,
id, id,
@ -91,11 +89,7 @@ Bool
xwl_glamor_has_wl_interfaces(struct xwl_screen *xwl_screen, xwl_glamor_has_wl_interfaces(struct xwl_screen *xwl_screen,
struct xwl_egl_backend *xwl_egl_backend) struct xwl_egl_backend *xwl_egl_backend)
{ {
if (xwl_egl_backend->has_wl_interfaces) return xwl_egl_backend->has_wl_interfaces(xwl_screen);
return xwl_egl_backend->has_wl_interfaces(xwl_screen);
/* If the backend has no requirement wrt WL interfaces, we're fine */
return TRUE;
} }
struct wl_buffer * struct wl_buffer *

View File

@ -64,16 +64,14 @@ struct xwl_egl_backend {
Bool is_available; Bool is_available;
/* Called once for each interface in the global registry. Backends /* Called once for each interface in the global registry. Backends
* should use this to bind to any wayland interfaces they need. This * should use this to bind to any wayland interfaces they need.
* callback is optional.
*/ */
Bool (*init_wl_registry)(struct xwl_screen *xwl_screen, Bool (*init_wl_registry)(struct xwl_screen *xwl_screen,
struct wl_registry *wl_registry, struct wl_registry *wl_registry,
uint32_t id, const char *name, uint32_t id, const char *name,
uint32_t version); uint32_t version);
/* Check that the required Wayland interfaces are available. This /* Check that the required Wayland interfaces are available.
* callback is optional.
*/ */
Bool (*has_wl_interfaces)(struct xwl_screen *xwl_screen); Bool (*has_wl_interfaces)(struct xwl_screen *xwl_screen);