From cafab890937e770bde947977c556d2d8fcd4de3b Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B3zef=20Kucia?= Date: Mon, 21 May 2012 23:10:47 +0200 Subject: [PATCH] d3d9/tests: Add tests for IDirect3DCubeTexture9::GetLevelDesc and IDirect3DCubeTexture9::GetCubeMapSurface. --- dlls/d3d9/tests/texture.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/dlls/d3d9/tests/texture.c b/dlls/d3d9/tests/texture.c index bf9673e06ee..8e8f27b7824 100644 --- a/dlls/d3d9/tests/texture.c +++ b/dlls/d3d9/tests/texture.c @@ -152,6 +152,48 @@ static void test_cube_texture_mipmap_gen(IDirect3DDevice9 *device_ptr) texture_ptr = NULL; } +static void test_cube_texture_levels(IDirect3DDevice9 *device_ptr) +{ + IDirect3DCubeTexture9 *texture_ptr; + DWORD levels; + D3DSURFACE_DESC desc; + HRESULT hr; + IDirect3DSurface9 *surface; + + hr = IDirect3DDevice9_CreateCubeTexture(device_ptr, 64, 0, 0, D3DFMT_X8R8G8B8, + D3DPOOL_DEFAULT, &texture_ptr, NULL); + if (FAILED(hr)) + { + skip("Couldn't create cube texture\n"); + return; + } + + levels = IDirect3DCubeTexture9_GetLevelCount(texture_ptr); + ok(levels == 7, "Got %u levels, expected 7\n", levels); + + hr = IDirect3DCubeTexture9_GetLevelDesc(texture_ptr, levels - 1, &desc); + ok(hr == D3D_OK, "IDirect3DCubeTexture9_GetLevelDesc returned %#x\n", hr); + hr = IDirect3DCubeTexture9_GetLevelDesc(texture_ptr, levels, &desc); + ok(hr == D3DERR_INVALIDCALL, "IDirect3DCubeTexture9_GetLevelDesc returned %#x\n", hr); + hr = IDirect3DCubeTexture9_GetLevelDesc(texture_ptr, levels + 1, &desc); + ok(hr == D3DERR_INVALIDCALL, "IDirect3DCubeTexture9_GetLevelDesc returned %#x\n", hr); + + hr = IDirect3DCubeTexture9_GetCubeMapSurface(texture_ptr, D3DCUBEMAP_FACE_POSITIVE_X, + 0, &surface); + ok(hr == D3D_OK, "IDirect3DCubeTexture9_GetCubeMapSurface returned %#x\n", hr); + if (SUCCEEDED(hr)) IDirect3DSurface9_Release(surface); + hr = IDirect3DCubeTexture9_GetCubeMapSurface(texture_ptr, D3DCUBEMAP_FACE_NEGATIVE_Z + 1, + 0, &surface); + ok(hr == D3DERR_INVALIDCALL, "IDirect3DCubeTexture9_GetCubeMapSurface returned %#x\n", hr); + if (SUCCEEDED(hr)) IDirect3DSurface9_Release(surface); + hr = IDirect3DCubeTexture9_GetCubeMapSurface(texture_ptr, D3DCUBEMAP_FACE_POSITIVE_X - 1, + 0, &surface); + ok(hr == D3DERR_INVALIDCALL, "IDirect3DCubeTexture9_GetCubeMapSurface returned %#x\n", hr); + if (SUCCEEDED(hr)) IDirect3DSurface9_Release(surface); + + IDirect3DCubeTexture9_Release(texture_ptr); +} + static void test_cube_textures(IDirect3DDevice9 *device_ptr, DWORD caps) { test_cube_texture_from_pool(device_ptr, caps, D3DPOOL_DEFAULT, TRUE); @@ -159,6 +201,7 @@ static void test_cube_textures(IDirect3DDevice9 *device_ptr, DWORD caps) test_cube_texture_from_pool(device_ptr, caps, D3DPOOL_SYSTEMMEM, TRUE); test_cube_texture_from_pool(device_ptr, caps, D3DPOOL_SCRATCH, FALSE); test_cube_texture_mipmap_gen(device_ptr); + test_cube_texture_levels(device_ptr); } static void test_mipmap_gen(IDirect3DDevice9 *device) -- 2.11.4.GIT