From e91417ea8dde8dcb694afc490ef37980d0a8e21a Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 2 Jun 2020 22:13:16 +0200 Subject: render: stop making EGL context current in wlr_egl_init This leaves an EGL context current behind. wlr_gles2_renderer_create was assuming the EGL context was already current because of this (because it called a GL function right off the bat). --- render/gles2/renderer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'render/gles2') diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index e6ec881a..59c970c3 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -558,6 +558,10 @@ extern const GLchar tex_fragment_src_rgbx[]; extern const GLchar tex_fragment_src_external[]; struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) { + if (!wlr_egl_make_current(egl, EGL_NO_SURFACE, NULL)) { + return NULL; + } + const char *exts_str = (const char *)glGetString(GL_EXTENSIONS); if (exts_str == NULL) { wlr_log(WLR_ERROR, "Failed to get GL_EXTENSIONS"); @@ -572,11 +576,6 @@ struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) { wlr_renderer_init(&renderer->wlr_renderer, &renderer_impl); renderer->egl = egl; - if (!wlr_egl_make_current(renderer->egl, EGL_NO_SURFACE, NULL)) { - free(renderer); - return NULL; - } - renderer->exts_str = exts_str; wlr_log(WLR_INFO, "Using %s", glGetString(GL_VERSION)); -- cgit v1.2.3