backend: remove wlr_egl from all backends

This commit is contained in:
Simon Zeni 2021-01-07 00:10:10 -05:00 committed by Simon Ser
parent 5773794baf
commit b899a412e3
14 changed files with 65 additions and 33 deletions

View file

@ -674,6 +674,7 @@ static void gles2_destroy(struct wlr_renderer *wlr_renderer) {
struct wlr_gles2_renderer *renderer = gles2_get_renderer(wlr_renderer);
wlr_egl_make_current(renderer->egl, EGL_NO_SURFACE, NULL);
wlr_egl_finish(renderer->egl);
struct wlr_gles2_buffer *buffer, *buffer_tmp;
wl_list_for_each_safe(buffer, buffer_tmp, &renderer->buffers, link) {

View file

@ -247,13 +247,24 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
return true;
}
struct wlr_renderer *wlr_renderer_autocreate(struct wlr_egl *egl,
EGLenum platform, void *remote_display) {
struct wlr_renderer *wlr_renderer_autocreate(EGLenum platform,
void *remote_display) {
struct wlr_egl *egl = calloc(1, sizeof(*egl));
if (egl == NULL) {
wlr_log_errno(WLR_ERROR, "Allocation failed");
return NULL;
}
if (!wlr_egl_init(egl, platform, remote_display, NULL, 0)) {
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);