From fc3fb062e0489746d271bc288321a61b876ec4a6 Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 5 Oct 2016 00:26:06 +0200 Subject: [PATCH] Utility: Add Parameters and NoWindowSystem option Temporary fix until Utility module has been split. Former-commit-id: 702929f41c8f1dd4015b64e9b331c150ad6fd953 [formerly f113bd948da6a8c5399aab48f53b6cb5ca272081] [formerly 593365938d7e3a835b94727ec6dc744a7a113822 [formerly e43d02e4e221e5c1d85320d71d1a258db44768d1]] Former-commit-id: 29e2dd7ff9ee608847e3f78a7474e3286343b152 [formerly cf10e1a9dd5ca6df0bdf39730e2b38e9ea0d673a] Former-commit-id: a479d4eb078b30d6e7b34bd53dba6366fad643de --- SDK/src/NDK/Sdk.cpp | 7 +++++++ include/Nazara/Utility/Utility.hpp | 4 ++++ src/Nazara/Utility/Utility.cpp | 16 +++++++++++++--- 3 files changed, 24 insertions(+), 3 deletions(-) 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; }