aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/backend
diff options
context:
space:
mode:
authorIlia Bozhinov <ammen99@gmail.com>2018-05-25 13:14:35 +0300
committerIlia Bozhinov <ammen99@gmail.com>2018-05-25 14:56:52 +0300
commit24cf70ae9691d605e4a1f7e9d8dc59ec72401bd0 (patch)
tree93d550e437722bdeabca5605ada5c0b4d41128cf /include/wlr/backend
parenta0eb37e2ea4ad96b4f6e98fddbc5c31d0bd0f293 (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.h3
-rw-r--r--include/wlr/backend/headless.h3
-rw-r--r--include/wlr/backend/wayland.h3
-rw-r--r--include/wlr/backend/x11.h2
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);