use std::time::Duration;
use android_activity::{AndroidApp, InputStatus, MainEvent, PollEvent};
use rsaber_lib::Main;
use rsaber_lib::asset::EmbedAssetManager;
use rsaber_lib::openxr;
use rsaber_lib::output::XROutput;
use rsaber_lib::util::Stats;
#[unsafe(no_mangle)]
fn android_main(app: AndroidApp) {
let asset_mgr = EmbedAssetManager::new();
let xr_entry = unsafe { openxr::Entry::load() }.expect("Unable to load OpenXR");
xr_entry.initialize_android_loader().expect("Unable to initialize android loader");
let output = XROutput::new(xr_entry);
let stats = Stats::new("");
let main = Main::new(asset_mgr, output.get_info(), stats);
let mut terminate = false;
loop {
app.poll_events(Some(Duration::from_secs(0)), |event| {
match event {
PollEvent::Main(event) => {
match event {
MainEvent::InputAvailable => {
let mut it = app.input_events_iter().unwrap();
while it.next(|_| InputStatus::Unhandled) {
}
},
MainEvent::TerminateWindow {..} => {
terminate = true;
},
_ => (),
}
},
_ => (),
}
});
if terminate {
break;
}
if !output.poll(&main) {
break;
}
}
}