From 05f623007dd0fe89f535396719c425095ff0c3c6 Mon Sep 17 00:00:00 2001 From: Jerome St-Louis Date: Thu, 23 Oct 2014 22:57:13 -0400 Subject: [PATCH] ecere/gfx/drivers/OpenGL: Not locking vertex arrays when VBOs are available - 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 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec b/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec index 437051a..1ce42b3 100644 --- a/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec +++ b/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec @@ -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 -- 1.8.3.1