Make exaCopyNtoNTwoDir() call DoneCopy() at the end of each string of

consecutive Copy() calls (rather than exactly once at the end of the
    function).
Reviewed by: jbarnes
This commit is contained in:
Eric Anholt 2006-03-12 03:02:26 +00:00
parent c3342c8000
commit 9a7fba5fd0
2 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2006-03-11 Eric Anholt <anholt@FreeBSD.org>
reviewed by: jbarnes
* exa/exa_accel.c: (exaCopyNtoNTwoDir):
Make exaCopyNtoNTwoDir() call DoneCopy() at the end of each string of
consecutive Copy() calls (rather than exactly once at the end of the
function).
2006-03-10 Kristian Høgsberg <krh@redhat.com>
* Merge accel_indirect branch to HEAD.

View File

@ -148,6 +148,8 @@ exaCopyNtoNTwoDir (DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
if (dx >= 0 && (src_off_y + pbox->y1 + dy) != pbox->y1) {
/* Do a xdir = ydir = -1 blit instead. */
if (dirsetup != -1) {
if (dirsetup != 0)
pExaScr->info->DoneCopy(pDstPixmap);
dirsetup = -1;
if (!(*pExaScr->info->PrepareCopy)(pSrcPixmap,
pDstPixmap,
@ -167,6 +169,8 @@ exaCopyNtoNTwoDir (DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
} else if (dx < 0 && (src_off_y + pbox->y1 + dy) != pbox->y1) {
/* Do a xdir = ydir = 1 blit instead. */
if (dirsetup != 1) {
if (dirsetup != 0)
pExaScr->info->DoneCopy(pDstPixmap);
dirsetup = 1;
if (!(*pExaScr->info->PrepareCopy)(pSrcPixmap,
pDstPixmap,
@ -190,6 +194,8 @@ exaCopyNtoNTwoDir (DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
*/
int i;
if (dirsetup != 1) {
if (dirsetup != 0)
pExaScr->info->DoneCopy(pDstPixmap);
dirsetup = 1;
if (!(*pExaScr->info->PrepareCopy)(pSrcPixmap,
pDstPixmap,
@ -213,6 +219,8 @@ exaCopyNtoNTwoDir (DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
*/
int i;
if (dirsetup != -1) {
if (dirsetup != 0)
pExaScr->info->DoneCopy(pDstPixmap);
dirsetup = -1;
if (!(*pExaScr->info->PrepareCopy)(pSrcPixmap,
pDstPixmap,
@ -231,7 +239,8 @@ exaCopyNtoNTwoDir (DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
pbox->x2 - pbox->x1, 1);
}
}
(*pExaScr->info->DoneCopy)(pDstPixmap);
if (dirsetup != 0)
pExaScr->info->DoneCopy(pDstPixmap);
exaMarkSync(pDstDrawable->pScreen);
exaDrawableDirty(pDstDrawable);
return TRUE;