diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec index 2534acfab05..6ce5643a068 100644 --- a/dlls/d3dx9_36/d3dx9_36.spec +++ b/dlls/d3dx9_36/d3dx9_36.spec @@ -17,7 +17,7 @@ @ stub D3DXCompileShaderFromResourceA @ stub D3DXCompileShaderFromResourceW @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) -@ stub D3DXComputeBoundingSphere +@ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) @ stub D3DXComputeIMTFromPerTexelSignal @ stub D3DXComputeIMTFromPerVertexSignal @ stub D3DXComputeIMTFromSignal diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c index 08d6e2f7d47..521d6942d4a 100644 --- a/dlls/d3dx9_36/mesh.c +++ b/dlls/d3dx9_36/mesh.c @@ -54,6 +54,40 @@ HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *pfirstposition, DWORD n return D3D_OK; } +/************************************************************************* + * D3DXComputeBoundingSphere + */ +HRESULT WINAPI D3DXComputeBoundingSphere(CONST D3DXVECTOR3* pfirstposition, DWORD numvertices, DWORD dwstride, D3DXVECTOR3 *pcenter, FLOAT *pradius) +{ + D3DXVECTOR3 temp, temp1; + FLOAT d; + unsigned int i; + + if( !pfirstposition || !pcenter || !pradius ) return D3DERR_INVALIDCALL; + + temp.x = 0.0f; + temp.y = 0.0f; + temp.z = 0.0f; + temp1 = temp; + d = 0.0f; + *pradius = 0.0f; + + for(i=0; i *pradius ) *pradius = d; + } + return D3D_OK; +} + /************************************************************************* * D3DXIntersectTri */ diff --git a/include/d3dx9mesh.h b/include/d3dx9mesh.h index 5cfc25ee0e3..a85f80de58b 100644 --- a/include/d3dx9mesh.h +++ b/include/d3dx9mesh.h @@ -30,6 +30,7 @@ UINT WINAPI D3DXGetFVFVertexSize(DWORD); BOOL WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *); BOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *); HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *); +HRESULT WINAPI D3DXComputeBoundingSphere(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, FLOAT *); BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *); #ifdef __cplusplus