STKMesh: Forget to add byref modifier

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@15001 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
vincentlj
2014-01-11 23:26:58 +00:00
parent 15dc149799
commit b5a9932169

View File

@@ -17,7 +17,7 @@ namespace ObjectShader
}
static
void allocateMeshBuffer(scene::IMeshBuffer* mb, GLuint &vbo, GLuint idx)
void allocateMeshBuffer(scene::IMeshBuffer* mb, GLuint &vbo, GLuint &idx)
{
initGL();
GLuint bufferid, indexbufferid;
@@ -130,24 +130,33 @@ STKMesh::~STKMesh()
void STKMesh::draw(unsigned i)
{
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDisable(GL_CULL_FACE);
GLuint vbo = vertex_buffer[i], idx = index_buffer[i];
GLenum ptype = Primitivetype[i];
size_t count = Indexcount[i];
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idx);
core::matrix4 ModelViewProjectionMatrix = irr_driver->getVideoDriver()->getTransform(video::ETS_PROJECTION);
ModelViewProjectionMatrix *= irr_driver->getVideoDriver()->getTransform(video::ETS_VIEW);
ModelViewProjectionMatrix *= irr_driver->getVideoDriver()->getTransform(video::ETS_WORLD);
glUseProgram(ObjectShader::Program);
core::matrix4 ModelViewProjectionMatrix = irr_driver->getVideoDriver()->getTransform(video::ETS_PROJECTION);
ModelViewProjectionMatrix *= irr_driver->getVideoDriver()->getTransform(video::ETS_VIEW);
ModelViewProjectionMatrix *= irr_driver->getVideoDriver()->getTransform(video::ETS_WORLD);
GLuint attrib_pos = glGetUniformLocation(ObjectShader::Program, "ModelViewProjectionMatrix");
glUniformMatrix4fv(attrib_pos, 1, GL_FALSE, ModelViewProjectionMatrix.pointer());
glUseProgram(ObjectShader::Program);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, Stride[i], 0);
glDisableVertexAttribArray(0);
glDrawElements(ptype, count, GL_UNSIGNED_BYTE, 0);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
video::SMaterial material;
material.MaterialType = irr_driver->getShader(ES_RAIN);
// fakemat.setTexture(0, tex);
// fakemat.BlendOperation = video::EBO_NONE;
irr_driver->getVideoDriver()->setMaterial(material);
static_cast<irr::video::COpenGLDriver*>(irr_driver->getVideoDriver())->setRenderStates3DMode();
}
void STKMesh::render()
@@ -185,7 +194,6 @@ void STKMesh::render()
if (transparent == isTransparentPass)
{
driver->setMaterial(material);
// static_cast<irr::video::COpenGLDriver*>(driver)->setRenderStates3DMode();
driver->drawMeshBuffer(mb);
}
}