summaryrefslogtreecommitdiff
path: root/randr
diff options
context:
space:
mode:
Diffstat (limited to 'randr')
-rw-r--r--randr/randrstr.h6
-rw-r--r--randr/rrcrtc.c19
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;
+}