OpenGL class now uses CallOnExit class
Former-commit-id: c8c5bb7e50e73ba007e095eaf801fa7d5e3aa215
This commit is contained in:
parent
67951074b1
commit
cd73159d5b
|
|
@ -3,6 +3,7 @@
|
|||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Renderer/OpenGL.hpp>
|
||||
#include <Nazara/Core/CallOnExit.hpp>
|
||||
#include <Nazara/Core/Error.hpp>
|
||||
#include <Nazara/Core/Log.hpp>
|
||||
#include <Nazara/Math/Basic.hpp>
|
||||
|
|
@ -647,6 +648,8 @@ bool NzOpenGL::Initialize()
|
|||
|
||||
s_initialized = true;
|
||||
|
||||
NzCallOnExit onExit(NzOpenGL::Uninitialize);
|
||||
|
||||
// Le chargement des fonctions OpenGL nécessite un contexte OpenGL
|
||||
NzContextParameters parameters;
|
||||
parameters.majorVersion = 2;
|
||||
|
|
@ -667,8 +670,6 @@ bool NzOpenGL::Initialize()
|
|||
if (!loadContext.Create(parameters))
|
||||
{
|
||||
NazaraError("Failed to create load context");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -688,8 +689,6 @@ bool NzOpenGL::Initialize()
|
|||
if (!glGetString)
|
||||
{
|
||||
NazaraError("Unable to load OpenGL: failed to load glGetString");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -701,8 +700,6 @@ bool NzOpenGL::Initialize()
|
|||
if (!version)
|
||||
{
|
||||
NazaraError("Unable to retrieve OpenGL version");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -728,8 +725,6 @@ bool NzOpenGL::Initialize()
|
|||
if (s_openglVersion < 200)
|
||||
{
|
||||
NazaraError("OpenGL " + NzString::Number(major) + '.' + NzString::Number(minor) + " detected (2.0 required). Please upgrade your drivers or your video card");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -737,8 +732,6 @@ bool NzOpenGL::Initialize()
|
|||
if (!version)
|
||||
{
|
||||
NazaraError("Unable to retrieve GLSL version");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -761,8 +754,6 @@ bool NzOpenGL::Initialize()
|
|||
if (s_glslVersion < 110)
|
||||
{
|
||||
NazaraError("GLSL version is too low, please upgrade your drivers or your video card");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -773,8 +764,6 @@ bool NzOpenGL::Initialize()
|
|||
if (!loadContext.Create(parameters)) // Destruction implicite du premier contexte
|
||||
{
|
||||
NazaraError("Failed to create load context");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -882,8 +871,6 @@ bool NzOpenGL::Initialize()
|
|||
catch (const std::exception& e)
|
||||
{
|
||||
NazaraError("Unable to load OpenGL: " + NzString(e.what()));
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -1241,12 +1228,11 @@ bool NzOpenGL::Initialize()
|
|||
if (!NzContext::Initialize())
|
||||
{
|
||||
NazaraError("Failed to initialize contexts");
|
||||
Uninitialize();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Le contexte OpenGL n'est plus assuré à partir d'ici
|
||||
onExit.Reset();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue