Mesa (master): xlib: set alpha to 0xff when mapping RGB pixmaps

Brian Paul brianp at kemper.freedesktop.org
Fri Nov 11 14:13:15 UTC 2011


Module: Mesa
Branch: master
Commit: 6e9b1d5d0d53a409085511c4e71f6098a5b36ce1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6e9b1d5d0d53a409085511c4e71f6098a5b36ce1

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Nov 10 18:00:24 2011 -0700

xlib: set alpha to 0xff when mapping RGB pixmaps

Fixes a bunch of conform regressions.

---

 src/mesa/drivers/x11/xm_buffer.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/x11/xm_buffer.c b/src/mesa/drivers/x11/xm_buffer.c
index 6cf9f06..ea87b6d 100644
--- a/src/mesa/drivers/x11/xm_buffer.c
+++ b/src/mesa/drivers/x11/xm_buffer.c
@@ -477,6 +477,17 @@ xmesa_MapRenderbuffer(struct gl_context *ctx,
             return;
          }
 
+         if (xrb->Base.Format == MESA_FORMAT_ARGB8888 ||
+             xrb->Base.Format == MESA_FORMAT_RGBA8888_REV) {
+            /* The original pixmap is RGB but we're returning an RGBA
+             * image buffer.  Fill in the A values with 0xff.
+             */
+            GLuint i, *p = (GLuint *) ximage->data;
+            for (i = 0; i < w * h; i++) {
+               p[i] |= 0xff000000;
+            }
+         }
+
          xrb->map_ximage = ximage;
 
          /* the first row of the OpenGL image is last row of the XImage */




More information about the mesa-commit mailing list