[PATCH 0/8] Wine D3D window decoration changes.

Rémi Bernon rbernon at codeweavers.com
Wed Mar 11 09:36:26 CDT 2020


This is a different workaround that gives the same results both on
Windows and on Wine. It intercepts WM_NCCALCSIZE message to request
empty non-client area when a window is fullscreen, which makes the
client area cover the whole window, regardless of the decorations.

We could also check whether the application changed the default
non-client area dimensions before overriding it. However, as OpenGL or
Vulkan aren't able to render over non-client areas anyway, I believe it
is fine to override it when Wine D3D is supposed to render fullscreen.

Rémi Bernon (8):
  dxgi/tests: Add more complete window style checks.
  wined3d: Override WM_NCCALCSIZE for fullscreen windows.
  wined3d: Add WINED3D_SWAPCHAIN_NO_STYLE_CHANGES flag.
  d3d8: Do not modify window styles anymore.
  d3d9: Do not modify window styles anymore.
  ddraw: Do not modify window styles anymore.
  wined3d: Use the same style changes as native DXGI.
  wined3d: Always restore styles if changes are allowed.

 dlls/d3d8/device.c        |  3 +-
 dlls/d3d8/tests/device.c  | 10 ++---
 dlls/d3d9/device.c        |  3 +-
 dlls/d3d9/tests/d3d9ex.c  | 14 ++++---
 dlls/d3d9/tests/device.c  | 14 ++++---
 dlls/ddraw/ddraw.c        |  3 +-
 dlls/ddraw/tests/ddraw1.c |  8 ++--
 dlls/ddraw/tests/ddraw2.c |  8 ++--
 dlls/ddraw/tests/ddraw4.c |  8 ++--
 dlls/ddraw/tests/ddraw7.c |  8 ++--
 dlls/dxgi/tests/dxgi.c    | 79 ++++++++++++++++++++++++++++++++++-----
 dlls/wined3d/device.c     | 26 +++++++++++++
 dlls/wined3d/swapchain.c  | 68 ++++++++++-----------------------
 include/wine/wined3d.h    |  1 +
 14 files changed, 161 insertions(+), 92 deletions(-)

-- 
2.25.0




More information about the wine-devel mailing list