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



Reply via email to