From 5d38fdf59307b64237c9487acdb1ecab79712419 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 25 May 2022 22:25:03 +0100 Subject: [PATCH] A few minor simplifications of the *-mainloop examples --- examples/agdk-mainloop/Cargo.toml | 3 --- examples/agdk-mainloop/src/lib.rs | 39 ++++++++++++------------------- examples/na-mainloop/Cargo.toml | 3 --- examples/na-mainloop/src/lib.rs | 35 ++++++++------------------- 4 files changed, 25 insertions(+), 55 deletions(-) diff --git a/examples/agdk-mainloop/Cargo.toml b/examples/agdk-mainloop/Cargo.toml index 5a87be6..370da6a 100644 --- a/examples/agdk-mainloop/Cargo.toml +++ b/examples/agdk-mainloop/Cargo.toml @@ -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"] \ No newline at end of file diff --git a/examples/agdk-mainloop/src/lib.rs b/examples/agdk-mainloop/src/lib.rs index 3b3166d..7d97ebb 100644 --- a/examples/agdk-mainloop/src/lib.rs +++ b/examples/agdk-mainloop/src/lib.rs @@ -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..."); } } }); } -} +} \ No newline at end of file diff --git a/examples/na-mainloop/Cargo.toml b/examples/na-mainloop/Cargo.toml index d65a9e8..2e0b168 100644 --- a/examples/na-mainloop/Cargo.toml +++ b/examples/na-mainloop/Cargo.toml @@ -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"] diff --git a/examples/na-mainloop/src/lib.rs b/examples/na-mainloop/src/lib.rs index bd0e3c2..a51edf7 100644 --- a/examples/na-mainloop/src/lib.rs +++ b/examples/na-mainloop/src/lib.rs @@ -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"); } }); }