main_game_loop 0.2.0

A game loop with event handling
Documentation

main_game_loop

dependency status

Example usage with some random Engine

fn run(mut engine: Engine) {
    let window = engine.create_window(WindowBuilder::new())unwrap();
    let mut update_loop = UpdateLoop::new(UpdateRate::PerSecond(60));

    loop {
        if let Some(event) = engine.poll() {
            event(event);
        } else {
            let delta = update_loop.update(|| {
                update();
            });

            draw();

            if should_report {
                log::debug!(
                    "\n{}",
                    Reporter::report_all(
                        "5.0s",
                        &[
                            ("UPDATE", &update_report),
                            ("FRAME", &frame_report),
                            ("EVENT", &event_report),
                        ],
                    )
                );
            }
        }
    }
}

fn main() {
    env_logger::init();
    Engine::new().run(run);
}