summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-13 15:12:51 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-05-13 17:17:54 +0100
commit92e9cf8af784b13c28030e38b15c8decf29e6a32 (patch)
treea83fda8d0f8a4f515f83fed91c3c376ca479de2a
parentd1bd14e8b6754ba9f797642e1b33bf689e19417b (diff)
uxa: Only use solid_fill for SRC.
-rw-r--r--uxa/uxa-render.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index 0ba8b9d6..93930585 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -1362,12 +1362,16 @@ uxa_composite(CARD8 op,
if (pSrc->pSourcePict) {
SourcePict *source = pSrc->pSourcePict;
if (source->type == SourcePictTypeSolidFill) {
- ret = uxa_try_driver_solid_fill(pSrc, pDst,
- xSrc, ySrc,
- xDst, yDst,
- width, height);
- if (ret == 1)
- goto done;
+ if (op == PictOpSrc ||
+ (op == PictOpOver &&
+ (source->solidFill.color & 0xff000000) == 0xff000000)) {
+ ret = uxa_try_driver_solid_fill(pSrc, pDst,
+ xSrc, ySrc,
+ xDst, yDst,
+ width, height);
+ if (ret == 1)
+ goto done;
+ }
}
}
} else if (compatible_formats (op, pDst, pSrc)) {