From dd22aa6d3d5f998e4bdc1c3493c9d0bc30a6ed79 Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sat, 14 Nov 2020 19:34:02 -0500 Subject: [PATCH] add render_object cleanup --- src/render_object.cpp | 6 +++++- src/renderer.cpp | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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);