Renderer update
-Added Renderer::GetRendererName() -Added Renderer::GetVendorName() -Renamed VertexArrayObject to VertexArrayObjects Former-commit-id: 93489d5f93f8258dec0c4d8bcf72185abd7f75a8
This commit is contained in:
parent
73cb237925
commit
025ed1cfd0
|
|
@ -36,9 +36,9 @@ enum nzOpenGLExtension
|
||||||
nzOpenGLExtension_TextureArray,
|
nzOpenGLExtension_TextureArray,
|
||||||
nzOpenGLExtension_TextureCompression_s3tc,
|
nzOpenGLExtension_TextureCompression_s3tc,
|
||||||
nzOpenGLExtension_TextureStorage,
|
nzOpenGLExtension_TextureStorage,
|
||||||
nzOpenGLExtension_VertexArrayObject,
|
nzOpenGLExtension_VertexArrayObjects,
|
||||||
|
|
||||||
nzOpenGLExtension_Max = nzOpenGLExtension_VertexArrayObject
|
nzOpenGLExtension_Max = nzOpenGLExtension_VertexArrayObjects
|
||||||
};
|
};
|
||||||
|
|
||||||
using NzOpenGLFunc = void (*)();
|
using NzOpenGLFunc = void (*)();
|
||||||
|
|
@ -61,8 +61,11 @@ class NAZARA_API NzOpenGL
|
||||||
};
|
};
|
||||||
|
|
||||||
static NzOpenGLFunc GetEntry(const NzString& entryPoint);
|
static NzOpenGLFunc GetEntry(const NzString& entryPoint);
|
||||||
|
static NzString GetRendererName();
|
||||||
|
static NzString GetVendorName();
|
||||||
static unsigned int GetVersion();
|
static unsigned int GetVersion();
|
||||||
static bool Initialize();
|
static bool Initialize();
|
||||||
|
static bool IsInitialized();
|
||||||
static bool IsSupported(nzOpenGLExtension extension);
|
static bool IsSupported(nzOpenGLExtension extension);
|
||||||
static bool IsSupported(const NzString& string);
|
static bool IsSupported(const NzString& string);
|
||||||
static bool TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType target);
|
static bool TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType target);
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,10 @@ namespace
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<NzString> openGLextensionSet;
|
std::set<NzString> s_openGLextensionSet;
|
||||||
bool openGLextensions[nzOpenGLExtension_Max+1] = {false};
|
bool s_initialized = false;
|
||||||
unsigned int openGLversion = 0;
|
bool s_openGLextensions[nzOpenGLExtension_Max+1] = {false};
|
||||||
|
unsigned int s_openGLversion = 0;
|
||||||
|
|
||||||
bool LoadExtensionsString(const NzString& extensionString)
|
bool LoadExtensionsString(const NzString& extensionString)
|
||||||
{
|
{
|
||||||
|
|
@ -74,7 +75,7 @@ namespace
|
||||||
extensionString.Split(ext);
|
extensionString.Split(ext);
|
||||||
|
|
||||||
for (std::vector<NzString>::iterator it = ext.begin(); it != ext.end(); ++it)
|
for (std::vector<NzString>::iterator it = ext.begin(); it != ext.end(); ++it)
|
||||||
openGLextensionSet.insert(*it);
|
s_openGLextensionSet.insert(*it);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -99,7 +100,7 @@ namespace
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
openGLextensionSet.insert(extension);
|
s_openGLextensionSet.insert(extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -111,19 +112,36 @@ NzOpenGLFunc NzOpenGL::GetEntry(const NzString& entryPoint)
|
||||||
return LoadEntry(entryPoint.GetConstBuffer(), false);
|
return LoadEntry(entryPoint.GetConstBuffer(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NzString NzOpenGL::GetRendererName()
|
||||||
|
{
|
||||||
|
static const char* rendererName(reinterpret_cast<const char*>(glGetString(GL_RENDERER)));
|
||||||
|
return rendererName;
|
||||||
|
}
|
||||||
|
|
||||||
|
NzString NzOpenGL::GetVendorName()
|
||||||
|
{
|
||||||
|
static const char* vendorName(reinterpret_cast<const char*>(glGetString(GL_VENDOR)));
|
||||||
|
return vendorName;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int NzOpenGL::GetVersion()
|
unsigned int NzOpenGL::GetVersion()
|
||||||
{
|
{
|
||||||
return openGLversion;
|
return s_openGLversion;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NzOpenGL::Initialize()
|
bool NzOpenGL::Initialize()
|
||||||
{
|
{
|
||||||
|
if (s_initialized)
|
||||||
|
return true;
|
||||||
|
|
||||||
if (!LoadLibrary())
|
if (!LoadLibrary())
|
||||||
{
|
{
|
||||||
NazaraError("Failed to load OpenGL library");
|
NazaraError("Failed to load OpenGL library");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s_initialized = true;
|
||||||
|
|
||||||
// Le chargement des fonctions OpenGL nécessite un contexte OpenGL
|
// Le chargement des fonctions OpenGL nécessite un contexte OpenGL
|
||||||
NzContextParameters parameters;
|
NzContextParameters parameters;
|
||||||
parameters.majorVersion = 2;
|
parameters.majorVersion = 2;
|
||||||
|
|
@ -194,8 +212,8 @@ bool NzOpenGL::Initialize()
|
||||||
minor = 0;
|
minor = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
openGLversion = major*100 + minor*10;
|
s_openGLversion = major*100 + minor*10;
|
||||||
if (openGLversion < 200)
|
if (s_openGLversion < 200)
|
||||||
{
|
{
|
||||||
NazaraError("OpenGL version is too low, please upgrade your drivers or your video card");
|
NazaraError("OpenGL version is too low, please upgrade your drivers or your video card");
|
||||||
Uninitialize();
|
Uninitialize();
|
||||||
|
|
@ -335,7 +353,7 @@ bool NzOpenGL::Initialize()
|
||||||
|
|
||||||
if (!glGetStringi || !LoadExtensions3())
|
if (!glGetStringi || !LoadExtensions3())
|
||||||
{
|
{
|
||||||
if (openGLversion >= 300) // Dans le cas contraire c'est normal
|
if (s_openGLversion >= 300) // Dans le cas contraire c'est normal
|
||||||
NazaraWarning("Failed to load OpenGL 3 extension system, switching to OpenGL 2 extension system...");
|
NazaraWarning("Failed to load OpenGL 3 extension system, switching to OpenGL 2 extension system...");
|
||||||
|
|
||||||
if (!LoadExtensionsString(reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS))))
|
if (!LoadExtensionsString(reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS))))
|
||||||
|
|
@ -358,10 +376,10 @@ bool NzOpenGL::Initialize()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// AnisotropicFilter
|
// AnisotropicFilter
|
||||||
openGLextensions[nzOpenGLExtension_AnisotropicFilter] = IsSupported("GL_EXT_texture_filter_anisotropic");
|
s_openGLextensions[nzOpenGLExtension_AnisotropicFilter] = IsSupported("GL_EXT_texture_filter_anisotropic");
|
||||||
|
|
||||||
// DebugOutput
|
// DebugOutput
|
||||||
if (openGLversion >= 430 || IsSupported("GL_KHR_debug"))
|
if (s_openGLversion >= 430 || IsSupported("GL_KHR_debug"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -370,7 +388,7 @@ bool NzOpenGL::Initialize()
|
||||||
glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTPROC>(LoadEntry("glDebugMessageInsert"));
|
glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTPROC>(LoadEntry("glDebugMessageInsert"));
|
||||||
glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGPROC>(LoadEntry("glGetDebugMessageLog"));
|
glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGPROC>(LoadEntry("glGetDebugMessageLog"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_DebugOutput] = true;
|
s_openGLextensions[nzOpenGLExtension_DebugOutput] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -378,7 +396,7 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!openGLextensions[nzOpenGLExtension_DebugOutput] && IsSupported("GL_ARB_debug_output"))
|
if (!s_openGLextensions[nzOpenGLExtension_DebugOutput] && IsSupported("GL_ARB_debug_output"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -387,7 +405,7 @@ bool NzOpenGL::Initialize()
|
||||||
glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTARBPROC>(LoadEntry("glDebugMessageInsertARB"));
|
glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTARBPROC>(LoadEntry("glDebugMessageInsertARB"));
|
||||||
glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGARBPROC>(LoadEntry("glGetDebugMessageLogARB"));
|
glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGARBPROC>(LoadEntry("glGetDebugMessageLogARB"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_DebugOutput] = true;
|
s_openGLextensions[nzOpenGLExtension_DebugOutput] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -396,7 +414,7 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// FP64
|
// FP64
|
||||||
if (openGLversion >= 400 || IsSupported("GL_ARB_gpu_shader_fp64"))
|
if (s_openGLversion >= 400 || IsSupported("GL_ARB_gpu_shader_fp64"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -405,7 +423,7 @@ bool NzOpenGL::Initialize()
|
||||||
glUniform3dv = reinterpret_cast<PFNGLUNIFORM3DVPROC>(LoadEntry("glUniform3dv"));
|
glUniform3dv = reinterpret_cast<PFNGLUNIFORM3DVPROC>(LoadEntry("glUniform3dv"));
|
||||||
glUniform4dv = reinterpret_cast<PFNGLUNIFORM4DVPROC>(LoadEntry("glUniform4dv"));
|
glUniform4dv = reinterpret_cast<PFNGLUNIFORM4DVPROC>(LoadEntry("glUniform4dv"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_FP64] = true;
|
s_openGLextensions[nzOpenGLExtension_FP64] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -414,7 +432,7 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// FrameBufferObject
|
// FrameBufferObject
|
||||||
if (openGLversion >= 300 || IsSupported("GL_ARB_framebuffer_object"))
|
if (s_openGLversion >= 300 || IsSupported("GL_ARB_framebuffer_object"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -434,7 +452,7 @@ bool NzOpenGL::Initialize()
|
||||||
glGenRenderbuffers = reinterpret_cast<PFNGLGENRENDERBUFFERSPROC>(LoadEntry("glGenRenderbuffers"));
|
glGenRenderbuffers = reinterpret_cast<PFNGLGENRENDERBUFFERSPROC>(LoadEntry("glGenRenderbuffers"));
|
||||||
glRenderbufferStorage = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEPROC>(LoadEntry("glRenderbufferStorage"));
|
glRenderbufferStorage = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEPROC>(LoadEntry("glRenderbufferStorage"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_FrameBufferObject] = true;
|
s_openGLextensions[nzOpenGLExtension_FrameBufferObject] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -443,10 +461,10 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// PixelBufferObject
|
// PixelBufferObject
|
||||||
openGLextensions[nzOpenGLExtension_PixelBufferObject] = (openGLversion >= 210 || IsSupported("GL_ARB_pixel_buffer_object"));
|
s_openGLextensions[nzOpenGLExtension_PixelBufferObject] = (s_openGLversion >= 210 || IsSupported("GL_ARB_pixel_buffer_object"));
|
||||||
|
|
||||||
// SamplerObjects
|
// SamplerObjects
|
||||||
if (openGLversion >= 330 || IsSupported("GL_ARB_sampler_objects"))
|
if (s_openGLversion >= 330 || IsSupported("GL_ARB_sampler_objects"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -456,7 +474,7 @@ bool NzOpenGL::Initialize()
|
||||||
glSamplerParameterf = reinterpret_cast<PFNGLSAMPLERPARAMETERFPROC>(LoadEntry("glSamplerParameterf"));
|
glSamplerParameterf = reinterpret_cast<PFNGLSAMPLERPARAMETERFPROC>(LoadEntry("glSamplerParameterf"));
|
||||||
glSamplerParameteri = reinterpret_cast<PFNGLSAMPLERPARAMETERIPROC>(LoadEntry("glSamplerParameteri"));
|
glSamplerParameteri = reinterpret_cast<PFNGLSAMPLERPARAMETERIPROC>(LoadEntry("glSamplerParameteri"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_SamplerObjects] = true;
|
s_openGLextensions[nzOpenGLExtension_SamplerObjects] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -465,7 +483,7 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SeparateShaderObjects
|
// SeparateShaderObjects
|
||||||
if (openGLversion >= 400 || IsSupported("GL_ARB_separate_shader_objects"))
|
if (s_openGLversion >= 400 || IsSupported("GL_ARB_separate_shader_objects"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -477,7 +495,7 @@ bool NzOpenGL::Initialize()
|
||||||
glProgramUniformMatrix4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVPROC>(LoadEntry("glProgramUniformMatrix4fv"));
|
glProgramUniformMatrix4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVPROC>(LoadEntry("glProgramUniformMatrix4fv"));
|
||||||
|
|
||||||
// Si ARB_gpu_shader_fp64 est supporté, alors cette extension donne également accès aux fonctions utilisant des double
|
// Si ARB_gpu_shader_fp64 est supporté, alors cette extension donne également accès aux fonctions utilisant des double
|
||||||
if (openGLextensions[nzOpenGLExtension_FP64])
|
if (s_openGLextensions[nzOpenGLExtension_FP64])
|
||||||
{
|
{
|
||||||
glProgramUniform1d = reinterpret_cast<PFNGLPROGRAMUNIFORM1DPROC>(LoadEntry("glProgramUniform1d"));
|
glProgramUniform1d = reinterpret_cast<PFNGLPROGRAMUNIFORM1DPROC>(LoadEntry("glProgramUniform1d"));
|
||||||
glProgramUniform2dv = reinterpret_cast<PFNGLPROGRAMUNIFORM2DVPROC>(LoadEntry("glProgramUniform2dv"));
|
glProgramUniform2dv = reinterpret_cast<PFNGLPROGRAMUNIFORM2DVPROC>(LoadEntry("glProgramUniform2dv"));
|
||||||
|
|
@ -486,7 +504,7 @@ bool NzOpenGL::Initialize()
|
||||||
glProgramUniformMatrix4dv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4DVPROC>(LoadEntry("glProgramUniformMatrix4dv"));
|
glProgramUniformMatrix4dv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4DVPROC>(LoadEntry("glProgramUniformMatrix4dv"));
|
||||||
}
|
}
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_SeparateShaderObjects] = true;
|
s_openGLextensions[nzOpenGLExtension_SeparateShaderObjects] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -495,13 +513,13 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TextureArray
|
// TextureArray
|
||||||
openGLextensions[nzOpenGLExtension_TextureArray] = (openGLversion >= 300 || IsSupported("GL_EXT_texture_array"));
|
s_openGLextensions[nzOpenGLExtension_TextureArray] = (s_openGLversion >= 300 || IsSupported("GL_EXT_texture_array"));
|
||||||
|
|
||||||
// TextureCompression_s3tc
|
// TextureCompression_s3tc
|
||||||
openGLextensions[nzOpenGLExtension_TextureCompression_s3tc] = IsSupported("GL_EXT_texture_compression_s3tc");
|
s_openGLextensions[nzOpenGLExtension_TextureCompression_s3tc] = IsSupported("GL_EXT_texture_compression_s3tc");
|
||||||
|
|
||||||
// TextureStorage
|
// TextureStorage
|
||||||
if (openGLversion >= 420 || IsSupported("GL_ARB_texture_storage"))
|
if (s_openGLversion >= 420 || IsSupported("GL_ARB_texture_storage"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -509,7 +527,7 @@ bool NzOpenGL::Initialize()
|
||||||
glTexStorage2D = reinterpret_cast<PFNGLTEXSTORAGE2DPROC>(LoadEntry("glTexStorage2D"));
|
glTexStorage2D = reinterpret_cast<PFNGLTEXSTORAGE2DPROC>(LoadEntry("glTexStorage2D"));
|
||||||
glTexStorage3D = reinterpret_cast<PFNGLTEXSTORAGE3DPROC>(LoadEntry("glTexStorage3D"));
|
glTexStorage3D = reinterpret_cast<PFNGLTEXSTORAGE3DPROC>(LoadEntry("glTexStorage3D"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_TextureStorage] = true;
|
s_openGLextensions[nzOpenGLExtension_TextureStorage] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -518,7 +536,7 @@ bool NzOpenGL::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// VertexArrayObject
|
// VertexArrayObject
|
||||||
if (openGLversion >= 300 || IsSupported("GL_ARB_vertex_array_object"))
|
if (s_openGLversion >= 300 || IsSupported("GL_ARB_vertex_array_object"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -526,7 +544,7 @@ bool NzOpenGL::Initialize()
|
||||||
glDeleteVertexArrays = reinterpret_cast<PFNGLDELETEVERTEXARRAYSPROC>(LoadEntry("glDeleteVertexArrays"));
|
glDeleteVertexArrays = reinterpret_cast<PFNGLDELETEVERTEXARRAYSPROC>(LoadEntry("glDeleteVertexArrays"));
|
||||||
glGenVertexArrays = reinterpret_cast<PFNGLGENVERTEXARRAYSPROC>(LoadEntry("glGenVertexArrays"));
|
glGenVertexArrays = reinterpret_cast<PFNGLGENVERTEXARRAYSPROC>(LoadEntry("glGenVertexArrays"));
|
||||||
|
|
||||||
openGLextensions[nzOpenGLExtension_VertexArrayObject] = true;
|
s_openGLextensions[nzOpenGLExtension_VertexArrayObjects] = true;
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
@ -554,14 +572,19 @@ bool NzOpenGL::Initialize()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NzOpenGL::IsInitialized()
|
||||||
|
{
|
||||||
|
return s_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
bool NzOpenGL::IsSupported(nzOpenGLExtension extension)
|
bool NzOpenGL::IsSupported(nzOpenGLExtension extension)
|
||||||
{
|
{
|
||||||
return openGLextensions[extension];
|
return s_openGLextensions[extension];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NzOpenGL::IsSupported(const NzString& string)
|
bool NzOpenGL::IsSupported(const NzString& string)
|
||||||
{
|
{
|
||||||
return openGLextensionSet.find(string) != openGLextensionSet.end();
|
return s_openGLextensionSet.find(string) != s_openGLextensionSet.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType type)
|
bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType type)
|
||||||
|
|
@ -704,15 +727,19 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
|
||||||
|
|
||||||
void NzOpenGL::Uninitialize()
|
void NzOpenGL::Uninitialize()
|
||||||
{
|
{
|
||||||
|
if (s_initialized)
|
||||||
|
{
|
||||||
NzContext::Uninitialize();
|
NzContext::Uninitialize();
|
||||||
|
|
||||||
for (bool& ext : openGLextensions)
|
for (bool& ext : s_openGLextensions)
|
||||||
ext = false;
|
ext = false;
|
||||||
|
|
||||||
openGLextensionSet.clear();
|
s_initialized = false;
|
||||||
openGLversion = 0;
|
s_openGLextensionSet.clear();
|
||||||
|
s_openGLversion = 0;
|
||||||
|
|
||||||
UnloadLibrary();
|
UnloadLibrary();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GLenum NzOpenGL::Attachment[nzAttachmentPoint_Max+1] =
|
GLenum NzOpenGL::Attachment[nzAttachmentPoint_Max+1] =
|
||||||
|
|
|
||||||
|
|
@ -1107,7 +1107,7 @@ bool NzRenderer::EnsureStateUpdate()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const bool vaoSupported = NzOpenGL::IsSupported(nzOpenGLExtension_VertexArrayObject);
|
static const bool vaoSupported = NzOpenGL::IsSupported(nzOpenGLExtension_VertexArrayObjects);
|
||||||
bool update;
|
bool update;
|
||||||
GLuint vao;
|
GLuint vao;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue