gl renderer: Clear resources after render_texture
authorTimm Bäder <mail@baedert.org>
Sat, 3 Feb 2018 12:24:55 +0000 (13:24 +0100)
committerTimm Bäder <mail@baedert.org>
Sat, 3 Feb 2018 12:24:55 +0000 (13:24 +0100)
This makes multiple consecutive render_texture calls on the same
renderer work.

gsk/gl/gskglrenderer.c

index c78f238c8f51e40c028755344130a882ad75c3ee..1bd311b1fffd10c6186cc106c7060af8fdfe9729 100644 (file)
@@ -1939,8 +1939,6 @@ gsk_gl_renderer_unrealize (GskRenderer *renderer)
   for (i = 0; i < GL_N_PROGRAMS; i ++)
     glDeleteProgram (self->programs[i].id);
 
-  gsk_gl_renderer_destroy_buffers (self);
-
   gsk_gl_glyph_cache_free (&self->glyph_cache);
 
   g_clear_object (&self->gl_profiler);
@@ -2594,6 +2592,8 @@ gsk_gl_renderer_render_texture (GskRenderer           *renderer,
   /* Create texture from the downloaded data */
   texture = gdk_texture_new_for_data (g_steal_pointer (&data2), width, height, stride);
 
+  gsk_gl_renderer_destroy_buffers (self);
+  gsk_gl_renderer_clear_tree (self);
   return texture;
 }