summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-07-09 17:59:06 -0700
committerIrene Knapp <ireneista@irenes.space>2026-07-09 17:59:06 -0700
commitee29403c132f4ba0babf27639f2a63299de7edca (patch)
treee82ab246f6d88a2c886e07e7be94426a9a88a83f /src
parente547dc5ab4ec1667bcde6368f756f63123eae587 (diff)
don't draw when minimized (nice and easy)
Force-Push: yes
Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7
Diffstat (limited to 'src')
-rw-r--r--src/main.rs24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs
index 9beb151..ba4ffb7 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -24,6 +24,7 @@ struct Surreality {
   permanent: RefCell<Option<PermanentGraphicsState>>,
   for_reinit: RefCell<Option<GraphicsStateForReinit>>,
   window_dressing: RefCell<Option<WindowDressing>>,
+  is_minimized: bool,
   is_reinit_queued: bool,
   frame_index: usize,
 }
@@ -34,6 +35,7 @@ impl Surreality {
       permanent: RefCell::new(None),
       for_reinit: RefCell::new(None),
       window_dressing: RefCell::new(None),
+      is_minimized: false,
       is_reinit_queued: false,
       frame_index: 0,
     }
@@ -69,10 +71,12 @@ impl Surreality {
 
 
   fn do_frame(&mut self, window_id: WindowId) -> Result<()> {
-    if self.render(window_id)? || self.is_reinit_queued {
-      self.is_reinit_queued = false;
+    if !self.is_minimized {
+      if self.render(window_id)? || self.is_reinit_queued {
+        self.is_reinit_queued = false;
 
-      self.reinit()?;
+        self.reinit()?;
+      }
     }
 
     Ok(())
@@ -196,10 +200,16 @@ impl ApplicationHandler for Surreality {
         event_loop.exit();
       }
 
-      WindowEvent::Resized(_) => {
-        self.is_reinit_queued = true;
-        if let Err(e) = self.do_frame(window_id) {
-          eprintln!("Error: {}", e);
+      WindowEvent::Resized(size) => {
+        if size.width == 0 || size.height == 0 {
+          self.is_minimized = true;
+        } else {
+          self.is_minimized = false;
+          self.is_reinit_queued = true;
+
+          if let Err(e) = self.do_frame(window_id) {
+            eprintln!("Error: {}", e);
+          }
         }
       }