Lines Matching +full:current +full:- +full:mode

4  * Copyright (c) 1998-2002 by The XFree86 Project, Inc.
41 #include <xorg-config.h>
75 #include "protocol-versions.h"
94 DGACopyModeInfo(DGAModePtr mode, XDGAModePtr xmode);
101 dixLookupPrivate(&(pScreen)->devPrivates, &DGAScreenKeyRec))
117 DGADevicePtr current; member
136 if (!funcs || !funcs->SetMode || !funcs->OpenFramebuffer) in DGAInit()
150 dixSetPrivate(&pScreen->devPrivates, &DGAScreenKeyRec, pScreenPriv); in DGAInit()
151 pScreenPriv->CloseScreen = pScreen->CloseScreen; in DGAInit()
152 pScreen->CloseScreen = DGACloseScreen; in DGAInit()
153 pScreenPriv->DestroyColormap = pScreen->DestroyColormap; in DGAInit()
154 pScreen->DestroyColormap = DGADestroyColormap; in DGAInit()
155 pScreenPriv->InstallColormap = pScreen->InstallColormap; in DGAInit()
156 pScreen->InstallColormap = DGAInstallColormap; in DGAInit()
157 pScreenPriv->UninstallColormap = pScreen->UninstallColormap; in DGAInit()
158 pScreen->UninstallColormap = DGAUninstallColormap; in DGAInit()
161 pScreenPriv->pScrn = pScrn; in DGAInit()
162 pScreenPriv->numModes = num; in DGAInit()
163 pScreenPriv->modes = modes; in DGAInit()
164 pScreenPriv->current = NULL; in DGAInit()
166 pScreenPriv->funcs = funcs; in DGAInit()
167 pScreenPriv->input = 0; in DGAInit()
168 pScreenPriv->client = NULL; in DGAInit()
169 pScreenPriv->fakedVisuals = NULL; in DGAInit()
170 pScreenPriv->dgaColormap = NULL; in DGAInit()
171 pScreenPriv->savedColormap = NULL; in DGAInit()
172 pScreenPriv->grabMouse = FALSE; in DGAInit()
173 pScreenPriv->grabKeyboard = FALSE; in DGAInit()
187 /* DGAReInitModes allows the driver to re-initialize
188 * the DGA mode list.
208 if (pScreenPriv->current) in DGAReInitModes()
217 pScreenPriv->numModes = num; in DGAReInitModes()
218 pScreenPriv->modes = modes; in DGAReInitModes()
242 if (!pScreenPriv->fakedVisuals) in FreeMarkedVisuals()
246 curr = pScreenPriv->fakedVisuals; in FreeMarkedVisuals()
249 if (curr->free) { in FreeMarkedVisuals()
251 curr = curr->next; in FreeMarkedVisuals()
253 prev->next = curr; in FreeMarkedVisuals()
255 pScreenPriv->fakedVisuals = curr; in FreeMarkedVisuals()
256 free(tmp->pVisual); in FreeMarkedVisuals()
261 curr = curr->next; in FreeMarkedVisuals()
278 pScreen->CloseScreen = pScreenPriv->CloseScreen; in DGACloseScreen()
279 pScreen->DestroyColormap = pScreenPriv->DestroyColormap; in DGACloseScreen()
280 pScreen->InstallColormap = pScreenPriv->InstallColormap; in DGACloseScreen()
281 pScreen->UninstallColormap = pScreenPriv->UninstallColormap; in DGACloseScreen()
288 return ((*pScreen->CloseScreen) (pScreen)); in DGACloseScreen()
294 ScreenPtr pScreen = pmap->pScreen; in DGADestroyColormap()
296 VisualPtr pVisual = pmap->pVisual; in DGADestroyColormap()
298 if (pScreenPriv->fakedVisuals) { in DGADestroyColormap()
299 FakedVisualList *curr = pScreenPriv->fakedVisuals; in DGADestroyColormap()
302 if (curr->pVisual == pVisual) { in DGADestroyColormap()
305 curr->free = TRUE; in DGADestroyColormap()
308 curr = curr->next; in DGADestroyColormap()
312 if (pScreenPriv->DestroyColormap) { in DGADestroyColormap()
313 pScreen->DestroyColormap = pScreenPriv->DestroyColormap; in DGADestroyColormap()
314 (*pScreen->DestroyColormap) (pmap); in DGADestroyColormap()
315 pScreen->DestroyColormap = DGADestroyColormap; in DGADestroyColormap()
322 ScreenPtr pScreen = pmap->pScreen; in DGAInstallColormap()
325 if (pScreenPriv->current && pScreenPriv->dgaColormap) { in DGAInstallColormap()
326 if (pmap != pScreenPriv->dgaColormap) { in DGAInstallColormap()
327 pScreenPriv->savedColormap = pmap; in DGAInstallColormap()
328 pmap = pScreenPriv->dgaColormap; in DGAInstallColormap()
332 pScreen->InstallColormap = pScreenPriv->InstallColormap; in DGAInstallColormap()
333 (*pScreen->InstallColormap) (pmap); in DGAInstallColormap()
334 pScreen->InstallColormap = DGAInstallColormap; in DGAInstallColormap()
340 ScreenPtr pScreen = pmap->pScreen; in DGAUninstallColormap()
343 if (pScreenPriv->current && pScreenPriv->dgaColormap) { in DGAUninstallColormap()
344 if (pmap == pScreenPriv->dgaColormap) { in DGAUninstallColormap()
345 pScreenPriv->dgaColormap = NULL; in DGAUninstallColormap()
349 pScreen->UninstallColormap = pScreenPriv->UninstallColormap; in DGAUninstallColormap()
350 (*pScreen->UninstallColormap) (pmap); in DGAUninstallColormap()
351 pScreen->UninstallColormap = DGAUninstallColormap; in DGAUninstallColormap()
371 if (pScreenPriv->current) { in xf86SetDGAMode()
372 PixmapPtr oldPix = pScreenPriv->current->pPix; in xf86SetDGAMode()
375 if (oldPix->drawable.id) in xf86SetDGAMode()
376 FreeResource(oldPix->drawable.id, RT_NONE); in xf86SetDGAMode()
378 (*pScreen->DestroyPixmap) (oldPix); in xf86SetDGAMode()
380 free(pScreenPriv->current); in xf86SetDGAMode()
381 pScreenPriv->current = NULL; in xf86SetDGAMode()
382 pScrn->vtSema = TRUE; in xf86SetDGAMode()
383 (*pScreenPriv->funcs->SetMode) (pScrn, NULL); in xf86SetDGAMode()
384 if (pScreenPriv->savedColormap) { in xf86SetDGAMode()
385 (*pScreen->InstallColormap) (pScreenPriv->savedColormap); in xf86SetDGAMode()
386 pScreenPriv->savedColormap = NULL; in xf86SetDGAMode()
388 pScreenPriv->dgaColormap = NULL; in xf86SetDGAMode()
389 (*pScrn->EnableDisableFBAccess) (pScrn, TRUE); in xf86SetDGAMode()
394 pScreenPriv->grabMouse = FALSE; in xf86SetDGAMode()
395 pScreenPriv->grabKeyboard = FALSE; in xf86SetDGAMode()
400 if (!pScrn->vtSema && !pScreenPriv->current) /* Really switched away */ in xf86SetDGAMode()
403 if ((num > 0) && (num <= pScreenPriv->numModes)) in xf86SetDGAMode()
404 pMode = &(pScreenPriv->modes[num - 1]); in xf86SetDGAMode()
411 if (!pScreenPriv->current) { in xf86SetDGAMode()
412 Bool oldVTSema = pScrn->vtSema; in xf86SetDGAMode()
414 pScrn->vtSema = FALSE; /* kludge until we rewrite VT switching */ in xf86SetDGAMode()
415 (*pScrn->EnableDisableFBAccess) (pScrn, FALSE); in xf86SetDGAMode()
416 pScrn->vtSema = oldVTSema; in xf86SetDGAMode()
419 if (!(*pScreenPriv->funcs->SetMode) (pScrn, pMode)) { in xf86SetDGAMode()
424 pScrn->currentMode = pMode->mode; in xf86SetDGAMode()
426 if (!pScreenPriv->current && !pScreenPriv->input) { in xf86SetDGAMode()
431 pScrn->vtSema = FALSE; in xf86SetDGAMode()
433 if (pScreenPriv->current) { in xf86SetDGAMode()
434 PixmapPtr oldPix = pScreenPriv->current->pPix; in xf86SetDGAMode()
437 if (oldPix->drawable.id) in xf86SetDGAMode()
438 FreeResource(oldPix->drawable.id, RT_NONE); in xf86SetDGAMode()
440 (*pScreen->DestroyPixmap) (oldPix); in xf86SetDGAMode()
442 free(pScreenPriv->current); in xf86SetDGAMode()
443 pScreenPriv->current = NULL; in xf86SetDGAMode()
446 if (pMode->flags & DGA_PIXMAP_AVAILABLE) { in xf86SetDGAMode()
447 if ((pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, pMode->depth, 0))) { in xf86SetDGAMode()
448 (*pScreen->ModifyPixmapHeader) (pPix, in xf86SetDGAMode()
449 pMode->pixmapWidth, in xf86SetDGAMode()
450 pMode->pixmapHeight, pMode->depth, in xf86SetDGAMode()
451 pMode->bitsPerPixel, in xf86SetDGAMode()
452 pMode->bytesPerScanline, in xf86SetDGAMode()
453 (void *) (pMode->address)); in xf86SetDGAMode()
457 devRet->mode = device->mode = pMode; in xf86SetDGAMode()
458 devRet->pPix = device->pPix = pPix; in xf86SetDGAMode()
459 pScreenPriv->current = device; in xf86SetDGAMode()
460 pScreenPriv->pixmapMode = FALSE; in xf86SetDGAMode()
461 pScreenPriv->grabMouse = TRUE; in xf86SetDGAMode()
462 pScreenPriv->grabKeyboard = TRUE; in xf86SetDGAMode()
481 pScreenPriv->grabMouse = mouse; in DGASetInputMode()
482 pScreenPriv->grabKeyboard = keyboard; in DGASetInputMode()
492 DGAChangePixmapMode(int index, int *x, int *y, int mode) in DGAChangePixmapMode() argument
504 if (!pScreenPriv || !pScreenPriv->current || !pScreenPriv->current->pPix) in DGAChangePixmapMode()
507 pDev = pScreenPriv->current; in DGAChangePixmapMode()
508 pPix = pDev->pPix; in DGAChangePixmapMode()
509 pMode = pDev->mode; in DGAChangePixmapMode()
511 if (mode) { in DGAChangePixmapMode()
514 if (*x > (pMode->pixmapWidth - pMode->viewportWidth)) in DGAChangePixmapMode()
515 *x = pMode->pixmapWidth - pMode->viewportWidth; in DGAChangePixmapMode()
516 if (*y > (pMode->pixmapHeight - pMode->viewportHeight)) in DGAChangePixmapMode()
517 *y = pMode->pixmapHeight - pMode->viewportHeight; in DGAChangePixmapMode()
519 switch (xf86Screens[index]->bitsPerPixel) { in DGAChangePixmapMode()
535 pPix->drawable.x = *x; in DGAChangePixmapMode()
536 pPix->drawable.y = *y; in DGAChangePixmapMode()
537 pPix->drawable.width = pMode->viewportWidth; in DGAChangePixmapMode()
538 pPix->drawable.height = pMode->viewportHeight; in DGAChangePixmapMode()
541 pPix->drawable.x = 0; in DGAChangePixmapMode()
542 pPix->drawable.y = 0; in DGAChangePixmapMode()
543 pPix->drawable.width = pMode->pixmapWidth; in DGAChangePixmapMode()
544 pPix->drawable.height = pMode->pixmapHeight; in DGAChangePixmapMode()
546 pPix->drawable.serialNumber = NEXT_SERIAL_NUMBER; in DGAChangePixmapMode()
547 pScreenPriv->pixmapMode = mode; in DGAChangePixmapMode()
583 if (pScreenPriv && pScreenPriv->current) in DGAActive()
603 (void) (*pScrn->SetDGAMode) (pScrn, 0, NULL); in DGAShutdown()
607 /* Called by the extension to initialize a mode */
610 DGASetMode(int index, int num, XDGAModePtr mode, PixmapPtr *pPix) in DGASetMode() argument
618 ret = (*pScrn->SetDGAMode) (pScrn, num, &device); in DGASetMode()
620 DGACopyModeInfo(device.mode, mode); in DGASetMode()
635 pScreenPriv->client = client; in DGASelectInput()
636 pScreenPriv->input = mask; in DGASelectInput()
646 if (!pScreenPriv->funcs->GetViewport) in DGAGetViewportStatus()
649 return (*pScreenPriv->funcs->GetViewport) (pScreenPriv->pScrn); in DGAGetViewportStatus()
653 DGASetViewport(int index, int x, int y, int mode) in DGASetViewport() argument
657 if (pScreenPriv->funcs->SetViewport) in DGASetViewport()
658 (*pScreenPriv->funcs->SetViewport) (pScreenPriv->pScrn, x, y, mode); in DGASetViewport()
679 DGACreateColormap(int index, ClientPtr client, int id, int mode, int alloc) in DGACreateColormap() argument
688 if (!mode || (mode > pScreenPriv->numModes)) in DGACreateColormap()
694 pMode = &(pScreenPriv->modes[mode - 1]); in DGACreateColormap()
699 pVisual->vid = FakeClientID(0); in DGACreateColormap()
700 pVisual->class = pMode->visualClass; in DGACreateColormap()
701 pVisual->nplanes = pMode->depth; in DGACreateColormap()
702 pVisual->ColormapEntries = 1 << pMode->depth; in DGACreateColormap()
703 pVisual->bitsPerRGBValue = (pMode->depth + 2) / 3; in DGACreateColormap()
705 switch (pVisual->class) { in DGACreateColormap()
709 pVisual->bitsPerRGBValue = 8; /* not quite */ in DGACreateColormap()
710 pVisual->redMask = 0; in DGACreateColormap()
711 pVisual->greenMask = 0; in DGACreateColormap()
712 pVisual->blueMask = 0; in DGACreateColormap()
713 pVisual->offsetRed = 0; in DGACreateColormap()
714 pVisual->offsetGreen = 0; in DGACreateColormap()
715 pVisual->offsetBlue = 0; in DGACreateColormap()
719 pVisual->ColormapEntries = 1 << pVisual->bitsPerRGBValue; in DGACreateColormap()
722 pVisual->redMask = pMode->red_mask; in DGACreateColormap()
723 pVisual->greenMask = pMode->green_mask; in DGACreateColormap()
724 pVisual->blueMask = pMode->blue_mask; in DGACreateColormap()
725 pVisual->offsetRed = BitsClear(pVisual->redMask); in DGACreateColormap()
726 pVisual->offsetGreen = BitsClear(pVisual->greenMask); in DGACreateColormap()
727 pVisual->offsetBlue = BitsClear(pVisual->blueMask); in DGACreateColormap()
735 fvlp->free = FALSE; in DGACreateColormap()
736 fvlp->pVisual = pVisual; in DGACreateColormap()
737 fvlp->next = pScreenPriv->fakedVisuals; in DGACreateColormap()
738 pScreenPriv->fakedVisuals = fvlp; in DGACreateColormap()
742 return CreateColormap(id, pScreen, pVisual, &pmap, alloc, client->index); in DGACreateColormap()
750 ScreenPtr pScreen = cmap->pScreen; in DGAInstallCmap()
755 if (!pScreenPriv->dgaColormap) in DGAInstallCmap()
756 pScreenPriv->savedColormap = GetInstalledmiColormap(pScreen); in DGAInstallCmap()
758 pScreenPriv->dgaColormap = cmap; in DGAInstallCmap()
760 (*pScreen->InstallColormap) (cmap); in DGAInstallCmap()
770 if (pScreenPriv->funcs->Sync) in DGASync()
771 (*pScreenPriv->funcs->Sync) (pScreenPriv->pScrn); in DGASync()
783 if (pScreenPriv->funcs->FillRect && in DGAFillRect()
784 (pScreenPriv->current->mode->flags & DGA_FILL_RECT)) { in DGAFillRect()
786 (*pScreenPriv->funcs->FillRect) (pScreenPriv->pScrn, x, y, w, h, color); in DGAFillRect()
799 if (pScreenPriv->funcs->BlitRect && in DGABlitRect()
800 (pScreenPriv->current->mode->flags & DGA_BLIT_RECT)) { in DGABlitRect()
802 (*pScreenPriv->funcs->BlitRect) (pScreenPriv->pScrn, in DGABlitRect()
818 if (pScreenPriv->funcs->BlitTransRect && in DGABlitTransRect()
819 (pScreenPriv->current->mode->flags & DGA_BLIT_RECT_TRANS)) { in DGABlitTransRect()
821 (*pScreenPriv->funcs->BlitTransRect) (pScreenPriv->pScrn, in DGABlitTransRect()
836 return pScreenPriv->numModes; in DGAGetModes()
840 DGAGetModeInfo(int index, XDGAModePtr mode, int num) in DGAGetModeInfo() argument
846 if ((num <= 0) || (num > pScreenPriv->numModes)) in DGAGetModeInfo()
849 DGACopyModeInfo(&(pScreenPriv->modes[num - 1]), mode); in DGAGetModeInfo()
855 DGACopyModeInfo(DGAModePtr mode, XDGAModePtr xmode) in DGACopyModeInfo() argument
857 DisplayModePtr dmode = mode->mode; in DGACopyModeInfo()
859 xmode->num = mode->num; in DGACopyModeInfo()
860 xmode->name = dmode->name; in DGACopyModeInfo()
861 xmode->VSync_num = (int) (dmode->VRefresh * 1000.0); in DGACopyModeInfo()
862 xmode->VSync_den = 1000; in DGACopyModeInfo()
863 xmode->flags = mode->flags; in DGACopyModeInfo()
864 xmode->imageWidth = mode->imageWidth; in DGACopyModeInfo()
865 xmode->imageHeight = mode->imageHeight; in DGACopyModeInfo()
866 xmode->pixmapWidth = mode->pixmapWidth; in DGACopyModeInfo()
867 xmode->pixmapHeight = mode->pixmapHeight; in DGACopyModeInfo()
868 xmode->bytesPerScanline = mode->bytesPerScanline; in DGACopyModeInfo()
869 xmode->byteOrder = mode->byteOrder; in DGACopyModeInfo()
870 xmode->depth = mode->depth; in DGACopyModeInfo()
871 xmode->bitsPerPixel = mode->bitsPerPixel; in DGACopyModeInfo()
872 xmode->red_mask = mode->red_mask; in DGACopyModeInfo()
873 xmode->green_mask = mode->green_mask; in DGACopyModeInfo()
874 xmode->blue_mask = mode->blue_mask; in DGACopyModeInfo()
875 xmode->visualClass = mode->visualClass; in DGACopyModeInfo()
876 xmode->viewportWidth = mode->viewportWidth; in DGACopyModeInfo()
877 xmode->viewportHeight = mode->viewportHeight; in DGACopyModeInfo()
878 xmode->xViewportStep = mode->xViewportStep; in DGACopyModeInfo()
879 xmode->yViewportStep = mode->yViewportStep; in DGACopyModeInfo()
880 xmode->maxViewportX = mode->maxViewportX; in DGACopyModeInfo()
881 xmode->maxViewportY = mode->maxViewportY; in DGACopyModeInfo()
882 xmode->viewportFlags = mode->viewportFlags; in DGACopyModeInfo()
883 xmode->reserved1 = mode->reserved1; in DGACopyModeInfo()
884 xmode->reserved2 = mode->reserved2; in DGACopyModeInfo()
885 xmode->offset = mode->offset; in DGACopyModeInfo()
887 if (dmode->Flags & V_INTERLACE) in DGACopyModeInfo()
888 xmode->flags |= DGA_INTERLACED; in DGACopyModeInfo()
889 if (dmode->Flags & V_DBLSCAN) in DGACopyModeInfo()
890 xmode->flags |= DGA_DOUBLESCAN; in DGACopyModeInfo()
907 if (pScreenPriv && pScreenPriv->current) in DGAVTSwitch()
929 if (!pScreenPriv || !pScreenPriv->grabKeyboard) /* no direct mode */ in DGAStealKeyEvent()
958 if (!pScreenPriv || !pScreenPriv->grabMouse) /* no direct mode */ in DGAStealMotionEvent()
986 if (!pScreenPriv || !pScreenPriv->grabMouse) in DGAStealButtonEvent()
1020 KeyClassPtr keyc = keybd->key; in DGAProcessKeyboardEvent()
1026 .detail.key = event->detail, in DGAProcessKeyboardEvent()
1027 .type = event->subtype, in DGAProcessKeyboardEvent()
1030 .corestate = XkbStateFieldFromRec(&keyc->xkbInfo->state) in DGAProcessKeyboardEvent()
1032 ev.corestate |= pointer->button->state; in DGAProcessKeyboardEvent()
1042 if (pScreenPriv->client) { in DGAProcessKeyboardEvent()
1044 .u.event.time = event->time, in DGAProcessKeyboardEvent()
1045 .u.event.dx = event->dx, in DGAProcessKeyboardEvent()
1046 .u.event.dy = event->dy, in DGAProcessKeyboardEvent()
1047 .u.event.screen = pScreen->myNum, in DGAProcessKeyboardEvent()
1051 de.u.u.detail = event->detail; in DGAProcessKeyboardEvent()
1054 TryClientEvents(pScreenPriv->client, keybd, (xEvent *) &de, 1, in DGAProcessKeyboardEvent()
1055 filters[ev.type], pScreenPriv->input, 0); in DGAProcessKeyboardEvent()
1059 if (keybd->deviceGrab.grab && !keybd->deviceGrab.fromPassiveGrab) { in DGAProcessKeyboardEvent()
1060 ev.detail.key = event->detail; in DGAProcessKeyboardEvent()
1061 ev.time = event->time; in DGAProcessKeyboardEvent()
1062 ev.root_x = event->dx; in DGAProcessKeyboardEvent()
1063 ev.root_y = event->dy; in DGAProcessKeyboardEvent()
1064 ev.corestate = event->state; in DGAProcessKeyboardEvent()
1065 ev.deviceid = keybd->id; in DGAProcessKeyboardEvent()
1074 ButtonClassPtr butc = mouse->button; in DGAProcessPointerEvent()
1080 .detail.key = event->detail, in DGAProcessPointerEvent()
1081 .type = event->subtype, in DGAProcessPointerEvent()
1082 .corestate = butc ? butc->state : 0 in DGAProcessPointerEvent()
1085 if (master && master->key) in DGAProcessPointerEvent()
1086 ev.corestate |= XkbStateFieldFromRec(&master->key->xkbInfo->state); in DGAProcessPointerEvent()
1096 if (pScreenPriv->client) { in DGAProcessPointerEvent()
1099 .u.event.time = event->time, in DGAProcessPointerEvent()
1100 .u.event.dx = event->dx, in DGAProcessPointerEvent()
1101 .u.event.dy = event->dy, in DGAProcessPointerEvent()
1102 .u.event.screen = pScreen->myNum, in DGAProcessPointerEvent()
1106 de.u.u.detail = event->detail; in DGAProcessPointerEvent()
1109 TryClientEvents(pScreenPriv->client, mouse, (xEvent *) &de, 1, in DGAProcessPointerEvent()
1110 filters[coreEquiv], pScreenPriv->input, 0); in DGAProcessPointerEvent()
1114 if (mouse->deviceGrab.grab && !mouse->deviceGrab.fromPassiveGrab) { in DGAProcessPointerEvent()
1115 ev.detail.button = event->detail; in DGAProcessPointerEvent()
1116 ev.time = event->time; in DGAProcessPointerEvent()
1117 ev.root_x = event->dx; in DGAProcessPointerEvent()
1118 ev.root_y = event->dy; in DGAProcessPointerEvent()
1119 ev.corestate = event->state; in DGAProcessPointerEvent()
1138 return (*pScreenPriv->funcs->OpenFramebuffer) (pScreenPriv->pScrn, in DGAOpenFramebuffer()
1149 if (pScreenPriv->funcs->CloseFramebuffer) in DGACloseFramebuffer()
1150 (*pScreenPriv->funcs->CloseFramebuffer) (pScreenPriv->pScrn); in DGACloseFramebuffer()
1159 ScrnInfoPtr pScrn = pScreenPriv->pScrn; in DGAGetOldDGAMode()
1160 DGAModePtr mode; in DGAGetOldDGAMode() local
1165 w = pScrn->currentMode->HDisplay; in DGAGetOldDGAMode()
1166 h = pScrn->currentMode->VDisplay; in DGAGetOldDGAMode()
1167 p = pad_to_int32(pScrn->displayWidth * bits_to_bytes(pScrn->bitsPerPixel)); in DGAGetOldDGAMode()
1169 for (i = 0; i < pScreenPriv->numModes; i++) { in DGAGetOldDGAMode()
1170 mode = &(pScreenPriv->modes[i]); in DGAGetOldDGAMode()
1172 if ((mode->viewportWidth == w) && (mode->viewportHeight == h) && in DGAGetOldDGAMode()
1173 (mode->bytesPerScanline == p) && in DGAGetOldDGAMode()
1174 (mode->bitsPerPixel == pScrn->bitsPerPixel) && in DGAGetOldDGAMode()
1175 (mode->depth == pScrn->depth)) { in DGAGetOldDGAMode()
1177 return mode->num; in DGAGetOldDGAMode()
1187 DGAEvent *event = &ev->dga_event; in DGAHandleEvent()
1200 switch (event->subtype) { in DGAHandleEvent()
1235 dixLookupPrivate(&screenInfo.screens[idx]->devPrivates, DGAScreenPrivateKey))
1237 dixSetPrivate(&screenInfo.screens[idx]->devPrivates, DGAScreenPrivateKey, p)
1240 dixLookupPrivate(&(c)->devPrivates, DGAClientPrivateKey))
1242 dixSetPrivate(&(c)->devPrivates, DGAClientPrivateKey, p)
1259 rep.sequenceNumber = client->sequence; in ProcXDGAQueryVersion()
1277 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAOpenFramebuffer()
1280 if (!DGAAvailable(stuff->screen)) in ProcXDGAOpenFramebuffer()
1285 rep.sequenceNumber = client->sequence; in ProcXDGAOpenFramebuffer()
1287 if (!DGAOpenFramebuffer(stuff->screen, &deviceName, in ProcXDGAOpenFramebuffer()
1311 if (stuff->screen >= screenInfo.numScreens) in ProcXDGACloseFramebuffer()
1314 if (!DGAAvailable(stuff->screen)) in ProcXDGACloseFramebuffer()
1317 DGACloseFramebuffer(stuff->screen); in ProcXDGACloseFramebuffer()
1330 XDGAModePtr mode; in ProcXDGAQueryModes() local
1334 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAQueryModes()
1340 rep.sequenceNumber = client->sequence; in ProcXDGAQueryModes()
1342 if (!DGAAvailable(stuff->screen)) { in ProcXDGAQueryModes()
1349 if (!(num = DGAGetModes(stuff->screen))) { in ProcXDGAQueryModes()
1354 if (!(mode = xallocarray(num, sizeof(XDGAModeRec)))) in ProcXDGAQueryModes()
1358 DGAGetModeInfo(stuff->screen, mode + i, i + 1); in ProcXDGAQueryModes()
1362 size += pad_to_int32(strlen(mode[i].name) + 1); /* plus NULL */ in ProcXDGAQueryModes()
1370 size = strlen(mode[i].name) + 1; in ProcXDGAQueryModes()
1372 info.byte_order = mode[i].byteOrder; in ProcXDGAQueryModes()
1373 info.depth = mode[i].depth; in ProcXDGAQueryModes()
1374 info.num = mode[i].num; in ProcXDGAQueryModes()
1375 info.bpp = mode[i].bitsPerPixel; in ProcXDGAQueryModes()
1377 info.vsync_num = mode[i].VSync_num; in ProcXDGAQueryModes()
1378 info.vsync_den = mode[i].VSync_den; in ProcXDGAQueryModes()
1379 info.flags = mode[i].flags; in ProcXDGAQueryModes()
1380 info.image_width = mode[i].imageWidth; in ProcXDGAQueryModes()
1381 info.image_height = mode[i].imageHeight; in ProcXDGAQueryModes()
1382 info.pixmap_width = mode[i].pixmapWidth; in ProcXDGAQueryModes()
1383 info.pixmap_height = mode[i].pixmapHeight; in ProcXDGAQueryModes()
1384 info.bytes_per_scanline = mode[i].bytesPerScanline; in ProcXDGAQueryModes()
1385 info.red_mask = mode[i].red_mask; in ProcXDGAQueryModes()
1386 info.green_mask = mode[i].green_mask; in ProcXDGAQueryModes()
1387 info.blue_mask = mode[i].blue_mask; in ProcXDGAQueryModes()
1388 info.visual_class = mode[i].visualClass; in ProcXDGAQueryModes()
1389 info.viewport_width = mode[i].viewportWidth; in ProcXDGAQueryModes()
1390 info.viewport_height = mode[i].viewportHeight; in ProcXDGAQueryModes()
1391 info.viewport_xstep = mode[i].xViewportStep; in ProcXDGAQueryModes()
1392 info.viewport_ystep = mode[i].yViewportStep; in ProcXDGAQueryModes()
1393 info.viewport_xmax = mode[i].maxViewportX; in ProcXDGAQueryModes()
1394 info.viewport_ymax = mode[i].maxViewportY; in ProcXDGAQueryModes()
1395 info.viewport_flags = mode[i].viewportFlags; in ProcXDGAQueryModes()
1396 info.reserved1 = mode[i].reserved1; in ProcXDGAQueryModes()
1397 info.reserved2 = mode[i].reserved2; in ProcXDGAQueryModes()
1400 WriteToClient(client, size, mode[i].name); in ProcXDGAQueryModes()
1403 free(mode); in ProcXDGAQueryModes()
1416 if (DGA_GETCLIENT(i) == pci->client) { in DGAClientStateChange()
1417 client = pci->client; in DGAClientStateChange()
1423 ((client->clientState == ClientStateGone) || in DGAClientStateChange()
1424 (client->clientState == ClientStateRetained))) { in DGAClientStateChange()
1425 XDGAModeRec mode; in DGAClientStateChange() local
1430 DGASetMode(i, 0, &mode, &pPix); in DGAClientStateChange()
1432 if (--DGACallbackRefCount == 0) in DGAClientStateChange()
1442 XDGAModeRec mode; in ProcXDGASetMode() local
1450 if (stuff->screen >= screenInfo.numScreens) in ProcXDGASetMode()
1452 owner = DGA_GETCLIENT(stuff->screen); in ProcXDGASetMode()
1458 rep.sequenceNumber = client->sequence; in ProcXDGASetMode()
1460 if (!DGAAvailable(stuff->screen)) in ProcXDGASetMode()
1466 if (!stuff->mode) { in ProcXDGASetMode()
1468 if (--DGACallbackRefCount == 0) in ProcXDGASetMode()
1472 DGA_SETCLIENT(stuff->screen, NULL); in ProcXDGASetMode()
1473 DGASelectInput(stuff->screen, NULL, 0); in ProcXDGASetMode()
1474 DGASetMode(stuff->screen, 0, &mode, &pPix); in ProcXDGASetMode()
1479 if (Success != DGASetMode(stuff->screen, stuff->mode, &mode, &pPix)) in ProcXDGASetMode()
1487 DGA_SETCLIENT(stuff->screen, client); in ProcXDGASetMode()
1490 if (AddResource(stuff->pid, RT_PIXMAP, (void *) (pPix))) { in ProcXDGASetMode()
1491 pPix->drawable.id = (int) stuff->pid; in ProcXDGASetMode()
1496 size = strlen(mode.name) + 1; in ProcXDGASetMode()
1498 info.byte_order = mode.byteOrder; in ProcXDGASetMode()
1499 info.depth = mode.depth; in ProcXDGASetMode()
1500 info.num = mode.num; in ProcXDGASetMode()
1501 info.bpp = mode.bitsPerPixel; in ProcXDGASetMode()
1503 info.vsync_num = mode.VSync_num; in ProcXDGASetMode()
1504 info.vsync_den = mode.VSync_den; in ProcXDGASetMode()
1505 info.flags = mode.flags; in ProcXDGASetMode()
1506 info.image_width = mode.imageWidth; in ProcXDGASetMode()
1507 info.image_height = mode.imageHeight; in ProcXDGASetMode()
1508 info.pixmap_width = mode.pixmapWidth; in ProcXDGASetMode()
1509 info.pixmap_height = mode.pixmapHeight; in ProcXDGASetMode()
1510 info.bytes_per_scanline = mode.bytesPerScanline; in ProcXDGASetMode()
1511 info.red_mask = mode.red_mask; in ProcXDGASetMode()
1512 info.green_mask = mode.green_mask; in ProcXDGASetMode()
1513 info.blue_mask = mode.blue_mask; in ProcXDGASetMode()
1514 info.visual_class = mode.visualClass; in ProcXDGASetMode()
1515 info.viewport_width = mode.viewportWidth; in ProcXDGASetMode()
1516 info.viewport_height = mode.viewportHeight; in ProcXDGASetMode()
1517 info.viewport_xstep = mode.xViewportStep; in ProcXDGASetMode()
1518 info.viewport_ystep = mode.yViewportStep; in ProcXDGASetMode()
1519 info.viewport_xmax = mode.maxViewportX; in ProcXDGASetMode()
1520 info.viewport_ymax = mode.maxViewportY; in ProcXDGASetMode()
1521 info.viewport_flags = mode.viewportFlags; in ProcXDGASetMode()
1522 info.reserved1 = mode.reserved1; in ProcXDGASetMode()
1523 info.reserved2 = mode.reserved2; in ProcXDGASetMode()
1529 WriteToClient(client, size, mode.name); in ProcXDGASetMode()
1541 if (stuff->screen >= screenInfo.numScreens) in ProcXDGASetViewport()
1544 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGASetViewport()
1547 DGASetViewport(stuff->screen, stuff->x, stuff->y, stuff->flags); in ProcXDGASetViewport()
1562 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAInstallColormap()
1565 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGAInstallColormap()
1568 rc = dixLookupResourceByType((void **) &cmap, stuff->cmap, RT_COLORMAP, in ProcXDGAInstallColormap()
1583 if (stuff->screen >= screenInfo.numScreens) in ProcXDGASelectInput()
1586 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGASelectInput()
1589 if (DGA_GETCLIENT(stuff->screen) == client) in ProcXDGASelectInput()
1590 DGASelectInput(stuff->screen, client, stuff->mask); in ProcXDGASelectInput()
1602 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAFillRectangle()
1605 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGAFillRectangle()
1608 if (Success != DGAFillRect(stuff->screen, stuff->x, stuff->y, in ProcXDGAFillRectangle()
1609 stuff->width, stuff->height, stuff->color)) in ProcXDGAFillRectangle()
1622 if (stuff->screen >= screenInfo.numScreens) in ProcXDGACopyArea()
1625 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGACopyArea()
1628 if (Success != DGABlitRect(stuff->screen, stuff->srcx, stuff->srcy, in ProcXDGACopyArea()
1629 stuff->width, stuff->height, stuff->dstx, in ProcXDGACopyArea()
1630 stuff->dsty)) in ProcXDGACopyArea()
1643 if (stuff->screen >= screenInfo.numScreens) in ProcXDGACopyTransparentArea()
1646 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGACopyTransparentArea()
1649 if (Success != DGABlitTransRect(stuff->screen, stuff->srcx, stuff->srcy, in ProcXDGACopyTransparentArea()
1650 stuff->width, stuff->height, stuff->dstx, in ProcXDGACopyTransparentArea()
1651 stuff->dsty, stuff->key)) in ProcXDGACopyTransparentArea()
1665 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAGetViewportStatus()
1668 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGAGetViewportStatus()
1673 rep.sequenceNumber = client->sequence; in ProcXDGAGetViewportStatus()
1675 rep.status = DGAGetViewportStatus(stuff->screen); in ProcXDGAGetViewportStatus()
1689 if (stuff->screen >= screenInfo.numScreens) in ProcXDGASync()
1692 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGASync()
1697 rep.sequenceNumber = client->sequence; in ProcXDGASync()
1699 DGASync(stuff->screen); in ProcXDGASync()
1720 pPriv->major = stuff->major; in ProcXDGASetClientVersion()
1721 pPriv->minor = stuff->minor; in ProcXDGASetClientVersion()
1735 if (stuff->screen >= screenInfo.numScreens) in ProcXDGAChangePixmapMode()
1738 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGAChangePixmapMode()
1743 rep.sequenceNumber = client->sequence; in ProcXDGAChangePixmapMode()
1745 x = stuff->x; in ProcXDGAChangePixmapMode()
1746 y = stuff->y; in ProcXDGAChangePixmapMode()
1748 if (!DGAChangePixmapMode(stuff->screen, &x, &y, stuff->flags)) in ProcXDGAChangePixmapMode()
1766 if (stuff->screen >= screenInfo.numScreens) in ProcXDGACreateColormap()
1769 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXDGACreateColormap()
1772 if (!stuff->mode) in ProcXDGACreateColormap()
1775 result = DGACreateColormap(stuff->screen, client, stuff->id, in ProcXDGACreateColormap()
1776 stuff->mode, stuff->alloc); in ProcXDGACreateColormap()
1796 XDGAModeRec mode; in ProcXF86DGAGetVideoLL() local
1802 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAGetVideoLL()
1807 rep.sequenceNumber = client->sequence; in ProcXF86DGAGetVideoLL()
1809 if (!DGAAvailable(stuff->screen)) in ProcXF86DGAGetVideoLL()
1812 if (!(num = DGAGetOldDGAMode(stuff->screen))) in ProcXF86DGAGetVideoLL()
1815 /* get the parameters for the mode that best matches */ in ProcXF86DGAGetVideoLL()
1816 DGAGetModeInfo(stuff->screen, &mode, num); in ProcXF86DGAGetVideoLL()
1818 if (!DGAOpenFramebuffer(stuff->screen, &name, in ProcXF86DGAGetVideoLL()
1823 rep.offset += mode.offset; in ProcXF86DGAGetVideoLL()
1824 rep.width = mode.bytesPerScanline / (mode.bitsPerPixel >> 3); in ProcXF86DGAGetVideoLL()
1836 XDGAModeRec mode; in ProcXF86DGADirectVideo() local
1843 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGADirectVideo()
1846 if (!DGAAvailable(stuff->screen)) in ProcXF86DGADirectVideo()
1849 owner = DGA_GETCLIENT(stuff->screen); in ProcXF86DGADirectVideo()
1854 if (stuff->enable & XF86DGADirectGraphics) { in ProcXF86DGADirectVideo()
1855 if (!(num = DGAGetOldDGAMode(stuff->screen))) in ProcXF86DGADirectVideo()
1861 if (Success != DGASetMode(stuff->screen, num, &mode, &pix)) in ProcXF86DGADirectVideo()
1864 DGASetInputMode(stuff->screen, in ProcXF86DGADirectVideo()
1865 (stuff->enable & XF86DGADirectKeyb) != 0, in ProcXF86DGADirectVideo()
1866 (stuff->enable & XF86DGADirectMouse) != 0); in ProcXF86DGADirectVideo()
1869 if (stuff->enable & in ProcXF86DGADirectVideo()
1876 DGA_SETCLIENT(stuff->screen, client); in ProcXF86DGADirectVideo()
1880 if (--DGACallbackRefCount == 0) in ProcXF86DGADirectVideo()
1885 DGA_SETCLIENT(stuff->screen, NULL); in ProcXF86DGADirectVideo()
1895 XDGAModeRec mode; in ProcXF86DGAGetViewPortSize() local
1902 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAGetViewPortSize()
1907 rep.sequenceNumber = client->sequence; in ProcXF86DGAGetViewPortSize()
1909 if (!DGAAvailable(stuff->screen)) in ProcXF86DGAGetViewPortSize()
1912 if (!(num = DGAGetOldDGAMode(stuff->screen))) in ProcXF86DGAGetViewPortSize()
1915 DGAGetModeInfo(stuff->screen, &mode, num); in ProcXF86DGAGetViewPortSize()
1917 rep.width = mode.viewportWidth; in ProcXF86DGAGetViewPortSize()
1918 rep.height = mode.viewportHeight; in ProcXF86DGAGetViewPortSize()
1931 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGASetViewPort()
1934 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXF86DGASetViewPort()
1937 if (!DGAAvailable(stuff->screen)) in ProcXF86DGASetViewPort()
1940 if (!DGAActive(stuff->screen)) in ProcXF86DGASetViewPort()
1943 if (DGASetViewport(stuff->screen, stuff->x, stuff->y, DGA_FLIP_RETRACE) in ProcXF86DGASetViewPort()
1958 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAGetVidPage()
1963 rep.sequenceNumber = client->sequence; in ProcXF86DGAGetVidPage()
1977 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGASetVidPage()
1995 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAInstallColormap()
1998 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXF86DGAInstallColormap()
2001 if (!DGAActive(stuff->screen)) in ProcXF86DGAInstallColormap()
2004 rc = dixLookupResourceByType((void **) &pcmp, stuff->id, RT_COLORMAP, in ProcXF86DGAInstallColormap()
2023 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAQueryDirectVideo()
2028 rep.sequenceNumber = client->sequence; in ProcXF86DGAQueryDirectVideo()
2031 if (DGAAvailable(stuff->screen)) in ProcXF86DGAQueryDirectVideo()
2046 if (stuff->screen >= screenInfo.numScreens) in ProcXF86DGAViewPortChanged()
2049 if (DGA_GETCLIENT(stuff->screen) != client) in ProcXF86DGAViewPortChanged()
2052 if (!DGAActive(stuff->screen)) in ProcXF86DGAViewPortChanged()
2057 rep.sequenceNumber = client->sequence; in ProcXF86DGAViewPortChanged()
2113 if (!client->local) in ProcXDGADispatch()
2117 if (stuff->data <= X_XDGACreateColormap) in ProcXDGADispatch()
2118 fprintf(stderr, " DGA %s\n", dgaMinor[stuff->data]); in ProcXDGADispatch()
2121 switch (stuff->data) { in ProcXDGADispatch()
2204 DGAReqCode = (unsigned char) extEntry->base; in XFree86DGAExtensionInit()
2205 DGAErrorBase = extEntry->errorBase; in XFree86DGAExtensionInit()
2206 DGAEventBase = extEntry->eventBase; in XFree86DGAExtensionInit()