From: Benjamin Otte Date: Fri, 21 Jul 2023 23:11:19 +0000 (+0200) Subject: gdk: Add function to query alpha format for depth X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~52^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b1b8a9856895ea5b06c9ac3019d7c6cebfe5470f;p=gtk4.git gdk: Add function to query alpha format for depth It's meant to be used in renderers. --- diff --git a/gdk/gdkmemoryformat.c b/gdk/gdkmemoryformat.c index 95663e9ba7..ec5583a2ad 100644 --- a/gdk/gdkmemoryformat.c +++ b/gdk/gdkmemoryformat.c @@ -704,6 +704,33 @@ gdk_memory_depth_merge (GdkMemoryDepth depth1, } } +/* + * gdk_memory_depth_get_alpha_format: + * @depth: the depth + * + * Gets the preferred format to use for rendering masks and other + * alpha-only content. + * + * Returns: the format + **/ +GdkMemoryFormat +gdk_memory_depth_get_alpha_format (GdkMemoryDepth depth) +{ + switch (depth) + { + case GDK_MEMORY_U8: + return GDK_MEMORY_A8; + case GDK_MEMORY_U16: + return GDK_MEMORY_A16; + case GDK_MEMORY_FLOAT16: + return GDK_MEMORY_A16_FLOAT; + case GDK_MEMORY_FLOAT32: + return GDK_MEMORY_A32_FLOAT; + default: + g_return_val_if_reached (GDK_MEMORY_A8); + } +} + gboolean gdk_memory_format_gl_format (GdkMemoryFormat format, gboolean gles, diff --git a/gdk/gdkmemoryformatprivate.h b/gdk/gdkmemoryformatprivate.h index 07286d9a6c..9f56442de5 100644 --- a/gdk/gdkmemoryformatprivate.h +++ b/gdk/gdkmemoryformatprivate.h @@ -44,6 +44,7 @@ gsize gdk_memory_format_bytes_per_pixel (GdkMemoryFormat GdkMemoryDepth gdk_memory_format_get_depth (GdkMemoryFormat format) G_GNUC_CONST; GdkMemoryDepth gdk_memory_depth_merge (GdkMemoryDepth depth1, GdkMemoryDepth depth2) G_GNUC_CONST; +GdkMemoryFormat gdk_memory_depth_get_alpha_format (GdkMemoryDepth depth) G_GNUC_CONST; gboolean gdk_memory_format_gl_format (GdkMemoryFormat format, gboolean gles, guint gl_major,