From c2da67d47302111514cd9bcf189a84e7c45e139e Mon Sep 17 00:00:00 2001 From: Areloch Date: Tue, 15 Jul 2014 17:44:19 -0500 Subject: [PATCH 1/5] Fixes the splash screen so that it displays until the game has actually done initial setup and can display GUI elements. This prevents the ugly blank window just sitting there while the GUI loads. --- Engine/source/console/consoleFunctions.cpp | 7 +++++++ Engine/source/gui/core/guiCanvas.cpp | 18 ++++++++++++++++++ Engine/source/platform/platform.h | 3 +++ Engine/source/windowManager/platformWindow.h | 7 +++++++ .../source/windowManager/platformWindowMgr.h | 3 +++ .../windowManager/win32/win32SplashScreen.cpp | 7 +++++++ .../source/windowManager/win32/win32Window.cpp | 8 ++++++-- .../windowManager/win32/win32WindowMgr.cpp | 9 +++++---- .../windowManager/win32/win32WindowMgr.h | 6 ++++++ Templates/Empty/game/scripts/gui/startupGui.cs | 6 ++++++ Templates/Full/game/scripts/gui/startupGui.cs | 6 ++++++ 11 files changed, 74 insertions(+), 6 deletions(-) diff --git a/Engine/source/console/consoleFunctions.cpp b/Engine/source/console/consoleFunctions.cpp index f5c90194e..2dea93f44 100644 --- a/Engine/source/console/consoleFunctions.cpp +++ b/Engine/source/console/consoleFunctions.cpp @@ -1589,6 +1589,13 @@ DefineEngineFunction( displaySplashWindow, bool, (const char* path), ("art/gui/s return Platform::displaySplashWindow(path); } +DefineEngineFunction( closeSplashWindow, void, (),, + "Close our startup splash window.\n\n" + "@note This is currently only implemented on Windows.\n\n" + "@ingroup Platform" ) +{ + Platform::closeSplashWindow(); +} //----------------------------------------------------------------------------- DefineEngineFunction( getWebDeployment, bool, (),, diff --git a/Engine/source/gui/core/guiCanvas.cpp b/Engine/source/gui/core/guiCanvas.cpp index cbef4673c..f5a84e77e 100644 --- a/Engine/source/gui/core/guiCanvas.cpp +++ b/Engine/source/gui/core/guiCanvas.cpp @@ -2683,3 +2683,21 @@ ConsoleMethod( GuiCanvas, setVideoMode, void, 5, 8, // Store the new mode into a pref. Con::setVariable( "$pref::Video::mode", vm.toString() ); } + +ConsoleMethod( GuiCanvas, showWindow, void, 2, 2, "" ) +{ + if (!object->getPlatformWindow()) + return; + + object->getPlatformWindow()->show(); + WindowManager->setDisplayWindow(true); + object->getPlatformWindow()->setDisplayWindow(true); +} + +ConsoleMethod( GuiCanvas, hideWindow, void, 2, 2, "" ) +{ + if (!object->getPlatformWindow()) + return; + + object->getPlatformWindow()->hide(); +} \ No newline at end of file diff --git a/Engine/source/platform/platform.h b/Engine/source/platform/platform.h index 3b5a57358..d390eef5c 100644 --- a/Engine/source/platform/platform.h +++ b/Engine/source/platform/platform.h @@ -338,6 +338,9 @@ namespace Platform // display Splash Window bool displaySplashWindow( String path ); + // close Splash Window + bool closeSplashWindow(); + void openFolder( const char* path ); // Open file at the OS level, according to registered file-types. diff --git a/Engine/source/windowManager/platformWindow.h b/Engine/source/windowManager/platformWindow.h index 11d28d384..680e8b12b 100644 --- a/Engine/source/windowManager/platformWindow.h +++ b/Engine/source/windowManager/platformWindow.h @@ -89,6 +89,10 @@ protected: /// Offscreen Render bool mOffscreenRender; + /// This is set as part of the canvas being shown, and flags that the windows should render as normal from now on. + // Basically a flag that lets the window manager know that we've handled the splash screen, and to operate as normal. + bool mDisplayWindow; + /// Protected constructor so that the win PlatformWindow() { @@ -104,6 +108,7 @@ protected: mSuppressReset = false; mOffscreenRender = false; + mDisplayWindow = false; } public: @@ -180,6 +185,8 @@ public: /// This is called to poll the window as to it's idle state. virtual bool getOffscreenRender() { return mOffscreenRender; }; + /// Set whether this window is should display as normal + virtual void setDisplayWindow(bool val ) { mDisplayWindow = val; }; /// Set Focused State (Foreground) /// diff --git a/Engine/source/windowManager/platformWindowMgr.h b/Engine/source/windowManager/platformWindowMgr.h index b744af56b..949e581a8 100644 --- a/Engine/source/windowManager/platformWindowMgr.h +++ b/Engine/source/windowManager/platformWindowMgr.h @@ -133,6 +133,9 @@ public: /// This method removes the curtain window. virtual void raiseCurtain()=0; + /// This method indicates to created windows to show as normal. + virtual void setDisplayWindow(bool set)=0; + private: /// Process command line arguments from StandardMainLoop. This is done to /// allow web plugin functionality, where we are passed platform-specific diff --git a/Engine/source/windowManager/win32/win32SplashScreen.cpp b/Engine/source/windowManager/win32/win32SplashScreen.cpp index 83189dac3..29542ef41 100644 --- a/Engine/source/windowManager/win32/win32SplashScreen.cpp +++ b/Engine/source/windowManager/win32/win32SplashScreen.cpp @@ -121,6 +121,13 @@ void CloseSplashWindow(HINSTANCE hinst) } +bool Platform::closeSplashWindow() +{ + CloseSplashWindow(GetModuleHandle(NULL)); + + return true; +} + bool Platform::displaySplashWindow( String path ) { if(path.isEmpty()) diff --git a/Engine/source/windowManager/win32/win32Window.cpp b/Engine/source/windowManager/win32/win32Window.cpp index 0cbb59433..eb72a3153 100644 --- a/Engine/source/windowManager/win32/win32Window.cpp +++ b/Engine/source/windowManager/win32/win32Window.cpp @@ -153,7 +153,9 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode ) { SetWindowLong( getHWND(), GWL_STYLE, WS_POPUP); SetWindowPos( getHWND(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED); - ShowWindow(getHWND(), SW_SHOWNORMAL); + + if(mDisplayWindow) + ShowWindow(getHWND(), SW_SHOWNORMAL); // Clear the menu bar from the window for full screen HMENU menu = GetMenu(getHWND()); @@ -216,7 +218,9 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode ) // We have to force Win32 to update the window frame and make the window // visible and no longer topmost - this code might be possible to simplify. SetWindowPos( getHWND(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED); - ShowWindow( getHWND(), SW_SHOWNORMAL); + + if(mDisplayWindow) + ShowWindow( getHWND(), SW_SHOWNORMAL); } mFullscreen = false; diff --git a/Engine/source/windowManager/win32/win32WindowMgr.cpp b/Engine/source/windowManager/win32/win32WindowMgr.cpp index 3777a01f6..266049b6b 100644 --- a/Engine/source/windowManager/win32/win32WindowMgr.cpp +++ b/Engine/source/windowManager/win32/win32WindowMgr.cpp @@ -54,6 +54,8 @@ Win32WindowManager::Win32WindowManager() mOffscreenRender = false; + mDisplayWindow = false; + buildMonitorsList(); } @@ -263,11 +265,10 @@ PlatformWindow *Win32WindowManager::createWindow(GFXDevice *device, const GFXVid // If we're not rendering offscreen, make sure our window is shown and drawn to. - if (!mOffscreenRender) - ShowWindow( w32w->mWindowHandle, SW_SHOWDEFAULT ); + w32w->setDisplayWindow(mDisplayWindow); - // Close any splash screen we created - CloseSplashWindow(winState.appInstance); + if (!mOffscreenRender && mDisplayWindow) + ShowWindow( w32w->mWindowHandle, SW_SHOWDEFAULT ); // Bind the window to the specified device. if(device) diff --git a/Engine/source/windowManager/win32/win32WindowMgr.h b/Engine/source/windowManager/win32/win32WindowMgr.h index be9cdaa42..5282d116b 100644 --- a/Engine/source/windowManager/win32/win32WindowMgr.h +++ b/Engine/source/windowManager/win32/win32WindowMgr.h @@ -56,6 +56,10 @@ class Win32WindowManager : public PlatformWindowManager // is intended for offscreen rendering bool mOffscreenRender; + /// This is set as part of the canvas being shown, and flags that the windows should render as normal from now on. + // Basically a flag that lets the window manager know that we've handled the splash screen, and to operate as normal. + bool mDisplayWindow; + /// Internal structure used when enumerating monitors struct MonitorInfo { HMONITOR monitorHandle; @@ -117,6 +121,8 @@ public: virtual void lowerCurtain(); virtual void raiseCurtain(); + + virtual void setDisplayWindow(bool set) { mDisplayWindow = set; } }; #endif \ No newline at end of file diff --git a/Templates/Empty/game/scripts/gui/startupGui.cs b/Templates/Empty/game/scripts/gui/startupGui.cs index 675daeafa..d0226a9bf 100644 --- a/Templates/Empty/game/scripts/gui/startupGui.cs +++ b/Templates/Empty/game/scripts/gui/startupGui.cs @@ -29,6 +29,12 @@ function loadStartup() // The index of the current splash screen $StartupIdx = 0; + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + // A list of the splash screens and logos // to cycle through. Note that they have to // be in consecutive numerical order diff --git a/Templates/Full/game/scripts/gui/startupGui.cs b/Templates/Full/game/scripts/gui/startupGui.cs index 675daeafa..d0226a9bf 100644 --- a/Templates/Full/game/scripts/gui/startupGui.cs +++ b/Templates/Full/game/scripts/gui/startupGui.cs @@ -29,6 +29,12 @@ function loadStartup() // The index of the current splash screen $StartupIdx = 0; + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + // A list of the splash screens and logos // to cycle through. Note that they have to // be in consecutive numerical order From 2864edf2915d47bd4cc5194c792c70eefefa5396 Mon Sep 17 00:00:00 2001 From: Areloch Date: Tue, 15 Jul 2014 17:52:27 -0500 Subject: [PATCH 2/5] Fixed spacing --- Engine/source/windowManager/platformWindowMgr.h | 2 +- Engine/source/windowManager/win32/win32Window.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Engine/source/windowManager/platformWindowMgr.h b/Engine/source/windowManager/platformWindowMgr.h index 949e581a8..f2089f51d 100644 --- a/Engine/source/windowManager/platformWindowMgr.h +++ b/Engine/source/windowManager/platformWindowMgr.h @@ -133,7 +133,7 @@ public: /// This method removes the curtain window. virtual void raiseCurtain()=0; - /// This method indicates to created windows to show as normal. + /// This method indicates to created windows to show as normal. virtual void setDisplayWindow(bool set)=0; private: diff --git a/Engine/source/windowManager/win32/win32Window.cpp b/Engine/source/windowManager/win32/win32Window.cpp index eb72a3153..3b95a223a 100644 --- a/Engine/source/windowManager/win32/win32Window.cpp +++ b/Engine/source/windowManager/win32/win32Window.cpp @@ -155,7 +155,7 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode ) SetWindowPos( getHWND(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED); if(mDisplayWindow) - ShowWindow(getHWND(), SW_SHOWNORMAL); + ShowWindow(getHWND(), SW_SHOWNORMAL); // Clear the menu bar from the window for full screen HMENU menu = GetMenu(getHWND()); @@ -220,7 +220,7 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode ) SetWindowPos( getHWND(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED); if(mDisplayWindow) - ShowWindow( getHWND(), SW_SHOWNORMAL); + ShowWindow( getHWND(), SW_SHOWNORMAL); } mFullscreen = false; From 0878f005c05baf50696bf1dbc67fb7bad2b775a4 Mon Sep 17 00:00:00 2001 From: Areloch Date: Mon, 4 Aug 2014 21:28:36 -0500 Subject: [PATCH 3/5] Fixed the pure virtual function to be an empty one, which should resolve the linux build failure. Also tweaked the loading methodology to have the canvas by default assume it should force the window display as soon as it can. You can set the canvas to not do that when it's created via the new displayWindow variable. This way, old templates and projects should work as normal without changes, while the new templates are built to take advantage of the nicer splash screen arrangement. --- Engine/source/gui/core/guiCanvas.cpp | 20 ++++++++++++++++++- Engine/source/gui/core/guiCanvas.h | 2 ++ .../source/windowManager/platformWindowMgr.h | 2 +- .../windowManager/win32/win32WindowMgr.cpp | 3 +++ Templates/Empty/game/main.cs | 5 ++++- Templates/Full/game/main.cs | 5 ++++- 6 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Engine/source/gui/core/guiCanvas.cpp b/Engine/source/gui/core/guiCanvas.cpp index f5a84e77e..1d5166fce 100644 --- a/Engine/source/gui/core/guiCanvas.cpp +++ b/Engine/source/gui/core/guiCanvas.cpp @@ -121,7 +121,8 @@ GuiCanvas::GuiCanvas(): GuiControl(), mMiddleMouseLast(false), mRightMouseLast(false), mPlatformWindow(NULL), - mLastRenderMs(0) + mLastRenderMs(0), + mDisplayWindow(true) { setBounds(0, 0, 640, 480); mAwake = true; @@ -176,6 +177,8 @@ void GuiCanvas::initPersistFields() addGroup("Canvas Rendering"); addProtectedField( "numFences", TypeS32, Offset( mNumFences, GuiCanvas ), &setProtectedNumFences, &defaultProtectedGetFn, "The number of GFX fences to use." ); + + addField("displayWindow", TypeBool, Offset(mDisplayWindow, GuiCanvas), "Controls if the canvas window is rendered or not." ); endGroup("Canvas Rendering"); Parent::initPersistFields(); @@ -252,6 +255,19 @@ bool GuiCanvas::onAdd() // Make sure we're able to render. newDevice->setAllowRender( true ); + if(mDisplayWindow) + { + getPlatformWindow()->show(); + WindowManager->setDisplayWindow(true); + getPlatformWindow()->setDisplayWindow(true); + } + else + { + getPlatformWindow()->hide(); + WindowManager->setDisplayWindow(false); + getPlatformWindow()->setDisplayWindow(false); + } + // Propagate add to parents. // CodeReview - if GuiCanvas fails to add for whatever reason, what happens to // all the event registration above? @@ -2700,4 +2716,6 @@ ConsoleMethod( GuiCanvas, hideWindow, void, 2, 2, "" ) return; object->getPlatformWindow()->hide(); + WindowManager->setDisplayWindow(false); + object->getPlatformWindow()->setDisplayWindow(false); } \ No newline at end of file diff --git a/Engine/source/gui/core/guiCanvas.h b/Engine/source/gui/core/guiCanvas.h index 04af6d692..9d3ed8b10 100644 --- a/Engine/source/gui/core/guiCanvas.h +++ b/Engine/source/gui/core/guiCanvas.h @@ -108,6 +108,8 @@ protected: bool mClampTorqueCursor; bool mAlwaysHandleMouseButtons; + bool mDisplayWindow; + /// @} /// @name Mouse Input diff --git a/Engine/source/windowManager/platformWindowMgr.h b/Engine/source/windowManager/platformWindowMgr.h index f2089f51d..41fcd8c9d 100644 --- a/Engine/source/windowManager/platformWindowMgr.h +++ b/Engine/source/windowManager/platformWindowMgr.h @@ -134,7 +134,7 @@ public: virtual void raiseCurtain()=0; /// This method indicates to created windows to show as normal. - virtual void setDisplayWindow(bool set)=0; + virtual void setDisplayWindow(bool set){} private: /// Process command line arguments from StandardMainLoop. This is done to diff --git a/Engine/source/windowManager/win32/win32WindowMgr.cpp b/Engine/source/windowManager/win32/win32WindowMgr.cpp index 266049b6b..d9e0cc22d 100644 --- a/Engine/source/windowManager/win32/win32WindowMgr.cpp +++ b/Engine/source/windowManager/win32/win32WindowMgr.cpp @@ -268,7 +268,10 @@ PlatformWindow *Win32WindowManager::createWindow(GFXDevice *device, const GFXVid w32w->setDisplayWindow(mDisplayWindow); if (!mOffscreenRender && mDisplayWindow) + { ShowWindow( w32w->mWindowHandle, SW_SHOWDEFAULT ); + CloseSplashWindow(winState.appInstance); + } // Bind the window to the specified device. if(device) diff --git a/Templates/Empty/game/main.cs b/Templates/Empty/game/main.cs index bd1333e6a..512c0cc4e 100644 --- a/Templates/Empty/game/main.cs +++ b/Templates/Empty/game/main.cs @@ -38,7 +38,10 @@ function createCanvas(%windowTitle) } // Create the Canvas - %foo = new GuiCanvas(Canvas); + %foo = new GuiCanvas(Canvas) + { + displayWindow = false; + }; // Set the window title if (isObject(Canvas)) diff --git a/Templates/Full/game/main.cs b/Templates/Full/game/main.cs index 11c7348d0..d8fc36dbc 100644 --- a/Templates/Full/game/main.cs +++ b/Templates/Full/game/main.cs @@ -38,7 +38,10 @@ function createCanvas(%windowTitle) } // Create the Canvas - %foo = new GuiCanvas(Canvas); + %foo = new GuiCanvas(Canvas) + { + displayWindow = false; + }; // Set the window title if (isObject(Canvas)) From 346ad5bdaad625dca798354f109eb004e7df7b2a Mon Sep 17 00:00:00 2001 From: Daniel Buckmaster Date: Sat, 16 Aug 2014 11:28:53 +1000 Subject: [PATCH 4/5] Finished up splash screen implementation. * Added stub methods for non-Windows platforms * Move canvas show to after tools have loaded * Fix a tab --- Engine/source/gui/core/guiCanvas.cpp | 2 +- Engine/source/platformMac/macCocoaPlatform.mm | 5 +++++ Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp | 1 + Templates/Empty/game/main.cs | 9 +++++++++ Templates/Empty/game/main.cs.in | 9 +++++++++ Templates/Empty/game/scripts/gui/startupGui.cs | 6 ------ Templates/Full/game/main.cs | 9 +++++++++ Templates/Full/game/main.cs.in | 9 +++++++++ Templates/Full/game/scripts/gui/startupGui.cs | 6 ------ 9 files changed, 43 insertions(+), 13 deletions(-) diff --git a/Engine/source/gui/core/guiCanvas.cpp b/Engine/source/gui/core/guiCanvas.cpp index 1d5166fce..ad5646fe6 100644 --- a/Engine/source/gui/core/guiCanvas.cpp +++ b/Engine/source/gui/core/guiCanvas.cpp @@ -2716,6 +2716,6 @@ ConsoleMethod( GuiCanvas, hideWindow, void, 2, 2, "" ) return; object->getPlatformWindow()->hide(); - WindowManager->setDisplayWindow(false); + WindowManager->setDisplayWindow(false); object->getPlatformWindow()->setDisplayWindow(false); } \ No newline at end of file diff --git a/Engine/source/platformMac/macCocoaPlatform.mm b/Engine/source/platformMac/macCocoaPlatform.mm index 24b8808e9..286aa44e2 100644 --- a/Engine/source/platformMac/macCocoaPlatform.mm +++ b/Engine/source/platformMac/macCocoaPlatform.mm @@ -70,6 +70,11 @@ bool Platform::displaySplashWindow() return false; } +bool Platform::closeSplashWindow() +{ + return false; +} + #pragma mark ---- File IO ---- //----------------------------------------------------------------------------- bool dPathCopy(const char* source, const char* dest, bool nooverwrite) diff --git a/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp b/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp index 770fd0680..39948914b 100644 --- a/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp +++ b/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp @@ -93,6 +93,7 @@ void Platform::openFile(const char *path) { } // window bool Platform::displaySplashWindow(String path) { return false; } +bool Platform::closeSplashWindow() { return false; } // font PlatformFont *createPlatformFont(const char *name, U32 size, U32 charset) { return NULL; } diff --git a/Templates/Empty/game/main.cs b/Templates/Empty/game/main.cs index 512c0cc4e..5d26b7fca 100644 --- a/Templates/Empty/game/main.cs +++ b/Templates/Empty/game/main.cs @@ -249,6 +249,15 @@ if ($displayHelp) { else { onStart(); echo("Engine initialized..."); + + if( !$isDedicated ) + { + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + } // Auto-load on the 360 if( $platform $= "xenon" ) diff --git a/Templates/Empty/game/main.cs.in b/Templates/Empty/game/main.cs.in index db8436e7d..dbabc4a2f 100644 --- a/Templates/Empty/game/main.cs.in +++ b/Templates/Empty/game/main.cs.in @@ -246,6 +246,15 @@ if ($displayHelp) { else { onStart(); echo("Engine initialized..."); + + if( !$isDedicated ) + { + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + } // Auto-load on the 360 if( $platform $= "xenon" ) diff --git a/Templates/Empty/game/scripts/gui/startupGui.cs b/Templates/Empty/game/scripts/gui/startupGui.cs index d0226a9bf..675daeafa 100644 --- a/Templates/Empty/game/scripts/gui/startupGui.cs +++ b/Templates/Empty/game/scripts/gui/startupGui.cs @@ -29,12 +29,6 @@ function loadStartup() // The index of the current splash screen $StartupIdx = 0; - // As we know at this point that the initial load is complete, - // we can hide any splash screen we have, and show the canvas. - // This keeps things looking nice, instead of having a blank window - closeSplashWindow(); - Canvas.showWindow(); - // A list of the splash screens and logos // to cycle through. Note that they have to // be in consecutive numerical order diff --git a/Templates/Full/game/main.cs b/Templates/Full/game/main.cs index d8fc36dbc..96794899a 100644 --- a/Templates/Full/game/main.cs +++ b/Templates/Full/game/main.cs @@ -249,6 +249,15 @@ if ($displayHelp) { else { onStart(); echo("Engine initialized..."); + + if( !$isDedicated ) + { + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + } // Auto-load on the 360 if( $platform $= "xenon" ) diff --git a/Templates/Full/game/main.cs.in b/Templates/Full/game/main.cs.in index db8436e7d..dbabc4a2f 100644 --- a/Templates/Full/game/main.cs.in +++ b/Templates/Full/game/main.cs.in @@ -246,6 +246,15 @@ if ($displayHelp) { else { onStart(); echo("Engine initialized..."); + + if( !$isDedicated ) + { + // As we know at this point that the initial load is complete, + // we can hide any splash screen we have, and show the canvas. + // This keeps things looking nice, instead of having a blank window + closeSplashWindow(); + Canvas.showWindow(); + } // Auto-load on the 360 if( $platform $= "xenon" ) diff --git a/Templates/Full/game/scripts/gui/startupGui.cs b/Templates/Full/game/scripts/gui/startupGui.cs index d0226a9bf..675daeafa 100644 --- a/Templates/Full/game/scripts/gui/startupGui.cs +++ b/Templates/Full/game/scripts/gui/startupGui.cs @@ -29,12 +29,6 @@ function loadStartup() // The index of the current splash screen $StartupIdx = 0; - // As we know at this point that the initial load is complete, - // we can hide any splash screen we have, and show the canvas. - // This keeps things looking nice, instead of having a blank window - closeSplashWindow(); - Canvas.showWindow(); - // A list of the splash screens and logos // to cycle through. Note that they have to // be in consecutive numerical order From 76b2e4e9756ea379e939249874764abc44527756 Mon Sep 17 00:00:00 2001 From: Daniel Buckmaster Date: Sat, 16 Aug 2014 11:52:50 +1000 Subject: [PATCH 5/5] Fixed template scripts. --- Templates/Empty/game/main.cs.in | 5 ++++- Templates/Full/game/main.cs.in | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Templates/Empty/game/main.cs.in b/Templates/Empty/game/main.cs.in index dbabc4a2f..d3b5791ef 100644 --- a/Templates/Empty/game/main.cs.in +++ b/Templates/Empty/game/main.cs.in @@ -38,7 +38,10 @@ function createCanvas(%windowTitle) } // Create the Canvas - %foo = new GuiCanvas(Canvas); + %foo = new GuiCanvas(Canvas) + { + displayWindow = false; + }; // Set the window title if (isObject(Canvas)) diff --git a/Templates/Full/game/main.cs.in b/Templates/Full/game/main.cs.in index dbabc4a2f..d3b5791ef 100644 --- a/Templates/Full/game/main.cs.in +++ b/Templates/Full/game/main.cs.in @@ -38,7 +38,10 @@ function createCanvas(%windowTitle) } // Create the Canvas - %foo = new GuiCanvas(Canvas); + %foo = new GuiCanvas(Canvas) + { + displayWindow = false; + }; // Set the window title if (isObject(Canvas))