summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/state_tracker/st_cb_readpixels.c13
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;