From 6e422b740c8a06c58b4930e01df3a834795d1f78 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 25 Jan 2024 16:00:37 -0800 Subject: [PATCH] Call `attach_buffer_and_commit` before reading front buffer This way double buffering is somewhat useful; we can start another capture before reading out the buffer. --- src/wayland/screencopy.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/wayland/screencopy.rs b/src/wayland/screencopy.rs index c326711..2ddd6bc 100644 --- a/src/wayland/screencopy.rs +++ b/src/wayland/screencopy.rs @@ -150,6 +150,10 @@ impl ScreencopyHandler for AppData { let (front, back) = session.buffers.as_mut().unwrap(); mem::swap(front, back); + // Capture again on damage + session.attach_buffer_and_commit(&capture, conn); + + let (front, _) = session.buffers.as_mut().unwrap(); let img = unsafe { front.to_image() }; let image = CaptureImage { img }; match &capture.source { @@ -164,9 +168,6 @@ impl ScreencopyHandler for AppData { )); } }; - - // Capture again on damage - session.attach_buffer_and_commit(&capture, conn); } fn failed(