[gtk/image-loading: 48/59] texture: Avoid pixbufs when loading resources




commit f2ca9ebbd7d5ff0b92d47c1f56b2d4a25d52bb16
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Sep 14 08:52:35 2021 -0400

    texture: Avoid pixbufs when loading resources
    
    We can just use our own loaders here now.

 gdk/gdktexture.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
---
diff --git a/gdk/gdktexture.c b/gdk/gdktexture.c
index ea186a8bc0..261652ec41 100644
--- a/gdk/gdktexture.c
+++ b/gdk/gdktexture.c
@@ -354,18 +354,23 @@ gdk_texture_new_for_pixbuf (GdkPixbuf *pixbuf)
 GdkTexture *
 gdk_texture_new_from_resource (const char *resource_path)
 {
-  GError *error = NULL;
+  GBytes *bytes;
   GdkTexture *texture;
-  GdkPixbuf *pixbuf;
+  GError *error = NULL;
 
   g_return_val_if_fail (resource_path != NULL, NULL);
 
-  pixbuf = gdk_pixbuf_new_from_resource (resource_path, &error);
-  if (pixbuf == NULL)
-    g_error ("Resource path %s is not a valid image: %s", resource_path, error->message);
+  bytes = g_resources_lookup_data (resource_path, 0, &error);
+  if (bytes != NULL)
+    {
+      texture = gdk_texture_new_from_bytes (bytes, &error);
+      g_bytes_unref (bytes);
+    }
+  else
+    texture = NULL;
 
-  texture = gdk_texture_new_for_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
+  if (texture == NULL)
+    g_error ("Resource path %s s not a valid image: %s", resource_path, error->message);
 
   return texture;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]