aboutsummaryrefslogtreecommitdiff
path: root/render/gles2/renderer.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-04-21 12:02:16 +0200
committerSimon Ser <contact@emersion.fr>2021-04-22 15:44:49 +0200
commit661ba495640069b3484441be1631f70187066656 (patch)
tree17be7dd7b7b35a294e1c0cf0d47c926008a8114f /render/gles2/renderer.c
parent9901d49fa52bb8405078537fe95c9aa8c6bdcf73 (diff)
render/gles2: destroy textures on renderer teardown
Diffstat (limited to 'render/gles2/renderer.c')
-rw-r--r--render/gles2/renderer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
index 2f1e506b..79861e8f 100644
--- a/render/gles2/renderer.c
+++ b/render/gles2/renderer.c
@@ -542,6 +542,11 @@ static void gles2_destroy(struct wlr_renderer *wlr_renderer) {
destroy_buffer(buffer);
}
+ struct wlr_gles2_texture *tex, *tex_tmp;
+ wl_list_for_each_safe(tex, tex_tmp, &renderer->textures, link) {
+ wlr_texture_destroy(&tex->wlr_texture);
+ }
+
push_gles2_debug(renderer);
glDeleteProgram(renderer->shaders.quad.program);
glDeleteProgram(renderer->shaders.tex_rgba.program);
@@ -763,6 +768,7 @@ struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) {
wlr_renderer_init(&renderer->wlr_renderer, &renderer_impl);
wl_list_init(&renderer->buffers);
+ wl_list_init(&renderer->textures);
renderer->egl = egl;
renderer->exts_str = exts_str;