isl/format: Add more isl_format_has_type_channel functions
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 16 Apr 2016 04:31:47 +0000 (21:31 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 22 Apr 2016 03:44:27 +0000 (20:44 -0700)
Reviewed-by: Chad Versace <chad.versace@intel.com>
src/intel/isl/isl.h
src/intel/isl/isl_format.c

index 47d3a68ae4a9796862bb24ca636704d11dc4bbcb..bc242dbd4a31ed75efb32fc8fc82dc963115e5f3 100644 (file)
@@ -826,11 +826,26 @@ isl_format_get_layout(enum isl_format fmt)
    return &isl_format_layouts[fmt];
 }
 
-bool
-isl_format_has_uint_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_unorm_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_snorm_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_ufloat_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_sfloat_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_uint_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_sint_channel(enum isl_format fmt) ATTRIBUTE_CONST;
 
-bool
-isl_format_has_sint_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+static inline bool
+isl_format_has_normalized_channel(enum isl_format fmt)
+{
+   return isl_format_has_unorm_channel(fmt) ||
+          isl_format_has_snorm_channel(fmt);
+}
+
+static inline bool
+isl_format_has_float_channel(enum isl_format fmt)
+{
+   return isl_format_has_ufloat_channel(fmt) ||
+          isl_format_has_sfloat_channel(fmt);
+}
 
 static inline bool
 isl_format_has_int_channel(enum isl_format fmt)
index 353aea4bdf9bfd442efaa54deabd447fc9720043..fd16ea19658fea87aaac3aba96ccfbef186ea6b1 100644 (file)
@@ -39,6 +39,30 @@ isl_format_has_channel_type(enum isl_format fmt, enum isl_base_type type)
           fmtl->channels.p.type == type;
 }
 
+bool
+isl_format_has_unorm_channel(enum isl_format fmt)
+{
+   return isl_format_has_channel_type(fmt, ISL_UNORM);
+}
+
+bool
+isl_format_has_snorm_channel(enum isl_format fmt)
+{
+   return isl_format_has_channel_type(fmt, ISL_SNORM);
+}
+
+bool
+isl_format_has_ufloat_channel(enum isl_format fmt)
+{
+   return isl_format_has_channel_type(fmt, ISL_UFLOAT);
+}
+
+bool
+isl_format_has_sfloat_channel(enum isl_format fmt)
+{
+   return isl_format_has_channel_type(fmt, ISL_SFLOAT);
+}
+
 bool
 isl_format_has_uint_channel(enum isl_format fmt)
 {