diff options
Diffstat (limited to 'randr')
-rw-r--r-- | randr/randrstr.h | 6 | ||||
-rw-r--r-- | randr/rrcrtc.c | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/randr/randrstr.h b/randr/randrstr.h index 1baa91226..706e9a7b0 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -726,6 +726,12 @@ extern _X_EXPORT Bool RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable); /* + * Return if the screen has any scanout_pixmap's attached + */ +extern _X_EXPORT Bool + RRHasScanoutPixmap(ScreenPtr pScreen); + +/* * Crtc dispatch */ diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 8fb2bca8a..76365919a 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -1945,3 +1945,22 @@ RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable) return ret; } + +Bool +RRHasScanoutPixmap(ScreenPtr pScreen) +{ + rrScrPriv(pScreen); + int i; + + if (!pScreen->is_output_slave) + return FALSE; + + for (i = 0; i < pScrPriv->numCrtcs; i++) { + RRCrtcPtr crtc = pScrPriv->crtcs[i]; + + if (crtc->scanout_pixmap) + return TRUE; + } + + return FALSE; +} |