[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20549] branches/bb_dev/source/gameengine/ Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp: Don' t create VBO at the same time as Display list.
Benoit Bolsee
benoit.bolsee at online.be
Mon Jun 1 12:59:18 CEST 2009
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) {
More information about the Bf-blender-cvs
mailing list