summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Villacís Lasso <a_villacis@palosanto.com>2008-11-06 16:10:30 -0500
committerAlex Deucher <alexdeucher@gmail.com>2008-11-06 16:10:30 -0500
commitaea0496f662fa25b40c59e65a50daf58a8a0d6d0 (patch)
treea9b8d70b78e2a2c7a9965af845a89a15d536eddf
parente6b6506a0e77e1198d6a83eecddf342b746f31f4 (diff)
Fix EXA Copy
patch from Alex Villacís Lasso with minor updates from me
-rw-r--r--src/savage_exa.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/savage_exa.c b/src/savage_exa.c
index 6320e18..7c6efb3 100644
--- a/src/savage_exa.c
+++ b/src/savage_exa.c
@@ -382,7 +382,7 @@ SavagePrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir
/*ErrorF("in preparecopy\n");*/
- cmd = BCI_CMD_RECT | BCI_CMD_DEST_PBD_NEW | BCI_CMD_SRC_SBD_COLOR_NEW;
+ cmd = BCI_CMD_RECT | BCI_CMD_DEST_PBD | BCI_CMD_SRC_SBD_COLOR;
BCI_CMD_SET_ROP( cmd, SavageGetCopyROP(alu) );
@@ -397,18 +397,23 @@ SavagePrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir
psav->SavedBciCmd = cmd;
- psav->WaitQueue(psav,7);
+ psav->WaitQueue(psav,8);
BCI_SEND(BCI_SET_REGISTER
| BCI_SET_REGISTER_COUNT(1)
| BCI_BITPLANE_WRITE_MASK);
BCI_SEND(planemask);
- BCI_SEND(psav->SavedBciCmd);
/* src */
+ BCI_SEND(BCI_SET_REGISTER
+ | BCI_SET_REGISTER_COUNT(2)
+ | BCI_SBD_1);
BCI_SEND(psav->sbd_offset);
BCI_SEND(psav->sbd_high);
/* dst */
+ BCI_SEND(BCI_SET_REGISTER
+ | BCI_SET_REGISTER_COUNT(2)
+ | BCI_PBD_1);
BCI_SEND(psav->pbd_offset);
BCI_SEND(psav->pbd_high);
@@ -437,7 +442,8 @@ SavageCopy(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY, int wid
height ++;
}
- psav->WaitQueue(psav,4);
+ psav->WaitQueue(psav,5);
+ BCI_SEND(psav->SavedBciCmd);
BCI_SEND(BCI_X_Y(srcX, srcY));
BCI_SEND(BCI_X_Y(dstX, dstY));
BCI_SEND(BCI_W_H(width, height));