davidedmundson created this revision. davidedmundson added a reviewer: Plasma. Restricted Application added a project: KWin. Restricted Application added subscribers: KWin, kwin, plasma-devel.
REVISION SUMMARY Works as follows: - Connect with a DBus interface similar to Screenshot - instead of a FD to a save location, clients pass a socket to their own very very minimal wayland server (with a compositor and shmpool) - kwin then connects to that as a client with a wl_surface of the rendered area, with each frame as a buffer. This patch contains the relevant effect and a small test app. Design Rationale: - We need the recorder to have a shared memory pool, and only it knows when it's finished rendering it. The recorder being the "compositor" provides that - Kwin acting as the "client" could easily cover a VNC like case in future, albeit with some shuffling. - Using an existing wayland iface means this could become a standard Obviously not entirely finished, see TODOs in comments, and we probably want to include the region selection like Screenshot. Was writing something to dump frames from kwin, was a good excuse to work on something useful. TEST PLAN Ran included test app Dragged window about REPOSITORY R108 KWin BRANCH screencast REVISION DETAIL https://phabricator.kde.org/D4366 AFFECTED FILES effects/CMakeLists.txt effects/effect_builtins.cpp effects/screencast/CMakeLists.txt effects/screencast/screencast.cpp effects/screencast/screencast.h tests/CMakeLists.txt tests/screenrecorder.cpp EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: davidedmundson, #plasma Cc: plasma-devel, kwin, #kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas