The D3DXWeldVertices function is stubbed in the spec file, so I needed to add it as a real stub. Does this look correct(works here)?
From 58a513680ea0562cdb299f9e0b886188692e6f5e Mon Sep 17 00:00:00 2001 From: Michael Mc Donnell <mich...@mcdonnell.dk> Date: Tue, 5 Jul 2011 23:06:37 +0200 Subject: d3dx9: Add stub for D3DXWeldVertices.
--- dlls/d3dx9_36/d3dx9_36.spec | 2 +- dlls/d3dx9_36/mesh.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletions(-) diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec index 5973d20..27cc6e6 100644 --- a/dlls/d3dx9_36/d3dx9_36.spec +++ b/dlls/d3dx9_36/d3dx9_36.spec @@ -333,4 +333,4 @@ @ stdcall D3DXVec4Normalize(ptr ptr) @ stdcall D3DXVec4Transform(ptr ptr ptr) @ stdcall D3DXVec4TransformArray(ptr long ptr long ptr long) -@ stub D3DXWeldVertices(ptr long ptr ptr ptr ptr ptr) +@ stdcall D3DXWeldVertices(ptr long ptr ptr ptr ptr ptr) diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c index 2807150..1f34af3 100644 --- a/dlls/d3dx9_36/mesh.c +++ b/dlls/d3dx9_36/mesh.c @@ -5210,3 +5210,40 @@ error: return hr; } + +/************************************************************************* + * D3DXWeldVertices (D3DX9_36.@) + * + * Welds together close vertices. The distance between vert- + * ices can be the position and/or other attributes, e.g. + * normal and color. + * + * PARAMS + * mesh [I] Mesh which vertices will be welded together. + * flags [I] D3DXWELDEPSILONSFLAGS specifying how to weld. + * epsilons [I] How close each attribute needs to be for welding. + * adjacency [I] Which faces are adjacent to other faces. + * adjacency_out [O] Updated adjacency after welding. + * face_remap_out [O] Which faces the old faces have been mapped to. + * vertex_remap_out [O] Which vertices the old vertices have been mapped to. + * + * RETURNS + * Success: D3D_OK. + * Failure: D3DERR_INVALIDCALL. + * + * BUGS + * Unimplemented + */ +HRESULT WINAPI D3DXWeldVertices(LPD3DXMESH mesh, + DWORD flags, + CONST D3DXWELDEPSILONS *epsilons, + CONST DWORD *adjacency, + DWORD *adjacency_out, + DWORD *face_remap_out, + LPD3DXBUFFER *vertex_remap_out) +{ + FIXME("(%p, %x, %p, %p, %p, %p, %p): stub\n", mesh, flags, epsilons, + adjacency, adjacency_out, face_remap_out, vertex_remap_out); + + return E_NOTIMPL; +} -- 1.7.5.4