Better handling of module initialization
Former-commit-id: 08d4b87a9b7cc10e672c23374306081fc9259de0
This commit is contained in:
parent
48e5af6373
commit
fc56553021
|
|
@ -492,7 +492,9 @@ bool NzRenderer::Initialize()
|
||||||
// Initialisation des dépendances
|
// Initialisation des dépendances
|
||||||
if (!NzUtility::Initialize())
|
if (!NzUtility::Initialize())
|
||||||
{
|
{
|
||||||
NazaraError("Failed to initialize utility module");
|
NazaraError("Failed to initialize Utility module");
|
||||||
|
Uninitialize();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -500,11 +502,11 @@ bool NzRenderer::Initialize()
|
||||||
if (!NzOpenGL::Initialize())
|
if (!NzOpenGL::Initialize())
|
||||||
{
|
{
|
||||||
NazaraError("Failed to initialize OpenGL");
|
NazaraError("Failed to initialize OpenGL");
|
||||||
|
Uninitialize();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
NzContext::EnsureContext();
|
|
||||||
|
|
||||||
NzBuffer::SetBufferFunction(nzBufferStorage_Hardware, HardwareBufferFunction);
|
NzBuffer::SetBufferFunction(nzBufferStorage_Hardware, HardwareBufferFunction);
|
||||||
|
|
||||||
for (unsigned int i = 0; i <= nzMatrixType_Max; ++i)
|
for (unsigned int i = 0; i <= nzMatrixType_Max; ++i)
|
||||||
|
|
@ -529,6 +531,8 @@ bool NzRenderer::Initialize()
|
||||||
s_capabilities[nzRendererCap_TextureMulti] = true; // Natif depuis OpenGL 1.3
|
s_capabilities[nzRendererCap_TextureMulti] = true; // Natif depuis OpenGL 1.3
|
||||||
s_capabilities[nzRendererCap_TextureNPOT] = true; // Natif depuis OpenGL 2.0
|
s_capabilities[nzRendererCap_TextureNPOT] = true; // Natif depuis OpenGL 2.0
|
||||||
|
|
||||||
|
NzContext::EnsureContext();
|
||||||
|
|
||||||
if (s_capabilities[nzRendererCap_AnisotropicFilter])
|
if (s_capabilities[nzRendererCap_AnisotropicFilter])
|
||||||
{
|
{
|
||||||
GLfloat maxAnisotropy;
|
GLfloat maxAnisotropy;
|
||||||
|
|
@ -635,8 +639,6 @@ bool NzRenderer::Initialize()
|
||||||
// Loaders
|
// Loaders
|
||||||
NzLoaders_Texture_Register();
|
NzLoaders_Texture_Register();
|
||||||
|
|
||||||
NazaraNotice("Initialized: Renderer module");
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1169,8 +1171,6 @@ void NzRenderer::Uninitialize()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
NzContext::EnsureContext();
|
|
||||||
|
|
||||||
// Libération du module
|
// Libération du module
|
||||||
s_moduleReferenceCounter = 0;
|
s_moduleReferenceCounter = 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
#include <Nazara/Renderer/TextureSampler.hpp>
|
#include <Nazara/Renderer/TextureSampler.hpp>
|
||||||
#include <Nazara/Core/Error.hpp>
|
#include <Nazara/Core/Error.hpp>
|
||||||
#include <Nazara/Renderer/Config.hpp>
|
#include <Nazara/Renderer/Config.hpp>
|
||||||
|
#include <Nazara/Renderer/Context.hpp>
|
||||||
#include <Nazara/Renderer/Renderer.hpp>
|
#include <Nazara/Renderer/Renderer.hpp>
|
||||||
#include <Nazara/Renderer/Texture.hpp>
|
#include <Nazara/Renderer/Texture.hpp>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
@ -374,10 +375,14 @@ bool NzTextureSampler::Initialize()
|
||||||
|
|
||||||
void NzTextureSampler::Uninitialize()
|
void NzTextureSampler::Uninitialize()
|
||||||
{
|
{
|
||||||
for (const std::pair<nzUInt32, GLuint>& pair : s_samplers)
|
if (!s_samplers.empty())
|
||||||
glDeleteSamplers(1, &pair.second);
|
{
|
||||||
|
NzContext::EnsureContext();
|
||||||
|
for (const std::pair<nzUInt32, GLuint>& pair : s_samplers)
|
||||||
|
glDeleteSamplers(1, &pair.second);
|
||||||
|
|
||||||
s_samplers.clear();
|
s_samplers.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nzUInt8 NzTextureSampler::s_defaultAnisotropyLevel = 1;
|
nzUInt8 NzTextureSampler::s_defaultAnisotropyLevel = 1;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue