Replaced (Uber)ShaderLibrary by template class ObjectLibrary
Former-commit-id: d488cfd4e5e3ff31112fffebce2b7cdb86cc2e55
This commit is contained in:
@@ -8,7 +8,6 @@
|
||||
#include <Nazara/Renderer/Renderer.hpp>
|
||||
#include <Nazara/Renderer/RenderStates.hpp>
|
||||
#include <Nazara/Renderer/Shader.hpp>
|
||||
#include <Nazara/Renderer/ShaderLibrary.hpp>
|
||||
#include <Nazara/Utility/BufferMapper.hpp>
|
||||
#include <Nazara/Utility/Mesh.hpp>
|
||||
#include <Nazara/Utility/Skeleton.hpp>
|
||||
|
||||
@@ -16,9 +16,8 @@
|
||||
#include <Nazara/Renderer/OpenGL.hpp>
|
||||
#include <Nazara/Renderer/RenderTarget.hpp>
|
||||
#include <Nazara/Renderer/Shader.hpp>
|
||||
#include <Nazara/Renderer/ShaderLibrary.hpp>
|
||||
#include <Nazara/Renderer/Texture.hpp>
|
||||
#include <Nazara/Renderer/UberShaderLibrary.hpp>
|
||||
#include <Nazara/Renderer/UberShader.hpp>
|
||||
#include <Nazara/Utility/AbstractBuffer.hpp>
|
||||
#include <Nazara/Utility/IndexBuffer.hpp>
|
||||
#include <Nazara/Utility/Utility.hpp>
|
||||
@@ -865,9 +864,9 @@ bool NzRenderer::Initialize()
|
||||
}
|
||||
}
|
||||
|
||||
if (!NzShaderLibrary::Initialize())
|
||||
if (!NzShader::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize shader library");
|
||||
NazaraError("Failed to initialize shaders");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -877,9 +876,9 @@ bool NzRenderer::Initialize()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzUberShaderLibrary::Initialize())
|
||||
if (!NzUberShader::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize uber shader library");
|
||||
NazaraError("Failed to initialize uber shaders");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1544,9 +1543,9 @@ void NzRenderer::Uninitialize()
|
||||
|
||||
NzShaderLibrary::Unregister("DebugSimple");
|
||||
|
||||
NzUberShaderLibrary::Uninitialize();
|
||||
NzUberShader::Uninitialize();
|
||||
NzTextureSampler::Uninitialize();
|
||||
NzShaderLibrary::Uninitialize();
|
||||
NzShader::Uninitialize();
|
||||
NzDebugDrawer::Uninitialize();
|
||||
|
||||
s_textureUnits.clear();
|
||||
|
||||
@@ -787,3 +787,21 @@ bool NzShader::PostLinkage()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool NzShader::Initialize()
|
||||
{
|
||||
if (!NzShaderLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzShader::Uninitialize()
|
||||
{
|
||||
NzShaderLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzShaderLibrary::LibraryMap NzShader::s_library;
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
// Copyright (C) 2015 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Renderer module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Renderer/ShaderLibrary.hpp>
|
||||
#include <Nazara/Core/Log.hpp>
|
||||
#include <Nazara/Renderer/Debug.hpp>
|
||||
|
||||
NzShader* NzShaderLibrary::Get(const NzString& name)
|
||||
{
|
||||
auto it = s_library.find(name);
|
||||
if (it != s_library.end())
|
||||
return it->second;
|
||||
else
|
||||
{
|
||||
NazaraError("Shader \"" + name + "\" is not present");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool NzShaderLibrary::Has(const NzString& name)
|
||||
{
|
||||
return s_library.find(name) != s_library.end();
|
||||
}
|
||||
|
||||
void NzShaderLibrary::Register(const NzString& name, NzShader* shader)
|
||||
{
|
||||
s_library.emplace(name, shader);
|
||||
NazaraDebug("Shader \"" + name + "\" registred");
|
||||
}
|
||||
|
||||
void NzShaderLibrary::Unregister(const NzString& name)
|
||||
{
|
||||
s_library.erase(name);
|
||||
NazaraDebug("Shader \"" + name + "\" unregistred");
|
||||
}
|
||||
|
||||
bool NzShaderLibrary::Initialize()
|
||||
{
|
||||
return true; // Que faire
|
||||
}
|
||||
|
||||
void NzShaderLibrary::Uninitialize()
|
||||
{
|
||||
for (auto it : s_library)
|
||||
NazaraWarning("Shader \"" + it.first + "\" has not been unregistred");
|
||||
|
||||
s_library.clear();
|
||||
}
|
||||
|
||||
std::unordered_map<NzString, NzShaderRef> NzShaderLibrary::s_library;
|
||||
@@ -6,3 +6,21 @@
|
||||
#include <Nazara/Renderer/Debug.hpp>
|
||||
|
||||
NzUberShader::~NzUberShader() = default;
|
||||
|
||||
bool NzUberShader::Initialize()
|
||||
{
|
||||
if (!NzUberShaderLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzUberShader::Uninitialize()
|
||||
{
|
||||
NzUberShaderLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzUberShaderLibrary::LibraryMap NzUberShader::s_library;
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
// Copyright (C) 2015 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Renderer module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Renderer/UberShaderLibrary.hpp>
|
||||
#include <Nazara/Core/Log.hpp>
|
||||
#include <Nazara/Renderer/Debug.hpp>
|
||||
|
||||
NzUberShader* NzUberShaderLibrary::Get(const NzString& name)
|
||||
{
|
||||
auto it = s_library.find(name);
|
||||
if (it != s_library.end())
|
||||
return it->second;
|
||||
else
|
||||
{
|
||||
NazaraError("UberShader \"" + name + "\" is not present");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool NzUberShaderLibrary::Has(const NzString& name)
|
||||
{
|
||||
return s_library.find(name) != s_library.end();
|
||||
}
|
||||
|
||||
void NzUberShaderLibrary::Register(const NzString& name, NzUberShader* uberShader)
|
||||
{
|
||||
s_library.emplace(name, uberShader);
|
||||
NazaraDebug("UberShader \"" + name + "\" registred");
|
||||
}
|
||||
|
||||
void NzUberShaderLibrary::Unregister(const NzString& name)
|
||||
{
|
||||
s_library.erase(name);
|
||||
NazaraDebug("UberShader \"" + name + "\" unregistred");
|
||||
}
|
||||
|
||||
bool NzUberShaderLibrary::Initialize()
|
||||
{
|
||||
return true; // Que faire
|
||||
}
|
||||
|
||||
void NzUberShaderLibrary::Uninitialize()
|
||||
{
|
||||
for (auto it : s_library)
|
||||
NazaraWarning("UberShader \"" + it.first + "\" has not been unregistred");
|
||||
|
||||
s_library.clear();
|
||||
}
|
||||
|
||||
std::unordered_map<NzString, NzUberShaderRef> NzUberShaderLibrary::s_library;
|
||||
Reference in New Issue
Block a user