diff --git a/crates/anyrender_vello/src/window_renderer.rs b/crates/anyrender_vello/src/window_renderer.rs index 13b8024..cbb0b29 100644 --- a/crates/anyrender_vello/src/window_renderer.rs +++ b/crates/anyrender_vello/src/window_renderer.rs @@ -456,6 +456,7 @@ impl WindowRenderer for VelloWindowRenderer { let Ok(texture_view) = render_surface.target_texture_view() else { // Skip frame in case of error trying to get current surface texture render_surface.clear_surface_texture(); + self.scene.reset(); return; }; @@ -483,6 +484,7 @@ impl WindowRenderer for VelloWindowRenderer { drop(texture_view); if render_surface.maybe_blit_and_present().is_err() { + self.scene.reset(); return; } timer.record_time("present"); diff --git a/crates/anyrender_vello_hybrid/src/window_renderer.rs b/crates/anyrender_vello_hybrid/src/window_renderer.rs index c326650..db89eb6 100644 --- a/crates/anyrender_vello_hybrid/src/window_renderer.rs +++ b/crates/anyrender_vello_hybrid/src/window_renderer.rs @@ -504,6 +504,7 @@ impl WindowRenderer for VelloHybridWindowRenderer { let Ok(texture_view) = render_surface.target_texture_view() else { // Skip frame in case of error getting surface texture render_surface.clear_surface_texture(); + self.scene.reset(); return; }; @@ -535,6 +536,7 @@ impl WindowRenderer for VelloHybridWindowRenderer { drop(texture_view); if render_surface.maybe_blit_and_present().is_err() { + self.scene.reset(); return; } timer.record_time("present");