From: Brian Paul Date: Thu, 29 Oct 2009 01:38:12 +0000 (-0600) Subject: swrast: fix texel decoding in opt_sample_rgba_2d() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1e7517f059b1f3601502a199b05453eabfe56cdb;p=mesa.git swrast: fix texel decoding in opt_sample_rgba_2d() --- diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index db03c6aa398..0bb988e3ef9 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -1391,11 +1391,11 @@ opt_sample_rgba_2d(GLcontext *ctx, const GLint col = IFLOOR(texcoords[i][0] * width) & colMask; const GLint row = IFLOOR(texcoords[i][1] * height) & rowMask; const GLint pos = (row << shift) | col; - const GLubyte *texel = ((GLubyte *) img->Data) + (pos << 2); /* pos*4 */ - rgba[i][RCOMP] = UBYTE_TO_FLOAT(texel[3]); - rgba[i][GCOMP] = UBYTE_TO_FLOAT(texel[2]); - rgba[i][BCOMP] = UBYTE_TO_FLOAT(texel[1]); - rgba[i][ACOMP] = UBYTE_TO_FLOAT(texel[0]); + const GLuint texel = *((GLuint *) img->Data + pos); + rgba[i][RCOMP] = UBYTE_TO_FLOAT( (texel >> 24) ); + rgba[i][GCOMP] = UBYTE_TO_FLOAT( (texel >> 16) & 0xff ); + rgba[i][BCOMP] = UBYTE_TO_FLOAT( (texel >> 8) & 0xff ); + rgba[i][ACOMP] = UBYTE_TO_FLOAT( (texel ) & 0xff ); } }