aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-03-31 21:31:15 -0400
committerGitHub <noreply@github.com>2018-03-31 21:31:15 -0400
commitb60e31e5c034c87a5b3b01862d2ea535ef7de31c (patch)
tree335d648f02305c4c37359d2e7fcfcffbddb78534
parent1b258ffceb489a8ef339773ef23b1ac65f8774bd (diff)
parent33a2eb4b7775d1a3ab2b767739c1f1f054683d22 (diff)
Merge pull request #794 from emersion/renderer-untie-backend
Untie wlr_backend from wlr_renderer
-rw-r--r--backend/drm/renderer.c2
-rw-r--r--backend/headless/backend.c2
-rw-r--r--backend/wayland/backend.c2
-rw-r--r--backend/x11/backend.c2
-rw-r--r--examples/output-layout.c3
-rw-r--r--examples/rotation.c3
-rw-r--r--examples/tablet.c3
-rw-r--r--examples/touch.c3
-rw-r--r--include/wlr/render/gles2.h3
-rw-r--r--render/gles2/renderer.c5
10 files changed, 16 insertions, 12 deletions
diff --git a/backend/drm/renderer.c b/backend/drm/renderer.c
index c1531ce3..f06de1ee 100644
--- a/backend/drm/renderer.c
+++ b/backend/drm/renderer.c
@@ -31,7 +31,7 @@ bool wlr_drm_renderer_init(struct wlr_drm_backend *drm,
goto error_gbm;
}
- renderer->wlr_rend = wlr_gles2_renderer_create(&drm->backend);
+ renderer->wlr_rend = wlr_gles2_renderer_create(&renderer->egl);
if (!renderer->wlr_rend) {
wlr_log(L_ERROR, "Failed to create WLR renderer");
goto error_egl;
diff --git a/backend/headless/backend.c b/backend/headless/backend.c
index 663bc13b..5bc48240 100644
--- a/backend/headless/backend.c
+++ b/backend/headless/backend.c
@@ -114,7 +114,7 @@ struct wlr_backend *wlr_headless_backend_create(struct wl_display *display) {
return NULL;
}
- backend->renderer = wlr_gles2_renderer_create(&backend->backend);
+ backend->renderer = wlr_gles2_renderer_create(&backend->egl);
if (backend->renderer == NULL) {
wlr_log(L_ERROR, "Failed to create renderer");
}
diff --git a/backend/wayland/backend.c b/backend/wayland/backend.c
index abb25df5..0135f7c5 100644
--- a/backend/wayland/backend.c
+++ b/backend/wayland/backend.c
@@ -212,7 +212,7 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char
backend->remote_display, NULL, WL_SHM_FORMAT_ARGB8888);
wlr_egl_bind_display(&backend->egl, backend->local_display);
- backend->renderer = wlr_gles2_renderer_create(&backend->backend);
+ backend->renderer = wlr_gles2_renderer_create(&backend->egl);
if (backend->renderer == NULL) {
wlr_log_errno(L_ERROR, "Could not create renderer");
}
diff --git a/backend/x11/backend.c b/backend/x11/backend.c
index 90658f26..f598aea1 100644
--- a/backend/x11/backend.c
+++ b/backend/x11/backend.c
@@ -314,7 +314,7 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
goto error_event;
}
- x11->renderer = wlr_gles2_renderer_create(&x11->backend);
+ x11->renderer = wlr_gles2_renderer_create(&x11->egl);
if (x11->renderer == NULL) {
wlr_log(L_ERROR, "Failed to create renderer");
goto error_egl;
diff --git a/examples/output-layout.c b/examples/output-layout.c
index c1392a30..53aae7f0 100644
--- a/examples/output-layout.c
+++ b/examples/output-layout.c
@@ -196,7 +196,8 @@ int main(int argc, char *argv[]) {
compositor.keyboard_key_cb = handle_keyboard_key;
compositor_init(&compositor);
- state.renderer = wlr_gles2_renderer_create(compositor.backend);
+ struct wlr_egl *egl = wlr_backend_get_egl(compositor.backend);
+ state.renderer = wlr_gles2_renderer_create(egl);
state.cat_texture = wlr_texture_from_pixels(state.renderer,
WL_SHM_FORMAT_ABGR8888, cat_tex.width * 4, cat_tex.width, cat_tex.height,
cat_tex.pixel_data);
diff --git a/examples/rotation.c b/examples/rotation.c
index dfafeeca..37873797 100644
--- a/examples/rotation.c
+++ b/examples/rotation.c
@@ -137,7 +137,8 @@ int main(int argc, char *argv[]) {
compositor.keyboard_key_cb = handle_keyboard_key;
compositor_init(&compositor);
- state.renderer = wlr_gles2_renderer_create(compositor.backend);
+ struct wlr_egl *egl = wlr_backend_get_egl(compositor.backend);
+ state.renderer = wlr_gles2_renderer_create(egl);
if (!state.renderer) {
wlr_log(L_ERROR, "Could not start compositor, OOM");
exit(EXIT_FAILURE);
diff --git a/examples/tablet.c b/examples/tablet.c
index be428f86..d80b4b2f 100644
--- a/examples/tablet.c
+++ b/examples/tablet.c
@@ -192,7 +192,8 @@ int main(int argc, char *argv[]) {
};
compositor_init(&compositor);
- state.renderer = wlr_gles2_renderer_create(compositor.backend);
+ struct wlr_egl *egl = wlr_backend_get_egl(compositor.backend);
+ state.renderer = wlr_gles2_renderer_create(egl);
if (!state.renderer) {
wlr_log(L_ERROR, "Could not start compositor, OOM");
exit(EXIT_FAILURE);
diff --git a/examples/touch.c b/examples/touch.c
index e9dcf29c..16024fc8 100644
--- a/examples/touch.c
+++ b/examples/touch.c
@@ -108,7 +108,8 @@ int main(int argc, char *argv[]) {
};
compositor_init(&compositor);
- state.renderer = wlr_gles2_renderer_create(compositor.backend);
+ struct wlr_egl *egl = wlr_backend_get_egl(compositor.backend);
+ state.renderer = wlr_gles2_renderer_create(egl);
if (!state.renderer) {
wlr_log(L_ERROR, "Could not start compositor, OOM");
exit(EXIT_FAILURE);
diff --git a/include/wlr/render/gles2.h b/include/wlr/render/gles2.h
index b3b43ab2..a59956bd 100644
--- a/include/wlr/render/gles2.h
+++ b/include/wlr/render/gles2.h
@@ -5,6 +5,7 @@
#include <wlr/render/wlr_renderer.h>
struct wlr_egl;
-struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_backend *backend);
+
+struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl);
#endif
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
index c8094847..77af0ab7 100644
--- a/render/gles2/renderer.c
+++ b/render/gles2/renderer.c
@@ -6,7 +6,6 @@
#include <stdlib.h>
#include <wayland-server-protocol.h>
#include <wayland-util.h>
-#include <wlr/backend.h>
#include <wlr/render/egl.h>
#include <wlr/render/interface.h>
#include <wlr/render/wlr_renderer.h>
@@ -400,7 +399,7 @@ extern const GLchar tex_fragment_src_rgba[];
extern const GLchar tex_fragment_src_rgbx[];
extern const GLchar tex_fragment_src_external[];
-struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_backend *backend) {
+struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) {
struct wlr_gles2_renderer *renderer =
calloc(1, sizeof(struct wlr_gles2_renderer));
if (renderer == NULL) {
@@ -408,7 +407,7 @@ struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_backend *backend) {
}
wlr_renderer_init(&renderer->wlr_renderer, &renderer_impl);
- renderer->egl = wlr_backend_get_egl(backend);
+ renderer->egl = egl;
wlr_egl_make_current(renderer->egl, EGL_NO_SURFACE, NULL);
renderer->exts_str = (const char*) glGetString(GL_EXTENSIONS);