Fix imgui renderer once and for all
Finally solved the problems with the imgui renderer after a long chat with clankers. Fixed some other stuff as well. Reminder to keep the rendered_this_frame check as that's what solved it. Probably a deeper issue down there that caused us to render twice, but whatever.
This commit is contained in:
parent
15122b8ebd
commit
0c0d5cdb2a
7 changed files with 77 additions and 51 deletions
|
|
@ -75,6 +75,11 @@ impl<E: EngineTrait> Platform<E> for GliumPlatform<E> {
|
|||
};
|
||||
self.engine.initialize(ctx.clone());
|
||||
let _ = &self.event_loop.run(move |event, el| {
|
||||
self.rendering_system_manager
|
||||
.systems
|
||||
.iter_mut()
|
||||
.for_each(|(_, system)| system.handle_event(&mut self.window, event.clone()));
|
||||
|
||||
match event {
|
||||
Event::WindowEvent { event, .. } => match event {
|
||||
WindowEvent::CloseRequested => {
|
||||
|
|
@ -93,9 +98,10 @@ impl<E: EngineTrait> Platform<E> for GliumPlatform<E> {
|
|||
debug_ui_buffer,
|
||||
};
|
||||
|
||||
for (system_id, system) in self.rendering_system_manager.systems.iter_mut() {
|
||||
system.render(&mut context);
|
||||
}
|
||||
self.rendering_system_manager
|
||||
.systems
|
||||
.iter_mut()
|
||||
.for_each(|(_, system)| system.render(&mut context));
|
||||
target.finish().unwrap();
|
||||
}
|
||||
_ => {},
|
||||
|
|
@ -104,6 +110,10 @@ impl<E: EngineTrait> Platform<E> for GliumPlatform<E> {
|
|||
let mut ctx2 = ctx.clone();
|
||||
ctx2.current_event = event.clone();
|
||||
self.engine.update(ctx2);
|
||||
self.rendering_system_manager
|
||||
.systems
|
||||
.iter_mut()
|
||||
.for_each(|(_, system)| system.prepare_frame(&mut self.window));
|
||||
self.window.request_redraw();
|
||||
}
|
||||
_ => {},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue