From 74ce69a8a1187c9f4b65a0f8d38363f0d83b7574 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 12 Sep 2021 05:11:58 +0200 Subject: [PATCH] gltexture: Make release() use download_texture() 1. It avoids Cairo, and in particular conversion to Cairo. 2. Keeping a texture allows easy chaining in the vfuncs. 3. Using a texture means releasing will work for HDR formats too, once we add them. --- gdk/gdkgltexture.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/gdk/gdkgltexture.c b/gdk/gdkgltexture.c index 9b5aa86866..ef95c4604b 100644 --- a/gdk/gdkgltexture.c +++ b/gdk/gdkgltexture.c @@ -216,24 +216,10 @@ gdk_gl_texture_get_id (GdkGLTexture *self) void gdk_gl_texture_release (GdkGLTexture *self) { - GdkTexture *texture = GDK_TEXTURE (self); - GBytes *bytes; - guchar *data; - gsize stride; - g_return_if_fail (GDK_IS_GL_TEXTURE (self)); g_return_if_fail (self->saved == NULL); - stride = texture->width * 4; - data = malloc (stride * texture->height); - gdk_texture_download (texture, data, stride); - bytes = g_bytes_new_take (data, stride * texture->height); - self->saved = gdk_memory_texture_new (texture->width, - texture->height, - GDK_MEMORY_DEFAULT, - bytes, - stride); - g_bytes_unref (bytes); + self->saved = gdk_texture_download_texture (GDK_TEXTURE (self)); if (self->destroy) {