Module: wine Branch: master Commit: 4200198355efe169eb68bfa61e17b9769f2a4fd1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4200198355efe169eb68bfa61e...
Author: Józef Kucia joseph.kucia@gmail.com Date: Tue Jun 5 12:05:42 2012 +0200
d3dx9/tests: Add basic tests for D3DXCreateRenderToSurface.
---
dlls/d3dx9_36/tests/core.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/dlls/d3dx9_36/tests/core.c b/dlls/d3dx9_36/tests/core.c index b7965d4..2ba56b5 100644 --- a/dlls/d3dx9_36/tests/core.c +++ b/dlls/d3dx9_36/tests/core.c @@ -446,6 +446,44 @@ static void test_ID3DXFont(IDirect3DDevice9 *device) } else skip("Failed to create a ID3DXFont object\n"); }
+void test_D3DXCreateRenderToSurface(IDirect3DDevice9 *device) +{ + HRESULT hr; + ULONG ref_count; + ID3DXRenderToSurface *render = (void *)0xdeadbeef; + + hr = D3DXCreateRenderToSurface(NULL /* device */, 256, 256, D3DFMT_A8R8G8B8, FALSE, D3DFMT_UNKNOWN, &render); + ok(hr == D3DERR_INVALIDCALL, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); + ok(render == (void *)0xdeadbeef, "Got %p, expected %p\n", render, (void *)0xdeadbeef); + + hr = D3DXCreateRenderToSurface(device, 256, 256, D3DFMT_A8R8G8B8, FALSE, D3DFMT_UNKNOWN, NULL /* out */); + ok(hr == D3DERR_INVALIDCALL, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); + + todo_wine { + hr = D3DXCreateRenderToSurface(device, 0 /* width */, 256, D3DFMT_A8R8G8B8, FALSE, D3DFMT_UNKNOWN, &render); + ok(hr == D3D_OK, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3D_OK); + if (SUCCEEDED(hr)) ID3DXRenderToSurface_Release(render); + + hr = D3DXCreateRenderToSurface(device, 256, 0 /* height */, D3DFMT_A8R8G8B8, FALSE, D3DFMT_UNKNOWN, &render); + ok(hr == D3D_OK, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3D_OK); + if (SUCCEEDED(hr)) ID3DXRenderToSurface_Release(render); + + hr = D3DXCreateRenderToSurface(device, 256, 256, D3DFMT_UNKNOWN /* format */, FALSE, D3DFMT_UNKNOWN, &render); + ok(hr == D3D_OK, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3D_OK); + if (SUCCEEDED(hr)) ID3DXRenderToSurface_Release(render); + + hr = D3DXCreateRenderToSurface(device, 0, 0, D3DFMT_UNKNOWN, FALSE, D3DFMT_UNKNOWN, &render); + ok(hr == D3D_OK, "D3DXCreateRenderToSurface returned %#x, expected %#x\n", hr, D3D_OK); + if (SUCCEEDED(hr)) ID3DXRenderToSurface_Release(render); + + /* check device ref count */ + ref_count = get_ref((IUnknown *)device); + hr = D3DXCreateRenderToSurface(device, 0, 0, D3DFMT_UNKNOWN, FALSE, D3DFMT_UNKNOWN, &render); + check_ref((IUnknown *)device, ref_count + 1); + if (SUCCEEDED(hr)) ID3DXRenderToSurface_Release(render); + } +} + START_TEST(core) { HWND wnd; @@ -480,6 +518,7 @@ START_TEST(core) test_ID3DXBuffer(); test_ID3DXSprite(device); test_ID3DXFont(device); + test_D3DXCreateRenderToSurface(device);
check_release((IUnknown*)device, 0); check_release((IUnknown*)d3d, 0);