Engine
```rust struct App { window: Window, ws: WindowState, update_loop: UpdateLoop, }
impl App { fn init(target: &EventLoopTarget) -> Self { let window = WindowBuilder::new().build(target).unwrap(); let ws = WindowState::new(&window); let update_loop = UpdateLoop::new(UpdateRate::PerSecond(60));
Self {
window,
ws,
update_loop,
}
}
fn event(&mut self, event: Event, _: &EventLoopTarget, control: &mut ControlFlow) {
self.ws.event(&event);
if self.ws.should_close {
*control = ControlFlow::Exit;
}
}
fn draw(&mut self) {
self.update_loop.update(|| {
// update();
});
// draw();
}
}
fn main() { run_app!(App); } ```
```rust use maingameloop::prelude::*;
struct App { // ... }
async fn init(target: &EventLoopTarget) -> App { // init
App {
// ..
}
}
impl App { fn draw(&mut self) { // draw } }
async fn main() { runapp!( async init, |, _, _, _| { // events }, App::draw ); } ```