Henri Verbeet : d3d8/tests: Add a volume texture test to test_reset().

Alexandre Julliard julliard at winehq.org
Thu May 5 12:08:07 CDT 2011


Module: wine
Branch: master
Commit: a4b032fd3111aeea9ce76c94b1ff9fa2a590320e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a4b032fd3111aeea9ce76c94b1ff9fa2a590320e

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed May  4 22:18:45 2011 +0200

d3d8/tests: Add a volume texture test to test_reset().

---

 dlls/d3d8/tests/device.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c
index bf2d4c3..3bb70b7 100644
--- a/dlls/d3d8/tests/device.c
+++ b/dlls/d3d8/tests/device.c
@@ -885,6 +885,7 @@ static void test_reset(void)
     UINT mode_count = 0;
     HWND window = NULL;
     D3DVIEWPORT8 vp;
+    D3DCAPS8 caps;
     DWORD shader;
     HRESULT hr;
     UINT i;
@@ -975,6 +976,9 @@ static void test_reset(void)
     hr = IDirect3DDevice8_TestCooperativeLevel(device1);
     ok(SUCCEEDED(hr), "TestCooperativeLevel failed, hr %#x.\n", hr);
 
+    hr = IDirect3DDevice8_GetDeviceCaps(device1, &caps);
+    ok(SUCCEEDED(hr), "GetDeviceCaps failed, hr %#x.\n", hr);
+
     width = GetSystemMetrics(SM_CXSCREEN);
     height = GetSystemMetrics(SM_CYSCREEN);
     ok(width == modes[i].w, "Screen width is %u, expected %u.\n", width, modes[i].w);
@@ -1099,6 +1103,29 @@ static void test_reset(void)
     hr = IDirect3DDevice8_TestCooperativeLevel(device1);
     ok(SUCCEEDED(hr), "TestCooperativeLevel failed, hr %#x.\n", hr);
 
+    if (caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP)
+    {
+        IDirect3DVolumeTexture8 *volume_texture;
+
+        hr = IDirect3DDevice8_CreateVolumeTexture(device1, 16, 16, 4, 1, 0,
+                D3DFMT_R5G6B5, D3DPOOL_DEFAULT, &volume_texture);
+        ok(SUCCEEDED(hr), "CreateVolumeTexture failed, hr %#x.\n", hr);
+        hr = IDirect3DDevice8_Reset(device1, &d3dpp);
+        ok(hr == D3DERR_DEVICELOST, "Reset returned %#x, expected %#x.\n", hr, D3DERR_INVALIDCALL);
+        hr = IDirect3DDevice8_TestCooperativeLevel(device1);
+        ok(hr == D3DERR_DEVICENOTRESET, "TestCooperativeLevel returned %#x, expected %#x.\n",
+                hr, D3DERR_DEVICENOTRESET);
+        IDirect3DVolumeTexture8_Release(volume_texture);
+        hr = IDirect3DDevice8_Reset(device1, &d3dpp);
+        ok(SUCCEEDED(hr), "Reset failed, hr %#x.\n", hr);
+        hr = IDirect3DDevice8_TestCooperativeLevel(device1);
+        ok(SUCCEEDED(hr), "TestCooperativeLevel failed, hr %#x.\n", hr);
+    }
+    else
+    {
+        skip("Volume textures not supported.\n");
+    }
+
     /* Scratch, sysmem and managed pool resources are fine. */
     hr = IDirect3DDevice8_CreateTexture(device1, 16, 16, 1, 0, D3DFMT_R5G6B5, D3DPOOL_SCRATCH, &texture);
     ok(SUCCEEDED(hr), "CreateTexture failed, hr %#x.\n", hr);




More information about the wine-cvs mailing list