diff options
author | Kendall Bennett <[email protected]> | 2003-10-02 23:50:44 +0000 |
---|---|---|
committer | Kendall Bennett <[email protected]> | 2003-10-02 23:50:44 +0000 |
commit | adbbea9b5123b7866cf5b31a6011b428b5ccc079 (patch) | |
tree | 00ad15d38aaac9c2d0b8fc5ccecf23b7308ea4cc /src/mesa/swrast | |
parent | a75246f8f5fa951d62b6b40db5bf47517b50d459 (diff) |
Fixed bugs in Mesa software span rendering for color index modes
Diffstat (limited to 'src/mesa/swrast')
-rw-r--r-- | src/mesa/swrast/s_spantemp.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/mesa/swrast/s_spantemp.h b/src/mesa/swrast/s_spantemp.h index 3452b0b2842..c48b35b90a8 100644 --- a/src/mesa/swrast/s_spantemp.h +++ b/src/mesa/swrast/s_spantemp.h @@ -188,6 +188,7 @@ NAME(read_rgba_pixels)( const GLcontext *ctx, SPAN_VARS #endif GLuint i; + ASSERT(mask); for (i = 0; i < n; i++) { if (mask[i]) { INIT_PIXEL_PTR(pixel, x[i], y[i]); @@ -221,9 +222,6 @@ NAME(write_index32_span)( const GLcontext *ctx, GLuint n, GLint x, GLint y, INC_PIXEL_PTR(pixel); } } - else if (sizeof(*pixel) == sizeof(GLuint)) { - _mesa_memcpy(pixel, index, n * sizeof(GLuint)); - } else { for (i = 0; i < n; i++) { STORE_CI_PIXEL(pixel, index[i]); @@ -250,9 +248,6 @@ NAME(write_index8_span)( const GLcontext *ctx, GLuint n, GLint x, GLint y, INC_PIXEL_PTR(pixel); } } - else if (sizeof(*pixel) == sizeof(GLubyte)) { - _mesa_memcpy(pixel, index, n * sizeof(GLubyte)); - } else { for (i = 0; i < n; i++) { STORE_CI_PIXEL(pixel, index[i]); @@ -271,12 +266,20 @@ NAME(write_monoindex_span)( const GLcontext *ctx, GLuint n, GLint x, GLint y, #endif GLuint i; INIT_PIXEL_PTR(pixel, x, y); - for (i = 0; i < n; i++) { - if (mask[i]) { + if (mask) { + for (i = 0; i < n; i++) { + if (mask[i]) { + STORE_CI_PIXEL(pixel, colorIndex); + } + INC_PIXEL_PTR(pixel); + } + } + else { + for (i = 0; i < n; i++) { STORE_CI_PIXEL(pixel, colorIndex); + INC_PIXEL_PTR(pixel); } - INC_PIXEL_PTR(pixel); - } + } } @@ -289,6 +292,7 @@ NAME(write_index_pixels)( const GLcontext *ctx, SPAN_VARS #endif GLuint i; + ASSERT(mask); for (i = 0; i < n; i++) { if (mask[i]) { INIT_PIXEL_PTR(pixel, x[i], y[i]); @@ -307,6 +311,7 @@ NAME(write_monoindex_pixels)( const GLcontext *ctx, SPAN_VARS #endif GLuint i; + ASSERT(mask); for (i = 0; i < n; i++) { if (mask[i]) { INIT_PIXEL_PTR(pixel, x[i], y[i]); @@ -341,6 +346,7 @@ NAME(read_index_pixels)( const GLcontext *ctx, SPAN_VARS #endif GLuint i; + ASSERT(mask); for (i = 0; i < n; i++) { if (mask[i] ) { INIT_PIXEL_PTR(pixel, x[i], y[i]); |