qt: yet another wayland compositor
here is another take at video integration in Wayland,
The approach is closer to !570 (closed) as it ties a Wayland subsurface to Qt's window, and perform a place_below to put it behind the window. Wayland compositors have quite matured since the first MR and this works on most of the environments I've been able to test
I believe this is a better approach that !1353 (closed) as it doesn't requires to render the interface offscreen and avoids all the signal redirection between the window and the offscreen surface
I expect the code to be easily portable to Qt6, as it doesn't rely on Qt running OpenGL
tested environments
on ubuntu 22.04:
- mutter 42.9 - OK
- kwin 5.24.7 - OK
- wl_root (sway) 1.7 - OK
- weston 9.0 - OK
- smithay (master 2023-12-07) - OK
- QtWayland compositor (qt 5.15) - OK
- enlightenment 1.26 - KO, place_below is not respected
What's left aside
-
flatpack: flatpack core20 doesn't provide wayland-client 1.19, so the core package need to be updated to core22, I've started working on it, but that require a bit of changes, and I prefer to propose it in a different MR
-
meson: most wayland vout modules aren't build with meson yet, adding support for solely the Qt wayland compositor makes the video window unusable
-
ACRYLIC / EXTENDED_FRAME: these feature may be provided afterwards, acrylic should be quite straightforward, extended frame may be a bit more tricky as we don't control how the QQuickWindowdraws draws its content
depends of !4551 (merged)