Module: wine Branch: master Commit: 9558fd0f32b9d1e49fe61365ecf3ba3924d6ac63 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9558fd0f32b9d1e49fe61365ec...
Author: David Adam david.adam.cnrs@gmail.com Date: Mon Dec 17 23:49:09 2007 +0100
d3dx8: Add definition for MatrixStack.
---
dlls/dxguid/dx8guid.c | 2 +- include/d3dx8math.h | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletions(-)
diff --git a/dlls/dxguid/dx8guid.c b/dlls/dxguid/dx8guid.c index 78c6114..6b51c9e 100644 --- a/dlls/dxguid/dx8guid.c +++ b/dlls/dxguid/dx8guid.c @@ -31,4 +31,4 @@ #include "initguid.h"
#include "d3d8.h" -#include "d3dx8core.h" +#include "d3dx8.h" diff --git a/include/d3dx8math.h b/include/d3dx8math.h index 1863ac0..755698a 100644 --- a/include/d3dx8math.h +++ b/include/d3dx8math.h @@ -30,6 +30,11 @@ #define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f)) #define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
+typedef struct ID3DXMatrixStack *LPD3DXMATRIXSTACK; + +DEFINE_GUID(IID_ID3DXMatrixStack, +0xe3357330, 0xcc5e, 0x11d2, 0xa4, 0x34, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); + typedef struct D3DXVECTOR2 { #ifdef __cplusplus @@ -345,6 +350,64 @@ D3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, } #endif
+#define INTERFACE ID3DXMatrixStack +DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown) +{ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID, LPVOID*) 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 LPD3DXMATRIX) PURE; + STDMETHOD(MultMatrix)(THIS_ CONST LPD3DXMATRIX) PURE; + STDMETHOD(MultMatrixLocal)(THIS_ CONST LPD3DXMATRIX) PURE; + STDMETHOD(RotateAxis)(THIS_ CONST LPD3DXVECTOR3, FLOAT) PURE; + STDMETHOD(RotateAxisLocal)(THIS_ CONST LPD3DXVECTOR3, FLOAT) PURE; + STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD(Scale)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD(ScaleLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD(Translate)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD(TranslateLocal)(THIS_ FLOAT, FLOAT, FLOAT) PURE; + STDMETHOD_(LPD3DXMATRIX, 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 <d3dx8math.inl>
#endif /* __D3DX8MATH_H__ */