[4/5] d3dx9/tests: Add tests for D3DXCreateCubeTextureFromFileInMemory.

Józef Kucia joseph.kucia at gmail.com
Sun Mar 25 08:40:42 CDT 2012


---
 dlls/d3dx9_36/tests/surface.c |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
index 0082dbb..1a39ed7 100644
--- a/dlls/d3dx9_36/tests/surface.c
+++ b/dlls/d3dx9_36/tests/surface.c
@@ -739,6 +739,46 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
     if(testbitmap_ok) DeleteFileA("testbitmap.bmp");
 }
 
+static void test_D3DXCreateCubeTexture(IDirect3DDevice9 *device)
+{
+    HRESULT hr;
+    ULONG ref;
+    DWORD levelcount;
+    IDirect3DCubeTexture9 *cube_texture;
+    D3DSURFACE_DESC surface_desc;
+
+    todo_wine {
+        hr = D3DXCreateCubeTextureFromFileInMemory(NULL, dds_cube_map, sizeof(dds_cube_map), &cube_texture);
+        ok(hr == D3DERR_INVALIDCALL, "D3DXCreateCubeTextureFromFileInMemory returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
+
+        hr = D3DXCreateCubeTextureFromFileInMemory(device, NULL, sizeof(dds_cube_map), &cube_texture);
+        ok(hr == D3DERR_INVALIDCALL, "D3DXCreateCubeTextureFromFileInMemory returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
+
+        hr = D3DXCreateCubeTextureFromFileInMemory(device, dds_cube_map, 0, &cube_texture);
+        ok(hr == D3DERR_INVALIDCALL, "D3DXCreateCubeTextureFromFileInMemory returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
+
+        hr = D3DXCreateCubeTextureFromFileInMemory(device, dds_cube_map, sizeof(dds_cube_map), NULL);
+        ok(hr == D3DERR_INVALIDCALL, "D3DXCreateCubeTextureFromFileInMemory returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
+
+        hr = D3DXCreateCubeTextureFromFileInMemory(device, dds_cube_map, sizeof(dds_cube_map), &cube_texture);
+        if(SUCCEEDED(hr)) {
+            levelcount = IDirect3DCubeTexture9_GetLevelCount(cube_texture);
+            ok(levelcount == 3, "GetLevelCount returned %u, expected 3\n", levelcount);
+
+            hr = IDirect3DCubeTexture9_GetLevelDesc(cube_texture, 0, &surface_desc);
+            ok(hr == D3D_OK, "GetLevelDesc returned %#x, expected %#x\n", hr, D3D_OK);
+            ok(surface_desc.Width == 4, "Got width %u, expected 4\n", surface_desc.Width);
+            ok(surface_desc.Height == 4, "Got height %u, expected 4\n", surface_desc.Height);
+
+            hr = IDirect3DCubeTexture9_GetLevelDesc(cube_texture, 3, &surface_desc);
+            ok(hr == D3DERR_INVALIDCALL, "GetLevelDesc returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
+
+            ref = IDirect3DCubeTexture9_Release(cube_texture);
+            ok(ref == 0, "Invalid reference count. Got %u, expected 0\n", ref);
+        } else skip("Couldn't create cube texture\n");
+    }
+}
+
 START_TEST(surface)
 {
     HWND wnd;
@@ -772,6 +812,7 @@ START_TEST(surface)
 
     test_D3DXGetImageInfo();
     test_D3DXLoadSurface(device);
+    test_D3DXCreateCubeTexture(device);
 
     check_release((IUnknown*)device, 0);
     check_release((IUnknown*)d3d, 0);
-- 
1.7.8.5




More information about the wine-patches mailing list