Lines Matching full:crtc
33 * Notify the CRTC of some change
36 RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged) in RRCrtcChanged() argument
38 ScreenPtr pScreen = crtc->pScreen; in RRCrtcChanged()
40 crtc->changed = TRUE; in RRCrtcChanged()
54 * Create a CRTC
59 RRCrtcPtr crtc; in RRCrtcCreate() local
68 /* make space for the crtc pointer */ in RRCrtcCreate()
75 crtc = calloc(1, sizeof(RRCrtcRec)); in RRCrtcCreate()
76 if (!crtc) in RRCrtcCreate()
78 crtc->id = FakeClientID(0); in RRCrtcCreate()
79 crtc->pScreen = pScreen; in RRCrtcCreate()
80 crtc->mode = NULL; in RRCrtcCreate()
81 crtc->x = 0; in RRCrtcCreate()
82 crtc->y = 0; in RRCrtcCreate()
83 crtc->rotation = RR_Rotate_0; in RRCrtcCreate()
84 crtc->rotations = RR_Rotate_0; in RRCrtcCreate()
85 crtc->outputs = NULL; in RRCrtcCreate()
86 crtc->numOutputs = 0; in RRCrtcCreate()
87 crtc->gammaSize = 0; in RRCrtcCreate()
88 crtc->gammaRed = crtc->gammaBlue = crtc->gammaGreen = NULL; in RRCrtcCreate()
89 crtc->changed = FALSE; in RRCrtcCreate()
90 crtc->devPrivate = devPrivate; in RRCrtcCreate()
91 RRTransformInit(&crtc->client_pending_transform); in RRCrtcCreate()
92 RRTransformInit(&crtc->client_current_transform); in RRCrtcCreate()
93 pixman_transform_init_identity(&crtc->transform); in RRCrtcCreate()
94 pixman_f_transform_init_identity(&crtc->f_transform); in RRCrtcCreate()
95 pixman_f_transform_init_identity(&crtc->f_inverse); in RRCrtcCreate()
97 if (!AddResource(crtc->id, RRCrtcType, (void *) crtc)) in RRCrtcCreate()
100 /* attach the screen and crtc together */ in RRCrtcCreate()
101 crtc->pScreen = pScreen; in RRCrtcCreate()
102 pScrPriv->crtcs[pScrPriv->numCrtcs++] = crtc; in RRCrtcCreate()
106 return crtc; in RRCrtcCreate()
110 * Set the allowed rotations on a CRTC
113 RRCrtcSetRotations(RRCrtcPtr crtc, Rotation rotations) in RRCrtcSetRotations() argument
115 crtc->rotations = rotations; in RRCrtcSetRotations()
119 * Set whether transforms are allowed on a CRTC
122 RRCrtcSetTransformSupport(RRCrtcPtr crtc, Bool transforms) in RRCrtcSetTransformSupport() argument
124 crtc->transforms = transforms; in RRCrtcSetTransformSupport()
128 * Notify the extension that the Crtc has been reconfigured,
132 RRCrtcNotify(RRCrtcPtr crtc, in RRCrtcNotify() argument
146 for (j = 0; j < crtc->numOutputs; j++) in RRCrtcNotify()
147 if (outputs[i] == crtc->outputs[j]) in RRCrtcNotify()
149 if (j == crtc->numOutputs) { in RRCrtcNotify()
150 outputs[i]->crtc = crtc; in RRCrtcNotify()
152 RRCrtcChanged(crtc, FALSE); in RRCrtcNotify()
159 for (j = 0; j < crtc->numOutputs; j++) { in RRCrtcNotify()
161 if (outputs[i] == crtc->outputs[j]) in RRCrtcNotify()
164 if (crtc->outputs[j]->crtc == crtc) in RRCrtcNotify()
165 crtc->outputs[j]->crtc = NULL; in RRCrtcNotify()
166 RROutputChanged(crtc->outputs[j], FALSE); in RRCrtcNotify()
167 RRCrtcChanged(crtc, FALSE); in RRCrtcNotify()
171 * Reallocate the crtc output array if necessary in RRCrtcNotify()
173 if (numOutputs != crtc->numOutputs) { in RRCrtcNotify()
177 if (crtc->numOutputs) in RRCrtcNotify()
178 newoutputs = reallocarray(crtc->outputs, in RRCrtcNotify()
186 free(crtc->outputs); in RRCrtcNotify()
189 crtc->outputs = newoutputs; in RRCrtcNotify()
190 crtc->numOutputs = numOutputs; in RRCrtcNotify()
193 * Copy the new list of outputs into the crtc in RRCrtcNotify()
195 memcpy(crtc->outputs, outputs, numOutputs * sizeof(RROutputPtr)); in RRCrtcNotify()
197 * Update remaining crtc fields in RRCrtcNotify()
199 if (mode != crtc->mode) { in RRCrtcNotify()
200 if (crtc->mode) in RRCrtcNotify()
201 RRModeDestroy(crtc->mode); in RRCrtcNotify()
202 crtc->mode = mode; in RRCrtcNotify()
205 RRCrtcChanged(crtc, TRUE); in RRCrtcNotify()
207 if (x != crtc->x) { in RRCrtcNotify()
208 crtc->x = x; in RRCrtcNotify()
209 RRCrtcChanged(crtc, TRUE); in RRCrtcNotify()
211 if (y != crtc->y) { in RRCrtcNotify()
212 crtc->y = y; in RRCrtcNotify()
213 RRCrtcChanged(crtc, TRUE); in RRCrtcNotify()
215 if (rotation != crtc->rotation) { in RRCrtcNotify()
216 crtc->rotation = rotation; in RRCrtcNotify()
217 RRCrtcChanged(crtc, TRUE); in RRCrtcNotify()
219 if (!RRTransformEqual(transform, &crtc->client_current_transform)) { in RRCrtcNotify()
220 RRTransformCopy(&crtc->client_current_transform, transform); in RRCrtcNotify()
221 RRCrtcChanged(crtc, TRUE); in RRCrtcNotify()
223 if (crtc->changed && mode) { in RRCrtcNotify()
227 &crtc->client_current_transform, in RRCrtcNotify()
228 &crtc->transform, &crtc->f_transform, in RRCrtcNotify()
229 &crtc->f_inverse); in RRCrtcNotify()
235 RRDeliverCrtcEvent(ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc) in RRDeliverCrtcEvent() argument
240 RRModePtr mode = crtc->mode; in RRDeliverCrtcEvent()
247 .crtc = crtc->id, in RRDeliverCrtcEvent()
249 .rotation = crtc->rotation, in RRDeliverCrtcEvent()
250 .x = mode ? crtc->x : 0, in RRDeliverCrtcEvent()
251 .y = mode ? crtc->y : 0, in RRDeliverCrtcEvent()
259 RRCrtcPendingProperties(RRCrtcPtr crtc) in RRCrtcPendingProperties() argument
261 ScreenPtr pScreen = crtc->pScreen; in RRCrtcPendingProperties()
269 if (output->crtc == crtc && output->pendingProperties) in RRCrtcPendingProperties()
276 cursor_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) in cursor_bounds() argument
278 rrScrPriv(crtc->pScreen); in cursor_bounds()
281 if (crtc->mode == NULL) in cursor_bounds()
286 pScrPriv->rrGetPanning(crtc->pScreen, crtc, NULL, &bounds, NULL); in cursor_bounds()
291 bounds.x2 = crtc->mode->mode.width; in cursor_bounds()
292 bounds.y2 = crtc->mode->mode.height; in cursor_bounds()
295 pixman_f_transform_bounds(&crtc->f_transform, &bounds); in cursor_bounds()
354 /* Find first enabled CRTC and start search for reachable CRTCs from it */ in RRComputeContiguity()
375 rrDestroySharedPixmap(RRCrtcPtr crtc, PixmapPtr pPixmap) { in rrDestroySharedPixmap() argument
376 ScreenPtr master = crtc->pScreen->current_master; in rrDestroySharedPixmap()
389 crtc->pScreen->DestroyPixmap(pPixmap); in rrDestroySharedPixmap()
393 RRCrtcDetachScanoutPixmap(RRCrtcPtr crtc) in RRCrtcDetachScanoutPixmap() argument
395 rrScrPriv(crtc->pScreen); in RRCrtcDetachScanoutPixmap()
397 if (crtc->scanout_pixmap) { in RRCrtcDetachScanoutPixmap()
398 ScreenPtr master = crtc->pScreen->current_master; in RRCrtcDetachScanoutPixmap()
401 if (crtc->scanout_pixmap_back) { in RRCrtcDetachScanoutPixmap()
402 pScrPriv->rrDisableSharedPixmapFlipping(crtc); in RRCrtcDetachScanoutPixmap()
406 crtc->scanout_pixmap, in RRCrtcDetachScanoutPixmap()
407 crtc->scanout_pixmap_back); in RRCrtcDetachScanoutPixmap()
410 rrDestroySharedPixmap(crtc, crtc->scanout_pixmap_back); in RRCrtcDetachScanoutPixmap()
411 crtc->scanout_pixmap_back = NULL; in RRCrtcDetachScanoutPixmap()
414 pScrPriv->rrCrtcSetScanoutPixmap(crtc, NULL); in RRCrtcDetachScanoutPixmap()
418 crtc->scanout_pixmap); in RRCrtcDetachScanoutPixmap()
422 rrDestroySharedPixmap(crtc, crtc->scanout_pixmap); in RRCrtcDetachScanoutPixmap()
423 crtc->scanout_pixmap = NULL; in RRCrtcDetachScanoutPixmap()
426 RRCrtcChanged(crtc, TRUE); in RRCrtcDetachScanoutPixmap()
430 rrCreateSharedPixmap(RRCrtcPtr crtc, ScreenPtr master, in rrCreateSharedPixmap() argument
441 spix = PixmapShareToSlave(mpix, crtc->pScreen); in rrCreateSharedPixmap()
501 rrSetupPixmapSharing(RRCrtcPtr crtc, int width, int height, in rrSetupPixmapSharing() argument
505 ScreenPtr master = crtc->pScreen->current_master; in rrSetupPixmapSharing()
507 rrScrPrivPtr pSlaveScrPriv = rrGetScrPriv(crtc->pScreen); in rrSetupPixmapSharing()
531 if (crtc->scanout_pixmap) in rrSetupPixmapSharing()
532 RRCrtcDetachScanoutPixmap(crtc); in rrSetupPixmapSharing()
538 spix_front = rrCreateSharedPixmap(crtc, master, in rrSetupPixmapSharing()
554 PixmapPtr spix_back = rrCreateSharedPixmap(crtc, master, in rrSetupPixmapSharing()
560 if (!pSlaveScrPriv->rrEnableSharedPixmapFlipping(crtc, in rrSetupPixmapSharing()
564 crtc->scanout_pixmap = spix_front; in rrSetupPixmapSharing()
565 crtc->scanout_pixmap_back = spix_back; in rrSetupPixmapSharing()
567 if (!pMasterScrPriv->rrStartFlippingPixmapTracking(crtc, in rrSetupPixmapSharing()
573 pSlaveScrPriv->rrDisableSharedPixmapFlipping(crtc); in rrSetupPixmapSharing()
583 rrDestroySharedPixmap(crtc, spix_back); in rrSetupPixmapSharing()
585 crtc->scanout_pixmap = NULL; in rrSetupPixmapSharing()
586 crtc->scanout_pixmap_back = NULL; in rrSetupPixmapSharing()
596 if (!pSlaveScrPriv->rrCrtcSetScanoutPixmap(crtc, spix_front)) { in rrSetupPixmapSharing()
597 rrDestroySharedPixmap(crtc, spix_front); in rrSetupPixmapSharing()
601 crtc->scanout_pixmap = spix_front; in rrSetupPixmapSharing()
608 static void crtc_to_box(BoxPtr box, RRCrtcPtr crtc) in crtc_to_box() argument
610 box->x1 = crtc->x; in crtc_to_box()
611 box->y1 = crtc->y; in crtc_to_box()
612 switch (crtc->rotation) { in crtc_to_box()
616 box->x2 = crtc->x + crtc->mode->mode.width; in crtc_to_box()
617 box->y2 = crtc->y + crtc->mode->mode.height; in crtc_to_box()
621 box->x2 = crtc->x + crtc->mode->mode.height; in crtc_to_box()
622 box->y2 = crtc->y + crtc->mode->mode.width; in crtc_to_box()
647 RRCrtcPtr crtc = pScrPriv->crtcs[c]; in rrCheckPixmapBounding() local
649 if (crtc == rr_crtc) { in rrCheckPixmapBounding()
661 if (!crtc->mode) in rrCheckPixmapBounding()
663 crtc_to_box(&newbox, crtc); in rrCheckPixmapBounding()
721 * Request that the Crtc be reconfigured
724 RRCrtcSet(RRCrtcPtr crtc, in RRCrtcSet() argument
729 ScreenPtr pScreen = crtc->pScreen; in RRCrtcSet()
739 if (outputs[o] && outputs[o]->crtc != crtc) { in RRCrtcSet()
746 if (crtc->mode == mode && in RRCrtcSet()
747 crtc->x == x && in RRCrtcSet()
748 crtc->y == y && in RRCrtcSet()
749 crtc->rotation == rotation && in RRCrtcSet()
750 crtc->numOutputs == numOutputs && in RRCrtcSet()
751 !memcmp(crtc->outputs, outputs, numOutputs * sizeof(RROutputPtr)) && in RRCrtcSet()
752 !RRCrtcPendingProperties(crtc) && !RRCrtcPendingTransform(crtc) && in RRCrtcSet()
766 ret = rrCheckPixmapBounding(master, crtc, in RRCrtcSet()
773 ret = rrSetupPixmapSharing(crtc, width, height, in RRCrtcSet()
780 ret = (*pScrPriv->rrCrtcSet) (pScreen, crtc, mode, x, y, in RRCrtcSet()
792 RRCrtcNotify(crtc, NULL, x, y, rotation, NULL, 0, NULL); in RRCrtcSet()
816 RRCrtcNotify(crtc, mode, x, y, rotation, NULL, 1, in RRCrtcSet()
840 * Return crtc transform
843 RRCrtcGetTransform(RRCrtcPtr crtc) in RRCrtcGetTransform() argument
845 RRTransformPtr transform = &crtc->client_pending_transform; in RRCrtcGetTransform()
856 RRCrtcPendingTransform(RRCrtcPtr crtc) in RRCrtcPendingTransform() argument
858 return !RRTransformEqual(&crtc->client_current_transform, in RRCrtcPendingTransform()
859 &crtc->client_pending_transform); in RRCrtcPendingTransform()
863 * Destroy a Crtc at shutdown
866 RRCrtcDestroy(RRCrtcPtr crtc) in RRCrtcDestroy() argument
868 FreeResource(crtc->id, 0); in RRCrtcDestroy()
874 RRCrtcPtr crtc = (RRCrtcPtr) value; in RRCrtcDestroyResource() local
875 ScreenPtr pScreen = crtc->pScreen; in RRCrtcDestroyResource()
885 if (lease->crtcs[c] == crtc) { in RRCrtcDestroyResource()
893 if (pScrPriv->crtcs[i] == crtc) { in RRCrtcDestroyResource()
904 if (crtc->scanout_pixmap) in RRCrtcDestroyResource()
905 RRCrtcDetachScanoutPixmap(crtc); in RRCrtcDestroyResource()
906 free(crtc->gammaRed); in RRCrtcDestroyResource()
907 if (crtc->mode) in RRCrtcDestroyResource()
908 RRModeDestroy(crtc->mode); in RRCrtcDestroyResource()
909 free(crtc->outputs); in RRCrtcDestroyResource()
910 free(crtc); in RRCrtcDestroyResource()
915 * Request that the Crtc gamma be changed
919 RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue) in RRCrtcGammaSet() argument
924 ScreenPtr pScreen = crtc->pScreen; in RRCrtcGammaSet()
927 memcpy(crtc->gammaRed, red, crtc->gammaSize * sizeof(CARD16)); in RRCrtcGammaSet()
928 memcpy(crtc->gammaGreen, green, crtc->gammaSize * sizeof(CARD16)); in RRCrtcGammaSet()
929 memcpy(crtc->gammaBlue, blue, crtc->gammaSize * sizeof(CARD16)); in RRCrtcGammaSet()
934 ret = (*pScrPriv->rrCrtcSetGamma) (pScreen, crtc); in RRCrtcGammaSet()
945 RRCrtcGammaGet(RRCrtcPtr crtc) in RRCrtcGammaGet() argument
950 ScreenPtr pScreen = crtc->pScreen; in RRCrtcGammaGet()
957 ret = (*pScrPriv->rrCrtcGetGamma) (pScreen, crtc); in RRCrtcGammaGet()
964 * Notify the extension that the Crtc gamma has been changed
970 RRCrtcGammaNotify(RRCrtcPtr crtc) in RRCrtcGammaNotify() argument
998 * Returns the width/height that the crtc scans out from the framebuffer
1001 RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height) in RRCrtcGetScanoutSize() argument
1003 RRModeGetScanoutSize(crtc->mode, &crtc->transform, width, height); in RRCrtcGetScanoutSize()
1011 RRCrtcGammaSetSize(RRCrtcPtr crtc, int size) in RRCrtcGammaSetSize() argument
1015 if (size == crtc->gammaSize) in RRCrtcGammaSetSize()
1024 free(crtc->gammaRed); in RRCrtcGammaSetSize()
1025 crtc->gammaRed = gamma; in RRCrtcGammaSetSize()
1026 crtc->gammaGreen = gamma + size; in RRCrtcGammaSetSize()
1027 crtc->gammaBlue = gamma + size * 2; in RRCrtcGammaSetSize()
1028 crtc->gammaSize = size; in RRCrtcGammaSetSize()
1033 * Set the pending CRTC transformation
1037 RRCrtcTransformSet(RRCrtcPtr crtc, in RRCrtcTransformSet() argument
1047 if (!crtc->transforms) in RRCrtcTransformSet()
1051 filter = PictureFindFilter(crtc->pScreen, filter_name, filter_len); in RRCrtcTransformSet()
1055 if (!filter->ValidateParams(crtc->pScreen, filter->id, in RRCrtcTransformSet()
1068 if (!RRTransformSetFilter(&crtc->client_pending_transform, in RRCrtcTransformSet()
1072 crtc->client_pending_transform.transform = *transform; in RRCrtcTransformSet()
1073 crtc->client_pending_transform.f_transform = *f_transform; in RRCrtcTransformSet()
1074 crtc->client_pending_transform.f_inverse = *f_inverse; in RRCrtcTransformSet()
1079 * Initialize crtc type
1084 RRCrtcType = CreateNewResourceType(RRCrtcDestroyResource, "CRTC"); in RRCrtcInit()
1092 * Initialize crtc type error value
1105 RRCrtcPtr crtc; in ProcRRGetCrtcInfo() local
1119 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRGetCrtcInfo()
1121 leased = RRCrtcIsLeased(crtc); in ProcRRGetCrtcInfo()
1126 pScreen = crtc->pScreen; in ProcRRGetCrtcInfo()
1129 mode = crtc->mode; in ProcRRGetCrtcInfo()
1149 pScrPriv->rrGetPanning(pScreen, crtc, &panned_area, NULL, NULL) && in ProcRRGetCrtcInfo()
1158 RRCrtcGetScanoutSize(crtc, &width, &height); in ProcRRGetCrtcInfo()
1159 rep.x = crtc->x; in ProcRRGetCrtcInfo()
1160 rep.y = crtc->y; in ProcRRGetCrtcInfo()
1165 rep.rotation = crtc->rotation; in ProcRRGetCrtcInfo()
1166 rep.rotations = crtc->rotations; in ProcRRGetCrtcInfo()
1167 rep.nOutput = crtc->numOutputs; in ProcRRGetCrtcInfo()
1172 if (pScrPriv->outputs[i]->crtcs[j] == crtc) in ProcRRGetCrtcInfo()
1191 for (i = 0; i < crtc->numOutputs; i++) { in ProcRRGetCrtcInfo()
1192 outputs[i] = crtc->outputs[i]->id; in ProcRRGetCrtcInfo()
1200 if (pScrPriv->outputs[i]->crtcs[j] == crtc) { in ProcRRGetCrtcInfo()
1240 RRCrtcPtr crtc; in ProcRRSetCrtcConfig() local
1253 VERIFY_RR_CRTC(stuff->crtc, crtc, DixSetAttrAccess); in ProcRRSetCrtcConfig()
1255 if (RRCrtcIsLeased(crtc)) in ProcRRSetCrtcConfig()
1290 /* validate crtc for this output */ in ProcRRSetCrtcConfig()
1292 if (outputs[i]->crtcs[j] == crtc) in ProcRRSetCrtcConfig()
1329 pScreen = crtc->pScreen; in ProcRRSetCrtcConfig()
1362 if ((~crtc->rotations) & rotation) { in ProcRRSetCrtcConfig()
1379 if (pScrPriv->rrScreenSetSize && !crtc->transforms) { in ProcRRSetCrtcConfig()
1398 &crtc->client_pending_transform, in ProcRRSetCrtcConfig()
1418 if (!RRCrtcSet(crtc, mode, stuff->x, stuff->y, in ProcRRSetCrtcConfig()
1452 RRCrtcPtr crtc; in ProcRRGetPanning() local
1460 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRGetPanning()
1465 pScreen = crtc->pScreen; in ProcRRGetPanning()
1480 pScrPriv->rrGetPanning(pScreen, crtc, &total, &tracking, border)) { in ProcRRGetPanning()
1521 RRCrtcPtr crtc; in ProcRRSetPanning() local
1531 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRSetPanning()
1533 if (RRCrtcIsLeased(crtc)) in ProcRRSetPanning()
1539 pScreen = crtc->pScreen; in ProcRRSetPanning()
1566 if (!pScrPriv->rrSetPanning(pScreen, crtc, &total, &tracking, border)) in ProcRRSetPanning()
1596 RRCrtcPtr crtc; in ProcRRGetCrtcGammaSize() local
1599 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRGetCrtcGammaSize()
1602 if (!RRCrtcGammaGet(crtc)) in ProcRRGetCrtcGammaSize()
1609 .size = crtc->gammaSize in ProcRRGetCrtcGammaSize()
1625 RRCrtcPtr crtc; in ProcRRGetCrtcGamma() local
1630 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRGetCrtcGamma()
1633 if (!RRCrtcGammaGet(crtc)) in ProcRRGetCrtcGamma()
1636 len = crtc->gammaSize * 3 * 2; in ProcRRGetCrtcGamma()
1638 if (crtc->gammaSize) { in ProcRRGetCrtcGamma()
1648 .size = crtc->gammaSize in ProcRRGetCrtcGamma()
1656 if (crtc->gammaSize) { in ProcRRGetCrtcGamma()
1657 memcpy(extra, crtc->gammaRed, len); in ProcRRGetCrtcGamma()
1669 RRCrtcPtr crtc; in ProcRRSetCrtcGamma() local
1674 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRSetCrtcGamma()
1676 if (RRCrtcIsLeased(crtc)) in ProcRRSetCrtcGamma()
1683 if (stuff->size != crtc->gammaSize) in ProcRRSetCrtcGamma()
1687 green = red + crtc->gammaSize; in ProcRRSetCrtcGamma()
1688 blue = green + crtc->gammaSize; in ProcRRSetCrtcGamma()
1690 RRCrtcGammaSet(crtc, red, green, blue); in ProcRRSetCrtcGamma()
1701 RRCrtcPtr crtc; in ProcRRSetCrtcTransform() local
1710 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRSetCrtcTransform()
1712 if (RRCrtcIsLeased(crtc)) in ProcRRSetCrtcTransform()
1727 return RRCrtcTransformSet(crtc, &transform, &f_transform, &f_inverse, in ProcRRSetCrtcTransform()
1788 RRCrtcPtr crtc; in ProcRRGetCrtcTransform() local
1794 VERIFY_RR_CRTC(stuff->crtc, crtc, DixReadAccess); in ProcRRGetCrtcTransform()
1796 pending = &crtc->client_pending_transform; in ProcRRGetCrtcTransform()
1797 current = &crtc->client_current_transform; in ProcRRGetCrtcTransform()
1811 reply->hasTransforms = crtc->transforms; in ProcRRGetCrtcTransform()
1838 RRCrtcPtr crtc = pScrPriv->crtcs[i]; in check_all_screen_crtcs() local
1842 if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) in check_all_screen_crtcs()
1857 /* if we're trying to escape, clamp to the CRTC we're coming from */ in constrain_all_screen_crtcs()
1859 RRCrtcPtr crtc = pScrPriv->crtcs[i]; in constrain_all_screen_crtcs() local
1863 if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) in constrain_all_screen_crtcs()
1896 /* if we're moving inside a crtc, we're fine */ in RRConstrainCursorHarder()
1910 /* if we're trying to escape, clamp to the CRTC we're coming from */ in RRConstrainCursorHarder()
1938 RRCrtcPtr crtc = pScrPriv->crtcs[i]; in RRReplaceScanoutPixmap() local
1941 saved_scanout_pixmap[i] = crtc->scanout_pixmap; in RRReplaceScanoutPixmap()
1943 if (!crtc->mode && enable) in RRReplaceScanoutPixmap()
1945 if (!crtc->scanout_pixmap && !enable) in RRReplaceScanoutPixmap()
1949 if (crtc->scanout_pixmap_back) { in RRReplaceScanoutPixmap()
1954 size_fits = (crtc->mode && in RRReplaceScanoutPixmap()
1955 crtc->x == pDrawable->x && in RRReplaceScanoutPixmap()
1956 crtc->y == pDrawable->y && in RRReplaceScanoutPixmap()
1957 crtc->mode->mode.width == pDrawable->width && in RRReplaceScanoutPixmap()
1958 crtc->mode->mode.height == pDrawable->height); in RRReplaceScanoutPixmap()
1961 if (crtc->scanout_pixmap == pPixmap) { in RRReplaceScanoutPixmap()
1965 crtc->scanout_pixmap = NULL; in RRReplaceScanoutPixmap()
1969 crtc->scanout_pixmap = NULL; in RRReplaceScanoutPixmap()
1970 pScrPriv->rrCrtcSetScanoutPixmap(crtc, crtc->scanout_pixmap); in RRReplaceScanoutPixmap()
1972 (*pScrPriv->rrCrtcSet) (pDrawable->pScreen, crtc, crtc->mode, crtc->x, crtc->y, in RRReplaceScanoutPixmap()
1973 crtc->rotation, crtc->numOutputs, crtc->outputs); in RRReplaceScanoutPixmap()
1974 saved_scanout_pixmap[i] = crtc->scanout_pixmap; in RRReplaceScanoutPixmap()
1985 crtc->scanout_pixmap = pPixmap; in RRReplaceScanoutPixmap()
1993 RRCrtcPtr crtc = pScrPriv->crtcs[i]; in RRReplaceScanoutPixmap() local
1995 if (crtc->scanout_pixmap == saved_scanout_pixmap[i]) in RRReplaceScanoutPixmap()
1999 pScrPriv->rrCrtcSetScanoutPixmap(crtc, crtc->scanout_pixmap); in RRReplaceScanoutPixmap()
2001 (*pScrPriv->rrCrtcSet) (pDrawable->pScreen, crtc, crtc->mode, crtc->x, crtc->y, in RRReplaceScanoutPixmap()
2002 crtc->rotation, crtc->numOutputs, crtc->outputs); in RRReplaceScanoutPixmap()
2005 crtc->scanout_pixmap = saved_scanout_pixmap[i]; in RRReplaceScanoutPixmap()
2028 RRCrtcPtr crtc = pScrPriv->crtcs[i]; in RRHasScanoutPixmap() local
2030 if (crtc->scanout_pixmap) in RRHasScanoutPixmap()