Henri Verbeet : d3d9/tests: Add a volume texture test to test_reset().
Alexandre Julliard
julliard at winehq.org
Thu May 5 12:08:06 CDT 2011
Module: wine
Branch: master
Commit: 4a7ff5fc3577a5d5e79c034cabedbc8da60fa7a0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4a7ff5fc3577a5d5e79c034cabedbc8da60fa7a0
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Wed May 4 22:18:44 2011 +0200
d3d9/tests: Add a volume texture test to test_reset().
---
dlls/d3d9/tests/device.c | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index 4d6703f..0aef4b8 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -861,6 +861,7 @@ static void test_reset(void)
D3DLOCKED_RECT lockrect;
IDirect3DDevice9 *device1 = NULL;
IDirect3DDevice9 *device2 = NULL;
+ D3DCAPS9 caps;
struct
{
UINT w;
@@ -933,6 +934,9 @@ static void test_reset(void)
hr = IDirect3DDevice9_TestCooperativeLevel(device1);
ok(hr == D3D_OK, "IDirect3DDevice9_TestCooperativeLevel after creation returned %#x\n", hr);
+ hr = IDirect3DDevice9_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);
@@ -1067,6 +1071,29 @@ static void test_reset(void)
hr = IDirect3DDevice9_TestCooperativeLevel(device1);
ok(hr == D3D_OK, "IDirect3DDevice9_TestCooperativeLevel after a successful reset returned %#x\n", hr);
+ if (caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP)
+ {
+ IDirect3DVolumeTexture9 *volume_texture;
+
+ hr = IDirect3DDevice9_CreateVolumeTexture(device1, 16, 16, 4, 1, 0,
+ D3DFMT_R5G6B5, D3DPOOL_DEFAULT, &volume_texture, NULL);
+ ok(SUCCEEDED(hr), "CreateVolumeTexture failed, hr %#x.\n", hr);
+ hr = IDirect3DDevice9_Reset(device1, &d3dpp);
+ ok(hr == D3DERR_INVALIDCALL, "Reset returned %#x, expected %#x.\n", hr, D3DERR_INVALIDCALL);
+ hr = IDirect3DDevice9_TestCooperativeLevel(device1);
+ ok(hr == D3DERR_DEVICENOTRESET, "TestCooperativeLevel returned %#x, expected %#x.\n",
+ hr, D3DERR_DEVICENOTRESET);
+ IDirect3DVolumeTexture9_Release(volume_texture);
+ hr = IDirect3DDevice9_Reset(device1, &d3dpp);
+ ok(SUCCEEDED(hr), "Reset failed, hr %#x.\n", hr);
+ hr = IDirect3DDevice9_TestCooperativeLevel(device1);
+ ok(SUCCEEDED(hr), "TestCooperativeLevel failed, hr %#x.\n", hr);
+ }
+ else
+ {
+ skip("Volume textures not supported.\n");
+ }
+
/* Scratch, sysmem and managed pools are fine */
hr = IDirect3DDevice9_CreateOffscreenPlainSurface(device1, 16, 16, D3DFMT_R5G6B5, D3DPOOL_SCRATCH, &surface, NULL);
ok(hr == D3D_OK, "IDirect3DDevice9_CreateOffscreenPlainSurface returned %08x\n", hr);
More information about the wine-cvs
mailing list