2024-08-22 17:21:34 +01:00
|
|
|
|
mod graphics;
|
|
|
|
|
mod state;
|
|
|
|
|
use state::State;
|
|
|
|
|
use graphics::Graphics;
|
2024-08-20 22:12:18 +01:00
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-24 21:44:13 +01:00
|
|
|
|
let event_loop = winit::event_loop::EventLoop::new().unwrap();
|
2024-08-20 22:12:18 +01:00
|
|
|
|
let window = winit::window::WindowBuilder::new().build(&event_loop).unwrap();
|
|
|
|
|
|
|
|
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
|
|
|
{
|
2024-08-23 17:04:26 +01:00
|
|
|
|
let state = State::new();
|
|
|
|
|
pollster::block_on(Graphics::init(&window, state)).run(event_loop);
|
2024-08-20 22:12:18 +01:00
|
|
|
|
}
|
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
|
{
|
2024-08-22 17:21:34 +01:00
|
|
|
|
use winit::platform::web::WindowExtWebSys;
|
2024-08-20 22:12:18 +01:00
|
|
|
|
web_sys::window()
|
|
|
|
|
.unwrap()
|
|
|
|
|
.document()
|
|
|
|
|
.unwrap()
|
|
|
|
|
.body()
|
|
|
|
|
.unwrap()
|
|
|
|
|
.append_child(&window.canvas().unwrap())
|
|
|
|
|
.unwrap();
|
|
|
|
|
wasm_bindgen_futures::spawn_local(async move {
|
2024-08-22 17:21:34 +01:00
|
|
|
|
Graphics::init(&window, State::new()).await.run(event_loop);
|
2024-08-20 22:12:18 +01:00
|
|
|
|
});
|
|
|
|
|
}
|
2024-08-24 21:44:13 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[cfg(target_os = "android")]
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
fn android_main(app: winit::platform::android::activity::AndroidApp) {
|
|
|
|
|
use std::thread;
|
|
|
|
|
use std::time::Duration;
|
|
|
|
|
|
|
|
|
|
use winit::platform::android::EventLoopBuilderExtAndroid;
|
|
|
|
|
use winit::event_loop::EventLoopBuilder;
|
|
|
|
|
use winit::window::WindowBuilder;
|
|
|
|
|
|
|
|
|
|
let event_loop = EventLoopBuilder::new()
|
|
|
|
|
.with_android_app(app)
|
|
|
|
|
.build()
|
|
|
|
|
.expect("Can’t build event loop");
|
|
|
|
|
|
|
|
|
|
let mut window_builder = WindowBuilder::new();
|
|
|
|
|
let window = window_builder.build(&event_loop)
|
|
|
|
|
.expect("Can't create window!");
|
|
|
|
|
|
|
|
|
|
thread::sleep(Duration::from_secs(2));
|
|
|
|
|
|
|
|
|
|
let state = State::new();
|
|
|
|
|
pollster::block_on(Graphics::init(&window, state)).run(event_loop);
|
2024-08-18 18:02:10 +01:00
|
|
|
|
}
|