From b2b5acff33d176e8b70ae9d9528f54ef9b25dc30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 29 Mar 2005 15:39:08 +0000 Subject: [PATCH] Made DISPLAYDRIVER a true compile time option. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12119 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/AppServer.cpp | 4 +- src/servers/app/Desktop.cpp | 79 ++++----- src/servers/app/RootLayer.cpp | 300 +++++++++++++++++----------------- src/servers/app/ServerApp.cpp | 9 +- 4 files changed, 188 insertions(+), 204 deletions(-) diff --git a/src/servers/app/AppServer.cpp b/src/servers/app/AppServer.cpp index 2fcc3a846f..e73a2e737b 100644 --- a/src/servers/app/AppServer.cpp +++ b/src/servers/app/AppServer.cpp @@ -618,14 +618,13 @@ void AppServer::DispatchMessage(int32 code, BPortLink &msg) } case B_QUIT_REQUESTED: { +#if DISPLAYDRIVER != HWDRIVER // Attached Data: // none // We've been asked to quit, so (for now) broadcast to all // test apps to quit. This situation will occur only when the server // is compiled as a regular Be application. - if(DISPLAYDRIVER== HWDRIVER) - break; Broadcast(AS_QUIT_APP); @@ -678,6 +677,7 @@ void AppServer::DispatchMessage(int32 code, BPortLink &msg) exit_thread(0); // we are now clear to exit +#endif break; } case AS_SET_SYSCURSOR_DEFAULTS: diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index c75b57cc43..a64ddb31a5 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -75,62 +75,53 @@ Desktop::~Desktop(void) } -void Desktop::Init(void) + +void +Desktop::Init(void) { - DisplayDriver *driver=NULL; + DisplayDriver *driver = NULL; + +#if DISPLAYDRIVER == HWDRIVER + // If we're using the AccelerantDriver for rendering, eventually we will loop through + // drivers until one can't initialize in order to support multiple monitors. For now, + // we'll just load one and be done with it. - switch(DISPLAYDRIVER) - { - case HWDRIVER: - { - // If we're using the AccelerantDriver for rendering, eventually we will loop through - // drivers until one can't initialize in order to support multiple monitors. For now, - // we'll just load one and be done with it. - - bool initDrivers = true; - while(initDrivers) - { - driver = new AccelerantDriver(); - AddDriver(driver); - initDrivers = false; - } - break; - } - case DIRECTDRIVER: - { - // It would be nice to have this for the default testing driver. Someday.... - driver = new DirectDriver(); - AddDriver(driver); - break; - } - case PAINTERDRIVER: - { - // It would be nice to have this for the default testing driver. Someday.... - driver = new DisplayDriverPainter(); - AddDriver(driver); - break; - } - default: - { - // It would be nice to not ever need this again.... - driver = new ViewDriver(); - AddDriver(driver); - break; - } + bool initDrivers = true; + while (initDrivers) { + driver = new AccelerantDriver(); + AddDriver(driver); + initDrivers = false; } - if(fScreenList.CountItems()<1) - { +#elif DISPLAYDRIVER == DIRECTDRIVER + // It would be nice to have this for the default testing driver. Someday.... + driver = new DirectDriver(); + AddDriver(driver); + +#elif DISPLAYDRIVER == PAINTERDRIVER + // It would be nice to have this for the default testing driver. Someday.... + driver = new DisplayDriverPainter(); + AddDriver(driver); + +#else + // It would be nice to not ever need this again.... + driver = new ViewDriver(); + AddDriver(driver); +#endif + + if (fScreenList.CountItems() < 1) { delete this; return; } - + InitMode(); SetActiveRootLayerByIndex(0); } -void Desktop::AddDriver(DisplayDriver *driver) + +void +Desktop::AddDriver(DisplayDriver *driver) { if (driver->Initialize()) { // TODO: be careful of screen initialization - monitor may not support 640x480 diff --git a/src/servers/app/RootLayer.cpp b/src/servers/app/RootLayer.cpp index 90e2fd9659..a1def6fa0a 100644 --- a/src/servers/app/RootLayer.cpp +++ b/src/servers/app/RootLayer.cpp @@ -1271,151 +1271,148 @@ void RootLayer::KeyboardEventHandler(int32 code, BPortLink& msg) STRACE(("Key Down: 0x%lx\n",scancode)); - if(DISPLAYDRIVER==HWDRIVER) +#if DISPLAYDRIVER == HWDRIVER + // Check for workspace change or safe video mode + if(scancode>0x01 && scancode<0x0e) { - // Check for workspace change or safe video mode - if(scancode>0x01 && scancode<0x0e) + if(scancode==0x0d) { - if(scancode==0x0d) + if(modifiers & (B_LEFT_COMMAND_KEY | + B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY)) { - if(modifiers & (B_LEFT_COMMAND_KEY | - B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY)) - { - // TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change) - STRACE(("Safe Video Mode invoked - code unimplemented\n")); - if (string) - free(string); - break; - } + // TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change) + STRACE(("Safe Video Mode invoked - code unimplemented\n")); + if (string) + free(string); + break; } + } + + if(modifiers & B_CONTROL_KEY) + { + STRACE(("Set Workspace %ld\n",scancode-1)); - if(modifiers & B_CONTROL_KEY) - { - STRACE(("Set Workspace %ld\n",scancode-1)); - - //TODO: SetWorkspace in KeyboardEventHandler - //SetWorkspace(scancode-2); - if (string) - free(string); - break; - } - } - - // Tab key - if(scancode==0x26 && (modifiers & B_CONTROL_KEY)) - { - //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); - //if(deskbar) - //{ - printf("Send Twitcher message key to Deskbar - unimplmemented\n"); - if (string) - free(string); - break; - //} - } - - // PrintScreen - if(scancode==0xe) - { - if(GetDisplayDriver()) - { - char filename[128]; - BEntry entry; - - sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); - entry.SetTo(filename); - - while(entry.Exists()) - { - fScreenShotIndex++; - sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); - } - fScreenShotIndex++; - GetDisplayDriver()->DumpToFile(filename); - if (string) - free(string); - break; - } - } + //TODO: SetWorkspace in KeyboardEventHandler + //SetWorkspace(scancode-2); + if (string) + free(string); + break; + } } - else + + // Tab key + if(scancode==0x26 && (modifiers & B_CONTROL_KEY)) { - // F12 - if(scancode>0x1 && scancode<0xe) + //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); + //if(deskbar) + //{ + printf("Send Twitcher message key to Deskbar - unimplmemented\n"); + if (string) + free(string); + break; + //} + } + + // PrintScreen + if(scancode==0xe) + { + if(GetDisplayDriver()) { - if(scancode==0xd) + char filename[128]; + BEntry entry; + + sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); + entry.SetTo(filename); + + while(entry.Exists()) { - if(modifiers & (B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY | B_LEFT_OPTION_KEY)) - { - // TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change) - STRACE(("Safe Video Mode invoked - code unimplemented\n")); - if (string) - free(string); - break; - } - } - if(modifiers & (B_LEFT_SHIFT_KEY | B_LEFT_CONTROL_KEY)) - { - STRACE(("Set Workspace %ld\n",scancode-1)); - //TODO: SetWorkspace in KeyboardEventHandler - if (scancode - 1 > 0 && scancode -1 <= fWsCount - && scancode - 2 != fActiveWksIndex) - { - WinBorder *exFocus = FocusWinBorder(); - - SetActiveWorkspace(scancode-2); - - get_workspace_windows(); - - invalidate_layer(this, fFull); - - draw_window_tab(exFocus, FocusWinBorder()); - } - if (string) - free(string); - break; - } - } - - //Tab - if(scancode==0x26 && (modifiers & B_SHIFT_KEY)) - { - STRACE(("Twitcher\n")); - //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); - //if(deskbar) - //{ - printf("Send Twitcher message key to Deskbar - unimplmemented\n"); - if (string) - free(string); - break; - //} - } - - // Pause/Break - if(scancode==0x7f) - { - if(GetDisplayDriver()) - { - char filename[128]; - BEntry entry; - - sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); - entry.SetTo(filename); - - while(entry.Exists()) - { - fScreenShotIndex++; - sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); - } fScreenShotIndex++; - - GetDisplayDriver()->DumpToFile(filename); - if (string) - free(string); - break; + sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); } + fScreenShotIndex++; + GetDisplayDriver()->DumpToFile(filename); + if (string) + free(string); + break; } } +#else // DISPLAYDRIVER != HWDRIVER + // F12 + if(scancode>0x1 && scancode<0xe) + { + if(scancode==0xd) + { + if(modifiers & (B_LEFT_CONTROL_KEY | B_LEFT_SHIFT_KEY | B_LEFT_OPTION_KEY)) + { + // TODO: Set to Safe Mode in KeyboardEventHandler:B_KEY_DOWN. (DisplayDriver API change) + STRACE(("Safe Video Mode invoked - code unimplemented\n")); + if (string) + free(string); + break; + } + } + if(modifiers & (B_LEFT_SHIFT_KEY | B_LEFT_CONTROL_KEY)) + { + STRACE(("Set Workspace %ld\n",scancode-1)); + //TODO: SetWorkspace in KeyboardEventHandler + if (scancode - 1 > 0 && scancode -1 <= fWsCount + && scancode - 2 != fActiveWksIndex) + { + WinBorder *exFocus = FocusWinBorder(); + + SetActiveWorkspace(scancode-2); + + get_workspace_windows(); + + invalidate_layer(this, fFull); + + draw_window_tab(exFocus, FocusWinBorder()); + } + if (string) + free(string); + break; + } + } + + //Tab + if(scancode==0x26 && (modifiers & B_SHIFT_KEY)) + { + STRACE(("Twitcher\n")); + //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); + //if(deskbar) + //{ + printf("Send Twitcher message key to Deskbar - unimplmemented\n"); + if (string) + free(string); + break; + //} + } + + // Pause/Break + if(scancode==0x7f) + { + if(GetDisplayDriver()) + { + char filename[128]; + BEntry entry; + + sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); + entry.SetTo(filename); + + while(entry.Exists()) + { + fScreenShotIndex++; + sprintf(filename,"/boot/home/screen%ld.png",fScreenShotIndex); + } + fScreenShotIndex++; + + GetDisplayDriver()->DumpToFile(filename); + if (string) + free(string); + break; + } + } +#endif // DISPLAYDRIVER != HWDRIVER // We got this far, so apparently it's safe to pass to the active // window. @@ -1479,31 +1476,28 @@ void RootLayer::KeyboardEventHandler(int32 code, BPortLink& msg) STRACE(("Key Up: 0x%lx\n",scancode)); - if(DISPLAYDRIVER==HWDRIVER) +#if DISPLAYDRIVER == HWDRIVER + // Tab key + if(scancode==0x26 && (modifiers & B_CONTROL_KEY)) { - // Tab key - if(scancode==0x26 && (modifiers & B_CONTROL_KEY)) - { - //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); - //if(deskbar) - //{ - printf("Send Twitcher message key to Deskbar - unimplmemented\n"); - break; - //} - } + //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); + //if(deskbar) + //{ + printf("Send Twitcher message key to Deskbar - unimplmemented\n"); + break; + //} } - else +#else // DISPLAYDRIVER != HWDRIVER + if(scancode==0x26 && (modifiers & B_LEFT_SHIFT_KEY)) { - if(scancode==0x26 && (modifiers & B_LEFT_SHIFT_KEY)) - { - //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); - //if(deskbar) - //{ - printf("Send Twitcher message key to Deskbar - unimplmemented\n"); - break; - //} - } + //ServerApp *deskbar=app_server->FindApp("application/x-vnd.Be-TSKB"); + //if(deskbar) + //{ + printf("Send Twitcher message key to Deskbar - unimplmemented\n"); + break; + //} } +#endif // We got this far, so apparently it's safe to pass to the active // window. diff --git a/src/servers/app/ServerApp.cpp b/src/servers/app/ServerApp.cpp index ce8fd24ed8..58f8ad9775 100644 --- a/src/servers/app/ServerApp.cpp +++ b/src/servers/app/ServerApp.cpp @@ -380,11 +380,10 @@ int32 ServerApp::MonitorApp(void *data) // If we are using the real, accelerated version of the // DisplayDriver, we do NOT want the user to be able shut down // the server. The results would NOT be pretty - if(DISPLAYDRIVER!=HWDRIVER) - { - BMessage pleaseQuit(B_QUIT_REQUESTED); - app->SendMessageToClient(&pleaseQuit); - } +#if DISPLAYDRIVER != HWDRIVER + BMessage pleaseQuit(B_QUIT_REQUESTED); + app->SendMessageToClient(&pleaseQuit); +#endif break; }