Basic bitblt implementation
This commit is contained in:
parent
c231856a13
commit
056322336c
|
@ -1,3 +1,6 @@
|
|||
2004-04-11 Franco Catrin L. <fcatrin@tuxpan.com>
|
||||
* Basic bitblt implementation
|
||||
|
||||
2004-04-10 Franco Catrin L. <fcatrin@tuxpan.com>
|
||||
* MMIO enabled after switching to new VT
|
||||
* First acceleration function implemented (DrawSolid)
|
||||
|
|
|
@ -111,6 +111,31 @@ static Bool neoPrepareCopy (PixmapPtr pSrcPixpam, PixmapPtr pDstPixmap,
|
|||
|
||||
static void neoCopy (int srcX, int srcY, int dstX, int dstY, int w, int h)
|
||||
{
|
||||
neoWaitIdle(card);
|
||||
|
||||
if ((dstY < srcY) || ((dstY == srcY) && (dstX < srcX))) {
|
||||
mmio->bltCntl =
|
||||
NEO_BC3_FIFO_EN |
|
||||
NEO_BC3_SKIP_MAPPING | 0x0c0000;
|
||||
mmio->srcStart = srcY * screen->pitch + srcX * screen->depth;
|
||||
mmio->dstStart = dstY * screen->pitch + dstX * screen->depth;
|
||||
|
||||
mmio->xyExt = (unsigned long)(h << 16) | (w & 0xffff);
|
||||
} else {
|
||||
mmio->bltCntl = NEO_BC0_X_DEC |
|
||||
NEO_BC0_DST_Y_DEC |
|
||||
NEO_BC0_SRC_Y_DEC |
|
||||
NEO_BC3_FIFO_EN |
|
||||
NEO_BC3_SKIP_MAPPING | 0x0c0000;
|
||||
srcX+=w-1;
|
||||
dstX+=w-1;
|
||||
srcY+=h-1;
|
||||
dstY+=h-1;
|
||||
mmio->srcStart = srcY * screen->pitch + srcX * screen->depth;
|
||||
mmio->dstStart = dstY * screen->pitch + dstX * screen->depth;
|
||||
mmio->xyExt = (unsigned long)(h << 16) | (w & 0xffff);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void neoDoneCopy (void)
|
||||
|
@ -170,9 +195,7 @@ void neoDrawFini (ScreenPtr pScreen)
|
|||
|
||||
void neoDrawSync (ScreenPtr pScreen)
|
||||
{
|
||||
ENTER();
|
||||
SetupNeo(pScreen);
|
||||
|
||||
neoWaitIdle(neoc);
|
||||
LEAVE();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user