diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/state_tracker/st_cb_readpixels.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index 1b57e9b6f7e..2a63799bdbc 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -211,9 +211,11 @@ st_fast_readpixels(struct gl_context *ctx, struct st_renderbuffer *strb, if (strb->format == PIPE_FORMAT_B8G8R8A8_UNORM) { alphaORoperand = 0; - } else if (strb->format == PIPE_FORMAT_B8G8R8X8_UNORM ) { + } + else if (strb->format == PIPE_FORMAT_B8G8R8X8_UNORM ) { alphaORoperand = 0xff; - } else { + } + else { return GL_FALSE; } @@ -312,9 +314,10 @@ st_fast_readpixels(struct gl_context *ctx, struct st_renderbuffer *strb, const GLubyte *src = map + y * trans->stride; memcpy(dst, src, 4 * width); if (alphaORoperand) { - for (col = 0; col < width; col++) { - dst[col*4+3] |= alphaORoperand; - } + assert(alphaORoperand == 0xff); + for (col = 0; col < width; col++) { + dst[col*4+3] = 0xff; + } } dst += dstStride; y += dy; |