С благополучным завершением заморозки кода Wine 9.0 и возобновлением двухнедельных разработок, нацеленных на Wine 10.0 на следующий год, взоры разработчиков теперь обращены на 12-ую часть драйвера Wine Wayland, которая была опубликована для рассмотрения. Этот последний набор работ по Wine Wayland направлен на внедрение эмуляции изменения режима отображения.
Александр Францис продолжает разработку драйвера Wine Wayland, и в пятницу, он представил последние патчи для активации эмуляции изменения режима отображения. Данная поддержка особенно важна для запуска игр под Windows на Wine в полноэкранном режиме, но с уменьшенным разрешением. Францис описал этот этап работы следующим образом:
"Этот MR использует уже существующую функцию масштабирования поверхности на стороне композитора (через wp_viewporter, в настоящее время используемую для масштабирования Hi-DPI) для эмуляции изменения режима отображения. В сотрудничестве с полноэкранным режимом это отлично работает, поскольку композитор должен не только масштабировать поверхность, но также правильно ее позиционировать и создавать непрозрачную окружность (примечание: некоторые композиторы недостаточно хорошо реализуют последние две функции!).
Поскольку: 1) протокол Wayland не позволяет клиентам изменять фактическую конфигурацию отображения, и 2) нет доступной службы, предоставляющей информацию о состоянии отображения в единообразном формате (как, например, это делает xrandr), данный MR использует настройки устройства win32 в качестве "источника истины" для текущего режима отображения. Мы даем возможность win32u обрабатывать изменение режима отображения стандартным путем (то есть просто обновлять настройки реестра) и обеспечиваем доступ к текущему режиму при обновлении устройств отображения через новую функцию gdi_display_manager.get_adapter().
Чтобы однозначно связать адаптерное устройство соответствующим wl_output во всех процессах, данный MR добавляет персональные данные драйвера для каждого адаптера.
Приглашаем осуществить собственную проверку: многие современные игры не меняют настройки аппаратного отображения, а вместо этого самостоятельно масштабируются для создания визуального эффекта изменения режима (подобно тому, как работает данный MR, но они выполняют масштабирование на стороне приложения). Для полноценного использования всех функций этого MR вам понадобится приложение, активно использующее API Win32 ChangeDisplaySettings."
Подробности можно найти в запросе на слияние, который уже находится на рассмотрении для принятия в основную ветку Wine.