From: Brian Paul Date: Wed, 2 May 2001 23:08:35 +0000 (+0000) Subject: fixed vertex color problems X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=531ac77263084f4ebb6b39bc739fc1efe6f2319e;p=mesa.git fixed vertex color problems --- diff --git a/src/mesa/drivers/glide/fxtris.c b/src/mesa/drivers/glide/fxtris.c index 5adb11e1f3f..829aabe7492 100644 --- a/src/mesa/drivers/glide/fxtris.c +++ b/src/mesa/drivers/glide/fxtris.c @@ -115,11 +115,11 @@ fx_draw_tri(GLcontext * ctx, const fxVertex * v0, const fxVertex * v1, #define FX_COLOR(vert, c) { \ - GLubyte *col = c; \ - vert->v.r = col[0] * 255; \ - vert->v.g = col[1] * 255; \ - vert->v.b = col[2] * 255; \ - vert->v.a = col[3] * 255; \ + GLfloat *col = c; \ + UNCLAMPED_FLOAT_TO_UBYTE(vert->v.r, col[0]); \ + UNCLAMPED_FLOAT_TO_UBYTE(vert->v.g, col[1]); \ + UNCLAMPED_FLOAT_TO_UBYTE(vert->v.b, col[2]); \ + UNCLAMPED_FLOAT_TO_UBYTE(vert->v.a, col[3]); \ } #define FX_COPY_COLOR( dst, src ) { \ diff --git a/src/mesa/drivers/glide/fxvbtmp.h b/src/mesa/drivers/glide/fxvbtmp.h index 39c69adf2d9..24d5b521a00 100644 --- a/src/mesa/drivers/glide/fxvbtmp.h +++ b/src/mesa/drivers/glide/fxvbtmp.h @@ -80,10 +80,10 @@ NAME(GLcontext * ctx, GLuint start, GLuint end) } } if (IND & SETUP_RGBA) { - v->v.r = color[i][0] * 255.0; - v->v.g = color[i][1] * 255.0; - v->v.b = color[i][2] * 255.0; - v->v.a = color[i][3] * 255.0; + UNCLAMPED_FLOAT_TO_UBYTE(v->v.r, color[i][0]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.g, color[i][1]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.b, color[i][2]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.a, color[i][3]); } if (IND & SETUP_TMU0) { v->v.tmuvtx[0].sow = sscale0 * tmu0_data[i][0] * v->v.oow; @@ -118,10 +118,10 @@ NAME(GLcontext * ctx, GLuint start, GLuint end) } } if (IND & SETUP_RGBA) { - v->v.r = color[i][0] * 255.0; - v->v.g = color[i][1] * 255.0; - v->v.b = color[i][2] * 255.0; - v->v.a = color[i][3] * 255.0; + UNCLAMPED_FLOAT_TO_UBYTE(v->v.r, color[i][0]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.g, color[i][1]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.b, color[i][2]); + UNCLAMPED_FLOAT_TO_UBYTE(v->v.a, color[i][3]); } if (IND & SETUP_TMU0) { v->v.tmuvtx[0].sow = sscale0 * tmu0_data[i][0] * v->v.oow;