diff --git a/tetanes/src/nes/emulation.rs b/tetanes/src/nes/emulation.rs index 30e7798c..c6ca8c7d 100644 --- a/tetanes/src/nes/emulation.rs +++ b/tetanes/src/nes/emulation.rs @@ -887,7 +887,11 @@ impl State { when: Instant::now() + park_timeout, }); if self.control_deck.is_running() && self.run_state.paused() { - self.send_frame(); + // Only send a frame if there's space, which means the renderer consumed previous + // frames and may need the current buffer to redraw for e.g. resizing + if let Ok(mut frame) = self.frame_tx.try_send_ref() { + self.control_deck.frame_buffer_into(&mut frame); + } } thread::park_timeout(park_timeout); return;