diff options
author | Dave Airlie <[email protected]> | 2011-09-14 11:08:57 +0100 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2011-09-14 11:18:08 +0100 |
commit | 81a86aea4f0990a1b8795f9e00e7a6c4ba368281 (patch) | |
tree | 9798a61c65a74aba6790849544afcd6b32e15f51 /src/mesa/main | |
parent | 093dc9e548537e6c77e33064a584f849ad90dfa5 (diff) |
mesa/colormac: introduce inline helper for 4 unclamped float to ubyte.
This introduces an UNCLAMPED_FLOAT_TO_UBYTE x 4 inline function, as
suggested by Brian. It uses it in a few places I noticed from previous
color changes, and also some core mesa places. I haven't updated other places
yet.
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/colormac.h | 7 | ||||
-rw-r--r-- | src/mesa/main/image.c | 8 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/mesa/main/colormac.h b/src/mesa/main/colormac.h index d308c48b6c5..923c5a37c33 100644 --- a/src/mesa/main/colormac.h +++ b/src/mesa/main/colormac.h @@ -168,7 +168,12 @@ do { \ UNCLAMPED_FLOAT_TO_CHAN((dst)[3], (f)[3]); \ } while (0) - +static inline void _mesa_unclamped_float_rgba_to_ubyte(GLubyte dst[4], const GLfloat src[4]) +{ + int i; + for (i = 0; i < 4; i++) + UNCLAMPED_FLOAT_TO_UBYTE(dst[i], src[i]); +} /** * \name Generic color packing macros. All inputs should be GLubytes. diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index 3e75e7c6bd9..66d7eec6588 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -1513,12 +1513,8 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, GLubyte (*dst1)[4] = (GLubyte (*)[4]) (useTemp ? tempBuffer : dst); GLuint i; for (i = 0; i < count; i++) { - if (!mask || mask[i]) { - UNCLAMPED_FLOAT_TO_UBYTE(dst1[i][RCOMP], src4[i][RCOMP]); - UNCLAMPED_FLOAT_TO_UBYTE(dst1[i][GCOMP], src4[i][GCOMP]); - UNCLAMPED_FLOAT_TO_UBYTE(dst1[i][BCOMP], src4[i][BCOMP]); - UNCLAMPED_FLOAT_TO_UBYTE(dst1[i][ACOMP], src4[i][ACOMP]); - } + if (!mask || mask[i]) + _mesa_unclamped_float_rgba_to_ubyte(dst1[i], src4[i]); } if (useTemp) memcpy(dst, tempBuffer, count * 4 * sizeof(GLubyte)); |