From c01869041a157f1dd5fa742c81dba56b15b3ad6c Mon Sep 17 00:00:00 2001 From: Kirill Olenev Date: Thu, 20 Nov 2025 20:36:17 +0900 Subject: [PATCH] Fixes a winit crash in examples --- examples/depth.rs | 19 ++++++++++--------- examples/performance.rs | 23 ++++++++++++----------- examples/simple.rs | 23 ++++++++++++----------- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/examples/depth.rs b/examples/depth.rs index b05b016..ec117be 100644 --- a/examples/depth.rs +++ b/examples/depth.rs @@ -282,15 +282,16 @@ impl ApplicationHandler for State<'_> { fn new_events(&mut self, _elwt: &ActiveEventLoop, _cause: winit::event::StartCause) { if self.target_framerate <= self.delta_time.elapsed() { - self.window.clone().unwrap().request_redraw(); - self.delta_time = Instant::now(); - self.fps += 1; - if self.fps_update_time.elapsed().as_millis() > 1000 { - let window = self.window.as_mut().unwrap(); - window - .set_title(&format!("wgpu-text: 'depth' example, FPS: {}", self.fps)); - self.fps = 0; - self.fps_update_time = Instant::now(); + if let Some(window) = self.window.clone().as_mut() { + window.request_redraw(); + self.delta_time = Instant::now(); + self.fps += 1; + if self.fps_update_time.elapsed().as_millis() > 1000 { + window + .set_title(&format!("wgpu-text: 'depth' example, FPS: {}", self.fps)); + self.fps = 0; + self.fps_update_time = Instant::now(); + } } } } diff --git a/examples/performance.rs b/examples/performance.rs index 75cdda6..d1bd129 100644 --- a/examples/performance.rs +++ b/examples/performance.rs @@ -215,17 +215,18 @@ impl ApplicationHandler for State<'_> { fn new_events(&mut self, _elwt: &ActiveEventLoop, _cause: winit::event::StartCause) { if self.target_framerate <= self.delta_time.elapsed() { - self.window.clone().unwrap().request_redraw(); - self.delta_time = Instant::now(); - self.fps += 1; - if self.fps_update_time.elapsed().as_millis() > 1000 { - let window = self.window.as_mut().unwrap(); - window.set_title(&format!( - "wgpu-text: 'performance' example, FPS: {}", - self.fps - )); - self.fps = 0; - self.fps_update_time = Instant::now(); + if let Some(window) = self.window.clone().as_mut() { + window.request_redraw(); + self.delta_time = Instant::now(); + self.fps += 1; + if self.fps_update_time.elapsed().as_millis() > 1000 { + window.set_title(&format!( + "wgpu-text: 'performance' example, FPS: {}", + self.fps + )); + self.fps = 0; + self.fps_update_time = Instant::now(); + } } } } diff --git a/examples/simple.rs b/examples/simple.rs index 6b58edc..028d8a6 100644 --- a/examples/simple.rs +++ b/examples/simple.rs @@ -255,17 +255,18 @@ impl ApplicationHandler for State<'_> { fn new_events(&mut self, _elwt: &ActiveEventLoop, _cause: winit::event::StartCause) { if self.target_framerate <= self.delta_time.elapsed() { - self.window.clone().unwrap().request_redraw(); - self.delta_time = Instant::now(); - self.fps += 1; - if self.fps_update_time.elapsed().as_millis() > 1000 { - let window = self.window.as_mut().unwrap(); - window.set_title(&format!( - "wgpu-text: 'simple' example, FPS: {}", - self.fps - )); - self.fps = 0; - self.fps_update_time = Instant::now(); + if let Some(window) = self.window.clone().as_mut() { + window.request_redraw(); + self.delta_time = Instant::now(); + self.fps += 1; + if self.fps_update_time.elapsed().as_millis() > 1000 { + window.set_title(&format!( + "wgpu-text: 'simple' example, FPS: {}", + self.fps + )); + self.fps = 0; + self.fps_update_time = Instant::now(); + } } } }