From 03e094894b1553986ea72d05aa105f704e0749ca Mon Sep 17 00:00:00 2001 From: ShokerStlk Date: Mon, 20 Feb 2017 00:53:30 +0300 Subject: [PATCH] Added new startup keys for engine: -nosplash - removes the splash screen at engine launch. -splashnotop - allow to hide the splash screen by another window --- src/xrEngine/main.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/xrEngine/main.cpp b/src/xrEngine/main.cpp index 61d1df97007..d0224f35d7b 100644 --- a/src/xrEngine/main.cpp +++ b/src/xrEngine/main.cpp @@ -178,8 +178,11 @@ void Startup() g_SpatialSpace = new ISpatial_DB("Spatial obj"); g_SpatialSpacePhysic = new ISpatial_DB("Spatial phys"); // Destroy LOGO - DestroyWindow(logoWindow); - logoWindow = nullptr; + if (logoWindow != nullptr) + { + DestroyWindow(logoWindow); + logoWindow = nullptr; + } // Main cycle Memory.mem_usage(); Device.Run(); @@ -320,18 +323,21 @@ int RunApplication(pcstr commandLine) } #endif //SetThreadAffinityMask(GetCurrentThread(), 1); - logoWindow = CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_STARTUP), nullptr, LogoWndProc); - HWND logoPicture = GetDlgItem(logoWindow, IDC_STATIC_LOGO); - RECT logoRect; - GetWindowRect(logoPicture, &logoRect); + if (strstr(commandLine, "-nosplash") == 0) + { + logoWindow = CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_STARTUP), nullptr, LogoWndProc); + HWND logoPicture = GetDlgItem(logoWindow, IDC_STATIC_LOGO); + RECT logoRect; + GetWindowRect(logoPicture, &logoRect); #ifndef DEBUG - HWND prevWindow = HWND_TOPMOST; + HWND prevWindow = (strstr(commandLine, "-splashnotop") == NULL) ? HWND_TOPMOST : HWND_NOTOPMOST; #else - HWND prevWindow = HWND_NOTOPMOST; + HWND prevWindow = HWND_NOTOPMOST; #endif - SetWindowPos(logoWindow, prevWindow, 0, 0, logoRect.right - logoRect.left, logoRect.bottom - logoRect.top, - SWP_NOMOVE | SWP_SHOWWINDOW); - UpdateWindow(logoWindow); + SetWindowPos(logoWindow, prevWindow, 0, 0, logoRect.right - logoRect.left, logoRect.bottom - logoRect.top, + SWP_NOMOVE | SWP_SHOWWINDOW); + UpdateWindow(logoWindow); + } *g_sLaunchOnExit_app = 0; *g_sLaunchOnExit_params = 0;