diff options
Diffstat (limited to 'src/dummy_dga.c')
-rw-r--r-- | src/dummy_dga.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/src/dummy_dga.c b/src/dummy_dga.c deleted file mode 100644 index d16d09f..0000000 --- a/src/dummy_dga.c +++ /dev/null @@ -1,175 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "xf86.h" -#include "xf86_OSproc.h" -#include "dgaproc.h" -#include "dummy.h" - -static Bool DUMMY_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, - int *, int *, int *); -static Bool DUMMY_SetMode(ScrnInfoPtr, DGAModePtr); -static int DUMMY_GetViewport(ScrnInfoPtr); -static void DUMMY_SetViewport(ScrnInfoPtr, int, int, int); - -static -DGAFunctionRec DUMMYDGAFuncs = { - DUMMY_OpenFramebuffer, - NULL, - DUMMY_SetMode, - DUMMY_SetViewport, - DUMMY_GetViewport, - NULL, - NULL, - NULL, -#if 0 - DUMMY_BlitTransRect -#else - NULL -#endif -}; - -Bool -DUMMYDGAInit(ScreenPtr pScreen) -{ - ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); - DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - DGAModePtr modes = NULL, newmodes = NULL, currentMode; - DisplayModePtr pMode, firstMode; - int Bpp = pScrn->bitsPerPixel >> 3; - int num = 0, imlines, pixlines; - - imlines = (pScrn->videoRam * 1024) / - (pScrn->displayWidth * (pScrn->bitsPerPixel >> 3)); - - pixlines = imlines; - - pMode = firstMode = pScrn->modes; - - while(pMode) { - - newmodes = realloc(modes, (num + 1) * sizeof(DGAModeRec)); - - if(!newmodes) { - free(modes); - return FALSE; - } - modes = newmodes; - - currentMode = modes + num; - num++; - - currentMode->mode = pMode; - currentMode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE; - if(pMode->Flags & V_DBLSCAN) - currentMode->flags |= DGA_DOUBLESCAN; - if(pMode->Flags & V_INTERLACE) - currentMode->flags |= DGA_INTERLACED; - currentMode->byteOrder = pScrn->imageByteOrder; - currentMode->depth = pScrn->depth; - currentMode->bitsPerPixel = pScrn->bitsPerPixel; - currentMode->red_mask = pScrn->mask.red; - currentMode->green_mask = pScrn->mask.green; - currentMode->blue_mask = pScrn->mask.blue; - currentMode->visualClass = (Bpp == 1) ? PseudoColor : TrueColor; - currentMode->viewportWidth = pMode->HDisplay; - currentMode->viewportHeight = pMode->VDisplay; - currentMode->xViewportStep = 1; - currentMode->yViewportStep = 1; - currentMode->viewportFlags = DGA_FLIP_RETRACE; - currentMode->offset = 0; - currentMode->address = (unsigned char *)pDUMMY->FBBase; - - currentMode->bytesPerScanline = - ((pScrn->displayWidth * Bpp) + 3) & ~3L; - currentMode->imageWidth = pScrn->displayWidth; - currentMode->imageHeight = imlines; - currentMode->pixmapWidth = currentMode->imageWidth; - currentMode->pixmapHeight = pixlines; - currentMode->maxViewportX = currentMode->imageWidth - - currentMode->viewportWidth; - currentMode->maxViewportY = currentMode->imageHeight - - currentMode->viewportHeight; - - pMode = pMode->next; - if(pMode == firstMode) - break; - } - - pDUMMY->numDGAModes = num; - pDUMMY->DGAModes = modes; - - return DGAInit(pScreen, &DUMMYDGAFuncs, modes, num); -} - -static DisplayModePtr DUMMYSavedDGAModes[MAXSCREENS]; - -static Bool -DUMMY_SetMode( - ScrnInfoPtr pScrn, - DGAModePtr pMode -){ - int index = pScrn->pScreen->myNum; - DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - - if(!pMode) { /* restore the original mode */ - if(pDUMMY->DGAactive) { - pScrn->currentMode = DUMMYSavedDGAModes[index]; - DUMMYSwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); - DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); - pDUMMY->DGAactive = FALSE; - } - } else { - if(!pDUMMY->DGAactive) { /* save the old parameters */ - DUMMYSavedDGAModes[index] = pScrn->currentMode; - pDUMMY->DGAactive = TRUE; - } - - DUMMYSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); - } - - return TRUE; -} - -static int -DUMMY_GetViewport( - ScrnInfoPtr pScrn -){ - DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - - return pDUMMY->DGAViewportStatus; -} - -static void -DUMMY_SetViewport( - ScrnInfoPtr pScrn, - int x, int y, - int flags -){ - DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - - DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); - pDUMMY->DGAViewportStatus = 0; -} - - -static Bool -DUMMY_OpenFramebuffer( - ScrnInfoPtr pScrn, - char **name, - unsigned char **mem, - int *size, - int *offset, - int *flags -){ - DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - - *name = NULL; /* no special device */ - *mem = (unsigned char*)pDUMMY->FBBase; - *size = pScrn->videoRam * 1024; - *offset = 0; - *flags = DGA_NEED_ROOT; - - return TRUE; -} |