From 71aa4d53a3f3eefb477d3b317cc2e82319bcc68e Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 28 Oct 2016 22:31:04 +0200 Subject: [PATCH] Renderer: Allow to pass custom parameters --- include/Nazara/Renderer/Renderer.hpp | 5 ++++- include/Nazara/Renderer/Renderer.inl | 5 +++++ src/Nazara/Renderer/Renderer.cpp | 5 +++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/Nazara/Renderer/Renderer.hpp b/include/Nazara/Renderer/Renderer.hpp index b23a5b284..cd680d412 100644 --- a/include/Nazara/Renderer/Renderer.hpp +++ b/include/Nazara/Renderer/Renderer.hpp @@ -26,11 +26,14 @@ namespace Nz static inline bool IsInitialized(); + static inline void SetParameters(const ParameterList& parameters); + static void Uninitialize(); private: - static DynLib s_rendererLib; static std::unique_ptr s_rendererImpl; + static DynLib s_rendererLib; + static ParameterList s_initializationParameters; static unsigned int s_moduleReferenceCounter; }; } diff --git a/include/Nazara/Renderer/Renderer.inl b/include/Nazara/Renderer/Renderer.inl index 16c3746db..25d22de23 100644 --- a/include/Nazara/Renderer/Renderer.inl +++ b/include/Nazara/Renderer/Renderer.inl @@ -16,6 +16,11 @@ namespace Nz { return s_moduleReferenceCounter != 0; } + + void Renderer::SetParameters(const ParameterList& parameters) + { + s_initializationParameters = parameters; + } } #include diff --git a/src/Nazara/Renderer/Renderer.cpp b/src/Nazara/Renderer/Renderer.cpp index f2de3f03f..efd33fd14 100644 --- a/src/Nazara/Renderer/Renderer.cpp +++ b/src/Nazara/Renderer/Renderer.cpp @@ -63,7 +63,7 @@ namespace Nz } std::unique_ptr impl(createRenderer()); - if (!impl || !impl->Prepare(Nz::ParameterList())) + if (!impl || !impl->Prepare(s_initializationParameters)) { NazaraError("Failed to create renderer implementation"); continue; @@ -115,7 +115,8 @@ namespace Nz Utility::Uninitialize(); } - DynLib Renderer::s_rendererLib; std::unique_ptr Renderer::s_rendererImpl; + DynLib Renderer::s_rendererLib; + ParameterList Renderer::s_initializationParameters; unsigned int Renderer::s_moduleReferenceCounter = 0; }