Fix bugs in support for new repeatTypes in XAA and EXA.

EXA now won't pass pictures with new repeatTypes to drivers.  We can add a flag
for them to support it at a later time.
This commit is contained in:
Eric Anholt 2006-07-02 12:41:35 +02:00
parent f5e92542a1
commit 7106a77df3
2 changed files with 11 additions and 2 deletions

View File

@ -535,7 +535,8 @@ exaComposite(CARD8 op,
if (op == PictOpSrc)
{
if (pSrc->pDrawable->width == 1 &&
pSrc->pDrawable->height == 1 && pSrc->repeat)
pSrc->pDrawable->height == 1 && pSrc->repeat &&
pSrc->repeatType == RepeatNormal)
{
ret = exaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
width, height);
@ -575,6 +576,8 @@ exaComposite(CARD8 op,
pMask->repeat = 0;
if (pExaScr->info->PrepareComposite &&
(!pSrc->repeat || pSrc->repeat == RepeatNormal) &&
(!pMask || !pMask->repeat || pMask->repeat == RepeatNormal) &&
!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
{
ret = exaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,

View File

@ -219,6 +219,12 @@ XAADoComposite (
if (pDst->alphaMap || pSrc->alphaMap || (pMask && pMask->alphaMap))
return FALSE;
if ((pSrc->repeat && pSrc->repeatType != RepeatNormal) ||
(pMask && pMask->repeat && pMask->repeatType != RepeatNormal))
{
return FALSE;
}
xDst += pDst->pDrawable->x;
yDst += pDst->pDrawable->y;
xSrc += pSrc->pDrawable->x;