David Adam : d3dx8: Add definition for MatrixStack.

Alexandre Julliard julliard at winehq.org
Tue Dec 18 07:34:52 CST 2007


Module: wine
Branch: master
Commit: 9558fd0f32b9d1e49fe61365ecf3ba3924d6ac63
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9558fd0f32b9d1e49fe61365ecf3ba3924d6ac63

Author: David Adam <david.adam.cnrs at 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__ */




More information about the wine-cvs mailing list