summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2006-03-12 03:02:26 +0000
committerEric Anholt <anholt@freebsd.org>2006-03-12 03:02:26 +0000
commit9a7fba5fd07c8831d0acab8d901605de537ae273 (patch)
treeeb2307ede2c211988cde9fc46baca772293abbff /exa
parentc3342c8000f6d2bfb61e2cf95e028d11b59698fa (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.c11
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;