diff options
Diffstat (limited to 'randr/randr.c')
-rw-r--r-- | randr/randr.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/randr/randr.c b/randr/randr.c index 607770520..c22657ee2 100644 --- a/randr/randr.c +++ b/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) { |