summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uxa/uxa-glyphs.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index e83464e1..0ae0568e 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -451,12 +451,12 @@ uxa_check_glyphs(CARD8 op,
{
pixman_image_t *image;
PixmapPtr scratch;
- PicturePtr mask, white = NULL;
+ PicturePtr mask, mask_src = NULL, white = NULL;
int width = 0, height = 0;
int x, y, n;
int xDst = list->xOff, yDst = list->yOff;
BoxRec extents = { 0, 0, 0, 0 };
- CARD8 mask_op;
+ CARD8 mask_op = 0;
if (maskFormat) {
pixman_format_code_t format;
@@ -504,10 +504,13 @@ uxa_check_glyphs(CARD8 op,
y = -extents.y1;
color.red = color.green = color.blue = color.alpha = 0xffff;
- src = white = CreateSolidPicture(0, &color, &error);
+ white = CreateSolidPicture(0, &color, &error);
mask_op = op;
op = PictOpAdd;
+
+ mask_src = src;
+ src = white;
} else {
mask = dst;
x = 0;
@@ -544,7 +547,7 @@ uxa_check_glyphs(CARD8 op,
if (maskFormat) {
x = extents.x1;
y = extents.y1;
- CompositePicture(mask_op, src, mask, dst,
+ CompositePicture(mask_op, mask_src, mask, dst,
xSrc + x - xDst,
ySrc + y - yDst,
0, 0,