diff options
author | Tomasz Kapuściński <tomaszkax86@gmail.com> | 2014-10-22 00:53:35 +0200 |
---|---|---|
committer | Tomasz Kapuściński <tomaszkax86@gmail.com> | 2014-10-22 00:53:35 +0200 |
commit | d3a722a0c56119f13d5ff3e68e9f4560c7924788 (patch) | |
tree | b296d1d62f1220a49b9165aefd056b6530c4b4cd /src | |
parent | 1ab5746ca7500e1f759774497d75d9a9b23ecef7 (diff) | |
download | colobot-d3a722a0c56119f13d5ff3e68e9f4560c7924788.tar.gz colobot-d3a722a0c56119f13d5ff3e68e9f4560c7924788.tar.bz2 colobot-d3a722a0c56119f13d5ff3e68e9f4560c7924788.zip |
Improved VBO support detection
Diffstat (limited to 'src')
-rw-r--r-- | src/graphics/opengl/gldevice.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 69d295d..0ae6f88 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -217,12 +217,25 @@ bool CGLDevice::Create() else { GetLogger()->Info("Auto-detecting VBO support\n"); - m_vboAvailable = glewIsSupported("GL_ARB_vertex_buffer_object"); + + // extracting OpenGL version + const char *version = reinterpret_cast<const char*>(glGetString(GL_VERSION)); + int major = 0, minor = 0; - if (m_vboAvailable) - GetLogger()->Info("Detected ARB_vertex_buffer_object extension - using VBOs\n"); + sscanf(version, "%d.%d", &major, &minor); + + // VBO is core OpenGL feature since 1.5 + // everything below 1.5 means no VBO support + if(major > 1 || minor > 4) + { + GetLogger()->Info("OpenGL %d.%d, VBO supported\n", major, minor); + m_vboAvailable = true; + } else - GetLogger()->Info("No ARB_vertex_buffer_object extension present - using display lists\n"); + { + GetLogger()->Info("OpenGL %d.%d, VBO not supported\n", major, minor); + m_vboAvailable = false; + } } } |