Commit 00d14355 authored by David Adam's avatar David Adam Committed by Alexandre Julliard

d3dx9_36: Implement D3DXComputeBoundingBox.

parent 5768cbd6
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
@ stub D3DXCompileShaderFromFileW @ stub D3DXCompileShaderFromFileW
@ stub D3DXCompileShaderFromResourceA @ stub D3DXCompileShaderFromResourceA
@ stub D3DXCompileShaderFromResourceW @ stub D3DXCompileShaderFromResourceW
@ stub D3DXComputeBoundingBox @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr)
@ stub D3DXComputeBoundingSphere @ stub D3DXComputeBoundingSphere
@ stub D3DXComputeIMTFromPerTexelSignal @ stub D3DXComputeIMTFromPerTexelSignal
@ stub D3DXComputeIMTFromPerVertexSignal @ stub D3DXComputeIMTFromPerVertexSignal
......
...@@ -25,6 +25,36 @@ ...@@ -25,6 +25,36 @@
/************************************************************************* /*************************************************************************
* D3DXComputeBoundingBox
*/
HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *pfirstposition, DWORD numvertices, DWORD dwstride, D3DXVECTOR3 *pmin, D3DXVECTOR3 *pmax)
{
D3DXVECTOR3 vec;
unsigned int i;
if( !pfirstposition || !pmin || !pmax ) return D3DERR_INVALIDCALL;
*pmin = *pfirstposition;
*pmax = *pmin;
for(i=0; i<numvertices; i++)
{
vec = *( (D3DXVECTOR3*)((char*)pfirstposition + dwstride * i) );
if ( vec.x < pmin->x ) pmin->x = vec.x;
if ( vec.x > pmax->x ) pmax->x = vec.x;
if ( vec.y < pmin->y ) pmin->y = vec.y;
if ( vec.y > pmax->y ) pmax->y = vec.y;
if ( vec.z < pmin->z ) pmin->z = vec.z;
if ( vec.z > pmax->z ) pmax->z = vec.z;
}
return D3D_OK;
}
/*************************************************************************
* D3DXIntersectTri * D3DXIntersectTri
*/ */
BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *p0, CONST D3DXVECTOR3 *p1, CONST D3DXVECTOR3 *p2, CONST D3DXVECTOR3 *praypos, CONST D3DXVECTOR3 *praydir, FLOAT *pu, FLOAT *pv, FLOAT *pdist) BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *p0, CONST D3DXVECTOR3 *p1, CONST D3DXVECTOR3 *p2, CONST D3DXVECTOR3 *praypos, CONST D3DXVECTOR3 *praydir, FLOAT *pu, FLOAT *pv, FLOAT *pdist)
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "d3d9.h" #include "d3d9.h"
#include "d3dx9math.h" #include "d3dx9math.h"
#include "d3dx9core.h" #include "d3dx9core.h"
#include "d3dx9mesh.h"
#include "d3dx9shader.h" #include "d3dx9shader.h"
#include "d3dx9tex.h" #include "d3dx9tex.h"
......
...@@ -29,6 +29,7 @@ HRESULT WINAPI D3DXCreateBuffer(DWORD, LPD3DXBUFFER*); ...@@ -29,6 +29,7 @@ HRESULT WINAPI D3DXCreateBuffer(DWORD, LPD3DXBUFFER*);
UINT WINAPI D3DXGetFVFVertexSize(DWORD); UINT WINAPI D3DXGetFVFVertexSize(DWORD);
BOOL WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *); BOOL WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *);
BOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *); BOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *);
HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *);
BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *); BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *);
#ifdef __cplusplus #ifdef __cplusplus
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment