Refactor rendering process in main.rs and remove obsolete render_world function from Gui
This commit is contained in:
parent
a3d3f641cd
commit
341d531db3
2 changed files with 9 additions and 17 deletions
|
|
@ -106,7 +106,12 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WindowEvent::RedrawRequested => {
|
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) {
|
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("Hold right click to control the camera");
|
||||||
ui.text("WASD to move");
|
ui.text("WASD to move");
|
||||||
|
|
@ -134,6 +139,8 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
target.finish().expect("Failed to swap buffers");
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ use imgui_winit_support::{HiDpiMode, WinitPlatform};
|
||||||
use imgui_glium_renderer::Renderer as ImguiGliumRenderer;
|
use imgui_glium_renderer::Renderer as ImguiGliumRenderer;
|
||||||
use winit::window::Window;
|
use winit::window::Window;
|
||||||
use glium::Frame;
|
use glium::Frame;
|
||||||
use raidillon_render::{DisplayHandle, ECSRenderer};
|
use raidillon_render::DisplayHandle;
|
||||||
|
|
||||||
/// Convenience wrapper that owns all ImGui state required for integration with
|
/// Convenience wrapper that owns all ImGui state required for integration with
|
||||||
/// winit + glium.
|
/// winit + glium.
|
||||||
|
|
@ -74,21 +74,6 @@ impl Gui {
|
||||||
.expect("imgui rendering failed");
|
.expect("imgui rendering failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn render_world<F>(&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<F>(&mut self, build: F)
|
pub fn ui<F>(&mut self, build: F)
|
||||||
where
|
where
|
||||||
F: FnOnce(&Ui),
|
F: FnOnce(&Ui),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue