d3dx9: Merge d3dx8 math into d3dx9.

This commit is contained in:
David Adam 2009-07-11 18:06:44 +02:00 committed by Alexandre Julliard
parent 35ada0dc2d
commit d1c2d2a4f8
4 changed files with 1651 additions and 161 deletions

View file

@ -9,8 +9,8 @@
@ stdcall D3DXCheckVersion(long long)
@ stub D3DXCheckVolumeTextureRequirements
@ stub D3DXCleanMesh
@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContrast
@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSaturation
@ stdcall D3DXColorAdjustContrast(ptr ptr long)
@ stdcall D3DXColorAdjustSaturation(ptr ptr long)
@ stub D3DXCompileShader
@ stub D3DXCompileShaderFromFileA
@ stub D3DXCompileShaderFromFileW
@ -70,7 +70,7 @@
@ stub D3DXCreateFragmentLinkerEx
@ stub D3DXCreateKeyframedAnimationSet
@ stub D3DXCreateLine
@ stdcall D3DXCreateMatrixStack(long ptr) d3dx8.D3DXCreateMatrixStack
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stub D3DXCreateMesh
@ stub D3DXCreateMeshFVF
@ stub D3DXCreateNPatchMesh
@ -138,7 +138,7 @@
@ stub D3DXFrameFind
@ stub D3DXFrameNumNamedMatrices
@ stub D3DXFrameRegisterNamedMatrices
@ stdcall D3DXFresnelTerm(long long) d3dx8.D3DXFresnelTerm
@ stdcall D3DXFresnelTerm(long long)
@ stub D3DXFVFFromDeclarator
@ stub D3DXGatherFragments
@ stub D3DXGatherFragmentsFromFileA
@ -196,64 +196,64 @@
@ stub D3DXLoadVolumeFromResourceA
@ stub D3DXLoadVolumeFromResourceW
@ stub D3DXLoadVolumeFromVolume
@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMatrixAffineTransformation
@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr)
@ stdcall D3DXMatrixAffineTransformation2D(ptr long ptr long ptr)
@ stdcall D3DXMatrixDecompose(ptr ptr ptr ptr)
@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiplyTranspose
@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoLH
@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3dx8.D3DXMatrixOrthoOffCenterLH
@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3dx8.D3DXMatrixOrthoOffCenterRH
@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoRH
@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMatrixPerspectiveFovLH
@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMatrixPerspectiveFovRH
@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrixPerspectiveLH
@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long long) d3dx8.D3DXMatrixPerspectiveOffCenterLH
@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long long) d3dx8.D3DXMatrixPerspectiveOffCenterRH
@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrixPerspectiveRH
@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQuaternion
@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMatrixRotationYawPitchRoll
@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXMatrixTransformation
@ stdcall D3DXMatrixDeterminant(ptr)
@ stdcall D3DXMatrixInverse(ptr ptr ptr)
@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr)
@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr)
@ stdcall D3DXMatrixMultiply(ptr ptr ptr)
@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr)
@ stdcall D3DXMatrixOrthoLH(ptr long long long long)
@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long)
@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long)
@ stdcall D3DXMatrixOrthoRH(ptr long long long long)
@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long)
@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long)
@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long)
@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long long)
@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long long)
@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long)
@ stdcall D3DXMatrixReflect(ptr ptr)
@ stdcall D3DXMatrixRotationAxis(ptr ptr long)
@ stdcall D3DXMatrixRotationQuaternion(ptr ptr)
@ stdcall D3DXMatrixRotationX(ptr long)
@ stdcall D3DXMatrixRotationY(ptr long)
@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long)
@ stdcall D3DXMatrixRotationZ(ptr long)
@ stdcall D3DXMatrixScaling(ptr long long long)
@ stdcall D3DXMatrixShadow(ptr ptr ptr)
@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr)
@ stdcall D3DXMatrixTransformation2D(ptr ptr long ptr ptr long ptr)
@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTranslation
@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
@ stdcall D3DXMatrixTranslation(ptr long long long)
@ stdcall D3DXMatrixTranspose(ptr ptr)
@ stub D3DXOptimizeFaces
@ stub D3DXOptimizeVertices
@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNormal
@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectLine
@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr)
@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr)
@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr)
@ stdcall D3DXPlaneNormalize(ptr ptr)
@ stdcall D3DXPlaneTransform(ptr ptr ptr)
@ stdcall D3DXPlaneTransformArray(ptr long ptr long ptr long)
@ stub D3DXPreprocessShader
@ stub D3DXPreprocessShaderFromFileA
@ stub D3DXPreprocessShaderFromFileW
@ stub D3DXPreprocessShaderFromResourceA
@ stub D3DXPreprocessShaderFromResourceW
@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQuaternionBaryCentric
@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionInverse
@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMultiply
@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRotationAxis
@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotationMatrix
@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DXQuaternionRotationYawPitchRoll
@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQuaternionSquad
@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long)
@ stdcall D3DXQuaternionExp(ptr ptr)
@ stdcall D3DXQuaternionInverse(ptr ptr)
@ stdcall D3DXQuaternionLn(ptr ptr)
@ stdcall D3DXQuaternionMultiply(ptr ptr ptr)
@ stdcall D3DXQuaternionNormalize(ptr ptr)
@ stdcall D3DXQuaternionRotationAxis(ptr ptr long)
@ stdcall D3DXQuaternionRotationMatrix(ptr ptr)
@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long)
@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long)
@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long)
@ stdcall D3DXQuaternionSquadSetup(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXQuaternionSquadSetup
@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxisAngle
@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr)
@ stub D3DXRectPatchSize
@ stub D3DXSaveMeshHierarchyToFileA
@ stub D3DXSaveMeshHierarchyToFileW
@ -302,35 +302,35 @@
@ stub D3DXUVAtlasPartition
@ stdcall D3DXValidMesh(ptr ptr ptr) d3dx8.D3DXValidMesh
@ stub D3DXValidPatchMesh
@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2BaryCentric
@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2CatmullRom
@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec2Normalize
@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long)
@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec2Normalize(ptr ptr)
@ stdcall D3DXVec2Transform(ptr ptr ptr)
@ stdcall D3DXVec2TransformArray(ptr long ptr long ptr long)
@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
@ stdcall D3DXVec2TransformCoord(ptr ptr ptr)
@ stdcall D3DXVec2TransformCoordArray(ptr long ptr long ptr long)
@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNormal
@ stdcall D3DXVec2TransformNormal(ptr ptr ptr)
@ stdcall D3DXVec2TransformNormalArray(ptr long ptr long ptr long)
@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3BaryCentric
@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3CatmullRom
@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long)
@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec3Normalize(ptr ptr)
@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr)
@ stdcall D3DXVec3ProjectArray(ptr long ptr long ptr ptr ptr ptr long)
@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
@ stdcall D3DXVec3Transform(ptr ptr ptr)
@ stdcall D3DXVec3TransformArray(ptr long ptr long ptr long)
@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
@ stdcall D3DXVec3TransformCoord(ptr ptr ptr)
@ stdcall D3DXVec3TransformCoordArray(ptr long ptr long ptr long)
@ stdcall D3DXVec3TransformNormal(ptr ptr ptr) d3dx8.D3DXVec3TransformNormal
@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)
@ stdcall D3DXVec3TransformNormalArray(ptr long ptr long ptr long)
@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unproject
@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr)
@ stdcall D3DXVec3UnprojectArray(ptr long ptr long ptr ptr ptr ptr long)
@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4BaryCentric
@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4CatmullRom
@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long)
@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec4Cross(ptr ptr ptr ptr)
@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long)
@ stdcall D3DXVec4Normalize(ptr ptr)
@ stdcall D3DXVec4Transform(ptr ptr ptr)
@ stdcall D3DXVec4TransformArray(ptr long ptr long ptr long)
@ stub D3DXWeldVertices

View file

@ -1,5 +1,6 @@
/*
* Copyright (C) 2002 Raphael Junqueira
* Copyright (C) 2008 David Adam
* Copyright (C) 2008 Tony Wasserka
*
* This library is free software; you can redistribute it and/or
@ -63,6 +64,18 @@ typedef struct ID3DXFontImpl
HFONT hfont;
} ID3DXFontImpl;
/* ID3DXMatrixStack */
typedef struct ID3DXMatrixStackImpl
{
/* IUnknown fields */
const ID3DXMatrixStackVtbl *lpVtbl;
LONG ref;
/* ID3DXMatrixStack fields */
unsigned int current;
unsigned int stack_size;
D3DXMATRIX *stack;
} ID3DXMatrixStackImpl;
/*ID3DXSprite */
typedef struct _SPRITE {

File diff suppressed because it is too large Load diff

View file

@ -30,6 +30,8 @@
#define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
#define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
typedef struct D3DXVECTOR2
{
#ifdef __cplusplus
@ -266,6 +268,8 @@ extern "C" {
D3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
D3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR3 *rotationcenter, CONST D3DXQUATERNION *rotation, CONST D3DXVECTOR3 *translation);
D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, CONST D3DXMATRIX *pm);
@ -358,6 +362,71 @@ D3DXVECTOR4* WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *pout, UINT outstride, CO
}
#endif
typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
DEFINE_GUID(IID_ID3DXMatrixStack,
0xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
#undef INTERFACE
#define INTERFACE ID3DXMatrixStack
DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(Pop)(THIS) PURE;
STDMETHOD(Push)(THIS) PURE;
STDMETHOD(LoadIdentity)(THIS) PURE;
STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
STDMETHOD(RotateAxis)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
STDMETHOD(RotateAxisLocal)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
#define ID3DXMatrixStack_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ID3DXMatrixStack_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ID3DXMatrixStack_Release(p) (p)->lpVtbl->Release(p)
#define ID3DXMatrixStack_Pop(p) (p)->lpVtbl->Pop(p)
#define ID3DXMatrixStack_Push(p) (p)->lpVtbl->Push(p)
#define ID3DXMatrixStack_LoadIdentity(p) (p)->lpVtbl->LoadIdentity(p)
#define ID3DXMatrixStack_LoadMatrix(p,a) (p)->lpVtbl->LoadMatrix(p,a)
#define ID3DXMatrixStack_MultMatrix(p,a) (p)->lpVtbl->MultMatrix(p,a)
#define ID3DXMatrixStack_MultMatrixLocal(p,a) (p)->lpVtbl->MultMatrixLocal(p,a)
#define ID3DXMatrixStack_RotateAxis(p,a,b) (p)->lpVtbl->RotateAxis(p,a,b)
#define ID3DXMatrixStack_RotateAxisLocal(p,a,b) (p)->lpVtbl->RotateAxisLocal(p,a,b)
#define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c) (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
#define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
#define ID3DXMatrixStack_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
#define ID3DXMatrixStack_ScaleLocal(p,a,b,c) (p)->lpVtbl->ScaleLocal(p,a,b,c)
#define ID3DXMatrixStack_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
#define ID3DXMatrixStack_TranslateLocal(p,a,b,c) (p)->lpVtbl->TranslateLocal(p,a,b,c)
#define ID3DXMatrixStack_GetTop(p) (p)->lpVtbl->GetTop(p)
#endif
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack);
#ifdef __cplusplus
}
#endif
#include <d3dx9math.inl>
#endif /* __D3DX9MATH_H__ */