diff options
Diffstat (limited to 'xorg-server/randr/randr.c')
-rw-r--r-- | xorg-server/randr/randr.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/xorg-server/randr/randr.c b/xorg-server/randr/randr.c index aa1e71dcf..1346d1e9c 100644 --- a/xorg-server/randr/randr.c +++ b/xorg-server/randr/randr.c @@ -98,6 +98,7 @@ RRCloseScreen (int i, ScreenPtr pScreen) free(pScrPriv->crtcs);
free(pScrPriv->outputs);
+ free(pScrPriv->scanout_info);
free(pScrPriv);
RRNScreens -= 1; /* ok, one fewer screen with RandR running */
return (*pScreen->CloseScreen) (i, pScreen);
@@ -248,6 +249,8 @@ Bool RRScreenInit(ScreenPtr pScreen) pScrPriv->rrCrtcSet = NULL;
pScrPriv->rrCrtcSetGamma = NULL;
#endif
+ pScrPriv->scanout_info = NULL;
+ pScrPriv->n_scanout_info = 0;
#if RANDR_10_INTERFACE
pScrPriv->rrSetConfig = 0;
pScrPriv->rotations = RR_Rotate_0;
@@ -482,6 +485,18 @@ RRVerticalRefresh (xRRModeInfo *mode) return (CARD16) refresh;
}
+RRScanoutPixmapInfo *
+RRQueryScanoutPixmapInfo(ScreenPtr screen, int *n_info)
+{
+ rrScrPriv(screen);
+
+ if (!pScrPriv->scanout_info && pScrPriv->rrQueryScanoutPixmaps)
+ pScrPriv->scanout_info = pScrPriv->rrQueryScanoutPixmaps(screen,
+ &pScrPriv->n_scanout_info);
+ *n_info = pScrPriv->n_scanout_info;
+ return pScrPriv->scanout_info;
+}
+
static int
ProcRRDispatch (ClientPtr client)
{
|