EXA: Fix exponential growth logic for GXcopy tiled fills.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16908 .
This commit is contained in:
Michel Dänzer 2008-07-31 10:58:52 +02:00
parent 8405c25d9d
commit 64ebeeb526

View File

@ -1311,10 +1311,10 @@ exaFillRegionTiled (DrawablePtr pDrawable,
planemask)) {
for (i = 0; i < nbox; i++)
{
int width = min(pBox[i].x2 - pBox[i].x1, tileWidth);
int dstX = pBox[i].x1 + tileWidth;
int dstY = pBox[i].y1 + tileHeight;
int width = min(pBox[i].x2 - dstX, tileWidth);
int height = min(pBox[i].y2 - pBox[i].y1, tileHeight);
int dstX = pBox[i].x1 + width;
int dstY = pBox[i].y1 + height;
while (dstX < pBox[i].x2) {
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
@ -1324,6 +1324,7 @@ exaFillRegionTiled (DrawablePtr pDrawable,
}
width = pBox[i].x2 - pBox[i].x1;
height = min(pBox[i].y2 - dstY, tileHeight);
while (dstY < pBox[i].y2) {
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,