[PATCH 4/5] d3dx9: Implement D3DXComputeNormals().
Józef Kucia
joseph.kucia at gmail.com
Sat Jul 25 04:23:46 CDT 2015
---
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 575d0ca..0c24882b 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 1558b17..de43bad 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -7485,6 +7485,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,
--
2.3.6
More information about the wine-patches
mailing list