diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-07-09 17:59:06 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-07-09 17:59:06 -0700 |
| commit | ee29403c132f4ba0babf27639f2a63299de7edca (patch) | |
| tree | e82ab246f6d88a2c886e07e7be94426a9a88a83f /src/main.rs | |
| parent | e547dc5ab4ec1667bcde6368f756f63123eae587 (diff) | |
don't draw when minimized (nice and easy)
Force-Push: yes Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 24 |
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); + } } } |