Add missing dirty marking in a couple of fallback cases in the exaGlyphs path.

This commit is contained in:
Eric Anholt 2007-02-14 12:48:15 -08:00
parent a5f19c5150
commit 81aa7f059d
2 changed files with 15 additions and 3 deletions

View File

@ -648,6 +648,14 @@ exaPolyFillRect(DrawablePtr pDrawable,
{ {
exaDoMigration (pixmaps, 1, FALSE); exaDoMigration (pixmaps, 1, FALSE);
ExaCheckPolyFillRect (pDrawable, pGC, nrect, prect); ExaCheckPolyFillRect (pDrawable, pGC, nrect, prect);
while (nrect-- >= 0) {
exaDrawableDirty(pDrawable,
pDrawable->x + prect->x,
pDrawable->y + prect->y,
pDrawable->x + prect->x + prect->width,
pDrawable->y + prect->y + prect->height);
prect++;
}
return; return;
} else { } else {
exaDoMigration (pixmaps, 1, TRUE); exaDoMigration (pixmaps, 1, TRUE);

View File

@ -572,9 +572,7 @@ exaComposite(CARD8 op,
if (pExaScr->swappedOut || if (pExaScr->swappedOut ||
pSrc->pDrawable == NULL || (pMask != NULL && pMask->pDrawable == NULL)) pSrc->pDrawable == NULL || (pMask != NULL && pMask->pDrawable == NULL))
{ {
ExaCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc, goto fallback;
xMask, yMask, xDst, yDst, width, height);
return;
} }
/* Remove repeat in source if useless */ /* Remove repeat in source if useless */
@ -683,12 +681,18 @@ exaComposite(CARD8 op,
} }
} }
fallback:
#if DEBUG_TRACE_FALL #if DEBUG_TRACE_FALL
exaPrintCompositeFallback (op, pSrc, pMask, pDst); exaPrintCompositeFallback (op, pSrc, pMask, pDst);
#endif #endif
ExaCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc, ExaCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc,
xMask, yMask, xDst, yDst, width, height); xMask, yMask, xDst, yDst, width, height);
exaDrawableDirty(pDst->pDrawable,
pDst->pDrawable->x + xDst,
pDst->pDrawable->y + yDst,
pDst->pDrawable->x + xDst + width,
pDst->pDrawable->y + yDst + height);
done: done:
pSrc->repeat = saveSrcRepeat; pSrc->repeat = saveSrcRepeat;