[Git][wine/wine][master] 3 commits: win32u: Introduce a D3DKMT escape code to set fullscreen present rect.
Alexandre Julliard pushed to branch master at wine / wine Commits: 9c12d337 by Rémi Bernon at 2025-12-05T11:10:27+01:00 win32u: Introduce a D3DKMT escape code to set fullscreen present rect. These calls are Wine-specific and expected to fail on Windows, as the escape codes and parameter combinations are likely invalid there. There doesn't seem to be any mechanism to do this otherwise. When a window presentation rect has been set, the window is meant to be presented to that rect on screen exactly, mapped to physical coords. Then this also has the following side effects: * In exclusive fullscreen mode, GDI drawn child windows are clipped out of the rendered screen, regardless of the normal clipping rules. * The window position and size changes should be ignored wrt its visible area, and in particular the window should not be unmapped even if its Win32 rect is moved to an invisible location. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58844 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58443 - - - - - dd8acbd9 by Rémi Bernon at 2025-12-05T11:10:29+01:00 wined3d: Set the window present rect when entering fullscreen mode. And unset it when exiting fullscreen. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58844 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58443 - - - - - 3c99dab7 by Rémi Bernon at 2025-12-05T11:10:31+01:00 wined3d: Use the backbuffer size rather than client rect when fullscreen. The client rect might be empty or invalid. Fallout 3 in particular does a bogus call sequence after restoring minimized window which causes the window and client rects to be empty: SetRect(&rect, 0, 0, width, height); AdjustWindowRectEx(&rect, style, FALSE, 0); SetWindowPos(hwnd, 0, rect.left, rect.bottom, rect.right - rect.left, rect.top - rect.bottom, 0); We either need to hook the window messages and inhibit such window size changes, or we need to avoid relying on client and window rect when in fullscreen mode. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58844 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58443 - - - - - 6 changed files: - dlls/win32u/d3dkmt.c - dlls/win32u/ntuser_private.h - dlls/wined3d/context_gl.c - dlls/wined3d/swapchain.c - dlls/wined3d/texture.c - include/ddk/d3dkmthk.h View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/6c1f6f7fee78d3b509864561862e8f... -- View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/6c1f6f7fee78d3b509864561862e8f... You're receiving this email because of your account on gitlab.winehq.org.
participants (1)
-
Alexandre Julliard (@julliard)