forestiles/src/lib.rs

65 lines
1.8 KiB
Rust
Raw Normal View History

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("Cant 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
}