romangg created this revision. romangg added a reviewer: Plasma. Herald added a project: Plasma. Herald added a subscriber: plasma-devel. romangg requested review of this revision.
REVISION SUMMARY Besides the KWayland output-management protocol there exist other protocol extensions for output-management, for example wlroot's wlr-output-management-unstable-v1 and kwinft_output_management_unstable_v1 protocols. This patch refactors the Wayland backend such that alternative extensions can be added in the future in an encaplusated way and are instantiated through a plugin system. All available Wayland backend plugins are fired up in parallel and the first to return success will be used while all others are rejected instantly. In theory this is racy if a compositor supports more than one of the supported output- management protocols, but there is none out at the moment and it is unlikely to happen in the future. TEST PLAN Tested with KWin's Wayland session. REPOSITORY R110 KScreen Library BRANCH wayland-plugins REVISION DETAIL https://phabricator.kde.org/D29024 AFFECTED FILES CONTRIBUTING.md backends/kwayland/CMakeLists.txt backends/kwayland/plugins/CMakeLists.txt backends/kwayland/plugins/kwayland/CMakeLists.txt backends/kwayland/plugins/kwayland/kwayland.json backends/kwayland/plugins/kwayland/kwayland_interface.cpp backends/kwayland/plugins/kwayland/kwayland_interface.h backends/kwayland/plugins/kwayland/kwayland_output.cpp backends/kwayland/plugins/kwayland/kwayland_output.h backends/kwayland/wayland_interface.cpp backends/kwayland/wayland_interface.h backends/kwayland/waylandbackend.cpp backends/kwayland/waylandbackend.h backends/kwayland/waylandconfig.cpp backends/kwayland/waylandconfig.h backends/kwayland/waylandoutput.cpp backends/kwayland/waylandoutput.h backends/kwayland/waylandscreen.cpp To: romangg, #plasma Cc: plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart