=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3dx9/tests: Add basic tests for D3DXCreateRenderToSurface.

Alexandre Julliard julliard at winehq.org
Wed Jun 6 15:35:18 CDT 2012


Module: wine
Branch: master
Commit: 4200198355efe169eb68bfa61e17b9769f2a4fd1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4200198355efe169eb68bfa61e17b9769f2a4fd1

Author: Józef Kucia <joseph.kucia at 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);




More information about the wine-cvs mailing list