From: Roland Scheidegger Date: Wed, 17 Feb 2010 15:41:30 +0000 (+0100) Subject: util: new util_format_get_nr_components helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c2ad9e380121d43f8ac066b590f9929a56bd1b0f;p=mesa.git util: new util_format_get_nr_components helper --- diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 2fbbb83d4ba..6345a11a8cf 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -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.