ecere/gfx/drivers/OpenGL: Not locking vertex arrays when VBOs are available
authorJerome St-Louis <jerome@ecere.com>
Fri, 24 Oct 2014 02:57:13 +0000 (22:57 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sun, 15 Feb 2015 18:44:46 +0000 (13:44 -0500)
- These are no longer useful with modern hardware (Post HW T&L) and were causing problems when using glDrawElements() with a null VBO.

ecere/src/gfx/drivers/OpenGLDisplayDriver.ec

index 437051a..1ce42b3 100644 (file)
@@ -3794,11 +3794,13 @@ class OpenGLDisplayDriver : DisplayDriver
       //Logf("SelectMesh\n");
 
 #if !defined( __ANDROID__) && !defined(__APPLE__)
+
 #if defined(__WIN32__)
       if(glUnlockArraysEXT)
 #endif
-         if(display.display3D.mesh)
+         if(!vboAvailable && display.display3D.mesh)
             glUnlockArraysEXT();
+
 #endif
       if(mesh)
       {
@@ -3874,7 +3876,9 @@ class OpenGLDisplayDriver : DisplayDriver
 #if defined(__WIN32__)
          if(glLockArraysEXT)
 #endif
-            glLockArraysEXT(0, mesh.nVertices);
+            if(!vboAvailable)
+               glLockArraysEXT(0, mesh.nVertices);
+
 #endif
       }
       else