summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomasz Kapuściński <tomaszkax86@gmail.com>2014-10-22 00:53:35 +0200
committerTomasz Kapuściński <tomaszkax86@gmail.com>2014-10-22 00:53:35 +0200
commitd3a722a0c56119f13d5ff3e68e9f4560c7924788 (patch)
treeb296d1d62f1220a49b9165aefd056b6530c4b4cd /src
parent1ab5746ca7500e1f759774497d75d9a9b23ecef7 (diff)
downloadcolobot-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.cpp21
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;
+ }
}
}