From 471dc714aa31243f68686fb35c2b5e44bd9be33b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 23 Aug 2024 11:02:34 +0300 Subject: Add damage check to PW screencasts Avoids unnecessary frames. --- src/niri.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/niri.rs') diff --git a/src/niri.rs b/src/niri.rs index 27696749..431a42f8 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -3657,9 +3657,8 @@ impl Niri { let elements = elements.get_or_insert_with(|| { self.render(renderer, output, true, RenderTarget::Screencast) }); - let elements = elements.iter().rev(); - if cast.dequeue_buffer_and_render(renderer, elements, size, scale) { + if cast.dequeue_buffer_and_render(renderer, &elements, size, scale) { cast.last_frame_time = target_presentation_time; } } @@ -3717,9 +3716,9 @@ impl Niri { } // FIXME: pointer. - let elements = mapped.render_for_screen_cast(renderer, scale).rev(); + let elements: Vec<_> = mapped.render_for_screen_cast(renderer, scale).collect(); - if cast.dequeue_buffer_and_render(renderer, elements, bbox.size, scale) { + if cast.dequeue_buffer_and_render(renderer, &elements, bbox.size, scale) { cast.last_frame_time = target_presentation_time; } } @@ -3802,9 +3801,8 @@ impl Niri { .rev() .collect::>() }); - let elements = elements.iter(); - if cast.dequeue_buffer_and_render(renderer, elements, bbox.size, scale) { + if cast.dequeue_buffer_and_render(renderer, &elements, bbox.size, scale) { cast.last_frame_time = target_presentation_time; } } -- cgit