void nbMesh::draw() { if (visible && distance) { if (vao) { glLogVerbose("glBindVertexArrayOES : vao"); glBindVertexArrayOES(vao); } else { setAttributePointer(); } if (material) { material->draw(); } glLogVerbose("glBindBuffer : GL_ELEMENT_ARRAY_BUFFER"); glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, vboVertexIndex); glLogVerbose("glDrawElements"); glDrawElements(mode, (int)vertexIndexList.size(), GL_UNSIGNED_SHORT, ( void * )NULL ); } }
void nbMesh::buildVao() { glLog("glGenVertexArraysOES : vao"); glGenVertexArraysOES( 1, &vao ); glLog("glBindVertexArrayOES : vao"); glBindVertexArrayOES(vao); setAttributePointer( ); glLog("glBindBuffer : GL_ELEMENT_ARRAY_BUFFER"); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboVertexIndex); glLog("glBindVertexArrayOES : 0"); glBindVertexArrayOES(0); }
void Program::UseProgram() { glUseProgram(p_programID); for (int i = 0; i < p_numAttributes; i++) { glEnableVertexAttribArray(i); } setAttributePointer(); int i = glGetUniformLocation(p_programID, "MVP"); //m_MVPLocation = glGetUniformLocation(p_programID, "MVP"); if (i != (-1)) m_MVPLocation = i; }