Rework modules

This commit is contained in:
Jérôme Leclercq
2020-09-10 20:12:09 +02:00
parent 385927b05a
commit a7fac3beb8
31 changed files with 568 additions and 787 deletions

View File

@@ -9,38 +9,32 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/DynLib.hpp>
#include <Nazara/Platform/Platform.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/RendererImpl.hpp>
#include <Nazara/Utility/Enums.hpp>
namespace Nz
{
class AbstractBuffer;
class Buffer;
class NAZARA_RENDERER_API Renderer
class NAZARA_RENDERER_API Renderer : public Module<Renderer>
{
friend Module;
public:
Renderer() = delete;
~Renderer() = delete;
using Dependencies = TypeList<Platform>;
static inline RendererImpl* GetRendererImpl();
Renderer();
~Renderer();
static bool Initialize();
static inline bool IsInitialized();
static inline void SetParameters(const ParameterList& parameters);
static void Uninitialize();
inline RendererImpl* GetRendererImpl();
private:
static AbstractBuffer* CreateHardwareBufferImpl(Buffer* parent, BufferType type);
std::unique_ptr<RendererImpl> m_rendererImpl;
DynLib m_rendererLib;
static std::unique_ptr<RendererImpl> s_rendererImpl;
static DynLib s_rendererLib;
static ParameterList s_initializationParameters;
static unsigned int s_moduleReferenceCounter;
static Renderer* s_instance;
};
}

View File

@@ -9,17 +9,7 @@ namespace Nz
{
inline RendererImpl* Renderer::GetRendererImpl()
{
return s_rendererImpl.get();
}
inline bool Renderer::IsInitialized()
{
return s_moduleReferenceCounter != 0;
}
void Renderer::SetParameters(const ParameterList& parameters)
{
s_initializationParameters = parameters;
return m_rendererImpl.get();
}
}