EXA: Fix TS origin computation when implementing RenderComposite with tiling.
This commit is contained in:
parent
539bf3c283
commit
6b1a27023e
|
@ -650,7 +650,7 @@ exaComposite(CARD8 op,
|
||||||
!pSrc->transform &&
|
!pSrc->transform &&
|
||||||
pSrc->repeatType == RepeatNormal)
|
pSrc->repeatType == RepeatNormal)
|
||||||
{
|
{
|
||||||
DDXPointRec srcOrg;
|
DDXPointRec patOrg;
|
||||||
|
|
||||||
/* Let's see if the driver can do the repeat in one go */
|
/* Let's see if the driver can do the repeat in one go */
|
||||||
if (pExaScr->info->PrepareComposite && !pSrc->alphaMap &&
|
if (pExaScr->info->PrepareComposite && !pSrc->alphaMap &&
|
||||||
|
@ -674,12 +674,14 @@ exaComposite(CARD8 op,
|
||||||
width, height))
|
width, height))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
srcOrg.x = (xSrc - xDst) % pSrc->pDrawable->width;
|
/* pattern origin is the point in the destination drawable
|
||||||
srcOrg.y = (ySrc - yDst) % pSrc->pDrawable->height;
|
* corresponding to (0,0) in the source */
|
||||||
|
patOrg.x = xDst - xSrc;
|
||||||
|
patOrg.y = yDst - ySrc;
|
||||||
|
|
||||||
ret = exaFillRegionTiled(pDst->pDrawable, ®ion,
|
ret = exaFillRegionTiled(pDst->pDrawable, ®ion,
|
||||||
(PixmapPtr)pSrc->pDrawable,
|
(PixmapPtr)pSrc->pDrawable,
|
||||||
&srcOrg, FB_ALLONES, GXcopy);
|
&patOrg, FB_ALLONES, GXcopy);
|
||||||
|
|
||||||
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue