=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3dx9: Implement D3DXComputeNormals().

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 31 17:25:54 CDT 2015


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

Author: Józef Kucia <joseph.kucia at gmail.com>
Date:   Wed Jul 29 22:16:59 2015 +0200

d3dx9: Implement D3DXComputeNormals().

---

 dlls/d3dx9_36/d3dx9_36.spec |  2 +-
 dlls/d3dx9_36/mesh.c        | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 7e95e35..f79b6fa 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -23,7 +23,7 @@
 @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
 @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
 @ stub D3DXComputeNormalMap(ptr ptr ptr long long long)
-@ stub D3DXComputeNormals(ptr ptr)
+@ stdcall D3DXComputeNormals(ptr ptr)
 @ stub D3DXComputeTangent(ptr long long long long ptr)
 @ stub D3DXComputeTangentFrame(ptr long)
 @ stdcall D3DXComputeTangentFrameEx(ptr long long long long long long long long long ptr float float float ptr ptr)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 7c76f3b..d0459da 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -7494,6 +7494,25 @@ done:
 }
 
 /*************************************************************************
+ * D3DXComputeNormals    (D3DX9_36.@)
+ */
+HRESULT WINAPI D3DXComputeNormals(struct ID3DXBaseMesh *mesh, const DWORD *adjacency)
+{
+    TRACE("mesh %p, adjacency %p\n", mesh, adjacency);
+
+    if (mesh && (ID3DXMeshVtbl *)mesh->lpVtbl != &D3DXMesh_Vtbl)
+    {
+        ERR("Invalid virtual table\n");
+        return D3DERR_INVALIDCALL;
+    }
+
+    return D3DXComputeTangentFrameEx((ID3DXMesh *)mesh, D3DX_DEFAULT, 0,
+            D3DX_DEFAULT, 0, D3DX_DEFAULT, 0, D3DDECLUSAGE_NORMAL, 0,
+            D3DXTANGENT_GENERATE_IN_PLACE | D3DXTANGENT_CALCULATE_NORMALS,
+            adjacency, -1.01f, -0.01f, -1.01f, NULL, NULL);
+}
+
+/*************************************************************************
  * D3DXIntersect    (D3DX9_36.@)
  */
 HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir,




More information about the wine-cvs mailing list