7 std::vector<glm::vec3> &&vtx,
8 std::vector<glm::vec3> &&col,
9 std::vector<glm::vec3> &&norm
15 glGenBuffers(ATTRIB_COUNT, handle);
17 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_VERTEX]);
18 glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(glm::vec3), vertices.data(), GL_STATIC_DRAW);
20 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_COLOR]);
21 glBufferData(GL_ARRAY_BUFFER, colors.size() * sizeof(glm::vec3), colors.data(), GL_STATIC_DRAW);
23 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_NORMAL]);
24 glBufferData(GL_ARRAY_BUFFER, normals.size() * sizeof(glm::vec3), normals.data(), GL_STATIC_DRAW);
28 glDeleteBuffers(ATTRIB_COUNT, handle);
33 glEnableVertexAttribArray(ATTRIB_VERTEX);
34 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_VERTEX]);
35 glVertexAttribPointer(
36 ATTRIB_VERTEX, // location (for shader)
39 GL_FALSE, // normalized
44 glEnableVertexAttribArray(ATTRIB_COLOR);
45 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_COLOR]);
46 glVertexAttribPointer(
47 ATTRIB_COLOR, // location (for shader)
50 GL_FALSE, // normalized
55 glEnableVertexAttribArray(ATTRIB_NORMAL);
56 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_NORMAL]);
57 glVertexAttribPointer(
58 ATTRIB_NORMAL, // location (for shader)
61 GL_FALSE, // normalized
69 vertices.size() // len
72 glDisableVertexAttribArray(ATTRIB_NORMAL);
73 glDisableVertexAttribArray(ATTRIB_COLOR);
74 glDisableVertexAttribArray(ATTRIB_VERTEX);