From 2427575c21c7c04b52f4a3605ad87c142c01f840 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 23 Sep 2001 21:17:03 +0000 Subject: [rgba]shift values weren't always correct, only effected blended lines --- src/mesa/drivers/osmesa/osmesa.c | 59 ++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 12 deletions(-) (limited to 'src/mesa/drivers/osmesa/osmesa.c') diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c index d60cd19d9f..cbe51287f2 100644 --- a/src/mesa/drivers/osmesa/osmesa.c +++ b/src/mesa/drivers/osmesa/osmesa.c @@ -1,4 +1,4 @@ -/* $Id: osmesa.c,v 1.69 2001/09/21 21:32:14 kschultz Exp $ */ +/* $Id: osmesa.c,v 1.70 2001/09/23 21:17:03 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -175,15 +175,15 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits, greenBits = CHAN_BITS; blueBits = CHAN_BITS; alphaBits = CHAN_BITS; - rind = 2; - gind = 1; bind = 0; + gind = 1; + rind = 2; aind = 3; if (little_endian) { - ashift = 0; - rshift = 8; - gshift = 16; - bshift = 24; + bshift = 0; + gshift = 8; + rshift = 16; + ashift = 24; } else { bshift = 24; @@ -199,15 +199,15 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits, greenBits = CHAN_BITS; blueBits = CHAN_BITS; alphaBits = CHAN_BITS; + aind = 0; rind = 1; gind = 2; bind = 3; - aind = 0; if (little_endian) { - bshift = 0; - gshift = 8; - rshift = 16; - ashift = 24; + ashift = 0; + rshift = 8; + gshift = 16; + bshift = 24; } else { ashift = 24; @@ -1627,6 +1627,17 @@ flat_blend_rgba_line( GLcontext *ctx, *ptr4 = pixel; \ } +#if 0 /* XXX use this in the future */ +#define PLOT(X,Y) \ + { \ + GLchan *pixel = (GLchan *) PIXELADDR4(X, Y); \ + pixel[rInd] = (pixel[rInd] * msavalue + rvalue) >> CHAN_BITS; \ + pixel[gInd] = (pixel[gInd] * msavalue + gvalue) >> CHAN_BITS; \ + pixel[bInd] = (pixel[bInd] * msavalue + bvalue) >> CHAN_BITS; \ + pixel[aInd] = (pixel[aInd] * msavalue + avalue) >> CHAN_BITS; \ + } +#endif + #ifdef WIN32 #include "..\swrast\s_linetemp.h" #else @@ -1637,6 +1648,7 @@ flat_blend_rgba_line( GLcontext *ctx, /* * Draw a flat-shaded, Z-less, alpha-blended, RGB line into an osmesa buffer. + * But don't write to Z buffer. * XXX update for GLchan */ static void @@ -1667,6 +1679,17 @@ flat_blend_rgba_z_line( GLcontext *ctx, *ptr4 = pixel; \ } +#if 0 /* XXX use this in the future */ +#define PLOT(X,Y) \ + if (Z < *zPtr) { \ + GLchan *pixel = (GLchan *) PIXELADDR4(X, Y); \ + pixel[rInd] = (pixel[rInd] * msavalue + rvalue) >> CHAN_BITS; \ + pixel[gInd] = (pixel[gInd] * msavalue + gvalue) >> CHAN_BITS; \ + pixel[bInd] = (pixel[bInd] * msavalue + bvalue) >> CHAN_BITS; \ + pixel[aInd] = (pixel[aInd] * msavalue + avalue) >> CHAN_BITS; \ + } +#endif + #ifdef WIN32 #include "..\swrast\s_linetemp.h" #else @@ -1708,6 +1731,18 @@ flat_blend_rgba_z_line_write( GLcontext *ctx, *zPtr = Z; \ } +#if 0 /* XXX use this in the future */ +#define PLOT(X,Y) \ + if (Z < *zPtr) { \ + GLchan *pixel = (GLchan *) PIXELADDR4(X, Y); \ + pixel[rInd] = (pixel[rInd] * msavalue + rvalue) >> CHAN_BITS; \ + pixel[gInd] = (pixel[gInd] * msavalue + gvalue) >> CHAN_BITS; \ + pixel[bInd] = (pixel[bInd] * msavalue + bvalue) >> CHAN_BITS; \ + pixel[aInd] = (pixel[aInd] * msavalue + avalue) >> CHAN_BITS; \ + *zPtr = Z; \ + } +#endif + #ifdef WIN32 #include "..\swrast\s_linetemp.h" #else -- cgit v1.2.3