diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-06-19 22:22:12 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-06-19 22:22:12 +0100 |
commit | 38f06a351fdd35fa5c6136e9a25e034a812a94c2 (patch) | |
tree | a10ded2cd19f5ec503d7714fd4cb3697cb6f2421 /uxa | |
parent | fda9faee755cb35906ca1179a568332ef2de35a5 (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.c | 7 |
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, |