[Git][wine/wine][master] 3 commits: win32u: Introduce a D3DKMT escape code to set fullscreen present rect.
"Alexandre Julliard (@julliard)" <[email protected]>
| Newsgroups | gmane.comp.emulators.wine.cvs |
|---|---|
| Message-ID | <[email protected]> |
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/6c1f6f7fee78d3b509864561862e8f5f83de39ee...3c99dab751d8b3dac56694721ba6b09edd9c5e47
--
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/6c1f6f7fee78d3b509864561862e8f5f83de39ee...3c99dab751d8b3dac56694721ba6b09edd9c5e47
You're receiving this email because of your account on gitlab.winehq.org.