/* * ATIDGASetViewport -- * * This function sets the display start address for a DGA client. */ static void ATIDGASetViewport ( ScrnInfoPtr pScreenInfo, int x, int y, int flags ) { (*pScreenInfo->AdjustFrame)(ADJUST_FRAME_ARGS(pScreenInfo, x, y)); }
/* * ATIDGASetMode -- * * This function sets a graphics mode for a DGA client. */ static Bool ATIDGASetMode ( ScrnInfoPtr pScreenInfo, DGAModePtr pDGAMode ) { ATIPtr pATI = ATIPTR(pScreenInfo); DisplayModePtr pMode; int frameX0, frameY0; if (pDGAMode) { pMode = pDGAMode->mode; pATI->depth = pDGAMode->depth; pATI->bitsPerPixel = pDGAMode->bitsPerPixel; pATI->displayWidth = pDGAMode->bytesPerScanline * 8 / pATI->bitsPerPixel; pATI->weight.red = BitsSet(pDGAMode->red_mask); pATI->weight.green = BitsSet(pDGAMode->green_mask); pATI->weight.blue = BitsSet(pDGAMode->blue_mask); frameX0 = frameY0 = 0; if (!pATI->currentMode) pATI->currentMode = pScreenInfo->currentMode; } else { if (!(pMode = pATI->currentMode)) return TRUE; pATI->depth = pScreenInfo->depth; pATI->bitsPerPixel = pScreenInfo->bitsPerPixel; pATI->displayWidth = pScreenInfo->displayWidth; pATI->weight = pScreenInfo->weight; frameX0 = pScreenInfo->frameX0; frameY0 = pScreenInfo->frameY0; } pATI->XModifier = pATI->bitsPerPixel / UnitOf(pATI->bitsPerPixel); ATIAdjustPreInit(pATI); ATIModePreInit(pScreenInfo, pATI, &pATI->NewHW); if (!(*pScreenInfo->SwitchMode)(SWITCH_MODE_ARGS(pScreenInfo, pMode))) return FALSE; if (!pDGAMode) pATI->currentMode = NULL; (*pScreenInfo->AdjustFrame)(ADJUST_FRAME_ARGS(pScreenInfo, frameX0, frameY0)); 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 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; }