dedicated gfx device surpression

augments $Video::forceDisplayAdapter = -1; to force usage of GFXAdapterType::NullDevice
skips trying to open a splash window for dedicated servers
bypasses guicanvas window display if window does not exist
This commit is contained in:
AzaezelX 2021-09-14 17:49:27 -05:00
parent 328319b853
commit 98a4e7fb12
3 changed files with 18 additions and 12 deletions

View file

@ -290,7 +290,7 @@ GFXAdapter *GFXInit::getBestAdapterChoice()
{
S32 adapterIdx = dAtoi(adapterDevice.c_str());
if (adapterIdx == -1)
adapter = chooseAdapter(adapterType, outputDevice.c_str());
adapter = chooseAdapter(NullDevice, outputDevice.c_str());
else
adapter = chooseAdapter(adapterType, adapterIdx);
}

View file

@ -258,17 +258,19 @@ bool GuiCanvas::onAdd()
// Make sure we're able to render.
newDevice->setAllowRender( true );
if(mDisplayWindow)
// NULL device returns a nullptr for getPlatformWindow
PlatformWindow* window = getPlatformWindow();
if (mDisplayWindow && window)
{
getPlatformWindow()->show();
window->show();
WindowManager->setDisplayWindow(true);
getPlatformWindow()->setDisplayWindow(true);
window->setDisplayWindow(true);
}
else
else if (window)
{
getPlatformWindow()->hide();
window->hide();
WindowManager->setDisplayWindow(false);
getPlatformWindow()->setDisplayWindow(false);
window->setDisplayWindow(false);
}
// Propagate add to parents.

View file

@ -1,10 +1,6 @@
$Core::windowIcon = "data/icon.png";
$Core::splashWindowImage = "data/splash.png";
// Display a splash window immediately to improve app responsiveness before
// engine is initialized and main window created.
displaySplashWindow($Core::splashWindowImage);
// Console does something.
setLogMode(6);
@ -20,6 +16,13 @@ ModuleDatabase.setModuleExtension("module");
ModuleDatabase.scanModules( "core", false );
ModuleDatabase.LoadExplicit( "CoreModule" );
// Display a splash window immediately to improve app responsiveness before
// engine is initialized and main window created.
if ($Server::Dedicated == false)
displaySplashWindow($Core::splashWindowImage);
else
$Video::forceDisplayAdapter = -1;
//-----------------------------------------------------------------------------
// Load any gameplay modules
ModuleDatabase.scanModules( "data", false );
@ -42,6 +45,7 @@ else
}
}
closeSplashWindow();
if ($Server::Dedicated == false)
closeSplashWindow();
echo("Engine initialized...");