diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-13 15:12:51 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-13 17:17:54 +0100 |
commit | 92e9cf8af784b13c28030e38b15c8decf29e6a32 (patch) | |
tree | a83fda8d0f8a4f515f83fed91c3c376ca479de2a /uxa | |
parent | d1bd14e8b6754ba9f797642e1b33bf689e19417b (diff) |
uxa: Only use solid_fill for SRC.
Diffstat (limited to 'uxa')
-rw-r--r-- | uxa/uxa-render.c | 16 |
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)) { |