static Bool I810_SetMode(ScrnInfoPtr pScrn, DGAModePtr pMode) { int index = pScrn->pScreen->myNum; I810Ptr pI810 = I810PTR(pScrn); MARKER(); if (!pMode) { /* restore the original mode */ DPRINTF(PFX, "Restoring original mode (from DGA mode)\n"); if (pI810->DGAactive) { pScrn->currentMode = I810SavedDGAModes[index]; pScrn->SwitchMode(index, pScrn->currentMode, 0); pScrn->AdjustFrame(index, 0, 0, 0); pI810->DGAactive = FALSE; } } else { if (!pI810->DGAactive) { DPRINTF(PFX, "Setting DGA mode\n"); I810SavedDGAModes[index] = pScrn->currentMode; pI810->DGAactive = TRUE; } pScrn->SwitchMode(index, pMode->mode, 0); } return TRUE; }
static void I810_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) { I810Ptr pI810 = I810PTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); /* wait for retrace */ while ((hwp->readST01(hwp) & 0x08)) ; while (!(hwp->readST01(hwp) & 0x08)) ; pI810->DGAViewportStatus = 0; }
static void I810_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) { I810Ptr pI810 = I810PTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); MARKER(); pScrn->AdjustFrame(pScrn->pScreen->myNum, x, y, flags); /* wait for retrace */ while ((hwp->readST01(hwp) & 0x08)) ; while (!(hwp->readST01(hwp) & 0x08)) ; pI810->DGAViewportStatus = 0; }
static Bool PSB_SetMode(ScrnInfoPtr pScrn, DGAModePtr pMode) { if (!pMode) { if (saved) { pScrn->AdjustFrame(pScrn->pScreen->myNum, 0, 0, 0); xf86SwitchMode(pScrn->pScreen, saved); pScrn->displayWidth = saved->HDisplay; saved = NULL; } } else { if (!saved) { saved = pScrn->currentMode; xf86SwitchMode(pScrn->pScreen, pMode->mode); pScrn->displayWidth = pMode->mode->HDisplay; pMode->bytesPerScanline = pScrn->displayWidth * (pScrn->bitsPerPixel >> 3); pMode->pixmapWidth = pScrn->displayWidth; } }
static Bool I810_SetMode(ScrnInfoPtr pScrn, DGAModePtr pMode) { int index = pScrn->pScreen->myNum; I810Ptr pI810 = I810PTR(pScrn); if (!pMode) { /* restore the original mode */ if (pI810->DGAactive) { pScrn->currentMode = I810SavedDGAModes[index]; pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); pI810->DGAactive = FALSE; } } else { if (!pI810->DGAactive) { I810SavedDGAModes[index] = pScrn->currentMode; pI810->DGAactive = TRUE; } pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; }
static void xf86PointerMoved(int scrnIndex, int x, int y) { Bool frameChanged = FALSE; ScrnInfoPtr pScr = xf86Screens[scrnIndex]; /* * check wether (x,y) belongs to the visual part of the screen * if not, change the base of the displayed frame accoring */ if ( pScr->frameX0 > x) { pScr->frameX0 = x; pScr->frameX1 = x + pScr->currentMode->HDisplay - 1; frameChanged = TRUE ; } if ( pScr->frameX1 < x) { pScr->frameX1 = x + 1; pScr->frameX0 = x - pScr->currentMode->HDisplay + 1; frameChanged = TRUE ; } if ( pScr->frameY0 > y) { pScr->frameY0 = y; pScr->frameY1 = y + pScr->currentMode->VDisplay - 1; frameChanged = TRUE; } if ( pScr->frameY1 < y) { pScr->frameY1 = y; pScr->frameY0 = y - pScr->currentMode->VDisplay + 1; frameChanged = TRUE; } if (frameChanged && pScr->AdjustFrame != NULL) pScr->AdjustFrame(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0); }
static void xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags) { scrn->AdjustFrame(scrn->pScreen->myNum, x, y, flags); }
static void xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags) { scrn->AdjustFrame(scrn, x, y); }