diff --git a/SDK/src/NDK/Sdk.cpp b/SDK/src/NDK/Sdk.cpp index bd3bf33e4..326eec502 100644 --- a/SDK/src/NDK/Sdk.cpp +++ b/SDK/src/NDK/Sdk.cpp @@ -59,6 +59,13 @@ namespace Ndk // Initialize the engine first // Shared modules + #ifdef NDK_SERVER + Nz::ParameterList parameters; + parameters.SetParameter("NoWindowSystem", true); + + Nz::Utility::SetParameters(parameters); + #endif + Nz::Lua::Initialize(); Nz::Noise::Initialize(); Nz::Physics::Initialize(); diff --git a/include/Nazara/Utility/Utility.hpp b/include/Nazara/Utility/Utility.hpp index 1beb98bcc..31ec543ee 100644 --- a/include/Nazara/Utility/Utility.hpp +++ b/include/Nazara/Utility/Utility.hpp @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -24,12 +25,15 @@ namespace Nz static bool IsInitialized(); + static void SetParameters(const ParameterList& parameters); + static void Uninitialize(); static unsigned int ComponentCount[ComponentType_Max+1]; static std::size_t ComponentStride[ComponentType_Max+1]; private: + static ParameterList s_initializationParameters; static unsigned int s_moduleReferenceCounter; }; } diff --git a/src/Nazara/Utility/Utility.cpp b/src/Nazara/Utility/Utility.cpp index 6b2f66353..231a3a93c 100644 --- a/src/Nazara/Utility/Utility.cpp +++ b/src/Nazara/Utility/Utility.cpp @@ -102,10 +102,14 @@ namespace Nz return false; } - if (!Window::Initialize()) + bool bParam; + if (!s_initializationParameters.GetBooleanParameter("NoWindowSystem", &bParam) || bParam) { - NazaraError("Failed to initialize window's system"); - return false; + if (!Window::Initialize()) + { + NazaraError("Failed to initialize window's system"); + return false; + } } // On enregistre les loaders pour les extensions @@ -147,6 +151,11 @@ namespace Nz return s_moduleReferenceCounter != 0; } + void Utility::SetParameters(const ParameterList& parameters) + { + s_initializationParameters = parameters; + } + void Utility::Uninitialize() { if (s_moduleReferenceCounter != 1) @@ -227,5 +236,6 @@ namespace Nz static_assert(ComponentType_Max+1 == 14, "Component stride array is incomplete"); + ParameterList Utility::s_initializationParameters; unsigned int Utility::s_moduleReferenceCounter = 0; }