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 the drawable of the alpha map. This commit fixes that and adds an alpha-test.c test program. 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.
This commit is contained in:
parent
ebfd6688d1
commit
6e69272473
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue