diff options
author | Alex Villacís Lasso <a_villacis@palosanto.com> | 2008-11-06 16:10:30 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2008-11-06 16:10:30 -0500 |
commit | aea0496f662fa25b40c59e65a50daf58a8a0d6d0 (patch) | |
tree | a9b8d70b78e2a2c7a9965af845a89a15d536eddf | |
parent | e6b6506a0e77e1198d6a83eecddf342b746f31f4 (diff) |
Fix EXA Copy
patch from Alex Villacís Lasso with minor updates from me
-rw-r--r-- | src/savage_exa.c | 14 |
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)); |