summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@l3000.localdomain>2009-05-21 18:21:28 -0400
committerSøren Sandmann Pedersen <ssp@l3000.localdomain>2009-05-21 18:21:28 -0400
commita8bd1e1f96d8e5380972a7dce8d9940cd912aa09 (patch)
treea40b2073fcbdd1f432c7ff3b93a46d7612c07802
parenta2c5ee36b21c2ee5c0468f1b251e74c1412dbecb (diff)
Fix alpha map computation in miComputeCompositeRegion()
According to the RENDER spec, the origin of the alpha map is interpreted relative to the origin of the drawable of the image, not the origin of drawable of the alpha map. The only use of alpha maps I have been able to find is in Qt and they don't use a non-zero alpha origin.
-rw-r--r--render/mipict.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/render/mipict.c b/render/mipict.c
index 777f111e5..fe1b8dad5 100644
--- a/render/mipict.c
+++ b/render/mipict.c
@@ -459,8 +459,8 @@ miComputeCompositeRegion (RegionPtr pRegion,
if (pSrc->alphaMap)
{
if (!miClipPictureSrc (pRegion, pSrc->alphaMap,
- xDst - (xSrc + pSrc->alphaOrigin.x),
- yDst - (ySrc + pSrc->alphaOrigin.y)))
+ xDst - (xSrc - pSrc->alphaOrigin.x),
+ yDst - (ySrc - pSrc->alphaOrigin.y)))
{
pixman_region_fini (pRegion);
return FALSE;
@@ -477,8 +477,8 @@ miComputeCompositeRegion (RegionPtr pRegion,
if (pMask->alphaMap)
{
if (!miClipPictureSrc (pRegion, pMask->alphaMap,
- xDst - (xMask + pMask->alphaOrigin.x),
- yDst - (yMask + pMask->alphaOrigin.y)))
+ xDst - (xMask - pMask->alphaOrigin.x),
+ yDst - (yMask - pMask->alphaOrigin.y)))
{
pixman_region_fini (pRegion);
return FALSE;