diff --git a/src/GLObjects/GLObject.cpp b/src/GLObjects/GLObject.cpp index d9b1036..6029b5e 100644 --- a/src/GLObjects/GLObject.cpp +++ b/src/GLObjects/GLObject.cpp @@ -9,6 +9,7 @@ GLObject::GLObject(ShaderProgram *shaderProgram): _sp(shaderProgram) { GLObject::~GLObject() { glDeleteBuffers(1, &_vertexVbo); glDeleteBuffers(1, &_indexVbo); + glDeleteVertexArrays(1, &_vao); } void GLObject::create() { @@ -27,7 +28,7 @@ void GLObject::create() { glBindBuffer(GL_ARRAY_BUFFER, _vertexVbo); glBufferData(GL_ARRAY_BUFFER, vCount, vArray.get(), GL_STREAM_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexVbo); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, iCount, iArray.get(), GL_STATIC_DRAW); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, iCount, iArray.get(), GL_STREAM_DRAW); _trianglesCount = iCount/sizeof(GLuint); diff --git a/src/Shaders/ShaderProgram.cpp b/src/Shaders/ShaderProgram.cpp index ccf9cfb..918c802 100644 --- a/src/Shaders/ShaderProgram.cpp +++ b/src/Shaders/ShaderProgram.cpp @@ -29,6 +29,7 @@ void ShaderProgram::use() const { } ShaderProgram::~ShaderProgram() { + glDeleteProgram(_program); } ShaderProgram::operator GLuint() const {