12 glGenBuffers(ATTRIB_COUNT, handle);
16 glDeleteBuffers(ATTRIB_COUNT, handle);
27 void Model::Reserve(int s) {
34 void Model::Update() {
35 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_VERTEX]);
36 glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(glm::vec3), vertices.data(), GL_STATIC_DRAW);
38 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_COLOR]);
39 glBufferData(GL_ARRAY_BUFFER, colors.size() * sizeof(glm::vec3), colors.data(), GL_STATIC_DRAW);
41 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_NORMAL]);
42 glBufferData(GL_ARRAY_BUFFER, normals.size() * sizeof(glm::vec3), normals.data(), GL_STATIC_DRAW);
53 glEnableVertexAttribArray(ATTRIB_VERTEX);
54 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_VERTEX]);
55 glVertexAttribPointer(
56 ATTRIB_VERTEX, // location (for shader)
59 GL_FALSE, // normalized
64 glEnableVertexAttribArray(ATTRIB_COLOR);
65 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_COLOR]);
66 glVertexAttribPointer(
67 ATTRIB_COLOR, // location (for shader)
70 GL_FALSE, // normalized
75 glEnableVertexAttribArray(ATTRIB_NORMAL);
76 glBindBuffer(GL_ARRAY_BUFFER, handle[ATTRIB_NORMAL]);
77 glVertexAttribPointer(
78 ATTRIB_NORMAL, // location (for shader)
81 GL_FALSE, // normalized
89 vertices.size() // len
92 glDisableVertexAttribArray(ATTRIB_NORMAL);
93 glDisableVertexAttribArray(ATTRIB_COLOR);
94 glDisableVertexAttribArray(ATTRIB_VERTEX);