[PATCH 3/6] d3drm: Return D3DRMERR_BADOBJECT from d3drm_viewport2_SetProjection() for uninitialised viewports.
Henri Verbeet
hverbeet at codeweavers.com
Tue Jan 28 06:47:42 CST 2020
From: Jeff Smith <whydoubt at gmail.com>
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/d3drm/tests/d3drm.c | 4 ++--
dlls/d3drm/viewport.c | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index 40237fc7a28..62194977d47 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -2165,7 +2165,7 @@ static void test_Viewport(void)
hr = IDirect3DRMViewport_SetBack(viewport, 100.0f);
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DRMViewport_SetProjection(viewport, D3DRMPROJECT_PERSPECTIVE);
- todo_wine ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
+ ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
/* Test all failures together */
hr = IDirect3DRMViewport_Init(viewport, NULL, frame, rc.left, rc.top, rc.right, rc.bottom);
@@ -2358,7 +2358,7 @@ static void test_Viewport(void)
hr = IDirect3DRMViewport2_SetBack(viewport2, 100.0f);
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DRMViewport2_SetProjection(viewport2, D3DRMPROJECT_PERSPECTIVE);
- todo_wine ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
+ ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DRMViewport2_Init(viewport2, NULL, frame3, rc.left, rc.top, rc.right, rc.bottom);
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
diff --git a/dlls/d3drm/viewport.c b/dlls/d3drm/viewport.c
index 8e959d5f37e..17b6f1df539 100644
--- a/dlls/d3drm/viewport.c
+++ b/dlls/d3drm/viewport.c
@@ -613,6 +613,9 @@ static HRESULT WINAPI d3drm_viewport2_SetProjection(IDirect3DRMViewport2 *iface,
TRACE("iface %p, type %#x.\n", iface, type);
+ if (!viewport->d3d_viewport)
+ return D3DRMERR_BADOBJECT;
+
viewport->projection = type;
return D3DRM_OK;
--
2.11.0
More information about the wine-devel
mailing list