summaryrefslogtreecommitdiff
path: root/exa/exa_offscreen.c
diff options
context:
space:
mode:
Diffstat (limited to 'exa/exa_offscreen.c')
-rw-r--r--exa/exa_offscreen.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/exa/exa_offscreen.c b/exa/exa_offscreen.c
index d62db9016..6b1a160ed 100644
--- a/exa/exa_offscreen.c
+++ b/exa/exa_offscreen.c
@@ -253,6 +253,26 @@ ExaOffscreenSwapIn (ScreenPtr pScreen)
exaOffscreenInit (pScreen);
}
+void
+exaEnableDisableFBAccess (int index, Bool enable)
+{
+ ScreenPtr pScreen = screenInfo.screens[index];
+ ExaScreenPriv (pScreen);
+
+ if (!enable) {
+ ExaOffscreenSwapOut (pScreen);
+ pExaScr->swappedOut = TRUE;
+ }
+
+ if (pExaScr->SavedEnableDisableFBAccess)
+ (*pExaScr->SavedEnableDisableFBAccess)(index, enable);
+
+ if (enable) {
+ ExaOffscreenSwapIn (pScreen);
+ pExaScr->swappedOut = FALSE;
+ }
+}
+
/* merge the next free area into this one */
static void
ExaOffscreenMerge (ExaOffscreenArea *area)