diff --git a/examples/assimp_loading/main.cpp b/examples/assimp_loading/main.cpp index 9ddf998..e93d4f6 100644 --- a/examples/assimp_loading/main.cpp +++ b/examples/assimp_loading/main.cpp @@ -82,7 +82,7 @@ main() else LOG(Error) << "Error initializing entity, exiting\n"; - // TODO: way more cleanup to do :(, see hexgame::cleanUp() + renShutdown(rs); meShutdownAssimp(); return 0; } diff --git a/include/renderer.h b/include/renderer.h index c034f6d..29ebe0a 100644 --- a/include/renderer.h +++ b/include/renderer.h @@ -32,10 +32,6 @@ struct render_state camera cam; util_RGBA clear_col; - render_group* filled_hex_render_group; - render_group* hex_line_render_group; - render_group* debug_render_group; - // NOTE: entity render groups are stored on the entity object rg_shader_program default_shader; rg_point_light* lights; @@ -45,7 +41,7 @@ struct render_state render_state* renInit(); -void renFreeBuffers(render_state* rs); +void renShutdown(render_state* rs); void renRenderFrame(render_state* rs, Entity* entities, uint32 entity_count); diff --git a/src/renderer.cpp b/src/renderer.cpp index 534ac7a..69938d5 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -32,7 +32,6 @@ bool initSDL(SDL_Handles& handles); bool createWindow(SDL_Handles& handles, v2i& viewport_dims); bool initContext(SDL_Handles& handles); bool initGlOptions(); -bool initDebugRenderGroup(render_state* rs); void setDefaults(render_state* rs); @@ -48,8 +47,7 @@ renInit() createWindow(rs->handles, rs->viewport_dims) && initContext(rs->handles) && initGlOptions() && - rgInitShaderProgram(rs->default_shader, DEFAULT_VERTEX_SHADER, DEFAULT_FRAGMENT_SHADER) && - initDebugRenderGroup(rs) ) + rgInitShaderProgram(rs->default_shader, DEFAULT_VERTEX_SHADER, DEFAULT_FRAGMENT_SHADER)) { return rs; } else { @@ -59,12 +57,12 @@ renInit() } void -renFreeBuffers(render_state* rs) +renShutdown(render_state* rs) { utilSafeFree(rs->lights); - rgFree(rs->filled_hex_render_group); - rgFree(rs->hex_line_render_group); - rgFree(rs->debug_render_group); + SDL_GL_DeleteContext(rs->handles.glContext); + SDL_DestroyWindow(rs->handles.window); + SDL_Quit(); } void @@ -216,32 +214,6 @@ initGlOptions() return true; } -bool -initDebugRenderGroup(render_state* rs) -{ - uint debug_buf_len = 12; // 4 vertices, 3 floats per vertex - rs->debug_render_group = rgInitSingle(rs->default_shader, debug_buf_len, true, 0, GL_LINE_LOOP); - - if (rs->debug_render_group == nullptr) { - LOG(Error) << "Error initializing debug render group\n"; - return false; - } - - gl_buffer& debug_vertex_buf = rs->debug_render_group->render_objects[0]->vertex_buffer; - gl_buffer& debug_normal_buf = rs->debug_render_group->render_objects[0]->normal_buffer; - - for (uint i = 0; i < debug_buf_len; i += 3) { - debug_normal_buf.buffer[i] = 0.f; - debug_normal_buf.buffer[i + 1] = 0.f; - debug_normal_buf.buffer[i + 2] = 1.f; - } - - rgInitGLFloatBuffer(&debug_vertex_buf, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); - rgInitGLFloatBuffer(&debug_normal_buf, GL_STATIC_DRAW, GL_ARRAY_BUFFER); - - return true; -} - void setDefaults(render_state* rs) {