Revision: 20549
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20549
Author:   ben2610
Date:     2009-06-01 12:59:17 +0200 (Mon, 01 Jun 2009)

Log Message:
-----------
Don't create VBO at the same time as Display list.

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-01 09:44:41 UTC (rev 20548)
+++ 
branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
        2009-06-01 10:59:17 UTC (rev 20549)
@@ -408,41 +408,43 @@
                else
                        glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
 
-               if(GLEW_ARB_vertex_buffer_object) {
-                       if(!it.array->m_vboSlot) InitVboSlot(it.array, &ms);
-                       if(it.array->m_vboSlot)
-                       {
-                               glBindBuffer(GL_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_vertVbo);
-                               glVertexPointer(3, GL_FLOAT, 0, 0);
-                               glBindBuffer(GL_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_normalVbo);
-                               glNormalPointer(GL_FLOAT, 0, 0);
-                               if(!wireframe) {
-                                       TexCoordPtr(it.array);
-                                       if(glIsEnabled(GL_COLOR_ARRAY))
-                                       {
-                                               
glBindBuffer(GL_ARRAY_BUFFER_ARB, it.array->m_vboSlot->m_colorVbo);
-                                               glColorPointer(4, 
GL_UNSIGNED_BYTE, 0, 0);
-                                       }
+               // no need to create VBO if we are making a list
+               if(GLEW_ARB_vertex_buffer_object && !ms.m_bDisplayList) {
+                       if(!it.array->m_vboSlot) 
+                               InitVboSlot(it.array, &ms);
+               }
+               if(it.array->m_vboSlot)
+               {
+                       glBindBuffer(GL_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_vertVbo);
+                       glVertexPointer(3, GL_FLOAT, 0, 0);
+                       glBindBuffer(GL_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_normalVbo);
+                       glNormalPointer(GL_FLOAT, 0, 0);
+                       if(!wireframe) {
+                               TexCoordPtr(it.array);
+                               if(glIsEnabled(GL_COLOR_ARRAY))
+                               {
+                                       glBindBuffer(GL_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_colorVbo);
+                                       glColorPointer(4, GL_UNSIGNED_BYTE, 0, 
0);
                                }
-                               glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_indexVbo);
-                               // a little clean up...
-                               glDrawElements(drawmode, it.totindex, 
GL_UNSIGNED_SHORT, 0);
-                               glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
-                               glBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
-                               glVertexPointer(3, GL_FLOAT, 0, 0);
-                               glNormalPointer(GL_FLOAT, 0, 0);
-                               if(!wireframe) {
-                                       for(unit=0; unit<m_texco_num; unit++) {
-                                               
glClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
-                                               
glBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
-                                               glTexCoordPointer(2, GL_FLOAT, 
0, 0);
-                                       }
-                                       if(glIsEnabled(GL_COLOR_ARRAY))
-                                               glColorPointer(4, 
GL_UNSIGNED_BYTE, 0, 0);
+                       }
+                       glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 
it.array->m_vboSlot->m_indexVbo);
+                       // a little clean up...
+                       glDrawElements(drawmode, it.totindex, 
GL_UNSIGNED_SHORT, 0);
+                       glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+                       glBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
+                       glVertexPointer(3, GL_FLOAT, 0, 0);
+                       glNormalPointer(GL_FLOAT, 0, 0);
+                       if(!wireframe) {
+                               for(unit=0; unit<m_texco_num; unit++) {
+                                       
glClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
+                                       glBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
+                                       glTexCoordPointer(2, GL_FLOAT, 0, 0);
                                }
+                               if(glIsEnabled(GL_COLOR_ARRAY))
+                                       glColorPointer(4, GL_UNSIGNED_BYTE, 0, 
0);
                        }
-               }
-               if(!it.array->m_vboSlot) {
+               } 
+               else {
                        glVertexPointer(3, GL_FLOAT, stride, 
it.vertex->getXYZ());
                        glNormalPointer(GL_FLOAT, stride, 
it.vertex->getNormal());
                        if(!wireframe) {


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to