diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-08-23 11:02:34 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-08-23 11:02:34 +0300 |
| commit | 471dc714aa31243f68686fb35c2b5e44bd9be33b (patch) | |
| tree | b6aec73786be4a4123e8c6e6359052dc9f9d0dd3 /src/niri.rs | |
| parent | fef665df73cf4ed4e1686f1f065d03591709db42 (diff) | |
| download | niri-471dc714aa31243f68686fb35c2b5e44bd9be33b.tar.gz niri-471dc714aa31243f68686fb35c2b5e44bd9be33b.tar.bz2 niri-471dc714aa31243f68686fb35c2b5e44bd9be33b.zip | |
Add damage check to PW screencasts
Avoids unnecessary frames.
Diffstat (limited to 'src/niri.rs')
| -rw-r--r-- | src/niri.rs | 10 |
1 files changed, 4 insertions, 6 deletions
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::<Vec<_>>() }); - 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; } } |
