diff options
author | Eric Anholt <anholt@freebsd.org> | 2006-03-12 03:02:26 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2006-03-12 03:02:26 +0000 |
commit | 9a7fba5fd07c8831d0acab8d901605de537ae273 (patch) | |
tree | eb2307ede2c211988cde9fc46baca772293abbff /exa | |
parent | c3342c8000f6d2bfb61e2cf95e028d11b59698fa (diff) |
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
Diffstat (limited to 'exa')
-rw-r--r-- | exa/exa_accel.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/exa/exa_accel.c b/exa/exa_accel.c index 34d30bc0d..9d02ab990 100644 --- a/exa/exa_accel.c +++ b/exa/exa_accel.c @@ -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; |