From 341d531db3ddb52cbe9442d74c6e2049cf79d19a Mon Sep 17 00:00:00 2001 From: reo Date: Mon, 21 Jul 2025 22:56:17 +0300 Subject: [PATCH] Refactor rendering process in main.rs and remove obsolete render_world function from Gui --- raidillon_game/src/main.rs | 9 ++++++++- raidillon_ui/src/ui.rs | 17 +---------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/raidillon_game/src/main.rs b/raidillon_game/src/main.rs index 825f1c2..2373c5d 100644 --- a/raidillon_game/src/main.rs +++ b/raidillon_game/src/main.rs @@ -106,7 +106,12 @@ fn main() -> Result<()> { } } WindowEvent::RedrawRequested => { - gui.render_world(&mut ecsr, &window, |ui, ecsr| { + // First render the 3D world + let mut target = ecsr.renderer.display().draw(); + ecsr.render_into(&mut target); + + // Then overlay ImGui on top + gui.render_with(&mut target, &window, |ui| { if let Ok(mut tr) = ecsr.world.query_one_mut::<&mut Transform>(object_ent) { ui.text("Hold right click to control the camera"); ui.text("WASD to move"); @@ -134,6 +139,8 @@ fn main() -> Result<()> { } } }); + + target.finish().expect("Failed to swap buffers"); } _ => {} }, diff --git a/raidillon_ui/src/ui.rs b/raidillon_ui/src/ui.rs index 224ee1a..abf347d 100644 --- a/raidillon_ui/src/ui.rs +++ b/raidillon_ui/src/ui.rs @@ -6,7 +6,7 @@ use imgui_winit_support::{HiDpiMode, WinitPlatform}; use imgui_glium_renderer::Renderer as ImguiGliumRenderer; use winit::window::Window; use glium::Frame; -use raidillon_render::{DisplayHandle, ECSRenderer}; +use raidillon_render::DisplayHandle; /// Convenience wrapper that owns all ImGui state required for integration with /// winit + glium. @@ -74,21 +74,6 @@ impl Gui { .expect("imgui rendering failed"); } - pub fn render_world(&mut self, ecsr: &mut ECSRenderer, window: &Window, build_ui: F) - where - F: FnOnce(&Ui, &mut ECSRenderer), - { - let mut target = ecsr.renderer.display().draw(); - - ecsr.render_into(&mut target); - - self.render_with(&mut target, window, |ui| { - build_ui(ui, ecsr); - }); - - target.finish().expect("Failed to swap buffers"); - } - pub fn ui(&mut self, build: F) where F: FnOnce(&Ui),