Added a Library to most reference-counted classes
Former-commit-id: 3ed409a71dcd5ce4eec7672ac26f8fff00e3b136
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user