From: Benjamin Otte Date: Tue, 14 Feb 2023 06:18:59 +0000 (+0100) Subject: jpeg: Use GdkTexureDownloader when saving X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~6^2~77^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f05d801e28c13f8741e673d974df106a8d6b8f3d;p=gtk4.git jpeg: Use GdkTexureDownloader when saving --- diff --git a/gdk/loaders/gdkjpeg.c b/gdk/loaders/gdkjpeg.c index 6eada9d515..29f9756bb3 100644 --- a/gdk/loaders/gdkjpeg.c +++ b/gdk/loaders/gdkjpeg.c @@ -23,7 +23,7 @@ #include #include "gdktexture.h" -#include "gdkmemorytextureprivate.h" +#include "gdktexturedownloaderprivate.h" #include "gdkprofilerprivate.h" @@ -251,7 +251,8 @@ gdk_save_jpeg (GdkTexture *texture) guchar *data = NULL; gulong size = 0; guchar *input = NULL; - GdkMemoryTexture *memtex = NULL; + GdkTextureDownloader downloader; + GBytes *texbytes; const guchar *texdata; gsize texstride; guchar *row; @@ -270,7 +271,7 @@ gdk_save_jpeg (GdkTexture *texture) free (data); g_free (input); jpeg_destroy_compress (&info); - g_clear_object (&memtex); + g_clear_pointer (&texbytes, g_bytes_unref); return NULL; } @@ -289,10 +290,11 @@ gdk_save_jpeg (GdkTexture *texture) jpeg_mem_dest (&info, &data, &size); - memtex = gdk_memory_texture_from_texture (texture, - GDK_MEMORY_R8G8B8); - texdata = gdk_memory_texture_get_data (memtex); - texstride = gdk_memory_texture_get_stride (memtex); + gdk_texture_downloader_init (&downloader, texture); + gdk_texture_downloader_set_format (&downloader, GDK_MEMORY_R8G8B8); + texbytes = gdk_texture_downloader_download_bytes (&downloader, &texstride); + gdk_texture_downloader_finish (&downloader); + texdata = g_bytes_get_data (texbytes, NULL); jpeg_start_compress (&info, TRUE); @@ -304,7 +306,7 @@ gdk_save_jpeg (GdkTexture *texture) jpeg_finish_compress (&info); - g_object_unref (memtex); + g_bytes_unref (texbytes); g_free (input); jpeg_destroy_compress (&info);