On Wed, Jul 6, 2011 at 1:54 PM, Michael Mc Donnell <mich...@mcdonnell.dk> wrote: > On Wed, Jul 6, 2011 at 1:32 PM, Stefan Dösinger <stefandoesin...@gmx.at> > wrote: >> On Wednesday 06 July 2011 11:04:17 Michael Mc Donnell wrote: >>> 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)? >> Looks good to me. Also check the other d3dx9 libs, they should forward their >> implementations to d3dx9_36 via the spec file if the function exists in the >> native version of that dll. > > I think they're already forwarded. In all the other spec files I find: > > @ stdcall D3DXWeldVertices(ptr long ptr ptr ptr ptr ptr) > d3dx9_36.D3DXWeldVertices > > That means they're all forwarded to d3dx9_36? >
Btw. I just found a bug in the documentation, so here's the updated version.
From db34038a78d6a355a8337844f89397f5c8b1fbce 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. Fixed bug in documentation --- 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..311a35c 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 components, e.g. + * normal and texture coordinates. + * + * 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