diff options
author | Ilia Bozhinov <ammen99@gmail.com> | 2018-05-25 13:14:35 +0300 |
---|---|---|
committer | Ilia Bozhinov <ammen99@gmail.com> | 2018-05-25 14:56:52 +0300 |
commit | 24cf70ae9691d605e4a1f7e9d8dc59ec72401bd0 (patch) | |
tree | 93d550e437722bdeabca5605ada5c0b4d41128cf /include/wlr/backend | |
parent | a0eb37e2ea4ad96b4f6e98fddbc5c31d0bd0f293 (diff) |
backends: implement custom EGL and renderer initialization
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.
Fixes #987
Diffstat (limited to 'include/wlr/backend')
-rw-r--r-- | include/wlr/backend/drm.h | 3 | ||||
-rw-r--r-- | include/wlr/backend/headless.h | 3 | ||||
-rw-r--r-- | include/wlr/backend/wayland.h | 3 | ||||
-rw-r--r-- | include/wlr/backend/x11.h | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/include/wlr/backend/drm.h b/include/wlr/backend/drm.h index 14fafe10..7f41ca15 100644 --- a/include/wlr/backend/drm.h +++ b/include/wlr/backend/drm.h @@ -14,7 +14,8 @@ * a DRM backend, other kinds of backends raise SIGABRT). */ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display, - struct wlr_session *session, int gpu_fd, struct wlr_backend *parent); + struct wlr_session *session, int gpu_fd, struct wlr_backend *parent, + wlr_renderer_create_func_t create_renderer_func); bool wlr_backend_is_drm(struct wlr_backend *backend); bool wlr_output_is_drm(struct wlr_output *output); diff --git a/include/wlr/backend/headless.h b/include/wlr/backend/headless.h index ee784a0d..02c7cd11 100644 --- a/include/wlr/backend/headless.h +++ b/include/wlr/backend/headless.h @@ -9,7 +9,8 @@ * Creates a headless backend. A headless backend has no outputs or inputs by * default. */ -struct wlr_backend *wlr_headless_backend_create(struct wl_display *display); +struct wlr_backend *wlr_headless_backend_create(struct wl_display *display, + wlr_renderer_create_func_t create_renderer_func); /** * Create a new headless output backed by an in-memory EGL framebuffer. You can * read pixels from this framebuffer via wlr_renderer_read_pixels but it is diff --git a/include/wlr/backend/wayland.h b/include/wlr/backend/wayland.h index 31a14c97..119ea247 100644 --- a/include/wlr/backend/wayland.h +++ b/include/wlr/backend/wayland.h @@ -16,7 +16,8 @@ * to NULL for the default behaviour (WAYLAND_DISPLAY env variable or wayland-0 * default) */ -struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char *remote); +struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char *remote, + wlr_renderer_create_func_t create_renderer_func); /** * Adds a new output to this backend. You may remove outputs by destroying them. diff --git a/include/wlr/backend/x11.h b/include/wlr/backend/x11.h index 7bc1f891..56360bf7 100644 --- a/include/wlr/backend/x11.h +++ b/include/wlr/backend/x11.h @@ -8,7 +8,7 @@ #include <wlr/types/wlr_output.h> struct wlr_backend *wlr_x11_backend_create(struct wl_display *display, - const char *x11_display); + const char *x11_display, wlr_renderer_create_func_t create_renderer_func); struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend); bool wlr_backend_is_x11(struct wlr_backend *backend); |