1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| void Chunk::SetVaoVbo(){
size_t fsize=sizeof(GLfloat);
glGenBuffers(1,&vboID);
glBindBuffer(GL_ARRAY_BUFFER,vboID);
glBufferData(GL_ARRAY_BUFFER,vertices.size()*fsize+coordTexture.size()*fsize,0,GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER,0,vertices.size()*fsize,vertices.data());
glBufferSubData(GL_ARRAY_BUFFER,vertices.size()*fsize,coordTexture.size()*fsize,coordTexture.data());
glBindBuffer(GL_ARRAY_BUFFER,0);
if(glIsVertexArray(vaoID) == GL_TRUE)
glDeleteVertexArrays(1, &vaoID);
glGenVertexArrays(1,&vaoID);
glBindVertexArray(vaoID);
glBindBuffer(GL_ARRAY_BUFFER,vboID);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0,BUFFER_OFFSET(0));
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0,BUFFER_OFFSET(vertices.size()*fsize));
glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER,0);
glBindVertexArray(0);
} |
Partager