David Adam : d3dx9_36: Add a few tests for D3DXCreateBox.

Alexandre Julliard julliard at winehq.org
Tue Feb 15 11:29:27 CST 2011


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

Author: David Adam <david.adam.cnrs at gmail.com>
Date:   Thu Feb 10 06:59:35 2011 +0100

d3dx9_36: Add a few tests for D3DXCreateBox.

---

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

diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
index 5e875bd..5d1425b 100644
--- a/dlls/d3dx9_36/tests/mesh.c
+++ b/dlls/d3dx9_36/tests/mesh.c
@@ -1347,6 +1347,79 @@ static void D3DXCreateMeshFVFTest(void)
     DestroyWindow(wnd);
 }
 
+static void D3DXCreateBoxTest(void)
+{
+    HRESULT hr;
+    HWND wnd;
+    WNDCLASS wc={0};
+    IDirect3D9* d3d;
+    IDirect3DDevice9* device;
+    D3DPRESENT_PARAMETERS d3dpp;
+    ID3DXMesh* box;
+    ID3DXBuffer* ppBuffer;
+
+    wc.lpfnWndProc = DefWindowProcA;
+    wc.lpszClassName = "d3dx9_test_wc";
+    if (!RegisterClass(&wc))
+    {
+        skip("RegisterClass failed\n");
+        return;
+    }
+
+    wnd = CreateWindow("d3dx9_test_wc", "d3dx9_test",
+                        WS_SYSMENU | WS_POPUP , 0, 0, 640, 480, 0, 0, 0, 0);
+    ok(wnd != NULL, "Expected to have a window, received NULL");
+    if (!wnd)
+    {
+        skip("Couldn't create application window\n");
+        return;
+    }
+
+    d3d = Direct3DCreate9(D3D_SDK_VERSION);
+    if (!d3d)
+    {
+        skip("Couldn't create IDirect3D9 object\n");
+        DestroyWindow(wnd);
+        return;
+    }
+
+    memset(&d3dpp, 0, sizeof(d3dpp));
+    d3dpp.Windowed = TRUE;
+    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
+    hr = IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, wnd, D3DCREATE_MIXED_VERTEXPROCESSING, &d3dpp, &device);
+    if (FAILED(hr))
+    {
+        skip("Failed to create IDirect3DDevice9 object %#x\n", hr);
+        IDirect3D9_Release(d3d);
+        DestroyWindow(wnd);
+        return;
+    }
+
+    hr = D3DXCreateBuffer(36 * sizeof(DWORD), &ppBuffer);
+    ok(hr==D3D_OK, "Expected D3D_OK, received %#x", hr);
+    if (FAILED(hr)) goto end;
+
+    hr = D3DXCreateBox(device,2.0f,20.0f,4.9f,NULL, &ppBuffer);
+    todo_wine ok(hr==D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, received %#x", hr);
+
+    hr = D3DXCreateBox(NULL,22.0f,20.0f,4.9f,&box, &ppBuffer);
+    todo_wine ok(hr==D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, received %#x", hr);
+
+    hr = D3DXCreateBox(device,-2.0f,20.0f,4.9f,&box, &ppBuffer);
+    todo_wine ok(hr==D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, received %#x", hr);
+
+    hr = D3DXCreateBox(device,22.0f,-20.0f,4.9f,&box, &ppBuffer);
+    todo_wine ok(hr==D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, received %#x", hr);
+
+    hr = D3DXCreateBox(device,22.0f,20.0f,-4.9f,&box, &ppBuffer);
+    todo_wine ok(hr==D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, received %#x", hr);
+
+end:
+    IDirect3DDevice9_Release(device);
+    IDirect3D9_Release(d3d);
+    DestroyWindow(wnd);
+}
+
 struct sincos_table
 {
     float *sin;
@@ -2037,6 +2110,7 @@ START_TEST(mesh)
     D3DXIntersectTriTest();
     D3DXCreateMeshTest();
     D3DXCreateMeshFVFTest();
+    D3DXCreateBoxTest();
     D3DXCreateSphereTest();
     D3DXCreateCylinderTest();
     test_get_decl_length();




More information about the wine-cvs mailing list