util: new util_format_get_nr_components helper
authorRoland Scheidegger <sroland@vmware.com>
Wed, 17 Feb 2010 15:41:30 +0000 (16:41 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 17 Feb 2010 15:41:30 +0000 (16:41 +0100)
src/gallium/auxiliary/util/u_format.h

index 2fbbb83..6345a11 100644 (file)
@@ -404,6 +404,23 @@ util_format_has_alpha(enum pipe_format format)
    }
 }
 
+/**
+ * Return the number of components stored.
+ * Formats with block size != 1x1 will always have 1 component (the block).
+ */
+static INLINE unsigned
+util_format_get_nr_components(enum pipe_format format)
+{
+   const struct util_format_description *desc = util_format_description(format);
+   unsigned chan;
+   unsigned nr_comp = 0;
+   for (chan = 0; chan < 4; chan++) {
+      if (desc->channel[chan].size != 0) {
+         nr_comp++;
+      }
+   }
+   return nr_comp;
+}
 
 /*
  * Format access functions.