[Mesa-dev] [PATCH 09/13] isl/format: Add a get_num_channels helper
Jason Ekstrand
jason at jlekstrand.net
Sat Apr 16 19:45:17 UTC 2016
---
src/intel/isl/isl.h | 2 ++
src/intel/isl/isl_format.c | 15 +++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index c84e685..bef2592 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -863,6 +863,8 @@ isl_format_has_int_channel(enum isl_format fmt)
isl_format_has_sint_channel(fmt);
}
+unsigned isl_format_get_num_channels(enum isl_format fmt);
+
static inline bool
isl_format_is_compressed(enum isl_format fmt)
{
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
index 6013562..611d747 100644
--- a/src/intel/isl/isl_format.c
+++ b/src/intel/isl/isl_format.c
@@ -75,6 +75,21 @@ isl_format_has_sint_channel(enum isl_format fmt)
return isl_format_has_channel_of_type(fmt, ISL_SINT);
}
+unsigned
+isl_format_get_num_channels(enum isl_format fmt)
+{
+ const struct isl_format_layout *fmtl = isl_format_get_layout(fmt);
+
+ assert(fmtl->channels.p.bits == 0);
+
+ return (fmtl->channels.r.bits > 0) +
+ (fmtl->channels.g.bits > 0) +
+ (fmtl->channels.b.bits > 0) +
+ (fmtl->channels.a.bits > 0) +
+ (fmtl->channels.l.bits > 0) +
+ (fmtl->channels.i.bits > 0);
+}
+
enum isl_format
isl_format_rgb_to_rgba(enum isl_format rgb)
{
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list