[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20663] branches/bb_dev/source/gameengine/ Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp: BGE VBO updates :

Dalai Felinto dfelinto at gmail.com
Sat Jun 6 00:14:41 CEST 2009


Revision: 20663
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20663
Author:   dfelinto
Date:     2009-06-06 00:14:40 +0200 (Sat, 06 Jun 2009)

Log Message:
-----------
BGE VBO updates:
- Changing Normal VBO from GL_STATIC_DRAW to GL_DYNAMIC_DRAW 

- Replacing glBufferSubDataARB() with ZERO offset to glBufferDataARB() (they work the same, and the latest is clear in its functionality).

- Removing unnecessary calls of: glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
[Benoit, can you check if this last one is ok?]

Modified Paths:
--------------
    branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Modified: branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
===================================================================
--- branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp	2009-06-05 20:56:20 UTC (rev 20662)
+++ branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp	2009-06-05 22:14:40 UTC (rev 20663)
@@ -170,34 +170,34 @@
 	glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_vertVbo);
 	glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*array->m_vertex.size()*3,
 		array->m_vboSlot->m_verts, GL_DYNAMIC_DRAW_ARB);
-	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+//	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	glGenBuffersARB(1, &array->m_vboSlot->m_normalVbo);
 	glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_normalVbo);
 	glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*array->m_vertex.size()*3,
-		normals, GL_STATIC_DRAW_ARB);
-	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+		normals, GL_DYNAMIC_DRAW_ARB);
+//	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	glGenBuffersARB(1, &array->m_vboSlot->m_tangentVbo);
 	glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_tangentVbo);
 	glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*array->m_vertex.size()*4,
 		tangents, GL_STATIC_DRAW_ARB);
-	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+//	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	glGenBuffersARB(1, &array->m_vboSlot->m_texCoordVbo[0]);
 	glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_texCoordVbo[0]);
 	glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*array->m_vertex.size()*2,
 		texCoords0, GL_STATIC_DRAW_ARB);
-	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+//	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	glGenBuffersARB(1, &array->m_vboSlot->m_texCoordVbo[1]);
 	glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_texCoordVbo[1]);
 	glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*array->m_vertex.size()*2,
 		texCoords1, GL_STATIC_DRAW_ARB);
-	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+//	glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	if(isColors)
 	{
 		glGenBuffersARB(1, &array->m_vboSlot->m_colorVbo);
 		glBindBufferARB(GL_ARRAY_BUFFER_ARB, array->m_vboSlot->m_colorVbo);
 		glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(unsigned char)*array->m_vertex.size()*4,
 			colors, GL_STATIC_DRAW_ARB);
-		glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+//		glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 	}
 	glGenBuffersARB(1, &array->m_vboSlot->m_indexVbo);
 	glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, array->m_vboSlot->m_indexVbo);
@@ -242,12 +242,11 @@
 				num+=3;
 			}
 			glBindBufferARB(GL_ARRAY_BUFFER_ARB, slot->m_vertVbo);
-			glBufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
-				sizeof(float)*it.array->m_vertex.size()*3, slot->m_verts);
-			glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+			glBufferDataARB(GL_ARRAY_BUFFER_ARB,
+				sizeof(float)*it.array->m_vertex.size()*3, slot->m_verts, GL_DYNAMIC_DRAW_ARB);
 			glBindBufferARB(GL_ARRAY_BUFFER_ARB, slot->m_normalVbo);
-			glBufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
-				sizeof(float)*it.array->m_vertex.size()*3, normals);
+			glBufferDataARB(GL_ARRAY_BUFFER_ARB,
+				sizeof(float)*it.array->m_vertex.size()*3, normals, GL_DYNAMIC_DRAW_ARB);
 			glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
 
 		}





More information about the Bf-blender-cvs mailing list