From b9b4361767e8277737e0597d6f6369e0ac89f80b Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sat, 24 Jan 2026 08:12:26 -0500 Subject: [PATCH] fix rendering issue with begin/end frame functions --- src/main.cpp | 16 +++++++++------- src/renderer.cpp | 12 ++++++++---- src/renderer.h | 3 +++ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index f606338..52422f2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -100,13 +100,15 @@ void run_gui_simulation(SimulationState* sim) { update_camera(&render_state, sim); - render_simulation(sim, &render_state); - - // Render UI panels - render_info(sim); - render_body_list_ui(sim, &render_state, &ui_state); - render_body_info_ui(sim, &render_state); - render_maneuver_list_ui(sim, &render_state); + begin_frame(); + render_simulation(sim, &render_state); + + // Render UI panels + render_info(sim); + render_body_list_ui(sim, &render_state, &ui_state); + render_body_info_ui(sim, &render_state); + render_maneuver_list_ui(sim, &render_state); + end_frame(); } close_renderer(&render_state); diff --git a/src/renderer.cpp b/src/renderer.cpp index 892c9d9..12f10d3 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -527,11 +527,17 @@ void render_orbit(CelestialBody* body, CelestialBody* parent, RenderState* rende } } -// Render the entire simulation -void render_simulation(SimulationState* sim, RenderState* render_state) { +void begin_frame() { BeginDrawing(); ClearBackground(BLACK); +} + +void end_frame() { + EndDrawing(); +} +// Render the entire simulation +void render_simulation(SimulationState* sim, RenderState* render_state) { BeginMode3D(render_state->camera); // Draw a subtle reference grid @@ -576,6 +582,4 @@ void render_simulation(SimulationState* sim, RenderState* render_state) { render_maneuver_marker_screen_space(craft, maneuver, render_state); } } - - EndDrawing(); } diff --git a/src/renderer.h b/src/renderer.h index 8b48543..a4322e4 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -45,7 +45,10 @@ void update_camera(RenderState* render_state, SimulationState* sim); void render_body(CelestialBody* body, RenderState* render_state); void render_spacecraft_screen_space(Spacecraft* craft, RenderState* render_state); void render_maneuver_marker_screen_space(Spacecraft* craft, Maneuver* maneuver, RenderState* render_state); +// NOTE: needs to be called between begin_frame() and end_frame() void render_simulation(SimulationState* sim, RenderState* render_state); +void begin_frame(); +void end_frame(); // Scaling functions Vector3 scale_position(Vec3 pos, double scale);