From 0e3342ea29f980d3dd36783a35d1e413b282b2e4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 21 Feb 2000 14:50:31 +0000 Subject: [PATCH] fixed GL_SRC_ALPHA_SATURATE bug, lots clean-up --- src/mesa/main/blend.c | 53 ++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index 9600ce81329..0bcefd09748 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -1,4 +1,4 @@ -/* $Id: blend.c,v 1.11 2000/02/02 22:08:26 brianp Exp $ */ +/* $Id: blend.c,v 1.12 2000/02/21 14:50:31 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -286,26 +286,27 @@ blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[], for (i=0;i> 8; - GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8; - GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8; - GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8; - ASSERT(r <= 255); - ASSERT(g <= 255); - ASSERT(b <= 255); - ASSERT(a <= 255); + const GLint s = CHAN_MAX - t; + const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) >> 8; + const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8; + const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8; + const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8; + ASSERT(r <= CHAN_MAX); + ASSERT(g <= CHAN_MAX); + ASSERT(b <= CHAN_MAX); + ASSERT(a <= CHAN_MAX); rgba[i][RCOMP] = (GLubyte) r; rgba[i][GCOMP] = (GLubyte) g; rgba[i][BCOMP] = (GLubyte) b; @@ -336,10 +337,10 @@ blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[], GLint g = rgba[i][GCOMP] + dest[i][GCOMP]; GLint b = rgba[i][BCOMP] + dest[i][BCOMP]; GLint a = rgba[i][ACOMP] + dest[i][ACOMP]; - rgba[i][RCOMP] = (GLubyte) MIN2( r, 255 ); - rgba[i][GCOMP] = (GLubyte) MIN2( g, 255 ); - rgba[i][BCOMP] = (GLubyte) MIN2( b, 255 ); - rgba[i][ACOMP] = (GLubyte) MIN2( a, 255 ); + rgba[i][RCOMP] = (GLubyte) MIN2( r, CHAN_MAX ); + rgba[i][GCOMP] = (GLubyte) MIN2( g, CHAN_MAX ); + rgba[i][BCOMP] = (GLubyte) MIN2( b, CHAN_MAX ); + rgba[i][ACOMP] = (GLubyte) MIN2( a, CHAN_MAX ); } } } @@ -429,10 +430,10 @@ static void _BLENDAPI blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[], GLubyte rgba[][4], CONST GLubyte dest[][4] ) { - GLfloat rscale = 1.0F / 255.0F; - GLfloat gscale = 1.0F / 255.0F; - GLfloat bscale = 1.0F / 255.0F; - GLfloat ascale = 1.0F / 255.0F; + GLfloat rscale = 1.0F / CHAN_MAXF; + GLfloat gscale = 1.0F / CHAN_MAXF; + GLfloat bscale = 1.0F / CHAN_MAXF; + GLfloat ascale = 1.0F / CHAN_MAXF; GLuint i; for (i=0;i