diff options
author | José Fonseca <[email protected]> | 2012-11-06 17:20:09 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2012-11-09 13:43:19 +0000 |
commit | 658b73a246b4e9ad35102954f917f6d8b1418b2f (patch) | |
tree | 90c060b8e3efc41198bbf476ccdeea84149e65d8 | |
parent | 48ce9289001c4c04503bd5061135b120cfe51cee (diff) |
softpipe,util: Fix blending of R and RG formats.
Alpha is also 1 for formats like R32G32_FLOAT.
NOTE: Candidate for the stable branches.
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
-rw-r--r-- | src/gallium/auxiliary/util/u_format.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index a41c468a95d..f572a612e24 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -61,30 +61,6 @@ util_format_is_float(enum pipe_format format) } -/** - * Return the number of logical channels in the given format by - * examining swizzles. - * XXX this could be made into a public function if useful elsewhere. - */ -static unsigned -nr_logical_channels(const struct util_format_description *desc) -{ - boolean swizzle_used[UTIL_FORMAT_SWIZZLE_MAX]; - - memset(swizzle_used, 0, sizeof(swizzle_used)); - - swizzle_used[desc->swizzle[0]] = TRUE; - swizzle_used[desc->swizzle[1]] = TRUE; - swizzle_used[desc->swizzle[2]] = TRUE; - swizzle_used[desc->swizzle[3]] = TRUE; - - return (swizzle_used[UTIL_FORMAT_SWIZZLE_X] + - swizzle_used[UTIL_FORMAT_SWIZZLE_Y] + - swizzle_used[UTIL_FORMAT_SWIZZLE_Z] + - swizzle_used[UTIL_FORMAT_SWIZZLE_W]); -} - - /** Test if the format contains RGB, but not alpha */ boolean util_format_is_rgb_no_alpha(enum pipe_format format) @@ -94,7 +70,7 @@ util_format_is_rgb_no_alpha(enum pipe_format format) if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && - nr_logical_channels(desc) == 3) { + desc->swizzle[3] == UTIL_FORMAT_SWIZZLE_1) { return TRUE; } return FALSE; |