mod graphics; mod state; use state::State; use graphics::Graphics; use winit::event_loop::EventLoop; pub fn main() { #[cfg(target_arch = "wasm32")] { std::panic::set_hook(Box::new(console_error_panic_hook::hook)); console_log::init().expect("could not initialize logger"); } #[cfg(not(target_arch = "wasm32"))] { env_logger::init(); } let event_loop = EventLoop::new().unwrap(); let window = winit::window::WindowBuilder::new().build(&event_loop).unwrap(); #[cfg(not(target_arch = "wasm32"))] { pollster::block_on(Graphics::init(&window, State::new())).run(event_loop); } #[cfg(target_arch = "wasm32")] { use winit::platform::web::WindowExtWebSys; web_sys::window() .unwrap() .document() .unwrap() .body() .unwrap() .append_child(&window.canvas().unwrap()) .unwrap(); wasm_bindgen_futures::spawn_local(async move { Graphics::init(&window, State::new()).await.run(event_loop); }); } }