1 /*==========================================================================;
3 * Copyright (c) Microsoft Corporation. All rights reserved.
6 * Content: Direct3DRM include file
8 ***************************************************************************/
13 #include <objbase.h> /* Use Windows header files */
24 * The methods for IUnknown
26 #define IUNKNOWN_METHODS(kind) \
27 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
28 STDMETHOD_(ULONG, AddRef) (THIS) kind; \
29 STDMETHOD_(ULONG, Release) (THIS) kind
32 * The methods for IDirect3DRMObject
34 #define IDIRECT3DRMOBJECT_METHODS(kind) \
35 STDMETHOD(Clone) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) kind; \
36 STDMETHOD(AddDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
37 STDMETHOD(DeleteDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
38 STDMETHOD(SetAppData) (THIS_ DWORD data) kind; \
39 STDMETHOD_(DWORD, GetAppData) (THIS) kind; \
40 STDMETHOD(SetName) (THIS_ LPCSTR) kind; \
41 STDMETHOD(GetName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind; \
42 STDMETHOD(GetClassName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind
45 #define WIN_TYPES(itype, ptype) \
46 typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
48 WIN_TYPES(IDirect3DRMObject
, DIRECT3DRMOBJECT
);
49 WIN_TYPES(IDirect3DRMObject2
, DIRECT3DRMOBJECT2
);
50 WIN_TYPES(IDirect3DRMDevice
, DIRECT3DRMDEVICE
);
51 WIN_TYPES(IDirect3DRMDevice2
, DIRECT3DRMDEVICE2
);
52 WIN_TYPES(IDirect3DRMDevice3
, DIRECT3DRMDEVICE3
);
53 WIN_TYPES(IDirect3DRMViewport
, DIRECT3DRMVIEWPORT
);
54 WIN_TYPES(IDirect3DRMViewport2
, DIRECT3DRMVIEWPORT2
);
55 WIN_TYPES(IDirect3DRMFrame
, DIRECT3DRMFRAME
);
56 WIN_TYPES(IDirect3DRMFrame2
, DIRECT3DRMFRAME2
);
57 WIN_TYPES(IDirect3DRMFrame3
, DIRECT3DRMFRAME3
);
58 WIN_TYPES(IDirect3DRMVisual
, DIRECT3DRMVISUAL
);
59 WIN_TYPES(IDirect3DRMMesh
, DIRECT3DRMMESH
);
60 WIN_TYPES(IDirect3DRMMeshBuilder
, DIRECT3DRMMESHBUILDER
);
61 WIN_TYPES(IDirect3DRMMeshBuilder2
, DIRECT3DRMMESHBUILDER2
);
62 WIN_TYPES(IDirect3DRMMeshBuilder3
, DIRECT3DRMMESHBUILDER3
);
63 WIN_TYPES(IDirect3DRMFace
, DIRECT3DRMFACE
);
64 WIN_TYPES(IDirect3DRMFace2
, DIRECT3DRMFACE2
);
65 WIN_TYPES(IDirect3DRMLight
, DIRECT3DRMLIGHT
);
66 WIN_TYPES(IDirect3DRMTexture
, DIRECT3DRMTEXTURE
);
67 WIN_TYPES(IDirect3DRMTexture2
, DIRECT3DRMTEXTURE2
);
68 WIN_TYPES(IDirect3DRMTexture3
, DIRECT3DRMTEXTURE3
);
69 WIN_TYPES(IDirect3DRMWrap
, DIRECT3DRMWRAP
);
70 WIN_TYPES(IDirect3DRMMaterial
, DIRECT3DRMMATERIAL
);
71 WIN_TYPES(IDirect3DRMMaterial2
, DIRECT3DRMMATERIAL2
);
72 WIN_TYPES(IDirect3DRMInterpolator
, DIRECT3DRMINTERPOLATOR
);
73 WIN_TYPES(IDirect3DRMAnimation
, DIRECT3DRMANIMATION
);
74 WIN_TYPES(IDirect3DRMAnimation2
, DIRECT3DRMANIMATION2
);
75 WIN_TYPES(IDirect3DRMAnimationSet
, DIRECT3DRMANIMATIONSET
);
76 WIN_TYPES(IDirect3DRMAnimationSet2
, DIRECT3DRMANIMATIONSET2
);
77 WIN_TYPES(IDirect3DRMUserVisual
, DIRECT3DRMUSERVISUAL
);
78 WIN_TYPES(IDirect3DRMShadow
, DIRECT3DRMSHADOW
);
79 WIN_TYPES(IDirect3DRMShadow2
, DIRECT3DRMSHADOW2
);
80 WIN_TYPES(IDirect3DRMArray
, DIRECT3DRMARRAY
);
81 WIN_TYPES(IDirect3DRMObjectArray
, DIRECT3DRMOBJECTARRAY
);
82 WIN_TYPES(IDirect3DRMDeviceArray
, DIRECT3DRMDEVICEARRAY
);
83 WIN_TYPES(IDirect3DRMFaceArray
, DIRECT3DRMFACEARRAY
);
84 WIN_TYPES(IDirect3DRMViewportArray
, DIRECT3DRMVIEWPORTARRAY
);
85 WIN_TYPES(IDirect3DRMFrameArray
, DIRECT3DRMFRAMEARRAY
);
86 WIN_TYPES(IDirect3DRMAnimationArray
, DIRECT3DRMANIMATIONARRAY
);
87 WIN_TYPES(IDirect3DRMVisualArray
, DIRECT3DRMVISUALARRAY
);
88 WIN_TYPES(IDirect3DRMPickedArray
, DIRECT3DRMPICKEDARRAY
);
89 WIN_TYPES(IDirect3DRMPicked2Array
, DIRECT3DRMPICKED2ARRAY
);
90 WIN_TYPES(IDirect3DRMLightArray
, DIRECT3DRMLIGHTARRAY
);
91 WIN_TYPES(IDirect3DRMProgressiveMesh
, DIRECT3DRMPROGRESSIVEMESH
);
92 WIN_TYPES(IDirect3DRMClippedVisual
, DIRECT3DRMCLIPPEDVISUAL
);
95 * Direct3DRM Object classes
97 DEFINE_GUID(CLSID_CDirect3DRMDevice
, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
98 DEFINE_GUID(CLSID_CDirect3DRMViewport
, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
99 DEFINE_GUID(CLSID_CDirect3DRMFrame
, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
100 DEFINE_GUID(CLSID_CDirect3DRMMesh
, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
101 DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder
, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
102 DEFINE_GUID(CLSID_CDirect3DRMFace
, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
103 DEFINE_GUID(CLSID_CDirect3DRMLight
, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
104 DEFINE_GUID(CLSID_CDirect3DRMTexture
, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
105 DEFINE_GUID(CLSID_CDirect3DRMWrap
, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
106 DEFINE_GUID(CLSID_CDirect3DRMMaterial
, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
107 DEFINE_GUID(CLSID_CDirect3DRMAnimation
, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
108 DEFINE_GUID(CLSID_CDirect3DRMAnimationSet
, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
109 DEFINE_GUID(CLSID_CDirect3DRMUserVisual
, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
110 DEFINE_GUID(CLSID_CDirect3DRMShadow
, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
111 DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator
,
112 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
113 DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator
,
114 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
115 DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator
,
116 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
117 DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator
,
118 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
119 DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator
,
120 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
121 DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator
,
122 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
123 DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh
, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
124 DEFINE_GUID(CLSID_CDirect3DRMClippedVisual
, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
128 * Direct3DRM Object interfaces
130 DEFINE_GUID(IID_IDirect3DRMObject
, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
131 DEFINE_GUID(IID_IDirect3DRMObject2
, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
132 DEFINE_GUID(IID_IDirect3DRMDevice
, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
133 DEFINE_GUID(IID_IDirect3DRMDevice2
, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
134 DEFINE_GUID(IID_IDirect3DRMDevice3
, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
135 DEFINE_GUID(IID_IDirect3DRMViewport
, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
136 DEFINE_GUID(IID_IDirect3DRMViewport2
, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
137 DEFINE_GUID(IID_IDirect3DRMFrame
, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
138 DEFINE_GUID(IID_IDirect3DRMFrame2
, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x0, 0x0, 0xc0, 0x29, 0x1a, 0xc3);
139 DEFINE_GUID(IID_IDirect3DRMFrame3
, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
140 DEFINE_GUID(IID_IDirect3DRMVisual
, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
141 DEFINE_GUID(IID_IDirect3DRMMesh
, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
142 DEFINE_GUID(IID_IDirect3DRMMeshBuilder
, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
143 DEFINE_GUID(IID_IDirect3DRMMeshBuilder2
, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
144 DEFINE_GUID(IID_IDirect3DRMMeshBuilder3
, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
145 DEFINE_GUID(IID_IDirect3DRMFace
, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
146 DEFINE_GUID(IID_IDirect3DRMFace2
, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
147 DEFINE_GUID(IID_IDirect3DRMLight
, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
148 DEFINE_GUID(IID_IDirect3DRMTexture
, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
149 DEFINE_GUID(IID_IDirect3DRMTexture2
, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b);
150 DEFINE_GUID(IID_IDirect3DRMTexture3
, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
151 DEFINE_GUID(IID_IDirect3DRMWrap
, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
152 DEFINE_GUID(IID_IDirect3DRMMaterial
, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
153 DEFINE_GUID(IID_IDirect3DRMMaterial2
, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
154 DEFINE_GUID(IID_IDirect3DRMAnimation
, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
155 DEFINE_GUID(IID_IDirect3DRMAnimation2
, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
156 DEFINE_GUID(IID_IDirect3DRMAnimationSet
, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
157 DEFINE_GUID(IID_IDirect3DRMAnimationSet2
, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
158 DEFINE_GUID(IID_IDirect3DRMObjectArray
, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
159 DEFINE_GUID(IID_IDirect3DRMDeviceArray
, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
160 DEFINE_GUID(IID_IDirect3DRMViewportArray
, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
161 DEFINE_GUID(IID_IDirect3DRMFrameArray
, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
162 DEFINE_GUID(IID_IDirect3DRMVisualArray
, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
163 DEFINE_GUID(IID_IDirect3DRMLightArray
, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
164 DEFINE_GUID(IID_IDirect3DRMPickedArray
, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
165 DEFINE_GUID(IID_IDirect3DRMFaceArray
, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
166 DEFINE_GUID(IID_IDirect3DRMAnimationArray
,
167 0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x0, 0x60, 0x8, 0x3e, 0x45, 0xf3);
168 DEFINE_GUID(IID_IDirect3DRMUserVisual
, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
169 DEFINE_GUID(IID_IDirect3DRMShadow
, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
170 DEFINE_GUID(IID_IDirect3DRMShadow2
, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0xb, 0x0, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
171 DEFINE_GUID(IID_IDirect3DRMInterpolator
, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
172 DEFINE_GUID(IID_IDirect3DRMProgressiveMesh
, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
173 DEFINE_GUID(IID_IDirect3DRMPicked2Array
, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
174 DEFINE_GUID(IID_IDirect3DRMClippedVisual
, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
176 typedef void (__cdecl
*D3DRMOBJECTCALLBACK
)(LPDIRECT3DRMOBJECT obj
, LPVOID arg
);
177 typedef void (__cdecl
*D3DRMFRAMEMOVECALLBACK
)(LPDIRECT3DRMFRAME obj
, LPVOID arg
, D3DVALUE delta
);
178 typedef void (__cdecl
*D3DRMFRAME3MOVECALLBACK
)(LPDIRECT3DRMFRAME3 obj
, LPVOID arg
, D3DVALUE delta
);
179 typedef void (__cdecl
*D3DRMUPDATECALLBACK
)(LPDIRECT3DRMDEVICE obj
, LPVOID arg
, int, LPD3DRECT
);
180 typedef void (__cdecl
*D3DRMDEVICE3UPDATECALLBACK
)(LPDIRECT3DRMDEVICE3 obj
, LPVOID arg
, int, LPD3DRECT
);
181 typedef int (__cdecl
*D3DRMUSERVISUALCALLBACK
)
182 ( LPDIRECT3DRMUSERVISUAL obj
, LPVOID arg
, D3DRMUSERVISUALREASON reason
,
183 LPDIRECT3DRMDEVICE dev
, LPDIRECT3DRMVIEWPORT view
185 typedef HRESULT (__cdecl
*D3DRMLOADTEXTURECALLBACK
)
186 (char *tex_name
, void *arg
, LPDIRECT3DRMTEXTURE
*);
187 typedef HRESULT (__cdecl
*D3DRMLOADTEXTURE3CALLBACK
)
188 (char *tex_name
, void *arg
, LPDIRECT3DRMTEXTURE3
*);
189 typedef void (__cdecl
*D3DRMLOADCALLBACK
)
190 (LPDIRECT3DRMOBJECT object
, REFIID objectguid
, LPVOID arg
);
192 typedef HRESULT (__cdecl
*D3DRMDOWNSAMPLECALLBACK
)
193 (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture
, LPVOID pArg
,
194 LPDIRECTDRAWSURFACE pDDSSrc
, LPDIRECTDRAWSURFACE pDDSDst
);
195 typedef HRESULT (__cdecl
*D3DRMVALIDATIONCALLBACK
)
196 (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture
, LPVOID pArg
,
197 DWORD dwFlags
, DWORD dwcRects
, LPRECT pRects
);
200 typedef struct _D3DRMPICKDESC
206 } D3DRMPICKDESC
, *LPD3DRMPICKDESC
;
208 typedef struct _D3DRMPICKDESC2
212 D3DVECTOR dvPosition
;
218 } D3DRMPICKDESC2
, *LPD3DRMPICKDESC2
;
221 #define INTERFACE IDirect3DRMObject
226 DECLARE_INTERFACE_(IDirect3DRMObject
, IUnknown
)
228 IUNKNOWN_METHODS(PURE
);
229 IDIRECT3DRMOBJECT_METHODS(PURE
);
233 #define INTERFACE IDirect3DRMObject2
235 DECLARE_INTERFACE_(IDirect3DRMObject2
, IUnknown
)
237 IUNKNOWN_METHODS(PURE
);
240 * IDirect3DRMObject2 methods
242 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK lpFunc
, LPVOID pvArg
) PURE
;
243 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
; \
244 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK lpFunc
, LPVOID pvArg
) PURE
; \
245 STDMETHOD(GetClientData
)(THIS_ DWORD dwID
, LPVOID
* lplpvData
) PURE
;
246 STDMETHOD(GetDirect3DRM
)(THIS_ LPDIRECT3DRM
* lplpDirect3DRM
) PURE
;
247 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
248 STDMETHOD(SetClientData
)(THIS_ DWORD dwID
, LPVOID lpvData
, DWORD dwFlags
) PURE
;
249 STDMETHOD(SetName
)(THIS_ LPCSTR lpName
) PURE
;
250 STDMETHOD(GetAge
)(THIS_ DWORD dwFlags
, LPDWORD pdwAge
) PURE
;
254 #define INTERFACE IDirect3DRMVisual
256 DECLARE_INTERFACE_(IDirect3DRMVisual
, IDirect3DRMObject
)
258 IUNKNOWN_METHODS(PURE
);
259 IDIRECT3DRMOBJECT_METHODS(PURE
);
263 #define INTERFACE IDirect3DRMDevice
265 DECLARE_INTERFACE_(IDirect3DRMDevice
, IDirect3DRMObject
)
267 IUNKNOWN_METHODS(PURE
);
268 IDIRECT3DRMOBJECT_METHODS(PURE
);
271 * IDirect3DRMDevice methods
273 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
274 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D lpD3D
, LPDIRECT3DDEVICE lpD3DDev
) PURE
;
275 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper
, LPGUID lpGUID
, int width
, int height
) PURE
;
277 STDMETHOD(Update
)(THIS
) PURE
;
278 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
279 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
280 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
281 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
283 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
284 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
285 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
286 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
288 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
290 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
291 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
292 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
293 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
294 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
295 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
296 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
297 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
298 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
299 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
303 #define INTERFACE IDirect3DRMDevice2
305 DECLARE_INTERFACE_(IDirect3DRMDevice2
, IDirect3DRMDevice
)
307 IUNKNOWN_METHODS(PURE
);
308 IDIRECT3DRMOBJECT_METHODS(PURE
);
311 * IDirect3DRMDevice methods
313 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
314 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D lpD3D
, LPDIRECT3DDEVICE lpD3DDev
) PURE
;
315 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper
, LPGUID lpGUID
, int width
, int height
) PURE
;
317 STDMETHOD(Update
)(THIS
) PURE
;
318 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
319 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
320 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
321 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
323 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
324 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
325 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
326 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
328 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
330 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
331 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
332 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
333 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
334 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
335 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
336 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
337 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
338 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
339 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
342 * IDirect3DRMDevice2 methods
344 STDMETHOD(InitFromD3D2
)(THIS_ LPDIRECT3D2 lpD3D
, LPDIRECT3DDEVICE2 lpD3DDev
) PURE
;
345 STDMETHOD(InitFromSurface
)(THIS_ LPGUID lpGUID
, LPDIRECTDRAW lpDD
, LPDIRECTDRAWSURFACE lpDDSBack
) PURE
;
346 STDMETHOD(SetRenderMode
)(THIS_ DWORD dwFlags
) PURE
;
347 STDMETHOD_(DWORD
, GetRenderMode
)(THIS
) PURE
;
348 STDMETHOD(GetDirect3DDevice2
)(THIS_ LPDIRECT3DDEVICE2
*) PURE
;
352 #define INTERFACE IDirect3DRMDevice3
354 DECLARE_INTERFACE_(IDirect3DRMDevice3
, IDirect3DRMObject
)
356 IUNKNOWN_METHODS(PURE
);
357 IDIRECT3DRMOBJECT_METHODS(PURE
);
360 * IDirect3DRMDevice methods
362 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
363 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D lpD3D
, LPDIRECT3DDEVICE lpD3DDev
) PURE
;
364 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper
, LPGUID lpGUID
, int width
, int height
) PURE
;
366 STDMETHOD(Update
)(THIS
) PURE
;
367 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMDEVICE3UPDATECALLBACK
, LPVOID arg
) PURE
;
368 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMDEVICE3UPDATECALLBACK
, LPVOID arg
) PURE
;
369 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
370 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
372 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
373 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
374 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
375 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
377 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
379 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
380 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
381 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
382 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
383 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
384 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
385 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
386 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
387 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
388 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
391 * IDirect3DRMDevice2 methods
393 STDMETHOD(InitFromD3D2
)(THIS_ LPDIRECT3D2 lpD3D
, LPDIRECT3DDEVICE2 lpD3DDev
) PURE
;
394 STDMETHOD(InitFromSurface
)(THIS_ LPGUID lpGUID
, LPDIRECTDRAW lpDD
, LPDIRECTDRAWSURFACE lpDDSBack
, DWORD dwFlags
) PURE
;
395 STDMETHOD(SetRenderMode
)(THIS_ DWORD dwFlags
) PURE
;
396 STDMETHOD_(DWORD
, GetRenderMode
)(THIS
) PURE
;
397 STDMETHOD(GetDirect3DDevice2
)(THIS_ LPDIRECT3DDEVICE2
*) PURE
;
400 * IDirect3DRMDevice3 methods
402 STDMETHOD(FindPreferredTextureFormat
)(THIS_ DWORD dwBitDepths
, DWORD dwFlags
, LPDDPIXELFORMAT lpDDPF
) PURE
;
403 STDMETHOD(RenderStateChange
)(THIS_ D3DRENDERSTATETYPE drsType
, DWORD dwVal
, DWORD dwFlags
) PURE
;
404 STDMETHOD(LightStateChange
)(THIS_ D3DLIGHTSTATETYPE drsType
, DWORD dwVal
, DWORD dwFlags
) PURE
;
405 STDMETHOD(GetStateChangeOptions
)(THIS_ DWORD dwStateClass
, DWORD dwStateNum
, LPDWORD pdwFlags
) PURE
;
406 STDMETHOD(SetStateChangeOptions
)(THIS_ DWORD dwStateClass
, DWORD dwStateNum
, DWORD dwFlags
) PURE
;
411 #define INTERFACE IDirect3DRMViewport
413 DECLARE_INTERFACE_(IDirect3DRMViewport
, IDirect3DRMObject
)
415 IUNKNOWN_METHODS(PURE
);
416 IDIRECT3DRMOBJECT_METHODS(PURE
);
419 * IDirect3DRMViewport methods
422 ( THIS_ LPDIRECT3DRMDEVICE dev
, LPDIRECT3DRMFRAME camera
,
423 DWORD xpos
, DWORD ypos
, DWORD width
, DWORD height
425 STDMETHOD(Clear
)(THIS
) PURE
;
426 STDMETHOD(Render
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
428 STDMETHOD(SetFront
)(THIS_ D3DVALUE
) PURE
;
429 STDMETHOD(SetBack
)(THIS_ D3DVALUE
) PURE
;
430 STDMETHOD(SetField
)(THIS_ D3DVALUE
) PURE
;
431 STDMETHOD(SetUniformScaling
)(THIS_ BOOL
) PURE
;
432 STDMETHOD(SetCamera
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
433 STDMETHOD(SetProjection
)(THIS_ D3DRMPROJECTIONTYPE
) PURE
;
434 STDMETHOD(Transform
)(THIS_ D3DRMVECTOR4D
*d
, D3DVECTOR
*s
) PURE
;
435 STDMETHOD(InverseTransform
)(THIS_ D3DVECTOR
*d
, D3DRMVECTOR4D
*s
) PURE
;
436 STDMETHOD(Configure
)(THIS_ LONG x
, LONG y
, DWORD width
, DWORD height
) PURE
;
437 STDMETHOD(ForceUpdate
)(THIS_ DWORD x1
, DWORD y1
, DWORD x2
, DWORD y2
) PURE
;
438 STDMETHOD(SetPlane
)(THIS_ D3DVALUE left
, D3DVALUE right
, D3DVALUE bottom
, D3DVALUE top
) PURE
;
440 STDMETHOD(GetCamera
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
441 STDMETHOD(GetDevice
)(THIS_ LPDIRECT3DRMDEVICE
*) PURE
;
442 STDMETHOD(GetPlane
)(THIS_ D3DVALUE
*left
, D3DVALUE
*right
, D3DVALUE
*bottom
, D3DVALUE
*top
) PURE
;
443 STDMETHOD(Pick
)(THIS_ LONG x
, LONG y
, LPDIRECT3DRMPICKEDARRAY
*return_visuals
) PURE
;
445 STDMETHOD_(BOOL
, GetUniformScaling
)(THIS
) PURE
;
446 STDMETHOD_(LONG
, GetX
)(THIS
) PURE
;
447 STDMETHOD_(LONG
, GetY
)(THIS
) PURE
;
448 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
449 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
450 STDMETHOD_(D3DVALUE
, GetField
)(THIS
) PURE
;
451 STDMETHOD_(D3DVALUE
, GetBack
)(THIS
) PURE
;
452 STDMETHOD_(D3DVALUE
, GetFront
)(THIS
) PURE
;
453 STDMETHOD_(D3DRMPROJECTIONTYPE
, GetProjection
)(THIS
) PURE
;
454 STDMETHOD(GetDirect3DViewport
)(THIS_ LPDIRECT3DVIEWPORT
*) PURE
;
458 #define INTERFACE IDirect3DRMViewport2
459 DECLARE_INTERFACE_(IDirect3DRMViewport2
, IDirect3DRMObject
)
461 IUNKNOWN_METHODS(PURE
);
462 IDIRECT3DRMOBJECT_METHODS(PURE
);
465 * IDirect3DRMViewport2 methods
468 ( THIS_ LPDIRECT3DRMDEVICE3 dev
, LPDIRECT3DRMFRAME3 camera
,
469 DWORD xpos
, DWORD ypos
, DWORD width
, DWORD height
471 STDMETHOD(Clear
)(THIS_ DWORD dwFlags
) PURE
;
472 STDMETHOD(Render
)(THIS_ LPDIRECT3DRMFRAME3
) PURE
;
474 STDMETHOD(SetFront
)(THIS_ D3DVALUE
) PURE
;
475 STDMETHOD(SetBack
)(THIS_ D3DVALUE
) PURE
;
476 STDMETHOD(SetField
)(THIS_ D3DVALUE
) PURE
;
477 STDMETHOD(SetUniformScaling
)(THIS_ BOOL
) PURE
;
478 STDMETHOD(SetCamera
)(THIS_ LPDIRECT3DRMFRAME3
) PURE
;
479 STDMETHOD(SetProjection
)(THIS_ D3DRMPROJECTIONTYPE
) PURE
;
480 STDMETHOD(Transform
)(THIS_ D3DRMVECTOR4D
*d
, D3DVECTOR
*s
) PURE
;
481 STDMETHOD(InverseTransform
)(THIS_ D3DVECTOR
*d
, D3DRMVECTOR4D
*s
) PURE
;
482 STDMETHOD(Configure
)(THIS_ LONG x
, LONG y
, DWORD width
, DWORD height
) PURE
;
483 STDMETHOD(ForceUpdate
)(THIS_ DWORD x1
, DWORD y1
, DWORD x2
, DWORD y2
) PURE
;
484 STDMETHOD(SetPlane
)(THIS_ D3DVALUE left
, D3DVALUE right
, D3DVALUE bottom
, D3DVALUE top
) PURE
;
486 STDMETHOD(GetCamera
)(THIS_ LPDIRECT3DRMFRAME3
*) PURE
;
487 STDMETHOD(GetDevice
)(THIS_ LPDIRECT3DRMDEVICE3
*) PURE
;
488 STDMETHOD(GetPlane
)(THIS_ D3DVALUE
*left
, D3DVALUE
*right
, D3DVALUE
*bottom
, D3DVALUE
*top
) PURE
;
489 STDMETHOD(Pick
)(THIS_ LONG x
, LONG y
, LPDIRECT3DRMPICKEDARRAY
*return_visuals
) PURE
;
491 STDMETHOD_(BOOL
, GetUniformScaling
)(THIS
) PURE
;
492 STDMETHOD_(LONG
, GetX
)(THIS
) PURE
;
493 STDMETHOD_(LONG
, GetY
)(THIS
) PURE
;
494 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
495 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
496 STDMETHOD_(D3DVALUE
, GetField
)(THIS
) PURE
;
497 STDMETHOD_(D3DVALUE
, GetBack
)(THIS
) PURE
;
498 STDMETHOD_(D3DVALUE
, GetFront
)(THIS
) PURE
;
499 STDMETHOD_(D3DRMPROJECTIONTYPE
, GetProjection
)(THIS
) PURE
;
500 STDMETHOD(GetDirect3DViewport
)(THIS_ LPDIRECT3DVIEWPORT
*) PURE
;
501 STDMETHOD(TransformVectors
)(THIS_ DWORD dwNumVectors
,
502 LPD3DRMVECTOR4D lpDstVectors
,
503 LPD3DVECTOR lpSrcVectors
) PURE
;
504 STDMETHOD(InverseTransformVectors
)(THIS_ DWORD dwNumVectors
,
505 LPD3DVECTOR lpDstVectors
,
506 LPD3DRMVECTOR4D lpSrcVectors
) PURE
;
510 #define INTERFACE IDirect3DRMFrame
512 DECLARE_INTERFACE_(IDirect3DRMFrame
, IDirect3DRMVisual
)
514 IUNKNOWN_METHODS(PURE
);
515 IDIRECT3DRMOBJECT_METHODS(PURE
);
518 * IDirect3DRMFrame methods
520 STDMETHOD(AddChild
)(THIS_ LPDIRECT3DRMFRAME child
) PURE
;
521 STDMETHOD(AddLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
522 STDMETHOD(AddMoveCallback
)(THIS_ D3DRMFRAMEMOVECALLBACK
, VOID
*arg
) PURE
;
523 STDMETHOD(AddTransform
)(THIS_ D3DRMCOMBINETYPE
, D3DRMMATRIX4D
) PURE
;
524 STDMETHOD(AddTranslation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
525 STDMETHOD(AddScale
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
526 STDMETHOD(AddRotation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
527 STDMETHOD(AddVisual
)(THIS_ LPDIRECT3DRMVISUAL
) PURE
;
528 STDMETHOD(GetChildren
)(THIS_ LPDIRECT3DRMFRAMEARRAY
*children
) PURE
;
529 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
530 STDMETHOD(GetLights
)(THIS_ LPDIRECT3DRMLIGHTARRAY
*lights
) PURE
;
531 STDMETHOD_(D3DRMMATERIALMODE
, GetMaterialMode
)(THIS
) PURE
;
532 STDMETHOD(GetParent
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
533 STDMETHOD(GetPosition
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR return_position
) PURE
;
534 STDMETHOD(GetRotation
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR axis
, LPD3DVALUE return_theta
) PURE
;
535 STDMETHOD(GetScene
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
536 STDMETHOD_(D3DRMSORTMODE
, GetSortMode
)(THIS
) PURE
;
537 STDMETHOD(GetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
*) PURE
;
538 STDMETHOD(GetTransform
)(THIS_ D3DRMMATRIX4D return_matrix
) PURE
;
539 STDMETHOD(GetVelocity
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR return_velocity
, BOOL with_rotation
) PURE
;
540 STDMETHOD(GetOrientation
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR dir
, LPD3DVECTOR up
) PURE
;
541 STDMETHOD(GetVisuals
)(THIS_ LPDIRECT3DRMVISUALARRAY
*visuals
) PURE
;
542 STDMETHOD(GetTextureTopology
)(THIS_ BOOL
*wrap_u
, BOOL
*wrap_v
) PURE
;
543 STDMETHOD(InverseTransform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
544 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURECALLBACK
, LPVOID lpArg
)PURE
;
545 STDMETHOD(LookAt
)(THIS_ LPDIRECT3DRMFRAME target
, LPDIRECT3DRMFRAME reference
, D3DRMFRAMECONSTRAINT
) PURE
;
546 STDMETHOD(Move
)(THIS_ D3DVALUE delta
) PURE
;
547 STDMETHOD(DeleteChild
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
548 STDMETHOD(DeleteLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
549 STDMETHOD(DeleteMoveCallback
)(THIS_ D3DRMFRAMEMOVECALLBACK
, VOID
*arg
) PURE
;
550 STDMETHOD(DeleteVisual
)(THIS_ LPDIRECT3DRMVISUAL
) PURE
;
551 STDMETHOD_(D3DCOLOR
, GetSceneBackground
)(THIS
) PURE
;
552 STDMETHOD(GetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
*) PURE
;
553 STDMETHOD_(D3DCOLOR
, GetSceneFogColor
)(THIS
) PURE
;
554 STDMETHOD_(BOOL
, GetSceneFogEnable
)(THIS
) PURE
;
555 STDMETHOD_(D3DRMFOGMODE
, GetSceneFogMode
)(THIS
) PURE
;
556 STDMETHOD(GetSceneFogParams
)(THIS_ D3DVALUE
*return_start
, D3DVALUE
*return_end
, D3DVALUE
*return_density
) PURE
;
557 STDMETHOD(SetSceneBackground
)(THIS_ D3DCOLOR
) PURE
;
558 STDMETHOD(SetSceneBackgroundRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
559 STDMETHOD(SetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
) PURE
;
560 STDMETHOD(SetSceneBackgroundImage
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
561 STDMETHOD(SetSceneFogEnable
)(THIS_ BOOL
) PURE
;
562 STDMETHOD(SetSceneFogColor
)(THIS_ D3DCOLOR
) PURE
;
563 STDMETHOD(SetSceneFogMode
)(THIS_ D3DRMFOGMODE
) PURE
;
564 STDMETHOD(SetSceneFogParams
)(THIS_ D3DVALUE start
, D3DVALUE end
, D3DVALUE density
) PURE
;
565 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
566 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
567 STDMETHOD_(D3DRMZBUFFERMODE
, GetZbufferMode
)(THIS
) PURE
;
568 STDMETHOD(SetMaterialMode
)(THIS_ D3DRMMATERIALMODE
) PURE
;
569 STDMETHOD(SetOrientation
)
570 ( THIS_ LPDIRECT3DRMFRAME reference
,
571 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
572 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
574 STDMETHOD(SetPosition
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
575 STDMETHOD(SetRotation
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
576 STDMETHOD(SetSortMode
)(THIS_ D3DRMSORTMODE
) PURE
;
577 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
578 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
579 STDMETHOD(SetVelocity
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, BOOL with_rotation
) PURE
;
580 STDMETHOD(SetZbufferMode
)(THIS_ D3DRMZBUFFERMODE
) PURE
;
581 STDMETHOD(Transform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
585 #define INTERFACE IDirect3DRMFrame2
587 DECLARE_INTERFACE_(IDirect3DRMFrame2
, IDirect3DRMFrame
)
589 IUNKNOWN_METHODS(PURE
);
590 IDIRECT3DRMOBJECT_METHODS(PURE
);
593 * IDirect3DRMFrame methods
595 STDMETHOD(AddChild
)(THIS_ LPDIRECT3DRMFRAME child
) PURE
;
596 STDMETHOD(AddLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
597 STDMETHOD(AddMoveCallback
)(THIS_ D3DRMFRAMEMOVECALLBACK
, VOID
*arg
) PURE
;
598 STDMETHOD(AddTransform
)(THIS_ D3DRMCOMBINETYPE
, D3DRMMATRIX4D
) PURE
;
599 STDMETHOD(AddTranslation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
600 STDMETHOD(AddScale
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
601 STDMETHOD(AddRotation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
602 STDMETHOD(AddVisual
)(THIS_ LPDIRECT3DRMVISUAL
) PURE
;
603 STDMETHOD(GetChildren
)(THIS_ LPDIRECT3DRMFRAMEARRAY
*children
) PURE
;
604 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
605 STDMETHOD(GetLights
)(THIS_ LPDIRECT3DRMLIGHTARRAY
*lights
) PURE
;
606 STDMETHOD_(D3DRMMATERIALMODE
, GetMaterialMode
)(THIS
) PURE
;
607 STDMETHOD(GetParent
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
608 STDMETHOD(GetPosition
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR return_position
) PURE
;
609 STDMETHOD(GetRotation
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR axis
, LPD3DVALUE return_theta
) PURE
;
610 STDMETHOD(GetScene
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
611 STDMETHOD_(D3DRMSORTMODE
, GetSortMode
)(THIS
) PURE
;
612 STDMETHOD(GetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
*) PURE
;
613 STDMETHOD(GetTransform
)(THIS_ D3DRMMATRIX4D return_matrix
) PURE
;
614 STDMETHOD(GetVelocity
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR return_velocity
, BOOL with_rotation
) PURE
;
615 STDMETHOD(GetOrientation
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DVECTOR dir
, LPD3DVECTOR up
) PURE
;
616 STDMETHOD(GetVisuals
)(THIS_ LPDIRECT3DRMVISUALARRAY
*visuals
) PURE
;
617 STDMETHOD(GetTextureTopology
)(THIS_ BOOL
*wrap_u
, BOOL
*wrap_v
) PURE
;
618 STDMETHOD(InverseTransform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
619 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURECALLBACK
, LPVOID lpArg
)PURE
;
620 STDMETHOD(LookAt
)(THIS_ LPDIRECT3DRMFRAME target
, LPDIRECT3DRMFRAME reference
, D3DRMFRAMECONSTRAINT
) PURE
;
621 STDMETHOD(Move
)(THIS_ D3DVALUE delta
) PURE
;
622 STDMETHOD(DeleteChild
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
623 STDMETHOD(DeleteLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
624 STDMETHOD(DeleteMoveCallback
)(THIS_ D3DRMFRAMEMOVECALLBACK
, VOID
*arg
) PURE
;
625 STDMETHOD(DeleteVisual
)(THIS_ LPDIRECT3DRMVISUAL
) PURE
;
626 STDMETHOD_(D3DCOLOR
, GetSceneBackground
)(THIS
) PURE
;
627 STDMETHOD(GetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
*) PURE
;
628 STDMETHOD_(D3DCOLOR
, GetSceneFogColor
)(THIS
) PURE
;
629 STDMETHOD_(BOOL
, GetSceneFogEnable
)(THIS
) PURE
;
630 STDMETHOD_(D3DRMFOGMODE
, GetSceneFogMode
)(THIS
) PURE
;
631 STDMETHOD(GetSceneFogParams
)(THIS_ D3DVALUE
*return_start
, D3DVALUE
*return_end
, D3DVALUE
*return_density
) PURE
;
632 STDMETHOD(SetSceneBackground
)(THIS_ D3DCOLOR
) PURE
;
633 STDMETHOD(SetSceneBackgroundRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
634 STDMETHOD(SetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
) PURE
;
635 STDMETHOD(SetSceneBackgroundImage
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
636 STDMETHOD(SetSceneFogEnable
)(THIS_ BOOL
) PURE
;
637 STDMETHOD(SetSceneFogColor
)(THIS_ D3DCOLOR
) PURE
;
638 STDMETHOD(SetSceneFogMode
)(THIS_ D3DRMFOGMODE
) PURE
;
639 STDMETHOD(SetSceneFogParams
)(THIS_ D3DVALUE start
, D3DVALUE end
, D3DVALUE density
) PURE
;
640 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
641 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
642 STDMETHOD_(D3DRMZBUFFERMODE
, GetZbufferMode
)(THIS
) PURE
;
643 STDMETHOD(SetMaterialMode
)(THIS_ D3DRMMATERIALMODE
) PURE
;
644 STDMETHOD(SetOrientation
)
645 ( THIS_ LPDIRECT3DRMFRAME reference
,
646 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
647 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
649 STDMETHOD(SetPosition
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
650 STDMETHOD(SetRotation
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
651 STDMETHOD(SetSortMode
)(THIS_ D3DRMSORTMODE
) PURE
;
652 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
653 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
654 STDMETHOD(SetVelocity
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, BOOL with_rotation
) PURE
;
655 STDMETHOD(SetZbufferMode
)(THIS_ D3DRMZBUFFERMODE
) PURE
;
656 STDMETHOD(Transform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
659 * IDirect3DRMFrame2 methods
661 STDMETHOD(AddMoveCallback2
)(THIS_ D3DRMFRAMEMOVECALLBACK
, VOID
*arg
, DWORD dwFlags
) PURE
;
662 STDMETHOD(GetBox
)(THIS_ LPD3DRMBOX
) PURE
;
663 STDMETHOD_(BOOL
, GetBoxEnable
)(THIS
) PURE
;
664 STDMETHOD(GetAxes
)(THIS_ LPD3DVECTOR dir
, LPD3DVECTOR up
);
665 STDMETHOD(GetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
*) PURE
;
666 STDMETHOD_(BOOL
, GetInheritAxes
)(THIS
);
667 STDMETHOD(GetHierarchyBox
)(THIS_ LPD3DRMBOX
) PURE
;
669 STDMETHOD(SetBox
)(THIS_ LPD3DRMBOX
) PURE
;
670 STDMETHOD(SetBoxEnable
)(THIS_ BOOL
) PURE
;
671 STDMETHOD(SetAxes
)(THIS_ D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
672 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
);
673 STDMETHOD(SetInheritAxes
)(THIS_ BOOL inherit_from_parent
);
674 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
) PURE
;
675 STDMETHOD(SetQuaternion
)(THIS_ LPDIRECT3DRMFRAME reference
, D3DRMQUATERNION
*q
) PURE
;
677 STDMETHOD(RayPick
)(THIS_ LPDIRECT3DRMFRAME reference
, LPD3DRMRAY ray
, DWORD dwFlags
, LPDIRECT3DRMPICKED2ARRAY
*return_visuals
) PURE
;
678 STDMETHOD(Save
)(THIS_ LPCSTR filename
, D3DRMXOFFORMAT d3dFormat
,
679 D3DRMSAVEOPTIONS d3dSaveFlags
);
683 #define INTERFACE IDirect3DRMFrame3
685 DECLARE_INTERFACE_(IDirect3DRMFrame3
, IDirect3DRMVisual
)
687 IUNKNOWN_METHODS(PURE
);
688 IDIRECT3DRMOBJECT_METHODS(PURE
);
691 * IDirect3DRMFrame3 methods
693 STDMETHOD(AddChild
)(THIS_ LPDIRECT3DRMFRAME3 child
) PURE
;
694 STDMETHOD(AddLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
695 STDMETHOD(AddMoveCallback
)(THIS_ D3DRMFRAME3MOVECALLBACK
, VOID
*arg
, DWORD dwFlags
) PURE
;
696 STDMETHOD(AddTransform
)(THIS_ D3DRMCOMBINETYPE
, D3DRMMATRIX4D
) PURE
;
697 STDMETHOD(AddTranslation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
698 STDMETHOD(AddScale
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
699 STDMETHOD(AddRotation
)(THIS_ D3DRMCOMBINETYPE
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
700 STDMETHOD(AddVisual
)(THIS_ LPUNKNOWN
) PURE
;
701 STDMETHOD(GetChildren
)(THIS_ LPDIRECT3DRMFRAMEARRAY
*children
) PURE
;
702 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
703 STDMETHOD(GetLights
)(THIS_ LPDIRECT3DRMLIGHTARRAY
*lights
) PURE
;
704 STDMETHOD_(D3DRMMATERIALMODE
, GetMaterialMode
)(THIS
) PURE
;
705 STDMETHOD(GetParent
)(THIS_ LPDIRECT3DRMFRAME3
*) PURE
;
706 STDMETHOD(GetPosition
)(THIS_ LPDIRECT3DRMFRAME3 reference
, LPD3DVECTOR return_position
) PURE
;
707 STDMETHOD(GetRotation
)(THIS_ LPDIRECT3DRMFRAME3 reference
, LPD3DVECTOR axis
, LPD3DVALUE return_theta
) PURE
;
708 STDMETHOD(GetScene
)(THIS_ LPDIRECT3DRMFRAME3
*) PURE
;
709 STDMETHOD_(D3DRMSORTMODE
, GetSortMode
)(THIS
) PURE
;
710 STDMETHOD(GetTexture
)(THIS_ LPDIRECT3DRMTEXTURE3
*) PURE
;
711 STDMETHOD(GetTransform
)(THIS_ LPDIRECT3DRMFRAME3 reference
,
712 D3DRMMATRIX4D rmMatrix
) PURE
;
713 STDMETHOD(GetVelocity
)(THIS_ LPDIRECT3DRMFRAME3 reference
, LPD3DVECTOR return_velocity
, BOOL with_rotation
) PURE
;
714 STDMETHOD(GetOrientation
)(THIS_ LPDIRECT3DRMFRAME3 reference
, LPD3DVECTOR dir
, LPD3DVECTOR up
) PURE
;
715 STDMETHOD(GetVisuals
)(THIS_ LPDWORD lpdwCount
, LPUNKNOWN
*) PURE
;
716 STDMETHOD(InverseTransform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
717 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURE3CALLBACK
, LPVOID lpArg
)PURE
;
718 STDMETHOD(LookAt
)(THIS_ LPDIRECT3DRMFRAME3 target
, LPDIRECT3DRMFRAME3 reference
, D3DRMFRAMECONSTRAINT
) PURE
;
719 STDMETHOD(Move
)(THIS_ D3DVALUE delta
) PURE
;
720 STDMETHOD(DeleteChild
)(THIS_ LPDIRECT3DRMFRAME3
) PURE
;
721 STDMETHOD(DeleteLight
)(THIS_ LPDIRECT3DRMLIGHT
) PURE
;
722 STDMETHOD(DeleteMoveCallback
)(THIS_ D3DRMFRAME3MOVECALLBACK
, VOID
*arg
) PURE
;
723 STDMETHOD(DeleteVisual
)(THIS_ LPUNKNOWN
) PURE
;
724 STDMETHOD_(D3DCOLOR
, GetSceneBackground
)(THIS
) PURE
;
725 STDMETHOD(GetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
*) PURE
;
726 STDMETHOD_(D3DCOLOR
, GetSceneFogColor
)(THIS
) PURE
;
727 STDMETHOD_(BOOL
, GetSceneFogEnable
)(THIS
) PURE
;
728 STDMETHOD_(D3DRMFOGMODE
, GetSceneFogMode
)(THIS
) PURE
;
729 STDMETHOD(GetSceneFogParams
)(THIS_ D3DVALUE
*return_start
, D3DVALUE
*return_end
, D3DVALUE
*return_density
) PURE
;
730 STDMETHOD(SetSceneBackground
)(THIS_ D3DCOLOR
) PURE
;
731 STDMETHOD(SetSceneBackgroundRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
732 STDMETHOD(SetSceneBackgroundDepth
)(THIS_ LPDIRECTDRAWSURFACE
) PURE
;
733 STDMETHOD(SetSceneBackgroundImage
)(THIS_ LPDIRECT3DRMTEXTURE3
) PURE
;
734 STDMETHOD(SetSceneFogEnable
)(THIS_ BOOL
) PURE
;
735 STDMETHOD(SetSceneFogColor
)(THIS_ D3DCOLOR
) PURE
;
736 STDMETHOD(SetSceneFogMode
)(THIS_ D3DRMFOGMODE
) PURE
;
737 STDMETHOD(SetSceneFogParams
)(THIS_ D3DVALUE start
, D3DVALUE end
, D3DVALUE density
) PURE
;
738 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
739 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
740 STDMETHOD_(D3DRMZBUFFERMODE
, GetZbufferMode
)(THIS
) PURE
;
741 STDMETHOD(SetMaterialMode
)(THIS_ D3DRMMATERIALMODE
) PURE
;
742 STDMETHOD(SetOrientation
)
743 ( THIS_ LPDIRECT3DRMFRAME3 reference
,
744 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
745 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
747 STDMETHOD(SetPosition
)(THIS_ LPDIRECT3DRMFRAME3 reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
748 STDMETHOD(SetRotation
)(THIS_ LPDIRECT3DRMFRAME3 reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, D3DVALUE theta
) PURE
;
749 STDMETHOD(SetSortMode
)(THIS_ D3DRMSORTMODE
) PURE
;
750 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE3
) PURE
;
751 STDMETHOD(SetVelocity
)(THIS_ LPDIRECT3DRMFRAME3 reference
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
, BOOL with_rotation
) PURE
;
752 STDMETHOD(SetZbufferMode
)(THIS_ D3DRMZBUFFERMODE
) PURE
;
753 STDMETHOD(Transform
)(THIS_ D3DVECTOR
*d
, D3DVECTOR
*s
) PURE
;
754 STDMETHOD(GetBox
)(THIS_ LPD3DRMBOX
) PURE
;
755 STDMETHOD_(BOOL
, GetBoxEnable
)(THIS
) PURE
;
756 STDMETHOD(GetAxes
)(THIS_ LPD3DVECTOR dir
, LPD3DVECTOR up
);
757 STDMETHOD(GetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL2
*) PURE
;
758 STDMETHOD_(BOOL
, GetInheritAxes
)(THIS
);
759 STDMETHOD(GetHierarchyBox
)(THIS_ LPD3DRMBOX
) PURE
;
761 STDMETHOD(SetBox
)(THIS_ LPD3DRMBOX
) PURE
;
762 STDMETHOD(SetBoxEnable
)(THIS_ BOOL
) PURE
;
763 STDMETHOD(SetAxes
)(THIS_ D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
764 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
);
765 STDMETHOD(SetInheritAxes
)(THIS_ BOOL inherit_from_parent
);
766 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL2
) PURE
;
767 STDMETHOD(SetQuaternion
)(THIS_ LPDIRECT3DRMFRAME3 reference
, D3DRMQUATERNION
*q
) PURE
;
769 STDMETHOD(RayPick
)(THIS_ LPDIRECT3DRMFRAME3 reference
, LPD3DRMRAY ray
, DWORD dwFlags
, LPDIRECT3DRMPICKED2ARRAY
*return_visuals
) PURE
;
770 STDMETHOD(Save
)(THIS_ LPCSTR filename
, D3DRMXOFFORMAT d3dFormat
,
771 D3DRMSAVEOPTIONS d3dSaveFlags
);
772 STDMETHOD(TransformVectors
)(THIS_ LPDIRECT3DRMFRAME3 reference
,
774 LPD3DVECTOR lpDstVectors
,
775 LPD3DVECTOR lpSrcVectors
) PURE
;
776 STDMETHOD(InverseTransformVectors
)(THIS_ LPDIRECT3DRMFRAME3 reference
,
778 LPD3DVECTOR lpDstVectors
,
779 LPD3DVECTOR lpSrcVectors
) PURE
;
780 STDMETHOD(SetTraversalOptions
)(THIS_ DWORD dwFlags
) PURE
;
781 STDMETHOD(GetTraversalOptions
)(THIS_ LPDWORD lpdwFlags
) PURE
;
782 STDMETHOD(SetSceneFogMethod
)(THIS_ DWORD dwFlags
) PURE
;
783 STDMETHOD(GetSceneFogMethod
)(THIS_ LPDWORD lpdwFlags
) PURE
;
784 STDMETHOD(SetMaterialOverride
)(THIS_ LPD3DRMMATERIALOVERRIDE
) PURE
;
785 STDMETHOD(GetMaterialOverride
)(THIS_ LPD3DRMMATERIALOVERRIDE
) PURE
;
789 #define INTERFACE IDirect3DRMMesh
791 DECLARE_INTERFACE_(IDirect3DRMMesh
, IDirect3DRMVisual
)
793 IUNKNOWN_METHODS(PURE
);
794 IDIRECT3DRMOBJECT_METHODS(PURE
);
797 * IDirect3DRMMesh methods
799 STDMETHOD(Scale
)(THIS_ D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
800 STDMETHOD(Translate
)(THIS_ D3DVALUE tx
, D3DVALUE ty
, D3DVALUE tz
) PURE
;
801 STDMETHOD(GetBox
)(THIS_ D3DRMBOX
*) PURE
;
802 STDMETHOD(AddGroup
)(THIS_
unsigned vCount
, unsigned fCount
, unsigned vPerFace
, unsigned *fData
, D3DRMGROUPINDEX
*returnId
) PURE
;
803 STDMETHOD(SetVertices
)(THIS_ D3DRMGROUPINDEX id
, unsigned index
, unsigned count
, D3DRMVERTEX
*values
) PURE
;
804 STDMETHOD(SetGroupColor
)(THIS_ D3DRMGROUPINDEX id
, D3DCOLOR value
) PURE
;
805 STDMETHOD(SetGroupColorRGB
)(THIS_ D3DRMGROUPINDEX id
, D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
806 STDMETHOD(SetGroupMapping
)(THIS_ D3DRMGROUPINDEX id
, D3DRMMAPPING value
) PURE
;
807 STDMETHOD(SetGroupQuality
)(THIS_ D3DRMGROUPINDEX id
, D3DRMRENDERQUALITY value
) PURE
;
808 STDMETHOD(SetGroupMaterial
)(THIS_ D3DRMGROUPINDEX id
, LPDIRECT3DRMMATERIAL value
) PURE
;
809 STDMETHOD(SetGroupTexture
)(THIS_ D3DRMGROUPINDEX id
, LPDIRECT3DRMTEXTURE value
) PURE
;
811 STDMETHOD_(unsigned, GetGroupCount
)(THIS
) PURE
;
812 STDMETHOD(GetGroup
)(THIS_ D3DRMGROUPINDEX id
, unsigned *vCount
, unsigned *fCount
, unsigned *vPerFace
, DWORD
*fDataSize
, unsigned *fData
) PURE
;
813 STDMETHOD(GetVertices
)(THIS_ D3DRMGROUPINDEX id
, DWORD index
, DWORD count
, D3DRMVERTEX
*returnPtr
) PURE
;
814 STDMETHOD_(D3DCOLOR
, GetGroupColor
)(THIS_ D3DRMGROUPINDEX id
) PURE
;
815 STDMETHOD_(D3DRMMAPPING
, GetGroupMapping
)(THIS_ D3DRMGROUPINDEX id
) PURE
;
816 STDMETHOD_(D3DRMRENDERQUALITY
, GetGroupQuality
)(THIS_ D3DRMGROUPINDEX id
) PURE
;
817 STDMETHOD(GetGroupMaterial
)(THIS_ D3DRMGROUPINDEX id
, LPDIRECT3DRMMATERIAL
*returnPtr
) PURE
;
818 STDMETHOD(GetGroupTexture
)(THIS_ D3DRMGROUPINDEX id
, LPDIRECT3DRMTEXTURE
*returnPtr
) PURE
;
822 #define INTERFACE IDirect3DRMProgressiveMesh
824 DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh
, IDirect3DRMVisual
)
826 IUNKNOWN_METHODS(PURE
);
827 IDIRECT3DRMOBJECT_METHODS(PURE
);
830 * IDirect3DRMProgressiveMesh methods
832 STDMETHOD(Load
) (THIS_ LPVOID lpObjLocation
, LPVOID lpObjId
,
833 D3DRMLOADOPTIONS dloLoadflags
, D3DRMLOADTEXTURECALLBACK lpCallback
,
835 STDMETHOD(GetLoadStatus
) (THIS_ LPD3DRMPMESHLOADSTATUS lpStatus
) PURE
;
836 STDMETHOD(SetMinRenderDetail
) (THIS_ D3DVALUE d3dVal
) PURE
;
837 STDMETHOD(Abort
) (THIS_ DWORD dwFlags
) PURE
;
839 STDMETHOD(GetFaceDetail
) (THIS_ LPDWORD lpdwCount
) PURE
;
840 STDMETHOD(GetVertexDetail
) (THIS_ LPDWORD lpdwCount
) PURE
;
841 STDMETHOD(SetFaceDetail
) (THIS_ DWORD dwCount
) PURE
;
842 STDMETHOD(SetVertexDetail
) (THIS_ DWORD dwCount
) PURE
;
843 STDMETHOD(GetFaceDetailRange
) (THIS_ LPDWORD lpdwMin
, LPDWORD lpdwMax
) PURE
;
844 STDMETHOD(GetVertexDetailRange
) (THIS_ LPDWORD lpdwMin
, LPDWORD lpdwMax
) PURE
;
845 STDMETHOD(GetDetail
) (THIS_ D3DVALUE
*lpdvVal
) PURE
;
846 STDMETHOD(SetDetail
) (THIS_ D3DVALUE d3dVal
) PURE
;
848 STDMETHOD(RegisterEvents
) (THIS_ HANDLE hEvent
, DWORD dwFlags
, DWORD dwReserved
) PURE
;
849 STDMETHOD(CreateMesh
) (THIS_ LPDIRECT3DRMMESH
*lplpD3DRMMesh
) PURE
;
850 STDMETHOD(Duplicate
) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH
*lplpD3DRMPMesh
) PURE
;
851 STDMETHOD(GetBox
) (THIS_ LPD3DRMBOX lpBBox
) PURE
;
852 STDMETHOD(SetQuality
) (THIS_ D3DRMRENDERQUALITY
) PURE
;
853 STDMETHOD(GetQuality
) (THIS_ LPD3DRMRENDERQUALITY lpdwquality
) PURE
;
857 #define INTERFACE IDirect3DRMShadow
859 DECLARE_INTERFACE_(IDirect3DRMShadow
, IDirect3DRMVisual
)
861 IUNKNOWN_METHODS(PURE
);
862 IDIRECT3DRMOBJECT_METHODS(PURE
);
865 * IDirect3DRMShadow methods
868 ( THIS_ LPDIRECT3DRMVISUAL visual
, LPDIRECT3DRMLIGHT light
,
869 D3DVALUE px
, D3DVALUE py
, D3DVALUE pz
,
870 D3DVALUE nx
, D3DVALUE ny
, D3DVALUE nz
875 #define INTERFACE IDirect3DRMShadow2
877 DECLARE_INTERFACE_(IDirect3DRMShadow2
, IDirect3DRMVisual
)
879 IUNKNOWN_METHODS(PURE
);
880 IDIRECT3DRMOBJECT_METHODS(PURE
);
883 * IDirect3DRMShadow methods
886 ( THIS_ LPUNKNOWN pUNK
, LPDIRECT3DRMLIGHT light
,
887 D3DVALUE px
, D3DVALUE py
, D3DVALUE pz
,
888 D3DVALUE nx
, D3DVALUE ny
, D3DVALUE nz
892 * IDirect3DRMShadow2 methods
894 STDMETHOD(GetVisual
)(THIS_ LPDIRECT3DRMVISUAL
*) PURE
;
895 STDMETHOD(SetVisual
)(THIS_ LPUNKNOWN pUNK
, DWORD
) PURE
;
896 STDMETHOD(GetLight
)(THIS_ LPDIRECT3DRMLIGHT
*) PURE
;
897 STDMETHOD(SetLight
)(THIS_ LPDIRECT3DRMLIGHT
, DWORD
) PURE
;
898 STDMETHOD(GetPlane
)(THIS_ LPD3DVALUE px
, LPD3DVALUE py
, LPD3DVALUE pz
,
899 LPD3DVALUE nx
, LPD3DVALUE ny
, LPD3DVALUE nz
) PURE
;
900 STDMETHOD(SetPlane
)(THIS_ D3DVALUE px
, D3DVALUE py
, D3DVALUE pz
,
901 D3DVALUE nx
, D3DVALUE ny
, D3DVALUE nz
, DWORD
) PURE
;
902 STDMETHOD(GetOptions
)(THIS_ LPDWORD
) PURE
;
903 STDMETHOD(SetOptions
)(THIS_ DWORD
) PURE
;
907 #define INTERFACE IDirect3DRMFace
909 DECLARE_INTERFACE_(IDirect3DRMFace
, IDirect3DRMObject
)
911 IUNKNOWN_METHODS(PURE
);
912 IDIRECT3DRMOBJECT_METHODS(PURE
);
915 * IDirect3DRMFace methods
917 STDMETHOD(AddVertex
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
918 STDMETHOD(AddVertexAndNormalIndexed
)(THIS_ DWORD vertex
, DWORD normal
) PURE
;
919 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE
, D3DVALUE
, D3DVALUE
) PURE
;
920 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
921 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
922 STDMETHOD(SetTextureCoordinates
)(THIS_ DWORD vertex
, D3DVALUE u
, D3DVALUE v
) PURE
;
923 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
) PURE
;
924 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
926 STDMETHOD(GetVertex
)(THIS_ DWORD index
, D3DVECTOR
*vertex
, D3DVECTOR
*normal
) PURE
;
927 STDMETHOD(GetVertices
)(THIS_ DWORD
*vertex_count
, D3DVECTOR
*coords
, D3DVECTOR
*normals
);
928 STDMETHOD(GetTextureCoordinates
)(THIS_ DWORD vertex
, D3DVALUE
*u
, D3DVALUE
*v
) PURE
;
929 STDMETHOD(GetTextureTopology
)(THIS_ BOOL
*wrap_u
, BOOL
*wrap_v
) PURE
;
930 STDMETHOD(GetNormal
)(THIS_ D3DVECTOR
*) PURE
;
931 STDMETHOD(GetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
*) PURE
;
932 STDMETHOD(GetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
*) PURE
;
934 STDMETHOD_(int, GetVertexCount
)(THIS
) PURE
;
935 STDMETHOD_(int, GetVertexIndex
)(THIS_ DWORD which
) PURE
;
936 STDMETHOD_(int, GetTextureCoordinateIndex
)(THIS_ DWORD which
) PURE
;
937 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
941 #define INTERFACE IDirect3DRMFace2
943 DECLARE_INTERFACE_(IDirect3DRMFace2
, IDirect3DRMObject
)
945 IUNKNOWN_METHODS(PURE
);
946 IDIRECT3DRMOBJECT_METHODS(PURE
);
949 * IDirect3DRMFace methods
951 STDMETHOD(AddVertex
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
952 STDMETHOD(AddVertexAndNormalIndexed
)(THIS_ DWORD vertex
, DWORD normal
) PURE
;
953 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE
, D3DVALUE
, D3DVALUE
) PURE
;
954 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
955 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE3
) PURE
;
956 STDMETHOD(SetTextureCoordinates
)(THIS_ DWORD vertex
, D3DVALUE u
, D3DVALUE v
) PURE
;
957 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL2
) PURE
;
958 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
960 STDMETHOD(GetVertex
)(THIS_ DWORD index
, D3DVECTOR
*vertex
, D3DVECTOR
*normal
) PURE
;
961 STDMETHOD(GetVertices
)(THIS_ DWORD
*vertex_count
, D3DVECTOR
*coords
, D3DVECTOR
*normals
);
962 STDMETHOD(GetTextureCoordinates
)(THIS_ DWORD vertex
, D3DVALUE
*u
, D3DVALUE
*v
) PURE
;
963 STDMETHOD(GetTextureTopology
)(THIS_ BOOL
*wrap_u
, BOOL
*wrap_v
) PURE
;
964 STDMETHOD(GetNormal
)(THIS_ D3DVECTOR
*) PURE
;
965 STDMETHOD(GetTexture
)(THIS_ LPDIRECT3DRMTEXTURE3
*) PURE
;
966 STDMETHOD(GetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL2
*) PURE
;
968 STDMETHOD_(int, GetVertexCount
)(THIS
) PURE
;
969 STDMETHOD_(int, GetVertexIndex
)(THIS_ DWORD which
) PURE
;
970 STDMETHOD_(int, GetTextureCoordinateIndex
)(THIS_ DWORD which
) PURE
;
971 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
975 #define INTERFACE IDirect3DRMMeshBuilder
977 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder
, IDirect3DRMVisual
)
979 IUNKNOWN_METHODS(PURE
);
980 IDIRECT3DRMOBJECT_METHODS(PURE
);
983 * IDirect3DRMMeshBuilder methods
985 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURECALLBACK
, LPVOID lpArg
) PURE
;
986 STDMETHOD(Save
)(THIS_
const char *filename
, D3DRMXOFFORMAT
, D3DRMSAVEOPTIONS save
) PURE
;
987 STDMETHOD(Scale
)(THIS_ D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
988 STDMETHOD(Translate
)(THIS_ D3DVALUE tx
, D3DVALUE ty
, D3DVALUE tz
) PURE
;
989 STDMETHOD(SetColorSource
)(THIS_ D3DRMCOLORSOURCE
) PURE
;
990 STDMETHOD(GetBox
)(THIS_ D3DRMBOX
*) PURE
;
991 STDMETHOD(GenerateNormals
)(THIS
) PURE
;
992 STDMETHOD_(D3DRMCOLORSOURCE
, GetColorSource
)(THIS
) PURE
;
994 STDMETHOD(AddMesh
)(THIS_ LPDIRECT3DRMMESH
) PURE
;
995 STDMETHOD(AddMeshBuilder
)(THIS_ LPDIRECT3DRMMESHBUILDER
) PURE
;
996 STDMETHOD(AddFrame
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
997 STDMETHOD(AddFace
)(THIS_ LPDIRECT3DRMFACE
) PURE
;
999 ( THIS_ DWORD vcount
, D3DVECTOR
*vertices
, DWORD ncount
, D3DVECTOR
*normals
,
1000 DWORD
*data
, LPDIRECT3DRMFACEARRAY
*
1002 STDMETHOD(ReserveSpace
)(THIS_ DWORD vertex_Count
, DWORD normal_count
, DWORD face_count
) PURE
;
1003 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1004 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
1005 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
1006 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
) PURE
;
1007 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
1008 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
1009 STDMETHOD(SetPerspective
)(THIS_ BOOL
) PURE
;
1010 STDMETHOD(SetVertex
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1011 STDMETHOD(SetNormal
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1012 STDMETHOD(SetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE u
, D3DVALUE v
) PURE
;
1013 STDMETHOD(SetVertexColor
)(THIS_ DWORD index
, D3DCOLOR
) PURE
;
1014 STDMETHOD(SetVertexColorRGB
)(THIS_ DWORD index
, D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1016 STDMETHOD(GetFaces
)(THIS_ LPDIRECT3DRMFACEARRAY
*) PURE
;
1017 STDMETHOD(GetVertices
)
1018 ( THIS_ DWORD
*vcount
, D3DVECTOR
*vertices
, DWORD
*ncount
, D3DVECTOR
*normals
, DWORD
*face_data_size
, DWORD
*face_data
1020 STDMETHOD(GetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE
*u
, D3DVALUE
*v
) PURE
;
1022 STDMETHOD_(int, AddVertex
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1023 STDMETHOD_(int, AddNormal
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1024 STDMETHOD(CreateFace
)(THIS_ LPDIRECT3DRMFACE
*) PURE
;
1025 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
1026 STDMETHOD_(BOOL
, GetPerspective
)(THIS
) PURE
;
1027 STDMETHOD_(int, GetFaceCount
)(THIS
) PURE
;
1028 STDMETHOD_(int, GetVertexCount
)(THIS
) PURE
;
1029 STDMETHOD_(D3DCOLOR
, GetVertexColor
)(THIS_ DWORD index
) PURE
;
1031 STDMETHOD(CreateMesh
)(THIS_ LPDIRECT3DRMMESH
*) PURE
;
1035 #define INTERFACE IDirect3DRMMeshBuilder2
1037 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2
, IDirect3DRMMeshBuilder
)
1039 IUNKNOWN_METHODS(PURE
);
1040 IDIRECT3DRMOBJECT_METHODS(PURE
);
1043 * IDirect3DRMMeshBuilder methods
1045 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURECALLBACK
, LPVOID lpArg
) PURE
;
1046 STDMETHOD(Save
)(THIS_
const char *filename
, D3DRMXOFFORMAT
, D3DRMSAVEOPTIONS save
) PURE
;
1047 STDMETHOD(Scale
)(THIS_ D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
1048 STDMETHOD(Translate
)(THIS_ D3DVALUE tx
, D3DVALUE ty
, D3DVALUE tz
) PURE
;
1049 STDMETHOD(SetColorSource
)(THIS_ D3DRMCOLORSOURCE
) PURE
;
1050 STDMETHOD(GetBox
)(THIS_ D3DRMBOX
*) PURE
;
1051 STDMETHOD(GenerateNormals
)(THIS
) PURE
;
1052 STDMETHOD_(D3DRMCOLORSOURCE
, GetColorSource
)(THIS
) PURE
;
1054 STDMETHOD(AddMesh
)(THIS_ LPDIRECT3DRMMESH
) PURE
;
1055 STDMETHOD(AddMeshBuilder
)(THIS_ LPDIRECT3DRMMESHBUILDER
) PURE
;
1056 STDMETHOD(AddFrame
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
1057 STDMETHOD(AddFace
)(THIS_ LPDIRECT3DRMFACE
) PURE
;
1059 ( THIS_ DWORD vcount
, D3DVECTOR
*vertices
, DWORD ncount
, D3DVECTOR
*normals
,
1060 DWORD
*data
, LPDIRECT3DRMFACEARRAY
*
1062 STDMETHOD(ReserveSpace
)(THIS_ DWORD vertex_Count
, DWORD normal_count
, DWORD face_count
) PURE
;
1063 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1064 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
1065 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE
) PURE
;
1066 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL
) PURE
;
1067 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
1068 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
1069 STDMETHOD(SetPerspective
)(THIS_ BOOL
) PURE
;
1070 STDMETHOD(SetVertex
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1071 STDMETHOD(SetNormal
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1072 STDMETHOD(SetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE u
, D3DVALUE v
) PURE
;
1073 STDMETHOD(SetVertexColor
)(THIS_ DWORD index
, D3DCOLOR
) PURE
;
1074 STDMETHOD(SetVertexColorRGB
)(THIS_ DWORD index
, D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1076 STDMETHOD(GetFaces
)(THIS_ LPDIRECT3DRMFACEARRAY
*) PURE
;
1077 STDMETHOD(GetVertices
)
1078 ( THIS_ DWORD
*vcount
, D3DVECTOR
*vertices
, DWORD
*ncount
, D3DVECTOR
*normals
, DWORD
*face_data_size
, DWORD
*face_data
1080 STDMETHOD(GetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE
*u
, D3DVALUE
*v
) PURE
;
1082 STDMETHOD_(int, AddVertex
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1083 STDMETHOD_(int, AddNormal
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1084 STDMETHOD(CreateFace
)(THIS_ LPDIRECT3DRMFACE
*) PURE
;
1085 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
1086 STDMETHOD_(BOOL
, GetPerspective
)(THIS
) PURE
;
1087 STDMETHOD_(int, GetFaceCount
)(THIS
) PURE
;
1088 STDMETHOD_(int, GetVertexCount
)(THIS
) PURE
;
1089 STDMETHOD_(D3DCOLOR
, GetVertexColor
)(THIS_ DWORD index
) PURE
;
1091 STDMETHOD(CreateMesh
)(THIS_ LPDIRECT3DRMMESH
*) PURE
;
1094 * IDirect3DRMMeshBuilder2 methods
1096 STDMETHOD(GenerateNormals2
)(THIS_ D3DVALUE crease
, DWORD dwFlags
) PURE
;
1097 STDMETHOD(GetFace
)(THIS_ DWORD index
, LPDIRECT3DRMFACE
*) PURE
;
1101 #define INTERFACE IDirect3DRMMeshBuilder3
1103 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3
, IDirect3DRMVisual
)
1105 IUNKNOWN_METHODS(PURE
);
1106 IDIRECT3DRMOBJECT_METHODS(PURE
);
1109 * IDirect3DRMMeshBuilder3 methods
1111 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURE3CALLBACK
, LPVOID lpArg
) PURE
;
1112 STDMETHOD(Save
)(THIS_
const char *filename
, D3DRMXOFFORMAT
, D3DRMSAVEOPTIONS save
) PURE
;
1113 STDMETHOD(Scale
)(THIS_ D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
) PURE
;
1114 STDMETHOD(Translate
)(THIS_ D3DVALUE tx
, D3DVALUE ty
, D3DVALUE tz
) PURE
;
1115 STDMETHOD(SetColorSource
)(THIS_ D3DRMCOLORSOURCE
) PURE
;
1116 STDMETHOD(GetBox
)(THIS_ D3DRMBOX
*) PURE
;
1117 STDMETHOD(GenerateNormals
)(THIS_ D3DVALUE crease
, DWORD dwFlags
) PURE
;
1118 STDMETHOD_(D3DRMCOLORSOURCE
, GetColorSource
)(THIS
) PURE
;
1120 STDMETHOD(AddMesh
)(THIS_ LPDIRECT3DRMMESH
) PURE
;
1121 STDMETHOD(AddMeshBuilder
)(THIS_ LPDIRECT3DRMMESHBUILDER3
, DWORD dwFlags
) PURE
;
1122 STDMETHOD(AddFrame
)(THIS_ LPDIRECT3DRMFRAME3
) PURE
;
1123 STDMETHOD(AddFace
)(THIS_ LPDIRECT3DRMFACE2
) PURE
;
1125 ( THIS_ DWORD vcount
, D3DVECTOR
*vertices
, DWORD ncount
, D3DVECTOR
*normals
,
1126 DWORD
*data
, LPDIRECT3DRMFACEARRAY
*
1128 STDMETHOD(ReserveSpace
)(THIS_ DWORD vertex_Count
, DWORD normal_count
, DWORD face_count
) PURE
;
1129 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1130 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
1131 STDMETHOD(SetTexture
)(THIS_ LPDIRECT3DRMTEXTURE3
) PURE
;
1132 STDMETHOD(SetMaterial
)(THIS_ LPDIRECT3DRMMATERIAL2
) PURE
;
1133 STDMETHOD(SetTextureTopology
)(THIS_ BOOL wrap_u
, BOOL wrap_v
) PURE
;
1134 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
1135 STDMETHOD(SetPerspective
)(THIS_ BOOL
) PURE
;
1136 STDMETHOD(SetVertex
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1137 STDMETHOD(SetNormal
)(THIS_ DWORD index
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1138 STDMETHOD(SetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE u
, D3DVALUE v
) PURE
;
1139 STDMETHOD(SetVertexColor
)(THIS_ DWORD index
, D3DCOLOR
) PURE
;
1140 STDMETHOD(SetVertexColorRGB
)(THIS_ DWORD index
, D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1141 STDMETHOD(GetFaces
)(THIS_ LPDIRECT3DRMFACEARRAY
*) PURE
;
1142 STDMETHOD(GetGeometry
)
1143 ( THIS_ DWORD
*vcount
, D3DVECTOR
*vertices
, DWORD
*ncount
, D3DVECTOR
*normals
, DWORD
*face_data_size
, DWORD
*face_data
1145 STDMETHOD(GetTextureCoordinates
)(THIS_ DWORD index
, D3DVALUE
*u
, D3DVALUE
*v
) PURE
;
1146 STDMETHOD_(int, AddVertex
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1147 STDMETHOD_(int, AddNormal
)(THIS_ D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1148 STDMETHOD(CreateFace
)(THIS_ LPDIRECT3DRMFACE2
*) PURE
;
1149 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
1150 STDMETHOD_(BOOL
, GetPerspective
)(THIS
) PURE
;
1151 STDMETHOD_(int, GetFaceCount
)(THIS
) PURE
;
1152 STDMETHOD_(int, GetVertexCount
)(THIS
) PURE
;
1153 STDMETHOD_(D3DCOLOR
, GetVertexColor
)(THIS_ DWORD index
) PURE
;
1154 STDMETHOD(CreateMesh
)(THIS_ LPDIRECT3DRMMESH
*) PURE
;
1155 STDMETHOD(GetFace
)(THIS_ DWORD index
, LPDIRECT3DRMFACE2
*) PURE
;
1156 STDMETHOD(GetVertex
)(THIS_ DWORD dwIndex
, LPD3DVECTOR lpVector
) PURE
;
1157 STDMETHOD(GetNormal
)(THIS_ DWORD dwIndex
, LPD3DVECTOR lpVector
) PURE
;
1158 STDMETHOD(DeleteVertices
)(THIS_ DWORD dwIndexFirst
, DWORD dwCount
) PURE
;
1159 STDMETHOD(DeleteNormals
)(THIS_ DWORD dwIndexFirst
, DWORD dwCount
) PURE
;
1160 STDMETHOD(DeleteFace
)(THIS_ LPDIRECT3DRMFACE2
) PURE
;
1161 STDMETHOD(Empty
)(THIS_ DWORD dwFlags
) PURE
;
1162 STDMETHOD(Optimize
)(THIS_ DWORD dwFlags
) PURE
;
1163 STDMETHOD(AddFacesIndexed
)(THIS_ DWORD dwFlags
, DWORD
*lpdwvIndices
, DWORD
*dwIndexFirst
, DWORD
*dwCount
) PURE
;
1164 STDMETHOD(CreateSubMesh
)(THIS_ LPUNKNOWN
*) PURE
;
1165 STDMETHOD(GetParentMesh
)(THIS_ DWORD
, LPUNKNOWN
*) PURE
;
1166 STDMETHOD(GetSubMeshes
)(THIS_ LPDWORD lpdwCount
, LPUNKNOWN
*) PURE
;
1167 STDMETHOD(DeleteSubMesh
)(THIS_ LPUNKNOWN
) PURE
;
1168 STDMETHOD(Enable
)(THIS_ DWORD
) PURE
;
1169 STDMETHOD(GetEnable
)(THIS_ DWORD
*) PURE
;
1170 STDMETHOD(AddTriangles
)(THIS_ DWORD dwFlags
, DWORD dwFormat
,
1171 DWORD dwVertexCount
, LPVOID lpvData
) PURE
;
1172 STDMETHOD(SetVertices
)(THIS_ DWORD dwIndexFirst
, DWORD dwCount
, LPD3DVECTOR
) PURE
;
1173 STDMETHOD(GetVertices
)(THIS_ DWORD dwIndexFirst
, LPDWORD lpdwCount
, LPD3DVECTOR
) PURE
;
1174 STDMETHOD(SetNormals
)(THIS_ DWORD dwIndexFirst
, DWORD dwCount
, LPD3DVECTOR
) PURE
;
1175 STDMETHOD(GetNormals
)(THIS_ DWORD dwIndexFirst
, LPDWORD lpdwCount
, LPD3DVECTOR
) PURE
;
1176 STDMETHOD_(int, GetNormalCount
)(THIS
) PURE
;
1180 #define INTERFACE IDirect3DRMLight
1182 DECLARE_INTERFACE_(IDirect3DRMLight
, IDirect3DRMObject
)
1184 IUNKNOWN_METHODS(PURE
);
1185 IDIRECT3DRMOBJECT_METHODS(PURE
);
1188 * IDirect3DRMLight methods
1190 STDMETHOD(SetType
)(THIS_ D3DRMLIGHTTYPE
) PURE
;
1191 STDMETHOD(SetColor
)(THIS_ D3DCOLOR
) PURE
;
1192 STDMETHOD(SetColorRGB
)(THIS_ D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
) PURE
;
1193 STDMETHOD(SetRange
)(THIS_ D3DVALUE
) PURE
;
1194 STDMETHOD(SetUmbra
)(THIS_ D3DVALUE
) PURE
;
1195 STDMETHOD(SetPenumbra
)(THIS_ D3DVALUE
) PURE
;
1196 STDMETHOD(SetConstantAttenuation
)(THIS_ D3DVALUE
) PURE
;
1197 STDMETHOD(SetLinearAttenuation
)(THIS_ D3DVALUE
) PURE
;
1198 STDMETHOD(SetQuadraticAttenuation
)(THIS_ D3DVALUE
) PURE
;
1200 STDMETHOD_(D3DVALUE
, GetRange
)(THIS
) PURE
;
1201 STDMETHOD_(D3DVALUE
, GetUmbra
)(THIS
) PURE
;
1202 STDMETHOD_(D3DVALUE
, GetPenumbra
)(THIS
) PURE
;
1203 STDMETHOD_(D3DVALUE
, GetConstantAttenuation
)(THIS
) PURE
;
1204 STDMETHOD_(D3DVALUE
, GetLinearAttenuation
)(THIS
) PURE
;
1205 STDMETHOD_(D3DVALUE
, GetQuadraticAttenuation
)(THIS
) PURE
;
1206 STDMETHOD_(D3DCOLOR
, GetColor
)(THIS
) PURE
;
1207 STDMETHOD_(D3DRMLIGHTTYPE
, GetType
)(THIS
) PURE
;
1209 STDMETHOD(SetEnableFrame
)(THIS_ LPDIRECT3DRMFRAME
) PURE
;
1210 STDMETHOD(GetEnableFrame
)(THIS_ LPDIRECT3DRMFRAME
*) PURE
;
1214 #define INTERFACE IDirect3DRMTexture
1216 DECLARE_INTERFACE_(IDirect3DRMTexture
, IDirect3DRMVisual
)
1218 IUNKNOWN_METHODS(PURE
);
1219 IDIRECT3DRMOBJECT_METHODS(PURE
);
1222 * IDirect3DRMTexture methods
1224 STDMETHOD(InitFromFile
)(THIS_
const char *filename
) PURE
;
1225 STDMETHOD(InitFromSurface
)(THIS_ LPDIRECTDRAWSURFACE lpDDS
) PURE
;
1226 STDMETHOD(InitFromResource
)(THIS_ HRSRC
) PURE
;
1227 STDMETHOD(Changed
)(THIS_ BOOL pixels
, BOOL palette
) PURE
;
1229 STDMETHOD(SetColors
)(THIS_ DWORD
) PURE
;
1230 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
1231 STDMETHOD(SetDecalSize
)(THIS_ D3DVALUE width
, D3DVALUE height
) PURE
;
1232 STDMETHOD(SetDecalOrigin
)(THIS_ LONG x
, LONG y
) PURE
;
1233 STDMETHOD(SetDecalScale
)(THIS_ DWORD
) PURE
;
1234 STDMETHOD(SetDecalTransparency
)(THIS_ BOOL
) PURE
;
1235 STDMETHOD(SetDecalTransparentColor
)(THIS_ D3DCOLOR
) PURE
;
1237 STDMETHOD(GetDecalSize
)(THIS_ D3DVALUE
*width_return
, D3DVALUE
*height_return
) PURE
;
1238 STDMETHOD(GetDecalOrigin
)(THIS_ LONG
*x_return
, LONG
*y_return
) PURE
;
1240 STDMETHOD_(D3DRMIMAGE
*, GetImage
)(THIS
) PURE
;
1241 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
1242 STDMETHOD_(DWORD
, GetColors
)(THIS
) PURE
;
1243 STDMETHOD_(DWORD
, GetDecalScale
)(THIS
) PURE
;
1244 STDMETHOD_(BOOL
, GetDecalTransparency
)(THIS
) PURE
;
1245 STDMETHOD_(D3DCOLOR
, GetDecalTransparentColor
)(THIS
) PURE
;
1249 #define INTERFACE IDirect3DRMTexture2
1251 DECLARE_INTERFACE_(IDirect3DRMTexture2
, IDirect3DRMTexture
)
1253 IUNKNOWN_METHODS(PURE
);
1254 IDIRECT3DRMOBJECT_METHODS(PURE
);
1257 * IDirect3DRMTexture methods
1259 STDMETHOD(InitFromFile
)(THIS_
const char *filename
) PURE
;
1260 STDMETHOD(InitFromSurface
)(THIS_ LPDIRECTDRAWSURFACE lpDDS
) PURE
;
1261 STDMETHOD(InitFromResource
)(THIS_ HRSRC
) PURE
;
1262 STDMETHOD(Changed
)(THIS_ BOOL pixels
, BOOL palette
) PURE
;
1264 STDMETHOD(SetColors
)(THIS_ DWORD
) PURE
;
1265 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
1266 STDMETHOD(SetDecalSize
)(THIS_ D3DVALUE width
, D3DVALUE height
) PURE
;
1267 STDMETHOD(SetDecalOrigin
)(THIS_ LONG x
, LONG y
) PURE
;
1268 STDMETHOD(SetDecalScale
)(THIS_ DWORD
) PURE
;
1269 STDMETHOD(SetDecalTransparency
)(THIS_ BOOL
) PURE
;
1270 STDMETHOD(SetDecalTransparentColor
)(THIS_ D3DCOLOR
) PURE
;
1272 STDMETHOD(GetDecalSize
)(THIS_ D3DVALUE
*width_return
, D3DVALUE
*height_return
) PURE
;
1273 STDMETHOD(GetDecalOrigin
)(THIS_ LONG
*x_return
, LONG
*y_return
) PURE
;
1275 STDMETHOD_(D3DRMIMAGE
*, GetImage
)(THIS
) PURE
;
1276 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
1277 STDMETHOD_(DWORD
, GetColors
)(THIS
) PURE
;
1278 STDMETHOD_(DWORD
, GetDecalScale
)(THIS
) PURE
;
1279 STDMETHOD_(BOOL
, GetDecalTransparency
)(THIS
) PURE
;
1280 STDMETHOD_(D3DCOLOR
, GetDecalTransparentColor
)(THIS
) PURE
;
1283 * IDirect3DRMTexture2 methods
1285 STDMETHOD(InitFromImage
)(THIS_ LPD3DRMIMAGE
) PURE
;
1286 STDMETHOD(InitFromResource2
)(THIS_ HMODULE hModule
, LPCTSTR strName
, LPCTSTR strType
) PURE
;
1287 STDMETHOD(GenerateMIPMap
)(THIS_ DWORD
) PURE
;
1291 #define INTERFACE IDirect3DRMTexture3
1293 DECLARE_INTERFACE_(IDirect3DRMTexture3
, IDirect3DRMVisual
)
1295 IUNKNOWN_METHODS(PURE
);
1296 IDIRECT3DRMOBJECT_METHODS(PURE
);
1299 * IDirect3DRMTexture3 methods
1301 STDMETHOD(InitFromFile
)(THIS_
const char *filename
) PURE
;
1302 STDMETHOD(InitFromSurface
)(THIS_ LPDIRECTDRAWSURFACE lpDDS
) PURE
;
1303 STDMETHOD(InitFromResource
)(THIS_ HRSRC
) PURE
;
1304 STDMETHOD(Changed
)(THIS_ DWORD dwFlags
, DWORD dwcRects
, LPRECT pRects
) PURE
;
1305 STDMETHOD(SetColors
)(THIS_ DWORD
) PURE
;
1306 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
1307 STDMETHOD(SetDecalSize
)(THIS_ D3DVALUE width
, D3DVALUE height
) PURE
;
1308 STDMETHOD(SetDecalOrigin
)(THIS_ LONG x
, LONG y
) PURE
;
1309 STDMETHOD(SetDecalScale
)(THIS_ DWORD
) PURE
;
1310 STDMETHOD(SetDecalTransparency
)(THIS_ BOOL
) PURE
;
1311 STDMETHOD(SetDecalTransparentColor
)(THIS_ D3DCOLOR
) PURE
;
1313 STDMETHOD(GetDecalSize
)(THIS_ D3DVALUE
*width_return
, D3DVALUE
*height_return
) PURE
;
1314 STDMETHOD(GetDecalOrigin
)(THIS_ LONG
*x_return
, LONG
*y_return
) PURE
;
1316 STDMETHOD_(D3DRMIMAGE
*, GetImage
)(THIS
) PURE
;
1317 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
1318 STDMETHOD_(DWORD
, GetColors
)(THIS
) PURE
;
1319 STDMETHOD_(DWORD
, GetDecalScale
)(THIS
) PURE
;
1320 STDMETHOD_(BOOL
, GetDecalTransparency
)(THIS
) PURE
;
1321 STDMETHOD_(D3DCOLOR
, GetDecalTransparentColor
)(THIS
) PURE
;
1322 STDMETHOD(InitFromImage
)(THIS_ LPD3DRMIMAGE
) PURE
;
1323 STDMETHOD(InitFromResource2
)(THIS_ HMODULE hModule
, LPCTSTR strName
, LPCTSTR strType
) PURE
;
1324 STDMETHOD(GenerateMIPMap
)(THIS_ DWORD
) PURE
;
1325 STDMETHOD(GetSurface
)(THIS_ DWORD dwFlags
, LPDIRECTDRAWSURFACE
* lplpDDS
) PURE
;
1326 STDMETHOD(SetCacheOptions
)(THIS_ LONG lImportance
, DWORD dwFlags
) PURE
;
1327 STDMETHOD(GetCacheOptions
)(THIS_ LPLONG lplImportance
, LPDWORD lpdwFlags
) PURE
;
1328 STDMETHOD(SetDownsampleCallback
)(THIS_ D3DRMDOWNSAMPLECALLBACK pCallback
, LPVOID pArg
) PURE
;
1329 STDMETHOD(SetValidationCallback
)(THIS_ D3DRMVALIDATIONCALLBACK pCallback
, LPVOID pArg
) PURE
;
1334 #define INTERFACE IDirect3DRMWrap
1336 DECLARE_INTERFACE_(IDirect3DRMWrap
, IDirect3DRMObject
)
1338 IUNKNOWN_METHODS(PURE
);
1339 IDIRECT3DRMOBJECT_METHODS(PURE
);
1342 * IDirect3DRMWrap methods
1345 ( THIS_ D3DRMWRAPTYPE
, LPDIRECT3DRMFRAME ref
,
1346 D3DVALUE ox
, D3DVALUE oy
, D3DVALUE oz
,
1347 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
1348 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
,
1349 D3DVALUE ou
, D3DVALUE ov
,
1350 D3DVALUE su
, D3DVALUE sv
1352 STDMETHOD(Apply
)(THIS_ LPDIRECT3DRMOBJECT
) PURE
;
1353 STDMETHOD(ApplyRelative
)(THIS_ LPDIRECT3DRMFRAME frame
, LPDIRECT3DRMOBJECT
) PURE
;
1357 #define INTERFACE IDirect3DRMMaterial
1359 DECLARE_INTERFACE_(IDirect3DRMMaterial
, IDirect3DRMObject
)
1361 IUNKNOWN_METHODS(PURE
);
1362 IDIRECT3DRMOBJECT_METHODS(PURE
);
1365 * IDirect3DRMMaterial methods
1367 STDMETHOD(SetPower
)(THIS_ D3DVALUE power
) PURE
;
1368 STDMETHOD(SetSpecular
)(THIS_ D3DVALUE r
, D3DVALUE g
, D3DVALUE b
) PURE
;
1369 STDMETHOD(SetEmissive
)(THIS_ D3DVALUE r
, D3DVALUE g
, D3DVALUE b
) PURE
;
1371 STDMETHOD_(D3DVALUE
, GetPower
)(THIS
) PURE
;
1372 STDMETHOD(GetSpecular
)(THIS_ D3DVALUE
* r
, D3DVALUE
* g
, D3DVALUE
* b
) PURE
;
1373 STDMETHOD(GetEmissive
)(THIS_ D3DVALUE
* r
, D3DVALUE
* g
, D3DVALUE
* b
) PURE
;
1378 #define INTERFACE IDirect3DRMMaterial2
1380 DECLARE_INTERFACE_(IDirect3DRMMaterial2
, IDirect3DRMObject
)
1382 IUNKNOWN_METHODS(PURE
);
1383 IDIRECT3DRMOBJECT_METHODS(PURE
);
1386 * IDirect3DRMMaterial2 methods
1388 STDMETHOD(SetPower
)(THIS_ D3DVALUE power
) PURE
;
1389 STDMETHOD(SetSpecular
)(THIS_ D3DVALUE r
, D3DVALUE g
, D3DVALUE b
) PURE
;
1390 STDMETHOD(SetEmissive
)(THIS_ D3DVALUE r
, D3DVALUE g
, D3DVALUE b
) PURE
;
1391 STDMETHOD_(D3DVALUE
, GetPower
)(THIS
) PURE
;
1392 STDMETHOD(GetSpecular
)(THIS_ D3DVALUE
* r
, D3DVALUE
* g
, D3DVALUE
* b
) PURE
;
1393 STDMETHOD(GetEmissive
)(THIS_ D3DVALUE
* r
, D3DVALUE
* g
, D3DVALUE
* b
) PURE
;
1394 STDMETHOD(GetAmbient
)(THIS_ D3DVALUE
* r
, D3DVALUE
* g
, D3DVALUE
* b
) PURE
;
1395 STDMETHOD(SetAmbient
)(THIS_ D3DVALUE r
, D3DVALUE g
, D3DVALUE b
) PURE
;
1400 #define INTERFACE IDirect3DRMAnimation
1402 DECLARE_INTERFACE_(IDirect3DRMAnimation
, IDirect3DRMObject
)
1404 IUNKNOWN_METHODS(PURE
);
1405 IDIRECT3DRMOBJECT_METHODS(PURE
);
1408 * IDirect3DRMAnimation methods
1410 STDMETHOD(SetOptions
)(THIS_ D3DRMANIMATIONOPTIONS flags
) PURE
;
1411 STDMETHOD(AddRotateKey
)(THIS_ D3DVALUE time
, D3DRMQUATERNION
*q
) PURE
;
1412 STDMETHOD(AddPositionKey
)(THIS_ D3DVALUE time
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1413 STDMETHOD(AddScaleKey
)(THIS_ D3DVALUE time
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1414 STDMETHOD(DeleteKey
)(THIS_ D3DVALUE time
) PURE
;
1415 STDMETHOD(SetFrame
)(THIS_ LPDIRECT3DRMFRAME frame
) PURE
;
1416 STDMETHOD(SetTime
)(THIS_ D3DVALUE time
) PURE
;
1418 STDMETHOD_(D3DRMANIMATIONOPTIONS
, GetOptions
)(THIS
) PURE
;
1422 #define INTERFACE IDirect3DRMAnimation2
1424 DECLARE_INTERFACE_(IDirect3DRMAnimation2
, IDirect3DRMObject
)
1426 IUNKNOWN_METHODS(PURE
);
1427 IDIRECT3DRMOBJECT_METHODS(PURE
);
1430 * IDirect3DRMAnimation2 methods
1432 STDMETHOD(SetOptions
)(THIS_ D3DRMANIMATIONOPTIONS flags
) PURE
;
1433 STDMETHOD(AddRotateKey
)(THIS_ D3DVALUE time
, D3DRMQUATERNION
*q
) PURE
;
1434 STDMETHOD(AddPositionKey
)(THIS_ D3DVALUE time
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1435 STDMETHOD(AddScaleKey
)(THIS_ D3DVALUE time
, D3DVALUE x
, D3DVALUE y
, D3DVALUE z
) PURE
;
1436 STDMETHOD(DeleteKey
)(THIS_ D3DVALUE time
) PURE
;
1437 STDMETHOD(SetFrame
)(THIS_ LPDIRECT3DRMFRAME3 frame
) PURE
;
1438 STDMETHOD(SetTime
)(THIS_ D3DVALUE time
) PURE
;
1440 STDMETHOD_(D3DRMANIMATIONOPTIONS
, GetOptions
)(THIS
) PURE
;
1441 STDMETHOD(GetFrame
)(THIS_ LPDIRECT3DRMFRAME3
*lpD3DFrame
) PURE
;
1442 STDMETHOD(DeleteKeyByID
)(THIS_ DWORD dwID
) PURE
;
1443 STDMETHOD(AddKey
)(THIS_ LPD3DRMANIMATIONKEY lpKey
) PURE
;
1444 STDMETHOD(ModifyKey
)(THIS_ LPD3DRMANIMATIONKEY lpKey
) PURE
;
1445 STDMETHOD(GetKeys
)(THIS_ D3DVALUE dvTimeMin
,
1446 D3DVALUE dvTimeMax
, LPDWORD lpdwNumKeys
,
1447 LPD3DRMANIMATIONKEY lpKey
);
1451 #define INTERFACE IDirect3DRMAnimationSet
1453 DECLARE_INTERFACE_(IDirect3DRMAnimationSet
, IDirect3DRMObject
)
1455 IUNKNOWN_METHODS(PURE
);
1456 IDIRECT3DRMOBJECT_METHODS(PURE
);
1459 * IDirect3DRMAnimationSet methods
1461 STDMETHOD(AddAnimation
)(THIS_ LPDIRECT3DRMANIMATION aid
) PURE
;
1462 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURECALLBACK
, LPVOID lpArg
, LPDIRECT3DRMFRAME parent
)PURE
;
1463 STDMETHOD(DeleteAnimation
)(THIS_ LPDIRECT3DRMANIMATION aid
) PURE
;
1464 STDMETHOD(SetTime
)(THIS_ D3DVALUE time
) PURE
;
1468 #define INTERFACE IDirect3DRMAnimationSet2
1470 DECLARE_INTERFACE_(IDirect3DRMAnimationSet2
, IDirect3DRMObject
)
1472 IUNKNOWN_METHODS(PURE
);
1473 IDIRECT3DRMOBJECT_METHODS(PURE
);
1476 * IDirect3DRMAnimationSet2 methods
1478 STDMETHOD(AddAnimation
)(THIS_ LPDIRECT3DRMANIMATION2 aid
) PURE
;
1479 STDMETHOD(Load
)(THIS_ LPVOID filename
, LPVOID name
, D3DRMLOADOPTIONS loadflags
, D3DRMLOADTEXTURE3CALLBACK
, LPVOID lpArg
, LPDIRECT3DRMFRAME3 parent
)PURE
;
1480 STDMETHOD(DeleteAnimation
)(THIS_ LPDIRECT3DRMANIMATION2 aid
) PURE
;
1481 STDMETHOD(SetTime
)(THIS_ D3DVALUE time
) PURE
;
1482 STDMETHOD(GetAnimations
)(THIS_ LPDIRECT3DRMANIMATIONARRAY
*) PURE
;
1487 #define INTERFACE IDirect3DRMUserVisual
1489 DECLARE_INTERFACE_(IDirect3DRMUserVisual
, IDirect3DRMVisual
)
1491 IUNKNOWN_METHODS(PURE
);
1492 IDIRECT3DRMOBJECT_METHODS(PURE
);
1495 * IDirect3DRMUserVisual methods
1497 STDMETHOD(Init
)(THIS_ D3DRMUSERVISUALCALLBACK fn
, void *arg
) PURE
;
1501 #define INTERFACE IDirect3DRMArray
1503 DECLARE_INTERFACE_(IDirect3DRMArray
, IUnknown
)
1505 IUNKNOWN_METHODS(PURE
);
1507 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1508 /* No GetElement method as it would get overloaded
1509 * in derived classes, and overloading is
1515 #define INTERFACE IDirect3DRMObjectArray
1517 DECLARE_INTERFACE_(IDirect3DRMObjectArray
, IDirect3DRMArray
)
1519 IUNKNOWN_METHODS(PURE
);
1521 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1522 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMOBJECT
*) PURE
;
1526 #define INTERFACE IDirect3DRMDeviceArray
1528 DECLARE_INTERFACE_(IDirect3DRMDeviceArray
, IDirect3DRMArray
)
1530 IUNKNOWN_METHODS(PURE
);
1532 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1533 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMDEVICE
*) PURE
;
1537 #define INTERFACE IDirect3DRMFrameArray
1539 DECLARE_INTERFACE_(IDirect3DRMFrameArray
, IDirect3DRMArray
)
1541 IUNKNOWN_METHODS(PURE
);
1543 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1544 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMFRAME
*) PURE
;
1548 #define INTERFACE IDirect3DRMViewportArray
1550 DECLARE_INTERFACE_(IDirect3DRMViewportArray
, IDirect3DRMArray
)
1552 IUNKNOWN_METHODS(PURE
);
1554 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1555 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMVIEWPORT
*) PURE
;
1559 #define INTERFACE IDirect3DRMVisualArray
1561 DECLARE_INTERFACE_(IDirect3DRMVisualArray
, IDirect3DRMArray
)
1563 IUNKNOWN_METHODS(PURE
);
1565 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1566 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMVISUAL
*) PURE
;
1570 #define INTERFACE IDirect3DRMAnimationArray
1572 DECLARE_INTERFACE_(IDirect3DRMAnimationArray
, IDirect3DRMArray
)
1574 IUNKNOWN_METHODS(PURE
);
1576 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1577 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMANIMATION2
*) PURE
;
1581 #define INTERFACE IDirect3DRMPickedArray
1583 DECLARE_INTERFACE_(IDirect3DRMPickedArray
, IDirect3DRMArray
)
1585 IUNKNOWN_METHODS(PURE
);
1587 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1588 STDMETHOD(GetPick
)(THIS_ DWORD index
, LPDIRECT3DRMVISUAL
*, LPDIRECT3DRMFRAMEARRAY
*, LPD3DRMPICKDESC
) PURE
;
1592 #define INTERFACE IDirect3DRMLightArray
1594 DECLARE_INTERFACE_(IDirect3DRMLightArray
, IDirect3DRMArray
)
1596 IUNKNOWN_METHODS(PURE
);
1598 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1599 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMLIGHT
*) PURE
;
1603 #define INTERFACE IDirect3DRMFaceArray
1605 DECLARE_INTERFACE_(IDirect3DRMFaceArray
, IDirect3DRMArray
)
1607 IUNKNOWN_METHODS(PURE
);
1609 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1610 STDMETHOD(GetElement
)(THIS_ DWORD index
, LPDIRECT3DRMFACE
*) PURE
;
1614 #define INTERFACE IDirect3DRMPicked2Array
1616 DECLARE_INTERFACE_(IDirect3DRMPicked2Array
, IDirect3DRMArray
)
1618 IUNKNOWN_METHODS(PURE
);
1620 STDMETHOD_(DWORD
, GetSize
)(THIS
) PURE
;
1621 STDMETHOD(GetPick
)(THIS_ DWORD index
, LPDIRECT3DRMVISUAL
*, LPDIRECT3DRMFRAMEARRAY
*, LPD3DRMPICKDESC2
) PURE
;
1625 #define INTERFACE IDirect3DRMInterpolator
1627 DECLARE_INTERFACE_(IDirect3DRMInterpolator
, IDirect3DRMObject
)
1629 IUNKNOWN_METHODS(PURE
);
1630 IDIRECT3DRMOBJECT_METHODS(PURE
);
1633 * IDirect3DRMInterpolator methods
1635 STDMETHOD(AttachObject
)(THIS_ LPDIRECT3DRMOBJECT
) PURE
;
1636 STDMETHOD(GetAttachedObjects
)(THIS_ LPDIRECT3DRMOBJECTARRAY
*) PURE
;
1637 STDMETHOD(DetachObject
)(THIS_ LPDIRECT3DRMOBJECT
) PURE
;
1638 STDMETHOD(SetIndex
)(THIS_ D3DVALUE
) PURE
;
1639 STDMETHOD_(D3DVALUE
, GetIndex
)(THIS
) PURE
;
1640 STDMETHOD(Interpolate
)(THIS_ D3DVALUE
, LPDIRECT3DRMOBJECT
, D3DRMINTERPOLATIONOPTIONS
) PURE
;
1644 #define INTERFACE IDirect3DRMClippedVisual
1646 DECLARE_INTERFACE_(IDirect3DRMClippedVisual
, IDirect3DRMVisual
)
1648 IUNKNOWN_METHODS(PURE
);
1649 IDIRECT3DRMOBJECT_METHODS(PURE
);
1652 * IDirect3DRMClippedVisual methods
1654 STDMETHOD(Init
) (THIS_ LPDIRECT3DRMVISUAL
) PURE
;
1655 STDMETHOD(AddPlane
) (THIS_ LPDIRECT3DRMFRAME3
, LPD3DVECTOR
, LPD3DVECTOR
, DWORD
, LPDWORD
) PURE
;
1656 STDMETHOD(DeletePlane
)(THIS_ DWORD
, DWORD
) PURE
;
1657 STDMETHOD(GetPlaneIDs
)(THIS_ LPDWORD
, LPDWORD
, DWORD
) PURE
;
1658 STDMETHOD(GetPlane
) (THIS_ DWORD
, LPDIRECT3DRMFRAME3
, LPD3DVECTOR
, LPD3DVECTOR
, DWORD
) PURE
;
1659 STDMETHOD(SetPlane
) (THIS_ DWORD
, LPDIRECT3DRMFRAME3
, LPD3DVECTOR
, LPD3DVECTOR
, DWORD
) PURE
;
1665 #endif /* _D3DRMOBJ_H_ */