summaryrefslogtreecommitdiff
path: root/uxa
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-06-19 22:22:12 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-06-19 22:22:12 +0100
commit38f06a351fdd35fa5c6136e9a25e034a812a94c2 (patch)
treea10ded2cd19f5ec503d7714fd4cb3697cb6f2421 /uxa
parentfda9faee755cb35906ca1179a568332ef2de35a5 (diff)
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@chris-wilson.co.uk>
Diffstat (limited to 'uxa')
-rw-r--r--uxa/uxa-glyphs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index 0ae0568e..6bdf101b 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,