Revision: 38050
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38050
Author: kupoman
Date: 2011-07-03 06:12:39 +0000 (Sun, 03 Jul 2011)
Log Message:
-----------
Fixed the VBO code so that file that was crashing it no longer crashes it. It
all seems to be working now.
Modified Paths:
--------------
branches/soc-2011-cucumber/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
Modified:
branches/soc-2011-cucumber/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
===================================================================
---
branches/soc-2011-cucumber/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
2011-07-03 04:28:41 UTC (rev 38049)
+++
branches/soc-2011-cucumber/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
2011-07-03 06:12:39 UTC (rev 38050)
@@ -64,8 +64,8 @@
// Set up a dummy buffer
glBindBufferARB(GL_ARRAY_BUFFER_ARB, this->dummy);
- GLbyte* dummy = new GLbyte [this->size];
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(GLbyte), dummy,
GL_STATIC_DRAW_ARB);
+ GLshort* dummy = new GLshort [this->size];
+ glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(GLshort), dummy,
GL_STATIC_DRAW_ARB);
delete dummy;
}
@@ -191,15 +191,15 @@
void VBO::Draw(int texco_num, RAS_IRasterizer::TexCoGen* texco, int
attrib_num, RAS_IRasterizer::TexCoGen* attrib, bool multi)
{
// Indices
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, this->ibo);
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, this->ibo);
// Vertexes
- glBindBuffer(GL_ARRAY_BUFFER_ARB, this->vertex);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, this->vertex);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, 0);
// Normals
- glBindBuffer(GL_ARRAY_BUFFER_ARB, this->normal);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, this->normal);
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, 0);
@@ -209,42 +209,42 @@
for (int i=0; i<texco_num; ++i)
{
glClientActiveTexture(GL_TEXTURE0_ARB + i);
+
switch(texco[i])
{
- case RAS_IRasterizer::RAS_TEXCO_ORCO:
- case RAS_IRasterizer::RAS_TEXCO_GLOB:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->vertex);
- glTexCoordPointer(3, GL_FLOAT, 0, 0);
- enable=true;
- break;
- case RAS_IRasterizer::RAS_TEXCO_UV1:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[0]);
- glTexCoordPointer(2, GL_FLOAT, 0, 0);
- enable=true;
- break;
- case RAS_IRasterizer::RAS_TEXCO_NORM:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->normal);
- glTexCoordPointer(3, GL_FLOAT, 0, 0);
- enable=true;
- break;
- case RAS_IRasterizer::RAS_TEXTANGENT:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->tangent);
- glTexCoordPointer(4, GL_FLOAT, 0, 0);
- enable=true;
- break;
- case RAS_IRasterizer::RAS_TEXCO_UV2:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[1]);
- glTexCoordPointer(2, GL_FLOAT, 0, 0);
- enable=true;
- break;
- default:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->dummy);
- glTexCoordPointer(1, GL_BYTE, 0, 0);
- break;
+ case RAS_IRasterizer::RAS_TEXCO_ORCO:
+ case RAS_IRasterizer::RAS_TEXCO_GLOB:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->vertex);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(3, GL_FLOAT, 0, 0);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_UV1:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[0]);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(2, GL_FLOAT, 0, 0);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_NORM:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->normal);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(3, GL_FLOAT, 0, 0);
+ break;
+ case RAS_IRasterizer::RAS_TEXTANGENT:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->tangent);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(4, GL_FLOAT, 0, 0);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_UV2:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[1]);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(2, GL_FLOAT, 0, 0);
+ break;
+ default:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->dummy);
+
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexCoordPointer(1, GL_SHORT, 0, 0);
+ break;
}
}
- if (enable)
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
}
if (GLEW_ARB_vertex_program)
@@ -253,34 +253,34 @@
{
switch(attrib[i])
{
- case RAS_IRasterizer::RAS_TEXCO_ORCO:
- case RAS_IRasterizer::RAS_TEXCO_GLOB:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->vertex);
- glVertexAttribPointerARB(i, 3, GL_FLOAT,
GL_FALSE, 0, 0);
- glEnableVertexAttribArrayARB(i);
- break;
- case RAS_IRasterizer::RAS_TEXCO_UV1:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[0]);
- glVertexAttribPointerARB(i, 2, GL_FLOAT,
GL_FALSE, 0, 0);
- glEnableVertexAttribArrayARB(i);
- break;
- case RAS_IRasterizer::RAS_TEXCO_NORM:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->normal);
- glVertexAttribPointerARB(i, 2, GL_FLOAT,
GL_FALSE, 0, 0);
- glEnableVertexAttribArrayARB(i);
- break;
- case RAS_IRasterizer::RAS_TEXTANGENT:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->tangent);
- glVertexAttribPointerARB(i, 4, GL_FLOAT,
GL_FALSE, 0, 0);
- glEnableVertexAttribArrayARB(i);
- break;
- case RAS_IRasterizer::RAS_TEXCO_UV2:
- glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[1]);
- glVertexAttribPointerARB(i, 2, GL_FLOAT,
GL_FALSE, 0, 0);
- glEnableVertexAttribArrayARB(i);
- break;
- default:
- break;
+ case RAS_IRasterizer::RAS_TEXCO_ORCO:
+ case RAS_IRasterizer::RAS_TEXCO_GLOB:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->vertex);
+ glVertexAttribPointerARB(i, 3,
GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArrayARB(i);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_UV1:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[0]);
+ glVertexAttribPointerARB(i, 2,
GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArrayARB(i);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_NORM:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->normal);
+ glVertexAttribPointerARB(i, 2,
GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArrayARB(i);
+ break;
+ case RAS_IRasterizer::RAS_TEXTANGENT:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->tangent);
+ glVertexAttribPointerARB(i, 4,
GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArrayARB(i);
+ break;
+ case RAS_IRasterizer::RAS_TEXCO_UV2:
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB,
this->UV[1]);
+ glVertexAttribPointerARB(i, 2,
GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArrayARB(i);
+ break;
+ default:
+ break;
}
}
}
@@ -297,8 +297,8 @@
glDisableVertexAttribArrayARB(i);
}
- glBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
}
RAS_StorageVBO::RAS_StorageVBO(int *texco_num, RAS_IRasterizer::TexCoGen
*texco, int *attrib_num, RAS_IRasterizer::TexCoGen *attrib):
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs