This second MR in the Wayland series adds display configuration related enhancements, including providing more display information (like a proper/consistent name and position).
To get additional information from the Wayland compositor we need to use a protocol from the wayland-protocols collection, so we introduce support in the build system for protocol .xml files and also include the protocol file in our winewayland.drv sources.
Since Wayland provides output coordinates only in the compositor logical space, we need to infer the monitor coordinates in the physical pixel space (so that apps can take advantage of the full/native monitor resolution), based on logical coordinates and the current mode. The last commit in the series introduces a best-effort algorithm for this. For people that are curious about this algorithm, or want to experiment a bit: I have created an independent ad-hoc test suite for this algorithm at: https://gitlab.collabora.com/alf/wine-wayland-outputs
The core idea of the algorithm is to start with a placement that uses the logical positions, and iteratively move outputs away from others in particular directions until any non-inherent (i.e., not present in the logical space) overlaps have been resolved.
Thanks!
--
v8: winewayland.drv: Infer and report Windows monitor positions.
winewayland.drv: Basic support for Windows monitor positioning.
winewayland.drv: Use the output name reported by the compositor.
tools: Support building Wayland protocol source files.
winewayland.drv: Initialize display devices once after process init.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2476
--
v2: Release 8.0.1.
adsldp/tests: Fix test failures.
adsldp/tests: Skip all remaining tests when the server is down.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2585
--
v2: winepulse: Use mmdevapi's AudioSessionControl.
wineoss: Use mmdevapi's AudioSessionControl.
winecoreaudio: Use mmdevapi's AudioSessionControl.
winealsa: Use mmdevapi's AudioSessionControl.
winepulse: Implement function to (un)lock sessions.
wineoss: Implement function to (un)lock sessions.
winecoreaudio: Implement function to (un)lock sessions.
winealsa: Implement function to (un)lock sessions.
mmdevapi: Implement AudioSessionControl.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2669