From: Jerome St-Louis Date: Wed, 15 Oct 2014 17:03:34 +0000 (-0400) Subject: ecere/gfx3D/OpenGL: Also checking flags in addition to normal pointers X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b3f463a3504cd94317e1c670f18e0b3713c348a;hp=74725b1c82802e795956d9f06bf79d8d73eec19f;p=sdk ecere/gfx3D/OpenGL: Also checking flags in addition to normal pointers - Allow for deleting duplicate vertex memory --- diff --git a/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec b/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec index 0c6e6a9..40b6524 100644 --- a/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec +++ b/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec @@ -3506,7 +3506,7 @@ class OpenGLDisplayDriver : DisplayDriver glEnable(GL_FOG); // Maps - if(material.baseMap && mesh.texCoords) + if(material.baseMap && (mesh.texCoords || mesh.flags.texCoords1)) { Bitmap map = material.baseMap; glEnable(GL_TEXTURE_2D); @@ -3821,7 +3821,7 @@ class OpenGLDisplayDriver : DisplayDriver glVertexPointer(3, mesh.flags.doubleVertices ? GL_DOUBLE : GL_FLOAT, 0, vboAvailable ? null : mesh.vertices); // *** Normals Stream *** - if(mesh.normals) + if(mesh.normals || mesh.flags.normals) { glEnableClientState(GL_NORMAL_ARRAY); GLBindBuffer(GL_ARRAY_BUFFER_ARB, oglMesh.normals); @@ -3831,7 +3831,7 @@ class OpenGLDisplayDriver : DisplayDriver glDisableClientState(GL_NORMAL_ARRAY); // *** Texture Coordinates Stream *** - if(mesh.texCoords) + if(mesh.texCoords || mesh.flags.texCoords1) { glEnableClientState(GL_TEXTURE_COORD_ARRAY); GLBindBuffer( GL_ARRAY_BUFFER_ARB, oglMesh.texCoords); @@ -3841,7 +3841,7 @@ class OpenGLDisplayDriver : DisplayDriver glDisableClientState(GL_TEXTURE_COORD_ARRAY); // *** Color Stream *** - if(mesh.colors) + if(mesh.colors || mesh.flags.colors) { glEnableClientState(GL_COLOR_ARRAY); GLBindBuffer( GL_ARRAY_BUFFER_ARB, oglMesh.colors); @@ -3855,21 +3855,21 @@ class OpenGLDisplayDriver : DisplayDriver { GLBindBuffer( GL_ARRAY_BUFFER_ARB, 0); glVertexPointer(3,mesh.flags.doubleVertices ? GL_DOUBLE : GL_FLOAT,0,mesh.vertices); - if(mesh.normals && !display.display3D.collectingHits) + if((mesh.normals || mesh.flags.normals) && !display.display3D.collectingHits) { glEnableClientState(GL_NORMAL_ARRAY); glNormalPointer(mesh.flags.doubleNormals ? GL_DOUBLE : GL_FLOAT, 0, mesh.normals); } else glDisableClientState(GL_NORMAL_ARRAY); - if(mesh.texCoords && !display.display3D.collectingHits) + if((mesh.texCoords || mesh.flags.texCoords1) && !display.display3D.collectingHits) { glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(2, GL_FLOAT, 0, mesh.texCoords); } else glDisableClientState(GL_TEXTURE_COORD_ARRAY); - if(mesh.colors && !display.display3D.collectingHits) + if((mesh.colors || mesh.flags.colors) && !display.display3D.collectingHits) { glEnableClientState(GL_COLOR_ARRAY); glColorPointer(4, GL_FLOAT, 0, mesh.colors);