Added a Library to most reference-counted classes
Former-commit-id: 3ed409a71dcd5ce4eec7672ac26f8fff00e3b136
This commit is contained in:
@@ -11,7 +11,10 @@
|
||||
#include <Nazara/Graphics/ForwardRenderTechnique.hpp>
|
||||
#include <Nazara/Graphics/GuillotineTextureAtlas.hpp>
|
||||
#include <Nazara/Graphics/Material.hpp>
|
||||
#include <Nazara/Graphics/ParticleController.hpp>
|
||||
#include <Nazara/Graphics/ParticleDeclaration.hpp>
|
||||
#include <Nazara/Graphics/ParticleGenerator.hpp>
|
||||
#include <Nazara/Graphics/ParticleRenderer.hpp>
|
||||
#include <Nazara/Graphics/RenderTechniques.hpp>
|
||||
#include <Nazara/Graphics/SkinningManager.hpp>
|
||||
#include <Nazara/Graphics/Loaders/Mesh.hpp>
|
||||
@@ -47,12 +50,30 @@ bool NzGraphics::Initialize()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzParticleController::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize particle controllers");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzParticleDeclaration::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize particle declarations");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzParticleGenerator::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize particle generators");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzParticleRenderer::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize particle renderers");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NzSkinningManager::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize skinning manager");
|
||||
@@ -144,9 +165,12 @@ void NzGraphics::Uninitialize()
|
||||
|
||||
NzDeferredRenderTechnique::Uninitialize();
|
||||
NzForwardRenderTechnique::Uninitialize();
|
||||
NzMaterial::Uninitialize();
|
||||
NzParticleDeclaration::Uninitialize();
|
||||
NzSkinningManager::Uninitialize();
|
||||
NzParticleRenderer::Uninitialize();
|
||||
NzParticleGenerator::Uninitialize();
|
||||
NzParticleDeclaration::Uninitialize();
|
||||
NzParticleController::Uninitialize();
|
||||
NzMaterial::Uninitialize();
|
||||
|
||||
NazaraNotice("Uninitialized: Graphics module");
|
||||
|
||||
|
||||
@@ -705,6 +705,17 @@ void NzMaterial::InvalidateShaders()
|
||||
|
||||
bool NzMaterial::Initialize()
|
||||
{
|
||||
if (!NzMaterialLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
s_defaultMaterial = NzMaterial::New();
|
||||
s_defaultMaterial->Enable(nzRendererParameter_FaceCulling, false);
|
||||
s_defaultMaterial->SetFaceFilling(nzFaceFilling_Line);
|
||||
NzMaterialLibrary::Register("Default", s_defaultMaterial);
|
||||
|
||||
bool glsl140 = (NzOpenGL::GetGLSLVersion() >= 140);
|
||||
|
||||
// Basic shader
|
||||
@@ -769,10 +780,6 @@ bool NzMaterial::Initialize()
|
||||
NzUberShaderLibrary::Register("PhongLighting", uberShader);
|
||||
}
|
||||
|
||||
s_defaultMaterial = NzMaterial::New();
|
||||
s_defaultMaterial->Enable(nzRendererParameter_FaceCulling, false);
|
||||
s_defaultMaterial->SetFaceFilling(nzFaceFilling_Line);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -781,7 +788,9 @@ void NzMaterial::Uninitialize()
|
||||
s_defaultMaterial.Reset();
|
||||
NzUberShaderLibrary::Unregister("PhongLighting");
|
||||
NzUberShaderLibrary::Unregister("Basic");
|
||||
NzMaterialLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzMaterialRef NzMaterial::s_defaultMaterial = nullptr;
|
||||
NzMaterialLibrary::LibraryMap NzMaterial::s_library;
|
||||
NzMaterialLoader::LoaderList NzMaterial::s_loaders;
|
||||
NzMaterialRef NzMaterial::s_defaultMaterial = nullptr;
|
||||
|
||||
@@ -12,3 +12,21 @@ NzRefCounted()
|
||||
}
|
||||
|
||||
NzParticleController::~NzParticleController() = default;
|
||||
|
||||
bool NzParticleController::Initialize()
|
||||
{
|
||||
if (!NzParticleControllerLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzParticleController::Uninitialize()
|
||||
{
|
||||
NzParticleControllerLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzParticleControllerLibrary::LibraryMap NzParticleController::s_library;
|
||||
|
||||
@@ -177,6 +177,12 @@ bool NzParticleDeclaration::IsTypeSupported(nzComponentType type)
|
||||
|
||||
bool NzParticleDeclaration::Initialize()
|
||||
{
|
||||
if (!NzParticleDeclarationLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
NzErrorFlags flags(nzErrorFlag_Silent | nzErrorFlag_ThrowException);
|
||||
@@ -225,7 +231,8 @@ bool NzParticleDeclaration::Initialize()
|
||||
|
||||
void NzParticleDeclaration::Uninitialize()
|
||||
{
|
||||
// Rien à faire
|
||||
NzParticleDeclarationLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzParticleDeclaration NzParticleDeclaration::s_declarations[nzParticleLayout_Max+1];
|
||||
NzParticleDeclarationLibrary::LibraryMap NzParticleDeclaration::s_library;
|
||||
|
||||
@@ -12,3 +12,21 @@ NzRefCounted()
|
||||
}
|
||||
|
||||
NzParticleGenerator::~NzParticleGenerator() = default;
|
||||
|
||||
bool NzParticleGenerator::Initialize()
|
||||
{
|
||||
if (!NzParticleGeneratorLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzParticleGenerator::Uninitialize()
|
||||
{
|
||||
NzParticleGeneratorLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzParticleGeneratorLibrary::LibraryMap NzParticleGenerator::s_library;
|
||||
|
||||
@@ -12,3 +12,21 @@ NzRefCounted()
|
||||
}
|
||||
|
||||
NzParticleRenderer::~NzParticleRenderer() = default;
|
||||
|
||||
bool NzParticleRenderer::Initialize()
|
||||
{
|
||||
if (!NzParticleRendererLibrary::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialise library");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzParticleRenderer::Uninitialize()
|
||||
{
|
||||
NzParticleRendererLibrary::Uninitialize();
|
||||
}
|
||||
|
||||
NzParticleRendererLibrary::LibraryMap NzParticleRenderer::s_library;
|
||||
|
||||
Reference in New Issue
Block a user