diff --git a/src/render_object.cpp b/src/render_object.cpp index 3bec237..36da09d 100644 --- a/src/render_object.cpp +++ b/src/render_object.cpp @@ -49,7 +49,11 @@ roInit(meMeshInfo* mi_in, render_object& ro_out) void roFree(render_object& ro) { - LOG(Debug) << "TODO: release GL buffers from render_object\n"; + glDeleteBuffers(1, &ro.vertex_buffer_id); + glDeleteBuffers(1, &ro.normal_buffer_id); + glDeleteBuffers(1, &ro.uv_buffer_id); + glDeleteBuffers(1, &ro.index_buffer_id); + glDeleteTextures(1, &ro.tex_id); } void diff --git a/src/renderer.cpp b/src/renderer.cpp index 2c04e78..b4ffef9 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -76,9 +76,15 @@ renShutdown(render_state* rs) for (uint k = 0; k < e.ro_count; k++) roFree(e.render_objs[k]); + + utilSafeFree(e.render_objs); } + + utilSafeFree(rg.entities); } + utilSafeFree(rs->render_groups); + utilSafeFree(rs->default_shader); utilSafeFree(rs->lights); SDL_GL_DeleteContext(rs->handles.glContext); SDL_DestroyWindow(rs->handles.window);