emulator: start supporting Android, this is WIP

Needs storage permissions, probably extra tweaks
This commit is contained in:
2025-06-22 02:13:06 +01:00
parent 83259b9217
commit b97dcd5692
5 changed files with 107 additions and 288 deletions
+17 -1
View File
@@ -22,7 +22,18 @@ use dsa_rs::emulator::{
},
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
#[cfg(target_os = "android")]
use winit::platform::android::activity::AndroidApp;
#[cfg(target_os = "android")]
#[no_mangle]
fn android_main(app: AndroidApp) {
main(app);
}
fn main(
#[cfg(target_os = "android")] app: AndroidApp,
) -> Result<(), Box<dyn std::error::Error>> {
// Initialize channels and read in configuration.
let (cmd_sender, cmd_receiver) = std::sync::mpsc::channel();
let (state_sender, state_reciever) = std::sync::mpsc::channel();
@@ -39,8 +50,13 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let ui = setup_ui(cmd_sender, state_reciever);
// Run UI.
#[allow(unused_variables)]
let options = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default().with_inner_size([800.0, 600.0]),
event_loop_builder: Some(Box::new(move |builder| {
#[cfg(target_os = "android")]
builder.with_android_app(app);
})),
..Default::default()
};