A few minor simplifications of the *-mainloop examples

This commit is contained in:
Robert Bragg
2022-05-25 22:25:03 +01:00
parent 4f8227b5ba
commit 5d38fdf593
4 changed files with 25 additions and 55 deletions
-3
View File
@@ -10,9 +10,6 @@ log = "0.4"
android_logger = "0.11.0"
game-activity = { path="../../game-activity" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[lib]
name="main"
crate_type=["cdylib"]
+15 -24
View File
@@ -1,21 +1,10 @@
use game_activity::{PollEvent, MainEvent};
use log::Level;
use log::trace;
use std::time::Duration;
use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize)]
struct AppState {
uri: String,
}
use log::info;
#[no_mangle]
extern "C" fn android_main() {
android_logger::init_once(
android_logger::Config::default().with_min_level(Level::Trace)
android_logger::Config::default().with_min_level(log::Level::Info)
);
let mut quit = false;
@@ -24,25 +13,26 @@ extern "C" fn android_main() {
let app = game_activity::android_app();
while !quit {
app.poll_events(Some(Duration::from_millis(500)) /* timeout */, |event| {
app.poll_events(Some(std::time::Duration::from_millis(500)) /* timeout */, |event| {
match event {
PollEvent::Wake => { trace!("Early wake up"); },
PollEvent::Wake => { info!("Early wake up"); },
PollEvent::Timeout => {
trace!("Timed out");
info!("Timed out");
// Real app would probably rely on vblank sync via graphics API...
redraw_pending = true;
},
PollEvent::Main(main_event) => {
trace!("Main event: {:?}", main_event);
info!("Main event: {:?}", main_event);
match main_event {
MainEvent::SaveState { saver, .. } => {
let state = serde_json::to_vec(&AppState { uri: format!("foo://bar") }).unwrap();
saver.store(&state);
saver.store("foo://bar".as_bytes());
},
MainEvent::Pause => {},
MainEvent::Resume { loader, .. } => {
if let Some(state) = loader.load() {
let _state: AppState = serde_json::from_slice(&state).unwrap();
if let Ok(uri) = String::from_utf8(state) {
info!("Resumed with saved state = {uri:#?}");
}
}
},
MainEvent::InitWindow { .. } => {
@@ -69,12 +59,13 @@ extern "C" fn android_main() {
// Handle input
app.input_events(|event| {
trace!("Input Event: {event:?}")
})
info!("Input Event: {event:?}");
// Render...
});
info!("Render...");
}
}
});
}
}
}
-3
View File
@@ -10,9 +10,6 @@ log = "0.4"
android_logger = "0.11.0"
native-activity = { path="../../native-activity" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[lib]
#name="na_mainloop"
crate_type=["cdylib"]
+10 -25
View File
@@ -1,21 +1,10 @@
use native_activity::{PollEvent, MainEvent};
use log::Level;
use log::{trace, info};
use std::time::Duration;
use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize)]
struct AppState {
uri: String,
}
use log::info;
#[no_mangle]
extern "C" fn android_main() {
android_logger::init_once(
android_logger::Config::default().with_min_level(Level::Info)
android_logger::Config::default().with_min_level(log::Level::Info)
);
let mut quit = false;
@@ -24,11 +13,11 @@ extern "C" fn android_main() {
let app = native_activity::android_app();
while !quit {
app.poll_events(Some(Duration::from_millis(500)) /* timeout */, |event| {
app.poll_events(Some(std::time::Duration::from_millis(500)) /* timeout */, |event| {
match event {
PollEvent::Wake => { trace!("Early wake up"); },
PollEvent::Wake => { info!("Early wake up"); },
PollEvent::Timeout => {
trace!("Timed out");
info!("Timed out");
// Real app would probably rely on vblank sync via graphics API...
redraw_pending = true;
},
@@ -36,14 +25,14 @@ extern "C" fn android_main() {
info!("Main event: {:?}", main_event);
match main_event {
MainEvent::SaveState { saver, .. } => {
let state = serde_json::to_vec(&AppState { uri: format!("foo://bar") }).unwrap();
saver.store(&state);
saver.store("foo://bar".as_bytes());
},
MainEvent::Pause => {},
MainEvent::Resume { loader, .. } => {
if let Some(state) = loader.load() {
let state: AppState = serde_json::from_slice(&state).unwrap();
info!("Resumed with saved state = {state:#?}");
if let Ok(uri) = String::from_utf8(state) {
info!("Resumed with saved state = {uri:#?}");
}
}
},
MainEvent::InitWindow { .. } => {
@@ -65,7 +54,6 @@ extern "C" fn android_main() {
}
if redraw_pending {
info!("Checking input: START");
if let Some(_rs) = render_state {
redraw_pending = false;
@@ -75,11 +63,8 @@ extern "C" fn android_main() {
});
// Render...
info!("Render...");
}
info!("Checking input: DONE");
} else {
info!("No redraw pending");
}
});
}