From: Józef Kucia Subject: [PATCH 3/4] d3dx9: Implement D3DXComputeNormals(). (resend) Message-Id: <1438201020-29955-3-git-send-email-joseph.kucia@gmail.com> Date: Wed, 29 Jul 2015 22:16:59 +0200 --- 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 adcd9be..06cb846 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, -- 2.3.6