quick backup
[demo] / src / opengl / mesh-gl.cc
index 42c2af9..119d043 100644 (file)
@@ -66,15 +66,12 @@ MeshGL::~MeshGL()
 
 void MeshGL::draw() const
 {
-       if(!vao)
-               return;
-
        glBindVertexArray(vao);
 
        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
-       glDrawElements(GL_TRIANGLES, num_indices, GL_UNSIGNED_INT, 0);
-       glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+       glDrawElements(GL_TRIANGLES, num_indices, GL_UNSIGNED_SHORT, 0);
 
+       glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
        glBindVertexArray(0);
 }
 
@@ -85,8 +82,10 @@ void MeshGL::update_vertex_data()
 
 void MeshGL::update_vbo()
 {
-       if(!num_vertices)
+       if(vertices.empty()) {
+               printf("empty vertices\n");
                return;
+       }
 
        /* vao */
        if(!vao)
@@ -130,6 +129,8 @@ void MeshGL::update_vbo()
                glBufferSubData(GL_ARRAY_BUFFER, 0, tex_coords.size() * sizeof(Vec2), &tex_coords[0]);
        glVertexAttribPointer(MESH_TEXTURE, 2, GL_FLOAT, GL_FALSE, sizeof(Vec2), 0);
 
+       num_vertices = vertices.size();
+
        /* indices */
 
        if(!ibo)
@@ -143,13 +144,11 @@ void MeshGL::update_vbo()
                                &indices[0]);
 
        num_indices = indices.size();
-       num_vertices = vertices.size();
 
        glEnableVertexAttribArray(MESH_VERTEX);
        glEnableVertexAttribArray(MESH_NORMAL);
        glEnableVertexAttribArray(MESH_TEXTURE);
 
-
        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
        glBindBuffer(GL_ARRAY_BUFFER, 0);
        glBindVertexArray(0);