Mesa (master): util: function to check for rgbX format

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Dec 9 12:45:16 UTC 2020


Module: Mesa
Branch: master
Commit: b243ccb060dfdad849b9abc4749556e6fb3a83b1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b243ccb060dfdad849b9abc4749556e6fb3a83b1

Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Fri Nov 27 13:03:16 2020 +0100

util: function to check for rgbX format

Function that checks if the format has its alpha component forced to 1.

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

---

 src/util/format/u_format.c | 12 ++++++++++++
 src/util/format/u_format.h |  2 ++
 2 files changed, 14 insertions(+)

diff --git a/src/util/format/u_format.c b/src/util/format/u_format.c
index c9db9a2061c..b5cb27de3d9 100644
--- a/src/util/format/u_format.c
+++ b/src/util/format/u_format.c
@@ -125,6 +125,18 @@ util_format_has_alpha(enum pipe_format format)
           desc->swizzle[3] != PIPE_SWIZZLE_1;
 }
 
+/** Test if format has alpha as 1 (like RGBX) */
+boolean
+util_format_has_alpha1(enum pipe_format format)
+{
+   const struct util_format_description *desc =
+      util_format_description(format);
+
+   return (desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB ||
+           desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) &&
+           desc->nr_channels == 4 &&
+           desc->swizzle[3] == PIPE_SWIZZLE_1;
+}
 
 boolean
 util_format_is_luminance(enum pipe_format format)
diff --git a/src/util/format/u_format.h b/src/util/format/u_format.h
index 10dc8beb6dd..d0fa84194eb 100644
--- a/src/util/format/u_format.h
+++ b/src/util/format/u_format.h
@@ -692,6 +692,8 @@ util_format_is_float(enum pipe_format format) ATTRIBUTE_CONST;
 boolean
 util_format_has_alpha(enum pipe_format format) ATTRIBUTE_CONST;
 
+boolean
+util_format_has_alpha1(enum pipe_format format) ATTRIBUTE_CONST;
 
 boolean
 util_format_is_luminance(enum pipe_format format) ATTRIBUTE_CONST;



More information about the mesa-commit mailing list