xf86-video-intel: uxa/uxa-glyphs.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Jun 19 14:17:57 PDT 2012


 uxa/uxa-glyphs.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit 38f06a351fdd35fa5c6136e9a25e034a812a94c2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jun 19 22:22:12 2012 +0100

    uxa: Fix second regression in glyph fallback from 64a4bc
    
    To complete my show of incompetence for the evening, not only do we have
    to restore the original source when compositing the mask onto the
    destination, we also need to restore the original dst (rather than
    composite the mask onto the mask!).
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index 0ae0568..6bdf101 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -451,7 +451,7 @@ uxa_check_glyphs(CARD8 op,
 {
 	pixman_image_t *image;
 	PixmapPtr scratch;
-	PicturePtr mask, mask_src = NULL, white = NULL;
+	PicturePtr mask, mask_src = NULL, mask_dst = NULL, white = NULL;
 	int width = 0, height = 0;
 	int x, y, n;
 	int xDst = list->xOff, yDst = list->yOff;
@@ -511,6 +511,9 @@ uxa_check_glyphs(CARD8 op,
 
 		mask_src = src;
 		src = white;
+
+		mask_dst = dst;
+		dst = mask;
 	} else {
 		mask = dst;
 		x = 0;
@@ -547,7 +550,7 @@ uxa_check_glyphs(CARD8 op,
 	if (maskFormat) {
 		x = extents.x1;
 		y = extents.y1;
-		CompositePicture(mask_op, mask_src, mask, dst,
+		CompositePicture(mask_op, mask_src, mask, mask_dst,
 				 xSrc + x - xDst,
 				 ySrc + y - yDst,
 				 0, 0,


More information about the xorg-commit mailing list