static void loadMeshGeometry(Mesh& m, GeometryPX& g) { vector<GLfloat> pos, tex; for (int i = 0; i < m.getNumFaces(); ++i) { const Mesh::Face f = m.getFace(i); for (int j = 0; j < f.getNumVertices(); ++j) { const Mesh::Vertex v = f.getVertex(j); pos.push_back((GLfloat)(v.getPosition()[0])); pos.push_back((GLfloat)(v.getPosition()[1])); tex.push_back((GLfloat)v.getTexCoords()[0]); tex.push_back((GLfloat)v.getTexCoords()[1]); } } const unsigned int size = pos.size() * sizeof(GLfloat); glBindBuffer(GL_ARRAY_BUFFER, g.posVbo); glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, size, &pos[0]); checkGlErrors(); glBindBuffer(GL_ARRAY_BUFFER, g.texVbo); glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, size, &tex[0]); checkGlErrors(); }