d3dx9: Add stub and basic test for D3DXCreateMeshFVF.

Misha Koshelev misha680 at gmail.com
Mon Jul 26 17:43:48 CDT 2010


---
 dlls/d3dx9_36/d3dx9_36.spec |    2 +-
 dlls/d3dx9_36/mesh.c        |    8 ++++++++
 dlls/d3dx9_36/tests/mesh.c  |    9 +++++++++
 include/d3dx9mesh.h         |    1 +
 4 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 622a03c..ca925d9 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -72,7 +72,7 @@
 @ stdcall D3DXCreateLine(ptr ptr)
 @ stdcall D3DXCreateMatrixStack(long ptr)
 @ stub D3DXCreateMesh
-@ stub D3DXCreateMeshFVF
+@ stdcall D3DXCreateMeshFVF(long long long long ptr ptr)
 @ stub D3DXCreateNPatchMesh
 @ stub D3DXCreatePMeshFromStream
 @ stub D3DXCreatePatchMesh
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index bfa1c23..5ff257c 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -328,6 +328,14 @@ BOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *pcenter, FLOAT radius, CONST
     return TRUE;
 }
 
+HRESULT WINAPI D3DXCreateMeshFVF(DWORD numfaces, DWORD numvertices, DWORD options, DWORD FVF,
+                                 LPDIRECT3DDEVICE9 device, LPD3DXMESH *mesh)
+{
+    FIXME("(%d, %d, %d, %d, %p, %p): stub\n", numfaces, numvertices, options, FVF, device, mesh);
+
+    return E_NOTIMPL;
+}
+
 HRESULT WINAPI D3DXCreateBox(LPDIRECT3DDEVICE9 device, FLOAT width, FLOAT height,
                              FLOAT depth, LPD3DXMESH* mesh, LPD3DXBUFFER* adjacency)
 {
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
index 940e39e..4bbc768 100644
--- a/dlls/d3dx9_36/tests/mesh.c
+++ b/dlls/d3dx9_36/tests/mesh.c
@@ -661,6 +661,14 @@ static void D3DXIntersectTriTest(void)
     ok( got_res == exp_res, "Expected result = %d, got %d\n",exp_res,got_res);
 }
 
+static void D3DXCreateMeshFVFTest(void)
+{
+    HRESULT hr;
+
+    hr = D3DXCreateMeshFVF(0, 0, 0, 0, NULL, NULL);
+    todo_wine ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3DERR_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+}
+
 struct sincos_table
 {
     float *sin;
@@ -1041,6 +1049,7 @@ START_TEST(mesh)
     D3DXDeclaratorFromFVFTest();
     D3DXGetFVFVertexSizeTest();
     D3DXIntersectTriTest();
+    D3DXCreateMeshFVFTest();
     D3DXCreateSphereTest();
     test_get_decl_vertex_size();
 }
diff --git a/include/d3dx9mesh.h b/include/d3dx9mesh.h
index 5773d24..13629aa 100644
--- a/include/d3dx9mesh.h
+++ b/include/d3dx9mesh.h
@@ -124,6 +124,7 @@ DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
 extern "C" {
 #endif
 
+HRESULT WINAPI D3DXCreateMeshFVF(DWORD, DWORD, DWORD, DWORD, LPDIRECT3DDEVICE9, LPD3DXMESH *);
 HRESULT WINAPI D3DXCreateBuffer(DWORD, LPD3DXBUFFER*);
 UINT    WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx);
 UINT    WINAPI D3DXGetFVFVertexSize(DWORD);
-- 
1.7.1


--=-lvq2f9l9nvea6sXK2wz0
Content-Disposition: attachment; filename="0001-d3dx9-Complete-test-for-D3DXCreateSphere.txt"
Content-Type: text/plain; name="0001-d3dx9-Complete-test-for-D3DXCreateSphere.txt"; charset="UTF-8"
Content-Transfer-Encoding: 7bit



More information about the wine-devel mailing list