diff options
author | Brian Paul <[email protected]> | 2006-10-17 17:03:00 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2006-10-17 17:03:00 +0000 |
commit | 1e3223c02a2f6155beb5784cadbea1f46703829a (patch) | |
tree | 5bf7caa415933a9f0cd239dd382a58f06ec8828c | |
parent | 8dff54e71d3ea22813e416910c3c99f7e3abbb2f (diff) |
Fix CHAN_BITS=32 issues.
Save/restore array->ChanType in case colors are converted.
-rw-r--r-- | src/mesa/swrast/s_span.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c index 59a5361632b..a8cc268a950 100644 --- a/src/mesa/swrast/s_span.c +++ b/src/mesa/swrast/s_span.c @@ -169,6 +169,7 @@ interpolate_colors(GLcontext *ctx, SWspan *span, GLboolean specular) if (span->interpMask & SPAN_FLAT) { /* constant color */ switch (span->array->ChanType) { +#if CHAN_BITS != 32 case GL_UNSIGNED_BYTE: { GLubyte (*rgba)[4] = specular @@ -213,6 +214,7 @@ interpolate_colors(GLcontext *ctx, SWspan *span, GLboolean specular) } } break; +#endif case GL_FLOAT: { GLfloat (*rgba)[4] = specular ? @@ -243,6 +245,7 @@ interpolate_colors(GLcontext *ctx, SWspan *span, GLboolean specular) else { /* interpolate */ switch (span->array->ChanType) { +#if CHAN_BITS != 32 case GL_UNSIGNED_BYTE: { GLubyte (*rgba)[4] = specular @@ -319,6 +322,7 @@ interpolate_colors(GLcontext *ctx, SWspan *span, GLboolean specular) } } break; +#endif case GL_FLOAT: { GLfloat (*rgba)[4] = specular ? @@ -1503,6 +1507,7 @@ _swrast_write_rgba_span( GLcontext *ctx, SWspan *span) const GLuint numDrawBuffers = fb->_NumColorDrawBuffers[output]; GLchan rgbaSave[MAX_WIDTH][4]; GLuint buf; + const GLenum chanType = span->array->ChanType; /* save */ if (numDrawBuffers > 0) { if (fb->_ColorDrawBuffers[output][0]->DataType @@ -1553,6 +1558,8 @@ _swrast_write_rgba_span( GLcontext *ctx, SWspan *span) 4 * span->end * sizeof(GLchan)); } } /* for buf */ + + span->array->ChanType = chanType; /* restore */ } span->interpMask = origInterpMask; |