summaryrefslogtreecommitdiff
path: root/libweston/renderer-gl
diff options
context:
space:
mode:
authorPekka Paalanen <pekka.paalanen@collabora.com>2021-03-22 12:55:51 +0200
committerPekka Paalanen <pq@iki.fi>2021-04-07 11:45:10 +0000
commit6d1a7df42f658cad131623c762a4b8de77475883 (patch)
tree093b3cc571036062d80fad30ae446f49037aef17 /libweston/renderer-gl
parent83e4315e41ba2e502525bffa23e9661c8d7186a4 (diff)
gl-renderer: move shader list destroy to gl-shaders.c
This paves way for making struct gl_shader opaque outside of gl-shaders.c. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Diffstat (limited to 'libweston/renderer-gl')
-rw-r--r--libweston/renderer-gl/gl-renderer-internal.h3
-rw-r--r--libweston/renderer-gl/gl-renderer.c5
-rw-r--r--libweston/renderer-gl/gl-shaders.c9
3 files changed, 13 insertions, 4 deletions
diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
index b8b6504d..379bafa8 100644
--- a/libweston/renderer-gl/gl-renderer-internal.h
+++ b/libweston/renderer-gl/gl-renderer-internal.h
@@ -201,6 +201,9 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec);
void
gl_shader_destroy(struct gl_renderer *gr, struct gl_shader *shader);
+void
+gl_renderer_shader_list_destroy(struct gl_renderer *gr);
+
struct gl_shader *
gl_renderer_create_fallback_shader(struct gl_renderer *gr);
diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
index ef396a3c..b373942d 100644
--- a/libweston/renderer-gl/gl-renderer.c
+++ b/libweston/renderer-gl/gl-renderer.c
@@ -3430,16 +3430,13 @@ gl_renderer_destroy(struct weston_compositor *ec)
struct gl_renderer *gr = get_renderer(ec);
struct dmabuf_image *image, *next;
struct dmabuf_format *format, *next_format;
- struct gl_shader *shader, *next_shader;
wl_signal_emit(&gr->destroy_signal, gr);
if (gr->has_bind_display)
gr->unbind_display(gr->egl_display, ec->wl_display);
- wl_list_for_each_safe(shader, next_shader, &gr->shader_list, link)
- gl_shader_destroy(gr, shader);
-
+ gl_renderer_shader_list_destroy(gr);
if (gr->fallback_shader)
gl_shader_destroy(gr, gr->fallback_shader);
diff --git a/libweston/renderer-gl/gl-shaders.c b/libweston/renderer-gl/gl-shaders.c
index 0c5cec7f..e8108738 100644
--- a/libweston/renderer-gl/gl-shaders.c
+++ b/libweston/renderer-gl/gl-shaders.c
@@ -268,6 +268,15 @@ gl_shader_destroy(struct gl_renderer *gr, struct gl_shader *shader)
free(shader);
}
+void
+gl_renderer_shader_list_destroy(struct gl_renderer *gr)
+{
+ struct gl_shader *shader, *next_shader;
+
+ wl_list_for_each_safe(shader, next_shader, &gr->shader_list, link)
+ gl_shader_destroy(gr, shader);
+}
+
static int
gl_shader_requirements_cmp(const struct gl_shader_requirements *a,
const struct gl_shader_requirements *b)