Browse Source

fix rendering issue with begin/end frame functions

main
cinnaboot 6 months ago
parent
commit
b9b4361767
  1. 16
      src/main.cpp
  2. 12
      src/renderer.cpp
  3. 3
      src/renderer.h

16
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);

12
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();
}

3
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);

Loading…
Cancel
Save