Added a Library to most reference-counted classes

Former-commit-id: 3ed409a71dcd5ce4eec7672ac26f8fff00e3b136
This commit is contained in:
Lynix
2015-01-28 18:06:05 +01:00
parent e18e490c59
commit 53162c1722
34 changed files with 438 additions and 32 deletions

View File

@@ -317,6 +317,12 @@ const NzContext* NzContext::GetThreadContext()
bool NzContext::Initialize()
{
if (!NzContextLibrary::Initialize())
{
NazaraError("Failed to initialise library");
return false;
}
NzContextParameters parameters;
parameters.shared = false; // Difficile de partager le contexte de référence avec lui-même
@@ -343,9 +349,11 @@ bool NzContext::Initialize()
void NzContext::Uninitialize()
{
NzContextLibrary::Uninitialize();
s_contexts.clear(); // On supprime tous les contextes créés
s_reference.reset();
}
std::unique_ptr<NzContext> NzContext::s_reference;
std::vector<std::unique_ptr<NzContext>> NzContext::s_contexts;
NzContextLibrary::LibraryMap NzContext::s_library;

View File

@@ -114,3 +114,21 @@ bool NzRenderBuffer::IsSupported()
{
return NzOpenGL::IsSupported(nzOpenGLExtension_FrameBufferObject);
}
bool NzRenderBuffer::Initialize()
{
if (!NzRenderBufferLibrary::Initialize())
{
NazaraError("Failed to initialise library");
return false;
}
return true;
}
void NzRenderBuffer::Uninitialize()
{
NzRenderBufferLibrary::Uninitialize();
}
NzRenderBufferLibrary::LibraryMap NzRenderBuffer::s_library;

View File

@@ -14,6 +14,7 @@
#include <Nazara/Renderer/DebugDrawer.hpp>
#include <Nazara/Renderer/HardwareBuffer.hpp>
#include <Nazara/Renderer/OpenGL.hpp>
#include <Nazara/Renderer/RenderBuffer.hpp>
#include <Nazara/Renderer/RenderTarget.hpp>
#include <Nazara/Renderer/Shader.hpp>
#include <Nazara/Renderer/Texture.hpp>
@@ -736,7 +737,7 @@ bool NzRenderer::Initialize()
NzCallOnExit onExit(NzRenderer::Uninitialize);
// Initialisation d'OpenGL
if (!NzOpenGL::Initialize())
if (!NzOpenGL::Initialize()) // Initialise également Context
{
NazaraError("Failed to initialize OpenGL");
return false;
@@ -864,15 +865,27 @@ bool NzRenderer::Initialize()
}
}
if (!NzRenderBuffer::Initialize())
{
NazaraError("Failed to initialize render buffers");
return false;
}
if (!NzShader::Initialize())
{
NazaraError("Failed to initialize shaders");
return false;
}
if (!NzTexture::Initialize())
{
NazaraError("Failed to initialize textures");
return false;
}
if (!NzTextureSampler::Initialize())
{
NazaraError("Failed to initialize texture sampler");
NazaraError("Failed to initialize texture samplers");
return false;
}
@@ -1545,7 +1558,9 @@ void NzRenderer::Uninitialize()
NzUberShader::Uninitialize();
NzTextureSampler::Uninitialize();
NzTexture::Uninitialize();
NzShader::Uninitialize();
NzRenderBuffer::Uninitialize();
NzDebugDrawer::Uninitialize();
s_textureUnits.clear();

View File

@@ -1274,3 +1274,21 @@ bool NzTexture::CreateTexture(bool proxy)
return true;
}
bool NzTexture::Initialize()
{
if (!NzTextureLibrary::Initialize())
{
NazaraError("Failed to initialise library");
return false;
}
return true;
}
void NzTexture::Uninitialize()
{
NzTextureLibrary::Uninitialize();
}
NzTextureLibrary::LibraryMap NzTexture::s_library;