This MR introduces support for basic window management in the Wayland driver.
A summary of the commits (but see commit messages for more info):
1. Replace double locking during `wayland_surface` destruction (to protect `xdg_surface` user data) with a simpler mechanism, since we established in the last MR that we don't need to worry about HWND recycling.
2. Support compositor initiated window closing.
3. Respect compositor size hints.
4. Handling/syncing of maximized state, requested by either the compositor or app/Wine.
5. Interactive window moving (but only in the compositor virtual space, see notes below!)
6. Interactive window resizing.
A few notes:
1. At the moment, the driver doesn't change the position of windows in the Windows virtual screen space, since Wayland doesn't provide any relevant position information. This can lead to situations where parts of the window become apparently inaccessible to mouse input, because although those parts are visible from a Wayland perspective they are outside the Windows virtual screen. In future MRs I will provide mitigations/workarounds for this fundamental incompatibility between Win32 and Wayland.
2. To support interactive window moving/resizing, both the `xdg_toplevel` and the `wl_seat` need to remain valid during our request, so we introduce a double lock to ensure their concurrent validity.
Thanks!
--
v2: winewayland.drv: Fix removal of wl_seat globals.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909
This matches what is done in the upstream headers; end users
including d3d12.h don't need to explicitly include d3d12sdklayers.h.
Signed-off-by: Martin Storsjö <martin(a)martin.st>
--
v2: include: Add an #include of d3d12sdklayers.h in vkd3d_d3d12.idl
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/373
This goes on top of MR 345.
--
v16: tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
tests/shader-runner: Handle individual keywords in shader directives.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346