summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/gdk/gdk4-sections.txt2
-rw-r--r--gdk/gdkmemorytexture.h18
-rw-r--r--gdk/gdkmemorytextureprivate.h8
-rw-r--r--gsk/gskrendernodeimpl.c3
-rw-r--r--gsk/vulkan/gskvulkanimage.c4
-rw-r--r--testsuite/gdk/memorytexture.c14
6 files changed, 27 insertions, 22 deletions
diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt
index 6d16ed606d..989c0feae1 100644
--- a/docs/reference/gdk/gdk4-sections.txt
+++ b/docs/reference/gdk/gdk4-sections.txt
@@ -739,6 +739,8 @@ gdk_texture_new_from_file
gdk_texture_get_width
gdk_texture_get_height
gdk_texture_download
+GdkMemoryFormat
+GDK_MEMORY_FORMAT_DEFAULT
gdk_memory_texture_new
gdk_gl_texture_new
gdk_gl_texture_release
diff --git a/gdk/gdkmemorytexture.h b/gdk/gdkmemorytexture.h
index d442c1fbea..31d30fbd7f 100644
--- a/gdk/gdkmemorytexture.h
+++ b/gdk/gdkmemorytexture.h
@@ -68,6 +68,24 @@ typedef enum {
GDK_MEMORY_N_FORMATS
} GdkMemoryFormat;
+/**
+ * GDK_MEMORY_DEFAULT:
+ *
+ * This is the default memory format used by GTK and is the format
+ * provided by gdk_texture_download(). It is equal to
+ * %CAIRO_FORMAT_ARGB32.
+ *
+ * Be aware that unlike the #GdkMemoryFormat values, this format is
+ * different for different endianness.
+ */
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define GDK_MEMORY_DEFAULT GDK_MEMORY_B8G8R8A8_PREMULTIPLIED
+#elif G_BYTE_ORDER == G_BIG_ENDIAN
+#define GDK_MEMORY_DEFAULT GDK_MEMORY_A8R8G8B8_PREMULTIPLIED
+#else
+#error "Unknown byte order for GDK_MEMORY_DEFAULT"
+#endif
+
GDK_AVAILABLE_IN_ALL
GdkTexture * gdk_memory_texture_new (int width,
int height,
diff --git a/gdk/gdkmemorytextureprivate.h b/gdk/gdkmemorytextureprivate.h
index bb39690790..9634b1ccf3 100644
--- a/gdk/gdkmemorytextureprivate.h
+++ b/gdk/gdkmemorytextureprivate.h
@@ -29,13 +29,7 @@ G_BEGIN_DECLS
#define GDK_MEMORY_GDK_PIXBUF_OPAQUE GDK_MEMORY_R8G8B8
#define GDK_MEMORY_GDK_PIXBUF_ALPHA GDK_MEMORY_R8G8B8A8
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_B8G8R8A8_PREMULTIPLIED
-#elif G_BYTE_ORDER == G_BIG_ENDIAN
-#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_A8R8G8B8_PREMULTIPLIED
-#else
-#error "Unknown byte order."
-#endif
+#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_DEFAULT
#define GDK_TYPE_MEMORY_TEXTURE (gdk_memory_texture_get_type ())
diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c
index 6df5cc0d97..f7e552ac09 100644
--- a/gsk/gskrendernodeimpl.c
+++ b/gsk/gskrendernodeimpl.c
@@ -25,7 +25,6 @@
#include "gskrendererprivate.h"
#include "gskroundedrectprivate.h"
-#include "gdk/gdkmemorytextureprivate.h"
#include "gdk/gdktextureprivate.h"
static gboolean
@@ -755,7 +754,7 @@ gsk_texture_node_deserialize (GVariant *variant,
}
texture = gdk_memory_texture_new (width, height,
- GDK_MEMORY_CAIRO_FORMAT_ARGB32,
+ GDK_MEMORY_DEFAULT,
bytes,
width * 4);
diff --git a/gsk/vulkan/gskvulkanimage.c b/gsk/vulkan/gskvulkanimage.c
index 729d993262..03d76c2d05 100644
--- a/gsk/vulkan/gskvulkanimage.c
+++ b/gsk/vulkan/gskvulkanimage.c
@@ -6,8 +6,6 @@
#include "gskvulkanmemoryprivate.h"
#include "gskvulkanpipelineprivate.h"
-#include "gdk/gdkmemorytextureprivate.h"
-
#include <string.h>
struct _GskVulkanUploader
@@ -676,7 +674,7 @@ gsk_vulkan_image_download (GskVulkanImage *self,
mem = gsk_vulkan_buffer_map (buffer);
bytes = g_bytes_new (mem, self->width * self->height * 4);
texture = gdk_memory_texture_new (self->width, self->height,
- GDK_MEMORY_CAIRO_FORMAT_ARGB32,
+ GDK_MEMORY_DEFAULT,
bytes,
self->width * 4);
gsk_vulkan_buffer_unmap (buffer);
diff --git a/testsuite/gdk/memorytexture.c b/testsuite/gdk/memorytexture.c
index e4cf451174..65d1590680 100644
--- a/testsuite/gdk/memorytexture.c
+++ b/testsuite/gdk/memorytexture.c
@@ -4,12 +4,6 @@
/* maximum bytes per pixel */
#define MAX_BPP 4
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_B8G8R8A8_PREMULTIPLIED
-#elif G_BYTE_ORDER == G_BIG_ENDIAN
-#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_A8R8G8B8_PREMULTIPLIED
-#endif
-
typedef enum {
BLUE,
GREEN,
@@ -124,7 +118,7 @@ test_download_1x1 (gconstpointer data)
const TestData *test_data = data;
GdkTexture *expected, *test;
- expected = create_texture (GDK_MEMORY_CAIRO_FORMAT_ARGB32, test_data->color, 1, 1, tests[test_data->format].bytes_per_pixel);
+ expected = create_texture (GDK_MEMORY_DEFAULT, test_data->color, 1, 1, tests[test_data->format].bytes_per_pixel);
test = create_texture (test_data->format, test_data->color, 1, 1, tests[test_data->format].bytes_per_pixel);
compare_textures (expected, test, tests[test_data->format].opaque);
@@ -139,7 +133,7 @@ test_download_1x1_with_stride (gconstpointer data)
const TestData *test_data = data;
GdkTexture *expected, *test;
- expected = create_texture (GDK_MEMORY_CAIRO_FORMAT_ARGB32, test_data->color, 1, 1, 4);
+ expected = create_texture (GDK_MEMORY_DEFAULT, test_data->color, 1, 1, 4);
test = create_texture (test_data->format, test_data->color, 1, 1, 2 * MAX_BPP);
compare_textures (expected, test, tests[test_data->format].opaque);
@@ -154,7 +148,7 @@ test_download_4x4 (gconstpointer data)
const TestData *test_data = data;
GdkTexture *expected, *test;
- expected = create_texture (GDK_MEMORY_CAIRO_FORMAT_ARGB32, test_data->color, 4, 4, 16);
+ expected = create_texture (GDK_MEMORY_DEFAULT, test_data->color, 4, 4, 16);
test = create_texture (test_data->format, test_data->color, 4, 4, 4 * tests[test_data->format].bytes_per_pixel);
compare_textures (expected, test, tests[test_data->format].opaque);
@@ -169,7 +163,7 @@ test_download_4x4_with_stride (gconstpointer data)
const TestData *test_data = data;
GdkTexture *expected, *test;
- expected = create_texture (GDK_MEMORY_CAIRO_FORMAT_ARGB32, test_data->color, 4, 4, 16);
+ expected = create_texture (GDK_MEMORY_DEFAULT, test_data->color, 4, 4, 16);
test = create_texture (test_data->format, test_data->color, 4, 4, 4 * MAX_BPP);
compare_textures (expected, test, tests[test_data->format].opaque);