[PATCH] ddraw: Improve d3d_device7_GetClipStatus() stub.

Paul Gofman gofmanp at gmail.com
Thu Apr 11 04:57:40 CDT 2019


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43411
Signed-off-by: Paul Gofman <gofmanp at gmail.com>
---
 dlls/ddraw/device.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 003ce1d2e4..57fe19ecf7 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -3916,7 +3916,20 @@ static HRESULT WINAPI d3d_device2_SetClipStatus(IDirect3DDevice2 *iface, D3DCLIP
  *****************************************************************************/
 static HRESULT WINAPI d3d_device7_GetClipStatus(IDirect3DDevice7 *iface, D3DCLIPSTATUS *clip_status)
 {
-    FIXME("iface %p, clip_status %p stub!\n", iface, clip_status);
+    struct d3d_device *device = impl_from_IDirect3DDevice7(iface);
+    struct wined3d_viewport vp;
+
+    FIXME("iface %p, clip_status %p.\n", iface, clip_status);
+
+    wined3d_device_get_viewports(device->wined3d_device, NULL, &vp);
+    clip_status->minx = (float)vp.x;
+    clip_status->maxx = (float)(vp.x + vp.width);
+    clip_status->miny = (float)vp.y;
+    clip_status->maxy = (float)(vp.y + vp.height);
+    clip_status->minz = 0.0f;
+    clip_status->maxz = 0.0f;
+    clip_status->dwFlags = D3DCLIPSTATUS_EXTENTS2;
+    clip_status->dwStatus = 0;
 
     return D3D_OK;
 }
-- 
2.20.1




More information about the wine-devel mailing list