From 229d2242efec2e77cd8cbb62cf80d1613889ec7e Mon Sep 17 00:00:00 2001 From: Xevion Date: Thu, 14 Sep 2023 15:42:49 -0500 Subject: [PATCH] fix: minor comments, disable accelerated, use std sleep on web builds --- src/game.rs | 3 +++ src/main.rs | 28 ++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/game.rs b/src/game.rs index c48a038..25787af 100644 --- a/src/game.rs +++ b/src/game.rs @@ -62,6 +62,8 @@ impl Game<'_> { self.canvas.set_draw_color(Color::RGB(0, 0, 0)); self.canvas.clear(); + + // Render the map self.canvas .copy(&self.map_texture, None, None) .expect("Could not render texture on canvas"); @@ -102,6 +104,7 @@ impl Game<'_> { self.draw_cell((next_cell.0 as u32, next_cell.1 as u32), Color::YELLOW); } + // Present the canvas self.canvas.present(); } diff --git a/src/main.rs b/src/main.rs index e6bcbe4..d2bba10 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,7 @@ use crate::constants::{WINDOW_HEIGHT, WINDOW_WIDTH}; use crate::game::Game; -use sdl2::event::Event; +use sdl2::event::{Event, WindowEvent}; use sdl2::keyboard::Keycode; -use spin_sleep::sleep; use std::time::{Duration, Instant}; use tracing::event; use tracing_error::ErrorLayer; @@ -38,7 +37,6 @@ pub fn main() { let mut canvas = window .into_canvas() - .accelerated() .build() .expect("Could not build canvas"); @@ -64,6 +62,7 @@ pub fn main() { let mut last_averaging_time = Instant::now(); let mut sleep_time = Duration::ZERO; let mut paused = false; + let mut shown = false; event!( tracing::Level::INFO, @@ -75,8 +74,20 @@ pub fn main() { // TODO: Fix key repeat delay issues by using VecDeque for instant key repeat for event in event_pump.poll_iter() { - match event { + Event::Window { win_event, .. } => { + match win_event { + WindowEvent::Hidden => { + event!(tracing::Level::DEBUG, "Window hidden"); + shown = false; + }, + WindowEvent::Shown => { + event!(tracing::Level::DEBUG, "Window shown"); + shown = true; + }, + _ => {} + } + } // Handle quitting keys or window close Event::Quit { .. } | Event::KeyDown { @@ -111,8 +122,13 @@ pub fn main() { } if start.elapsed() < loop_time { - let time = loop_time - start.elapsed(); - sleep(time); + let time = loop_time.saturating_sub(start.elapsed()); + #[cfg(not(target_os = "emscripten"))] { + spin_sleep::sleep(time); + } + #[cfg(target_os = "emscripten")] { + thread::sleep(time); + } sleep_time += time; } else { event!(