21 releases (4 breaking)
0.6.1 | Nov 27, 2022 |
---|---|
0.6.0 | Nov 7, 2022 |
0.4.6 | Aug 23, 2022 |
0.4.5 | Jul 12, 2022 |
0.1.1 | Apr 20, 2022 |
#848 in Game dev
59 downloads per month
Used in 9 crates
(via srs2dge-core)
33KB
876 lines
Example usage with some random Engine
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);
}
Example usage with different init, event and draw functions
use main_game_loop::prelude::*;
struct App {
// ...
}
async fn init(target: &EventLoopTarget) -> App {
// init
App {
// ..
}
}
impl App {
fn draw(&mut self) {
// draw
}
}
#[tokio::main]
async fn main() {
run_app!(
async init,
|_, _, _, _| {
// events
},
App::draw
);
}
Dependencies
~6–19MB
~267K SLoC