aboutsummaryrefslogtreecommitdiff
path: root/render/wlr_renderer.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-01-09 12:00:31 +0100
committerSimon Ser <contact@emersion.fr>2021-01-12 11:31:04 +0100
commit1d461687d24856a15fd8c37f744f40730888c9b0 (patch)
tree7d4a3856171310b71b0edb42e0b3b82204952f52 /render/wlr_renderer.c
parent50b120927ddcf26c83b219ebe9351b143efebfad (diff)
render/egl: replace init/finish with create/destroy
This ensures wlr_gles2_renderer can properly take ownership of the wlr_egl. Closes: https://github.com/swaywm/wlroots/issues/2612
Diffstat (limited to 'render/wlr_renderer.c')
-rw-r--r--render/wlr_renderer.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c
index b721036f..377b795e 100644
--- a/render/wlr_renderer.c
+++ b/render/wlr_renderer.c
@@ -249,25 +249,16 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
struct wlr_renderer *wlr_renderer_autocreate(EGLenum platform,
void *remote_display) {
- struct wlr_egl *egl = calloc(1, sizeof(*egl));
+ struct wlr_egl *egl = wlr_egl_create(platform, remote_display, NULL);
if (egl == NULL) {
- wlr_log_errno(WLR_ERROR, "Allocation failed");
- return NULL;
- }
-
- if (!wlr_egl_init(egl, platform, remote_display, NULL)) {
wlr_log(WLR_ERROR, "Could not initialize EGL");
return NULL;
}
- /*
- * wlr_renderer becomes the owner of the previously wlr_egl, and will
- * take care of freeing the allocated memory
- * TODO: move the wlr_egl logic to wlr_gles2_renderer
- */
struct wlr_renderer *renderer = wlr_gles2_renderer_create(egl);
if (!renderer) {
- wlr_egl_finish(egl);
+ wlr_log(WLR_ERROR, "Failed to create GLES2 renderer");
+ wlr_egl_destroy(egl);
}
return renderer;