[PATCH 3/3] ddraw/tests: Port test for adding the same light to viewports multiple times for ddraw1.

Paul Gofman gofmanp at gmail.com
Fri Mar 22 06:17:48 CDT 2019


Signed-off-by: Paul Gofman <gofmanp at gmail.com>
---
 dlls/ddraw/tests/ddraw1.c | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index d0ed33dbc4..fbe1bcb855 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -6029,25 +6029,25 @@ static void test_lighting(void)
         {&mat_nonaffine, translatedquad, 0x000000ff, "Lit quad with non-affine matrix"},
     };
 
-    HWND window;
-    IDirect3D *d3d;
-    IDirect3DDevice *device;
-    IDirectDraw *ddraw;
-    IDirectDrawSurface *rt;
-    IDirect3DViewport *viewport;
-    IDirect3DMaterial *material;
-    IDirect3DLight *light;
+    D3DMATRIXHANDLE world_handle, view_handle, proj_handle;
+    IDirect3DViewport *viewport, *viewport2;
     IDirect3DExecuteBuffer *execute_buffer;
     D3DEXECUTEBUFFERDESC exec_desc;
     D3DMATERIALHANDLE mat_handle;
-    D3DMATRIXHANDLE world_handle, view_handle, proj_handle;
+    IDirect3DMaterial *material;
+    IDirect3DDevice *device;
+    IDirectDrawSurface *rt;
+    IDirect3DLight *light;
     D3DLIGHT light_desc;
-    HRESULT hr;
-    D3DCOLOR color;
-    void *ptr;
+    IDirectDraw *ddraw;
     UINT inst_length;
     ULONG refcount;
     unsigned int i;
+    IDirect3D *d3d;
+    D3DCOLOR color;
+    HWND window;
+    HRESULT hr;
+    void *ptr;
 
     window = create_window();
     ddraw = create_ddraw();
@@ -6202,9 +6202,16 @@ static void test_lighting(void)
     U4(light_desc.dcvColor).a = 1.0f;
     U3(light_desc.dvDirection).z = 1.0f;
     hr = IDirect3DLight_SetLight(light, &light_desc);
-    ok(SUCCEEDED(hr), "Failed to set light, hr %#x.\n", hr);
+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
     hr = IDirect3DViewport_AddLight(viewport, light);
-    ok(SUCCEEDED(hr), "Failed to add a light to the viewport, hr %#x.\n", hr);
+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDirect3DViewport_AddLight(viewport, light);
+    ok(hr == D3DERR_LIGHTHASVIEWPORT, "Got unexpected hr %#x.\n", hr);
+
+    viewport2 = create_viewport(device, 0, 0, 640, 480);
+    hr = IDirect3DViewport_AddLight(viewport2, light);
+    ok(hr == D3DERR_LIGHTHASVIEWPORT, "Got unexpected hr %#x.\n", hr);
+    destroy_viewport(device, viewport2);
 
     for (i = 0; i < ARRAY_SIZE(tests); ++i)
     {
-- 
2.20.1




More information about the wine-devel mailing list