Jason Green : d3d9: Add tests showing the D3DUSAGE_RENDERTARGET and D3DUSAGE_AUTOGENMIPMAP are mutually exlusive .
Alexandre Julliard
julliard at winehq.org
Fri Feb 29 06:16:56 CST 2008
Module: wine
Branch: master
Commit: 438fa44d4339eafbfdff512ba47ecbad69d5d157
URL: http://source.winehq.org/git/wine.git/?a=commit;h=438fa44d4339eafbfdff512ba47ecbad69d5d157
Author: Jason Green <jave27 at gmail.com>
Date: Thu Feb 28 15:00:30 2008 -0500
d3d9: Add tests showing the D3DUSAGE_RENDERTARGET and D3DUSAGE_AUTOGENMIPMAP are mutually exlusive.
---
dlls/d3d9/tests/texture.c | 47 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 46 insertions(+), 1 deletions(-)
diff --git a/dlls/d3d9/tests/texture.c b/dlls/d3d9/tests/texture.c
index 617ad77..0b2e406 100644
--- a/dlls/d3d9/tests/texture.c
+++ b/dlls/d3d9/tests/texture.c
@@ -115,19 +115,55 @@ static void test_cube_texture_from_pool(IDirect3DDevice9 *device_ptr, DWORD caps
if(texture_ptr) IDirect3DCubeTexture9_Release(texture_ptr);
}
+static void test_cube_texture_mipmap_gen(IDirect3DDevice9 *device_ptr)
+{
+ IDirect3DCubeTexture9 *texture_ptr = NULL;
+ IDirect3D9 *d3d9;
+ HRESULT hr;
+
+ hr = IDirect3DDevice9_GetDirect3D(device_ptr, &d3d9);
+ ok(hr == D3D_OK, "IDirect3DDevice9_GetDirect3D returned 0x%08x\n", hr);
+
+ hr = IDirect3D9_CheckDeviceFormat(d3d9, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8,
+ D3DUSAGE_AUTOGENMIPMAP,
+ D3DRTYPE_CUBETEXTURE, D3DFMT_X8R8G8B8);
+ if(FAILED(hr))
+ {
+ skip("No cube mipmap generation support\n");
+ return;
+ }
+
+ /* testing shows that autogenmipmap and rendertarget are mutually exclusive options */
+ hr = IDirect3DDevice9_CreateCubeTexture(device_ptr, 64, 0, (D3DUSAGE_RENDERTARGET |
+ D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8,
+ D3DPOOL_MANAGED, &texture_ptr, 0);
+ todo_wine ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n",
+ hr, D3DERR_INVALIDCALL);
+ if (texture_ptr) IDirect3DCubeTexture9_Release(texture_ptr);
+ texture_ptr = NULL;
+
+ hr = IDirect3DDevice9_CreateCubeTexture(device_ptr, 64, 0,
+ D3DUSAGE_AUTOGENMIPMAP, D3DFMT_X8R8G8B8,
+ D3DPOOL_MANAGED, &texture_ptr, 0);
+ ok(hr == D3D_OK, "IDirect3DDevice9_CreateTexture failed (0x%08x)\n", hr);
+ if (texture_ptr) IDirect3DCubeTexture9_Release(texture_ptr);
+ texture_ptr = NULL;
+}
+
static void test_cube_textures(IDirect3DDevice9 *device_ptr, DWORD caps)
{
test_cube_texture_from_pool(device_ptr, caps, D3DPOOL_DEFAULT, TRUE);
test_cube_texture_from_pool(device_ptr, caps, D3DPOOL_MANAGED, TRUE);
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);
}
static void test_mipmap_gen(IDirect3DDevice9 *device)
{
HRESULT hr;
IDirect3D9 *d3d9;
- IDirect3DTexture9 *texture;
+ IDirect3DTexture9 *texture = NULL;
IDirect3DSurface9 *surface;
DWORD levels;
D3DSURFACE_DESC desc;
@@ -146,6 +182,15 @@ static void test_mipmap_gen(IDirect3DDevice9 *device)
return;
}
+ /* testing shows that autogenmipmap and rendertarget are mutually exclusive options */
+ hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, (D3DUSAGE_RENDERTARGET |
+ D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8,
+ D3DPOOL_MANAGED, &texture, 0);
+ todo_wine ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n",
+ hr, D3DERR_INVALIDCALL);
+ if (texture) IDirect3DTexture9_Release(texture);
+ texture = NULL;
+
hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, D3DUSAGE_AUTOGENMIPMAP,
D3DFMT_X8R8G8B8, D3DPOOL_MANAGED, &texture, 0);
ok(hr == D3D_OK, "IDirect3DDevice9_CreateTexture failed(%08x)\n", hr);
More information about the wine-cvs
mailing list