summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_texcombine.c
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2006-04-27 02:50:31 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2006-04-27 02:50:31 +0000
commitc4fe46f0b8b45407ea40500b869ae1beca71063c (patch)
tree49278ff60f8e6af5f127cff10c266565245f2f4c /src/mesa/swrast/s_texcombine.c
parent444cd293fd69d1848b2c55f75674d563e0582fba (diff)
fixes for CHAN_BITS!=8
Diffstat (limited to 'src/mesa/swrast/s_texcombine.c')
-rw-r--r--src/mesa/swrast/s_texcombine.c41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/mesa/swrast/s_texcombine.c b/src/mesa/swrast/s_texcombine.c
index 3c9fdc4d75..db77ad8bc3 100644
--- a/src/mesa/swrast/s_texcombine.c
+++ b/src/mesa/swrast/s_texcombine.c
@@ -36,6 +36,11 @@
#define PROD(A,B) ( (GLuint)(A) * ((GLuint)(B)+1) )
#define S_PROD(A,B) ( (GLint)(A) * ((GLint)(B)+1) )
+#if CHAN_BITS == 32
+typedef GLfloat ChanTemp;
+#else
+typedef GLuint ChanTemp;
+#endif
/**
@@ -996,10 +1001,10 @@ texture_apply( const GLcontext *ctx,
break;
case GL_LUMINANCE:
for (i=0;i<n;i++) {
- GLuint Lt = texel[i][RCOMP];
- GLuint r = rgba[i][RCOMP] + Lt;
- GLuint g = rgba[i][GCOMP] + Lt;
- GLuint b = rgba[i][BCOMP] + Lt;
+ ChanTemp Lt = texel[i][RCOMP];
+ ChanTemp r = rgba[i][RCOMP] + Lt;
+ ChanTemp g = rgba[i][GCOMP] + Lt;
+ ChanTemp b = rgba[i][BCOMP] + Lt;
rgba[i][RCOMP] = MIN2(r, CHAN_MAX);
rgba[i][GCOMP] = MIN2(g, CHAN_MAX);
rgba[i][BCOMP] = MIN2(b, CHAN_MAX);
@@ -1008,10 +1013,10 @@ texture_apply( const GLcontext *ctx,
break;
case GL_LUMINANCE_ALPHA:
for (i=0;i<n;i++) {
- GLuint Lt = texel[i][RCOMP];
- GLuint r = rgba[i][RCOMP] + Lt;
- GLuint g = rgba[i][GCOMP] + Lt;
- GLuint b = rgba[i][BCOMP] + Lt;
+ ChanTemp Lt = texel[i][RCOMP];
+ ChanTemp r = rgba[i][RCOMP] + Lt;
+ ChanTemp g = rgba[i][GCOMP] + Lt;
+ ChanTemp b = rgba[i][BCOMP] + Lt;
rgba[i][RCOMP] = MIN2(r, CHAN_MAX);
rgba[i][GCOMP] = MIN2(g, CHAN_MAX);
rgba[i][BCOMP] = MIN2(b, CHAN_MAX);
@@ -1021,10 +1026,10 @@ texture_apply( const GLcontext *ctx,
case GL_INTENSITY:
for (i=0;i<n;i++) {
GLchan It = texel[i][RCOMP];
- GLuint r = rgba[i][RCOMP] + It;
- GLuint g = rgba[i][GCOMP] + It;
- GLuint b = rgba[i][BCOMP] + It;
- GLuint a = rgba[i][ACOMP] + It;
+ ChanTemp r = rgba[i][RCOMP] + It;
+ ChanTemp g = rgba[i][GCOMP] + It;
+ ChanTemp b = rgba[i][BCOMP] + It;
+ ChanTemp a = rgba[i][ACOMP] + It;
rgba[i][RCOMP] = MIN2(r, CHAN_MAX);
rgba[i][GCOMP] = MIN2(g, CHAN_MAX);
rgba[i][BCOMP] = MIN2(b, CHAN_MAX);
@@ -1033,9 +1038,9 @@ texture_apply( const GLcontext *ctx,
break;
case GL_RGB:
for (i=0;i<n;i++) {
- GLuint r = rgba[i][RCOMP] + texel[i][RCOMP];
- GLuint g = rgba[i][GCOMP] + texel[i][GCOMP];
- GLuint b = rgba[i][BCOMP] + texel[i][BCOMP];
+ ChanTemp r = rgba[i][RCOMP] + texel[i][RCOMP];
+ ChanTemp g = rgba[i][GCOMP] + texel[i][GCOMP];
+ ChanTemp b = rgba[i][BCOMP] + texel[i][BCOMP];
rgba[i][RCOMP] = MIN2(r, CHAN_MAX);
rgba[i][GCOMP] = MIN2(g, CHAN_MAX);
rgba[i][BCOMP] = MIN2(b, CHAN_MAX);
@@ -1044,9 +1049,9 @@ texture_apply( const GLcontext *ctx,
break;
case GL_RGBA:
for (i=0;i<n;i++) {
- GLuint r = rgba[i][RCOMP] + texel[i][RCOMP];
- GLuint g = rgba[i][GCOMP] + texel[i][GCOMP];
- GLuint b = rgba[i][BCOMP] + texel[i][BCOMP];
+ ChanTemp r = rgba[i][RCOMP] + texel[i][RCOMP];
+ ChanTemp g = rgba[i][GCOMP] + texel[i][GCOMP];
+ ChanTemp b = rgba[i][BCOMP] + texel[i][BCOMP];
rgba[i][RCOMP] = MIN2(r, CHAN_MAX);
rgba[i][GCOMP] = MIN2(g, CHAN_MAX);
rgba[i][BCOMP] = MIN2(b, CHAN_MAX);