From c068bd245226d52060ee2b0cd619eeefbe69e79f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 8 May 2022 14:11:48 -0400 Subject: [PATCH] gsk: Fix caching of textures --- gsk/gl/gskgldriver.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/gsk/gl/gskgldriver.c b/gsk/gl/gskgldriver.c index 0a19ef503d..b2b5b7de63 100644 --- a/gsk/gl/gskgldriver.c +++ b/gsk/gl/gskgldriver.c @@ -805,6 +805,12 @@ gsk_gl_driver_load_texture (GskGLDriver *self, format = gdk_memory_format_prefers_high_depth (gdk_texture_get_format (texture)) ? GL_RGBA16F : GL_RGBA8; + if ((t = gdk_texture_get_render_data (texture, self))) + { + if (t->min_filter == min_filter && t->mag_filter == mag_filter) + return t->texture_id; + } + if (GDK_IS_GL_TEXTURE (texture)) { GdkGLTexture *gl_texture = (GdkGLTexture *) texture; @@ -873,25 +879,11 @@ gsk_gl_driver_load_texture (GskGLDriver *self, return texture_id; } } - else - { - downloaded_texture = gdk_memory_texture_from_texture (texture, - gdk_texture_get_format (texture), - gdk_texture_get_color_profile (texture)); - } } - else - { - if ((t = gdk_texture_get_render_data (texture, self))) - { - if (t->min_filter == min_filter && t->mag_filter == mag_filter) - return t->texture_id; - } - downloaded_texture = gdk_memory_texture_from_texture (texture, - gdk_texture_get_format (texture), - gdk_texture_get_color_profile (texture)); - } + downloaded_texture = gdk_memory_texture_from_texture (texture, + gdk_texture_get_format (texture), + gdk_texture_get_color_profile (texture)); /* The download_texture() call may have switched the GL context. Make sure * the right context is at work again. */