From ca22e70cc4a868fdb4dec2790ec71fb9a2cfb6bd Mon Sep 17 00:00:00 2001 From: sodiboo <37938646+sodiboo@users.noreply.github.com> Date: Fri, 8 Mar 2024 13:10:55 +0100 Subject: Implement wlr-screencopy v1 (#243) * Implement wlr-screencopy * Finish the implementation Lots of changes, mainly to fix transform handling. Turns out, grim expects transformed buffers and untransforms them by itself using info from wl_output. This means that render helpers needed to learn how to actually render transformed buffers. Also, it meant that y_invert is no longer needed. Next, moved the rendering to the Screencopy frame handler. Turns out, copy() is more or less expected to return immediately, whereas copy_with_damage() is expected to wait until the next VBlank. At least that's the intent I parse reading the protocol. Finally, brought the version from 3 down to 1, because copy_with_damage() will need bigger changes. Grim still works, others not really, mainly because they bind v3 unnecessarily, even if they don't use the damage request. --------- Co-authored-by: Ivan Molodetskikh --- src/protocols/mod.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/protocols/mod.rs') diff --git a/src/protocols/mod.rs b/src/protocols/mod.rs index 06d80157..1e3ef42f 100644 --- a/src/protocols/mod.rs +++ b/src/protocols/mod.rs @@ -1 +1,2 @@ pub mod foreign_toplevel; +pub mod screencopy; -- cgit