// NOTE: Loading mods from paths as `bind_winit` is cdylib which cannot be // linked as a Rust dependency #[path = "../src/event.rs"] mod event; #[path = "../src/event_loop.rs"] mod event_loop; #[path = "../src/util.rs"] mod util; use event::WindowEvent; use event_loop::{ EventAction, EventActions, InitAction, InitActions, WindowId, event_loop_new, run_app, }; use crate::{event_loop::init_actions_singleton, util::into_ptr}; fn main() { let event_loop = event_loop_new(); extern "C" fn init() -> *mut InitActions { init_actions_singleton(InitAction::CreateWindow) } extern "C" fn on_window_event(window_id: WindowId, event: &WindowEvent) -> *mut EventActions { dbg!(window_id, &event); let actions = match event { WindowEvent::CloseRequested => vec![EventAction::Exit], _ => vec![], }; into_ptr(actions) } run_app(event_loop, init, on_window_event); }