summaryrefslogtreecommitdiff
path: root/hw/xwin/winscrinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xwin/winscrinit.c')
-rw-r--r--hw/xwin/winscrinit.c66
1 files changed, 15 insertions, 51 deletions
diff --git a/hw/xwin/winscrinit.c b/hw/xwin/winscrinit.c
index a44e21fbd..33dcf70ac 100644
--- a/hw/xwin/winscrinit.c
+++ b/hw/xwin/winscrinit.c
@@ -38,31 +38,6 @@
#include "win.h"
#include "winmsg.h"
-#ifdef XWIN_MULTIWINDOWEXTWM
-static RootlessFrameProcsRec winMWExtWMProcs = {
- winMWExtWMCreateFrame,
- winMWExtWMDestroyFrame,
-
- winMWExtWMMoveFrame,
- winMWExtWMResizeFrame,
- winMWExtWMRestackFrame,
- winMWExtWMReshapeFrame,
- winMWExtWMUnmapFrame,
-
- winMWExtWMStartDrawing,
- winMWExtWMStopDrawing,
- winMWExtWMUpdateRegion,
- winMWExtWMDamageRects,
- winMWExtWMRootlessSwitchWindow,
- NULL, //winMWExtWMDoReorderWindow,
- NULL, //winMWExtWMHideWindow,
- NULL, //winMWExtWMUpdateColorMap,
-
- NULL, //winMWExtWMCopyBytes,
- winMWExtWMCopyWindow
-};
-#endif
-
/*
* Prototypes
*/
@@ -294,6 +269,11 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
return FALSE;
}
+ if ((pScreenInfo->dwBPP == 8) && (pScreenInfo->fCompositeWM)) {
+ ErrorF("-compositewm disabled due to 8bpp depth\n");
+ pScreenInfo->fCompositeWM = FALSE;
+ }
+
/* Apparently we need this for the render extension */
miSetPixmapDepths();
@@ -384,11 +364,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
/* Initialize the shadow framebuffer layer */
if ((pScreenInfo->dwEngine == WIN_SERVER_SHADOW_GDI
- || pScreenInfo->dwEngine == WIN_SERVER_SHADOW_DDNL)
-#ifdef XWIN_MULTIWINDOWEXTWM
- && !pScreenInfo->fMWExtWM
-#endif
- ) {
+ || pScreenInfo->dwEngine == WIN_SERVER_SHADOW_DDNL)) {
#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling shadowSetup ()\n");
#endif
@@ -403,23 +379,6 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
pScreen->CreateScreenResources = winCreateScreenResources;
}
-#ifdef XWIN_MULTIWINDOWEXTWM
- /* Handle multi-window external window manager mode */
- if (pScreenInfo->fMWExtWM) {
- winDebug("winScreenInit - MultiWindowExtWM - Calling RootlessInit\n");
-
- RootlessInit(pScreen, &winMWExtWMProcs);
-
- winDebug("winScreenInit - MultiWindowExtWM - RootlessInit returned\n");
-
- rootless_CopyBytes_threshold = 0;
- /* FIXME: How many? Profiling needed? */
- rootless_CopyWindow_threshold = 1;
-
- winWindowsWMExtensionInit();
- }
-#endif
-
/* Handle rootless mode */
if (pScreenInfo->fRootless) {
/* Define the WRAP macro temporarily for local use */
@@ -477,6 +436,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
WRAP(MoveWindow);
WRAP(CopyWindow);
WRAP(SetShape);
+ WRAP(ModifyPixmapHeader);
/* Assign multi-window window procedures to be top level procedures */
pScreen->CreateWindow = winCreateWindowMultiWindow;
@@ -492,6 +452,12 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
pScreen->CopyWindow = winCopyWindowMultiWindow;
pScreen->SetShape = winSetShapeMultiWindow;
+ if (pScreenInfo->fCompositeWM) {
+ pScreen->CreatePixmap = winCreatePixmapMultiwindow;
+ pScreen->DestroyPixmap = winDestroyPixmapMultiwindow;
+ pScreen->ModifyPixmapHeader = winModifyPixmapHeaderMultiwindow;
+ }
+
/* Undefine the WRAP macro, as it is not needed elsewhere */
#undef WRAP
}
@@ -519,9 +485,6 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
/* Set the ServerStarted flag to false */
pScreenPriv->fServerStarted = FALSE;
-#ifdef XWIN_MULTIWINDOWEXTWM
- pScreenPriv->fRestacking = FALSE;
-#endif
if (pScreenInfo->fMultiWindow) {
#if CYGDEBUG || YES
@@ -534,7 +497,8 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
&pScreenPriv->ptXMsgProc,
&pScreenPriv->pmServerStarted,
pScreenInfo->dwScreen,
- (HWND) &pScreenPriv->hwndScreen)) {
+ (HWND) &pScreenPriv->hwndScreen,
+ pScreenInfo->fCompositeWM)) {
ErrorF("winFinishScreenInitFB - winInitWM () failed.\n");
return FALSE;
}