This does the same as https://gitlab.winehq.org/wine/wine/-/merge_requests/6398 but for Vulkan. It also implements vulkan child window rendering pretty much for free and supersedes https://gitlab.winehq.org/wine/wine/-/merge_requests/5573.
It is not completely optimal and there as missed opportunities to keep child windows on screen when no DPI scaling and no cropping is needed, but it would require to be smarter and have knowledge about the window clipping region, which will probably better be done in win32u. This is exactly the same for OpenGL, and it will probably be solved together.
--
v3: winex11: Implement vulkan DPI scaling and child window rendering.
winex11: Move offscreen client window helpers to init.c.
winex11: Only update the client window position in sync_client_position.
winex11: Update the GL client window size when it is presented.
winex11: Update the vulkan surface size when it is presented.
winex11: Use a dedicated structure for vulkan surface private data.
win32u: Pass vulkan driver private data to vulkan_surface_presented.
winevulkan: Use client rect in window DPI instead of monitor DPI.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6467
File emfdc.c, function get_bitmap_info:
Memory leaks in get_bitmap_info via return before calling DeleteDC and DeleteObject.
--
v8: gdi32: Actually return the device context and bitmap from get_bitmap_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6453
This does the same as https://gitlab.winehq.org/wine/wine/-/merge_requests/6398 but for Vulkan. It also implements vulkan child window rendering pretty much for free and supersedes https://gitlab.winehq.org/wine/wine/-/merge_requests/5573.
It is not completely optimal and there as missed opportunities to keep child windows on screen when no DPI scaling and no cropping is needed, but it would require to be smarter and have knowledge about the window clipping region, which will probably better be done in win32u. This is exactly the same for OpenGL, and it will probably be solved together.
--
v2: winex11: Implement vulkan DPI scaling and child window rendering.
winex11: Only update the client window position in sync_client_position.
winex11: Update the GL client window size when it is presented.
winex11: Update the vulkan surface size when it is presented.
winex11: Use a dedicated structure for vulkan surface private data.
win32u: Pass vulkan driver private data to vulkan_surface_presented.
winevulkan: Use client rect in window DPI instead of monitor DPI.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6467
On Mon Sep 9 23:07:07 2024 +0000, Jacek Caban wrote:
> It looks like you pushed a version that has 0 commits compared to upstream.
I tried to push the changes again. The new commit is now visible (at least for me).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6453#note_81716
[Documentation for EnumSystemLocalesA/W](https://learn.microsoft.com/en-us/windows/win32/api/w… says "If [`LCID_ALTERNATE_SORTS`] is used with either `LCID_INSTALLED` or `LCID_SUPPORTED`, the installed or supported locales are retrieved, **as well as** the alternate sort locale identifiers." (emphasis mine).
Until now, Wine *only* returned alternate sorts in this case, which apparently breaks some versions of NexusDB.
This MR fixes the issue and adds some basic tests to ensure the issue isn't accidentally re-introduced at a later time.
--
v6: kernel32/tests: Add basic tests for EnumSystemLocalesA/W
https://gitlab.winehq.org/wine/wine/-/merge_requests/6455