1 /*==========================================================================;
3 * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
6 * Content: Direct3DRM include file
8 ***************************************************************************/
13 #include <objbase.h> /* Use Windows header files */
16 #include "vd3drmdef.h"
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(IDirect3DRMDevice, DIRECT3DRMDEVICE);
50 WIN_TYPES(IDirect3DRMDevice2, DIRECT3DRMDEVICE2);
51 WIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
52 WIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
53 WIN_TYPES(IDirect3DRMFrame2, DIRECT3DRMFRAME2);
54 WIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
55 WIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
56 WIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
57 WIN_TYPES(IDirect3DRMMeshBuilder2, DIRECT3DRMMESHBUILDER2);
58 WIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
59 WIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
60 WIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
61 WIN_TYPES(IDirect3DRMTexture2, DIRECT3DRMTEXTURE2);
62 WIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
63 WIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
64 WIN_TYPES(IDirect3DRMInterpolator, DIRECT3DRMINTERPOLATOR);
65 WIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
66 WIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
67 WIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
68 WIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
69 WIN_TYPES(IDirect3DRMArray, DIRECT3DRMARRAY);
70 WIN_TYPES(IDirect3DRMObjectArray, DIRECT3DRMOBJECTARRAY);
71 WIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
72 WIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
73 WIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
74 WIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
75 WIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
76 WIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
77 WIN_TYPES(IDirect3DRMPicked2Array, DIRECT3DRMPICKED2ARRAY);
78 WIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
79 WIN_TYPES(IDirect3DRMProgressiveMesh, DIRECT3DRMPROGRESSIVEMESH);
82 * Direct3DRM Object classes
84 DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
85 DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
86 DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
87 DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
88 DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
89 DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
90 DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
91 DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
92 DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
93 DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
94 DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
95 DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
96 DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
97 DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
98 DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,
99 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
100 DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,
101 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
102 DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,
103 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
104 DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,
105 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
106 DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,
107 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
108 DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,
109 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
110 DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
114 * Direct3DRM Object interfaces
116 DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
117 DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
118 DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
119 DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
120 DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
121 DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x0, 0x0, 0xc0, 0x29, 0x1a, 0xc3);
122 DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
123 DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
124 DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
125 DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
126 DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
127 DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
128 DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
129 DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b);
130 DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
131 DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
132 DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
133 DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
134 DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
135 DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
136 DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
137 DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
138 DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
139 DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
140 DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
141 DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
142 DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
143 DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
144 DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
145 DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
146 DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
149 typedef void (CDECL *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
150 typedef void (CDECL *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
151 typedef void (CDECL *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
152 typedef int (CDECL *D3DRMUSERVISUALCALLBACK)
153 ( LPDIRECT3DRMUSERVISUAL obj, LPVOID arg, D3DRMUSERVISUALREASON reason,
154 LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view
156 typedef HRESULT (CDECL *D3DRMLOADTEXTURECALLBACK)
157 (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
158 typedef void (CDECL *D3DRMLOADCALLBACK)
159 (LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
162 typedef struct _D3DRMPICKDESC
168 } D3DRMPICKDESC, *LPD3DRMPICKDESC;
170 typedef struct _D3DRMPICKDESC2
174 D3DVECTOR dvPosition;
180 } D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
183 #define INTERFACE IDirect3DRMObject
188 DECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
190 IUNKNOWN_METHODS(PURE);
191 IDIRECT3DRMOBJECT_METHODS(PURE);
195 #define INTERFACE IDirect3DRMVisual
197 DECLARE_INTERFACE_(IDirect3DRMVisual, IDirect3DRMObject)
199 IUNKNOWN_METHODS(PURE);
200 IDIRECT3DRMOBJECT_METHODS(PURE);
204 #define INTERFACE IDirect3DRMDevice
206 DECLARE_INTERFACE_(IDirect3DRMDevice, IDirect3DRMObject)
208 IUNKNOWN_METHODS(PURE);
209 IDIRECT3DRMOBJECT_METHODS(PURE);
212 * IDirect3DRMDevice methods
214 STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
215 STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
216 STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
218 STDMETHOD(Update)(THIS) PURE;
219 STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
220 STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
221 STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
222 STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
224 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
225 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
226 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
227 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
229 STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
231 STDMETHOD_(BOOL, GetDither)(THIS) PURE;
232 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
233 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
234 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
235 STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
236 STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
237 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
238 STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
239 STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
240 STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
244 #define INTERFACE IDirect3DRMDevice2
246 DECLARE_INTERFACE_(IDirect3DRMDevice2, IDirect3DRMDevice)
248 IUNKNOWN_METHODS(PURE);
249 IDIRECT3DRMOBJECT_METHODS(PURE);
252 * IDirect3DRMDevice methods
254 STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
255 STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
256 STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
258 STDMETHOD(Update)(THIS) PURE;
259 STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
260 STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
261 STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
262 STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
264 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
265 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
266 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
267 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
269 STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
271 STDMETHOD_(BOOL, GetDither)(THIS) PURE;
272 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
273 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
274 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
275 STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
276 STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
277 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
278 STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
279 STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
280 STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
283 * IDirect3DRMDevice2 methods
285 STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev) PURE;
286 STDMETHOD(InitFromSurface)(THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack) PURE;
287 STDMETHOD(SetRenderMode)(THIS_ DWORD dwFlags) PURE;
288 STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
289 STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
293 #define INTERFACE IDirect3DRMViewport
295 DECLARE_INTERFACE_(IDirect3DRMViewport, IDirect3DRMObject)
297 IUNKNOWN_METHODS(PURE);
298 IDIRECT3DRMOBJECT_METHODS(PURE);
301 * IDirect3DRMViewport methods
304 ( THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera,
305 DWORD xpos, DWORD ypos, DWORD width, DWORD height
307 STDMETHOD(Clear)(THIS) PURE;
308 STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
310 STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
311 STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
312 STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
313 STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
314 STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
315 STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
316 STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
317 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
318 STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
319 STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
320 STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
322 STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
323 STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
324 STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
325 STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
327 STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
328 STDMETHOD_(LONG, GetX)(THIS) PURE;
329 STDMETHOD_(LONG, GetY)(THIS) PURE;
330 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
331 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
332 STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
333 STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
334 STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
335 STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
336 STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
340 #define INTERFACE IDirect3DRMFrame
342 DECLARE_INTERFACE_(IDirect3DRMFrame, IDirect3DRMVisual)
344 IUNKNOWN_METHODS(PURE);
345 IDIRECT3DRMOBJECT_METHODS(PURE);
348 * IDirect3DRMFrame methods
350 STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
351 STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
352 STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
353 STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
354 STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
355 STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
356 STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
357 STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
358 STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
359 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
360 STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
361 STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
362 STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
363 STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
364 STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
365 STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
366 STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
367 STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
368 STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
369 STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
370 STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
371 STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
372 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
373 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
374 STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
375 STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
376 STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
377 STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
378 STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
379 STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
380 STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
381 STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
382 STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
383 STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
384 STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
385 STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
386 STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
387 STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
388 STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
389 STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
390 STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
391 STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
392 STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
393 STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
394 STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
395 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
396 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
397 STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
398 STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
399 STDMETHOD(SetOrientation)
400 ( THIS_ LPDIRECT3DRMFRAME reference,
401 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
402 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
404 STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
405 STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
406 STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
407 STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
408 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
409 STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
410 STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
411 STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
415 #define INTERFACE IDirect3DRMFrame2
417 DECLARE_INTERFACE_(IDirect3DRMFrame2, IDirect3DRMFrame)
419 IUNKNOWN_METHODS(PURE);
420 IDIRECT3DRMOBJECT_METHODS(PURE);
423 * IDirect3DRMFrame methods
425 STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
426 STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
427 STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
428 STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
429 STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
430 STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
431 STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
432 STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
433 STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
434 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
435 STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
436 STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
437 STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
438 STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
439 STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
440 STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
441 STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
442 STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
443 STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
444 STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
445 STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
446 STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
447 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
448 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
449 STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
450 STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
451 STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
452 STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
453 STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
454 STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
455 STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
456 STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
457 STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
458 STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
459 STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
460 STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
461 STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
462 STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
463 STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
464 STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
465 STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
466 STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
467 STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
468 STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
469 STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
470 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
471 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
472 STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
473 STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
474 STDMETHOD(SetOrientation)
475 ( THIS_ LPDIRECT3DRMFRAME reference,
476 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
477 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
479 STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
480 STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
481 STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
482 STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
483 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
484 STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
485 STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
486 STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
489 * IDirect3DRMFrame2 methods
491 STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD dwFlags) PURE;
492 STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
493 STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
494 STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
495 STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
496 STDMETHOD_(BOOL, GetInheritAxes)(THIS);
497 STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
499 STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
500 STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
501 STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
502 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
503 STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
504 STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
505 STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME reference, D3DRMQUATERNION *q) PURE;
507 STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DRMRAY ray, DWORD dwFlags, LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
508 STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat,
509 D3DRMSAVEOPTIONS d3dSaveFlags);
513 #define INTERFACE IDirect3DRMMesh
515 DECLARE_INTERFACE_(IDirect3DRMMesh, IDirect3DRMVisual)
517 IUNKNOWN_METHODS(PURE);
518 IDIRECT3DRMOBJECT_METHODS(PURE);
521 * IDirect3DRMMesh methods
523 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
524 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
525 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
526 STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData, D3DRMGROUPINDEX *returnId) PURE;
527 STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count, D3DRMVERTEX *values) PURE;
528 STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
529 STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
530 STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
531 STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
532 STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
533 STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
535 STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
536 STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace, DWORD *fDataSize, unsigned *fData) PURE;
537 STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
538 STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
539 STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
540 STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
541 STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
542 STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
546 #define INTERFACE IDirect3DRMProgressiveMesh
548 DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh, IDirect3DRMVisual)
550 IUNKNOWN_METHODS(PURE);
551 IDIRECT3DRMOBJECT_METHODS(PURE);
554 * IDirect3DRMProgressiveMesh methods
556 STDMETHOD(Load) (THIS_ LPVOID lpObjLocation, LPVOID lpObjId,
557 D3DRMLOADOPTIONS dloLoadflags, D3DRMLOADTEXTURECALLBACK lpCallback,
559 STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS lpStatus) PURE;
560 STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
561 STDMETHOD(Abort) (THIS_ DWORD dwFlags) PURE;
563 STDMETHOD(GetFaceDetail) (THIS_ LPDWORD lpdwCount) PURE;
564 STDMETHOD(GetVertexDetail) (THIS_ LPDWORD lpdwCount) PURE;
565 STDMETHOD(SetFaceDetail) (THIS_ DWORD dwCount) PURE;
566 STDMETHOD(SetVertexDetail) (THIS_ DWORD dwCount) PURE;
567 STDMETHOD(GetFaceDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
568 STDMETHOD(GetVertexDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
569 STDMETHOD(GetDetail) (THIS_ D3DVALUE *lpdvVal) PURE;
570 STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
572 STDMETHOD(RegisterEvents) (THIS_ HANDLE hEvent, DWORD dwFlags, DWORD dwReserved) PURE;
573 STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *lplpD3DRMMesh) PURE;
574 STDMETHOD(Duplicate) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH *lplpD3DRMPMesh) PURE;
575 STDMETHOD(GetBox) (THIS_ LPD3DRMBOX lpBBox) PURE;
576 STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY) PURE;
577 STDMETHOD(GetQuality) (THIS_ LPD3DRMRENDERQUALITY lpdwquality) PURE;
581 #define INTERFACE IDirect3DRMShadow
583 DECLARE_INTERFACE_(IDirect3DRMShadow, IDirect3DRMVisual)
585 IUNKNOWN_METHODS(PURE);
586 IDIRECT3DRMOBJECT_METHODS(PURE);
589 * IDirect3DRMShadow methods
592 ( THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
593 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
594 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
599 #define INTERFACE IDirect3DRMFace
601 DECLARE_INTERFACE_(IDirect3DRMFace, IDirect3DRMObject)
603 IUNKNOWN_METHODS(PURE);
604 IDIRECT3DRMOBJECT_METHODS(PURE);
607 * IDirect3DRMFace methods
609 STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
610 STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
611 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
612 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
613 STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
614 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
615 STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
616 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
618 STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
619 STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
620 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
621 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
622 STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
623 STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
624 STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
626 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
627 STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
628 STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
629 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
633 #define INTERFACE IDirect3DRMMeshBuilder
635 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder, IDirect3DRMVisual)
637 IUNKNOWN_METHODS(PURE);
638 IDIRECT3DRMOBJECT_METHODS(PURE);
641 * IDirect3DRMMeshBuilder methods
643 STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
644 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
645 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
646 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
647 STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
648 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
649 STDMETHOD(GenerateNormals)(THIS) PURE;
650 STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
652 STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
653 STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
654 STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
655 STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
657 ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
658 DWORD *data, LPDIRECT3DRMFACEARRAY*
660 STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
661 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
662 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
663 STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
664 STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
665 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
666 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
667 STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
668 STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
669 STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
670 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
671 STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
672 STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
674 STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
675 STDMETHOD(GetVertices)
676 ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
678 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
680 STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
681 STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
682 STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
683 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
684 STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
685 STDMETHOD_(int, GetFaceCount)(THIS) PURE;
686 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
687 STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
689 STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
693 #define INTERFACE IDirect3DRMMeshBuilder2
695 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2, IDirect3DRMMeshBuilder)
697 IUNKNOWN_METHODS(PURE);
698 IDIRECT3DRMOBJECT_METHODS(PURE);
701 * IDirect3DRMMeshBuilder methods
703 STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
704 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
705 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
706 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
707 STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
708 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
709 STDMETHOD(GenerateNormals)(THIS) PURE;
710 STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
712 STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
713 STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
714 STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
715 STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
717 ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
718 DWORD *data, LPDIRECT3DRMFACEARRAY*
720 STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
721 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
722 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
723 STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
724 STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
725 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
726 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
727 STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
728 STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
729 STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
730 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
731 STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
732 STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
734 STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
735 STDMETHOD(GetVertices)
736 ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
738 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
740 STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
741 STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
742 STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
743 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
744 STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
745 STDMETHOD_(int, GetFaceCount)(THIS) PURE;
746 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
747 STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
749 STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
752 * IDirect3DRMMeshBuilder2 methods
754 STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
755 STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
759 #define INTERFACE IDirect3DRMLight
761 DECLARE_INTERFACE_(IDirect3DRMLight, IDirect3DRMObject)
763 IUNKNOWN_METHODS(PURE);
764 IDIRECT3DRMOBJECT_METHODS(PURE);
767 * IDirect3DRMLight methods
769 STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
770 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
771 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
772 STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
773 STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
774 STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
775 STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
776 STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
777 STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
779 STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
780 STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
781 STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
782 STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
783 STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
784 STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
785 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
786 STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
788 STDMETHOD(SetEnableFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
789 STDMETHOD(GetEnableFrame)(THIS_ LPDIRECT3DRMFRAME*) PURE;
793 #define INTERFACE IDirect3DRMTexture
795 DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
797 IUNKNOWN_METHODS(PURE);
798 IDIRECT3DRMOBJECT_METHODS(PURE);
801 * IDirect3DRMTexture methods
803 STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
804 STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
805 STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
806 STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
808 STDMETHOD(SetColors)(THIS_ DWORD) PURE;
809 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
810 STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
811 STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
812 STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
813 STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
814 STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
816 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
817 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
819 STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
820 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
821 STDMETHOD_(DWORD, GetColors)(THIS) PURE;
822 STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
823 STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
824 STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
828 #define INTERFACE IDirect3DRMTexture2
830 DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
832 IUNKNOWN_METHODS(PURE);
833 IDIRECT3DRMOBJECT_METHODS(PURE);
836 * IDirect3DRMTexture methods
838 STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
839 STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
840 STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
841 STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
843 STDMETHOD(SetColors)(THIS_ DWORD) PURE;
844 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
845 STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
846 STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
847 STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
848 STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
849 STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
851 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
852 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
854 STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
855 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
856 STDMETHOD_(DWORD, GetColors)(THIS) PURE;
857 STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
858 STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
859 STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
862 * IDirect3DRMTexture2 methods
864 STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
865 STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
866 STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
870 #define INTERFACE IDirect3DRMWrap
872 DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
874 IUNKNOWN_METHODS(PURE);
875 IDIRECT3DRMOBJECT_METHODS(PURE);
878 * IDirect3DRMWrap methods
881 ( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME ref,
882 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
883 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
884 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
885 D3DVALUE ou, D3DVALUE ov,
886 D3DVALUE su, D3DVALUE sv
888 STDMETHOD(Apply)(THIS_ LPDIRECT3DRMOBJECT) PURE;
889 STDMETHOD(ApplyRelative)(THIS_ LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT) PURE;
893 #define INTERFACE IDirect3DRMMaterial
895 DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
897 IUNKNOWN_METHODS(PURE);
898 IDIRECT3DRMOBJECT_METHODS(PURE);
901 * IDirect3DRMMaterial methods
903 STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
904 STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
905 STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
907 STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
908 STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
909 STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
913 #define INTERFACE IDirect3DRMAnimation
915 DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
917 IUNKNOWN_METHODS(PURE);
918 IDIRECT3DRMOBJECT_METHODS(PURE);
921 * IDirect3DRMAnimation methods
923 STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
924 STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
925 STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
926 STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
927 STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
928 STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME frame) PURE;
929 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
931 STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
935 #define INTERFACE IDirect3DRMAnimationSet
937 DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
939 IUNKNOWN_METHODS(PURE);
940 IDIRECT3DRMOBJECT_METHODS(PURE);
943 * IDirect3DRMAnimationSet methods
945 STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
946 STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME parent)PURE;
947 STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
948 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
952 #define INTERFACE IDirect3DRMUserVisual
954 DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
956 IUNKNOWN_METHODS(PURE);
957 IDIRECT3DRMOBJECT_METHODS(PURE);
960 * IDirect3DRMUserVisual methods
962 STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
966 #define INTERFACE IDirect3DRMArray
968 DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
970 IUNKNOWN_METHODS(PURE);
972 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
973 /* No GetElement method as it would get overloaded
974 * in derived classes, and overloading is
980 #define INTERFACE IDirect3DRMObjectArray
982 DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
984 IUNKNOWN_METHODS(PURE);
986 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
987 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMOBJECT *) PURE;
991 #define INTERFACE IDirect3DRMDeviceArray
993 DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
995 IUNKNOWN_METHODS(PURE);
997 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
998 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMDEVICE *) PURE;
1002 #define INTERFACE IDirect3DRMFrameArray
1004 DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
1006 IUNKNOWN_METHODS(PURE);
1008 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1009 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFRAME *) PURE;
1013 #define INTERFACE IDirect3DRMViewportArray
1015 DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
1017 IUNKNOWN_METHODS(PURE);
1019 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1020 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVIEWPORT *) PURE;
1024 #define INTERFACE IDirect3DRMVisualArray
1026 DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
1028 IUNKNOWN_METHODS(PURE);
1030 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1031 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *) PURE;
1035 #define INTERFACE IDirect3DRMPickedArray
1037 DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
1039 IUNKNOWN_METHODS(PURE);
1041 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1042 STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC) PURE;
1046 #define INTERFACE IDirect3DRMLightArray
1048 DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
1050 IUNKNOWN_METHODS(PURE);
1052 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1053 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMLIGHT *) PURE;
1057 #define INTERFACE IDirect3DRMFaceArray
1059 DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
1061 IUNKNOWN_METHODS(PURE);
1063 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1064 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFACE *) PURE;
1068 #define INTERFACE IDirect3DRMPicked2Array
1070 DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
1072 IUNKNOWN_METHODS(PURE);
1074 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1075 STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC2) PURE;
1079 #define INTERFACE IDirect3DRMInterpolator
1081 DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
1083 IUNKNOWN_METHODS(PURE);
1084 IDIRECT3DRMOBJECT_METHODS(PURE);
1087 * IDirect3DRMInterpolator methods
1089 STDMETHOD(AttachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
1090 STDMETHOD(GetAttachedObjects)(THIS_ LPDIRECT3DRMOBJECTARRAY *) PURE;
1091 STDMETHOD(DetachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
1092 STDMETHOD(SetIndex)(THIS_ D3DVALUE) PURE;
1093 STDMETHOD_(D3DVALUE, GetIndex)(THIS) PURE;
1094 STDMETHOD(Interpolate)(THIS_ D3DVALUE, LPDIRECT3DRMOBJECT, D3DRMINTERPOLATIONOPTIONS) PURE;
1100 #endif /* _D3DRMOBJ_H_ */