DirectX 5 Redocumentation
A redocumentation of DirectX 5, brought to you by a bunch of Infomaniacs.
d3drmobj.h
Go to the documentation of this file.
1/*==========================================================================;
2 *
3 * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
4 *
5 * File: d3drm.h
6 * Content: Direct3DRM include file
7 *
8 ***************************************************************************/
9
10#ifndef _D3DRMOBJ_H_
11#define _D3DRMOBJ_H_
12
13#include <objbase.h> /* Use Windows header files */
14#define VIRTUAL
15
16#include "d3drmdef.h"
17#include "d3d.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/*
24 * The methods for IUnknown
25 */
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
30
31/*
32 * The methods for IDirect3DRMObject
33 */
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
43
44
45#define WIN_TYPES(itype, ptype) \
46 typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
47
48WIN_TYPES(IDirect3DRMObject, DIRECT3DRMOBJECT);
49WIN_TYPES(IDirect3DRMDevice, DIRECT3DRMDEVICE);
50WIN_TYPES(IDirect3DRMDevice2, DIRECT3DRMDEVICE2);
51WIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
52WIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
53WIN_TYPES(IDirect3DRMFrame2, DIRECT3DRMFRAME2);
54WIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
55WIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
56WIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
57WIN_TYPES(IDirect3DRMMeshBuilder2, DIRECT3DRMMESHBUILDER2);
58WIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
59WIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
60WIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
61WIN_TYPES(IDirect3DRMTexture2, DIRECT3DRMTEXTURE2);
62WIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
63WIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
64WIN_TYPES(IDirect3DRMInterpolator, DIRECT3DRMINTERPOLATOR);
65WIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
66WIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
67WIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
68WIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
69WIN_TYPES(IDirect3DRMArray, DIRECT3DRMARRAY);
70WIN_TYPES(IDirect3DRMObjectArray, DIRECT3DRMOBJECTARRAY);
71WIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
72WIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
73WIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
74WIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
75WIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
76WIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
77WIN_TYPES(IDirect3DRMPicked2Array, DIRECT3DRMPICKED2ARRAY);
78WIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
79WIN_TYPES(IDirect3DRMProgressiveMesh, DIRECT3DRMPROGRESSIVEMESH);
80
81/*
82 * Direct3DRM Object classes
83 */
84DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
85DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
86DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
87DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
88DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
89DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
90DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
91DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
92DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
93DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
94DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
95DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
96DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
97DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
98DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,
990xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
100DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,
1010xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
102DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,
1030xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
104DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,
1050xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
106DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,
1070xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
108DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,
1090xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
110DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
111
112
113/*
114 * Direct3DRM Object interfaces
115 */
116DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
117DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
118DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
119DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
120DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
121DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x0, 0x0, 0xc0, 0x29, 0x1a, 0xc3);
122DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
123DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
124DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
125DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
126DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
127DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
128DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
129DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b);
130DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
131DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
132DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
133DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
134DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
135DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
136DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
137DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
138DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
139DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
140DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
141DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
142DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
143DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
144DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
145DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
146DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
147
148
149typedef void (CDECL *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
150typedef void (CDECL *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
151typedef void (CDECL *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
152typedef int (CDECL *D3DRMUSERVISUALCALLBACK)
153 ( LPDIRECT3DRMUSERVISUAL obj, LPVOID arg, D3DRMUSERVISUALREASON reason,
154 LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view
155 );
157 (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
158typedef void (CDECL *D3DRMLOADCALLBACK)
159 (LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
160
161
162typedef struct _D3DRMPICKDESC
163{
167
169
170typedef struct _D3DRMPICKDESC2
171{
179
181
182#undef INTERFACE
183#define INTERFACE IDirect3DRMObject
184
185/*
186 * Base class
187 */
188DECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
189{
190 IUNKNOWN_METHODS(PURE);
192};
193
194#undef INTERFACE
195#define INTERFACE IDirect3DRMVisual
196
197DECLARE_INTERFACE_(IDirect3DRMVisual, IDirect3DRMObject)
198{
199 IUNKNOWN_METHODS(PURE);
201};
202
203#undef INTERFACE
204#define INTERFACE IDirect3DRMDevice
205
206DECLARE_INTERFACE_(IDirect3DRMDevice, IDirect3DRMObject)
207{
208 IUNKNOWN_METHODS(PURE);
210
211 /*
212 * IDirect3DRMDevice methods
213 */
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;
217
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;
223
224 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
225 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
226 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
227 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
228
229 STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
230
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;
241};
242
243#undef INTERFACE
244#define INTERFACE IDirect3DRMDevice2
245
246DECLARE_INTERFACE_(IDirect3DRMDevice2, IDirect3DRMDevice)
247{
248 IUNKNOWN_METHODS(PURE);
250
251 /*
252 * IDirect3DRMDevice methods
253 */
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;
257
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;
263
264 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
265 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
266 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
267 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
268
269 STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
270
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;
281
282 /*
283 * IDirect3DRMDevice2 methods
284 */
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;
290};
291
292#undef INTERFACE
293#define INTERFACE IDirect3DRMViewport
294
295DECLARE_INTERFACE_(IDirect3DRMViewport, IDirect3DRMObject)
296{
297 IUNKNOWN_METHODS(PURE);
299
300 /*
301 * IDirect3DRMViewport methods
302 */
303 STDMETHOD(Init)
304 ( THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera,
305 DWORD xpos, DWORD ypos, DWORD width, DWORD height
306 ) PURE;
307 STDMETHOD(Clear)(THIS) PURE;
308 STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
309
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;
321
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;
326
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;
337};
338
339#undef INTERFACE
340#define INTERFACE IDirect3DRMFrame
341
342DECLARE_INTERFACE_(IDirect3DRMFrame, IDirect3DRMVisual)
343{
344 IUNKNOWN_METHODS(PURE);
346
347 /*
348 * IDirect3DRMFrame methods
349 */
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
403 ) PURE;
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;
412};
413
414#undef INTERFACE
415#define INTERFACE IDirect3DRMFrame2
416
417DECLARE_INTERFACE_(IDirect3DRMFrame2, IDirect3DRMFrame)
418{
419 IUNKNOWN_METHODS(PURE);
421
422 /*
423 * IDirect3DRMFrame methods
424 */
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
478 ) PURE;
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;
487
488 /*
489 * IDirect3DRMFrame2 methods
490 */
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;
498
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;
506
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);
510};
511
512#undef INTERFACE
513#define INTERFACE IDirect3DRMMesh
514
515DECLARE_INTERFACE_(IDirect3DRMMesh, IDirect3DRMVisual)
516{
517 IUNKNOWN_METHODS(PURE);
519
520 /*
521 * IDirect3DRMMesh methods
522 */
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;
534
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;
543};
544
545#undef INTERFACE
546#define INTERFACE IDirect3DRMProgressiveMesh
547
548DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh, IDirect3DRMVisual)
549{
550 IUNKNOWN_METHODS(PURE);
552
553 /*
554 * IDirect3DRMProgressiveMesh methods
555 */
556 STDMETHOD(Load) (THIS_ LPVOID lpObjLocation, LPVOID lpObjId,
557 D3DRMLOADOPTIONS dloLoadflags, D3DRMLOADTEXTURECALLBACK lpCallback,
558 LPVOID lpArg) PURE;
559 STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS lpStatus) PURE;
560 STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
561 STDMETHOD(Abort) (THIS_ DWORD dwFlags) PURE;
562
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;
571
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;
578};
579
580#undef INTERFACE
581#define INTERFACE IDirect3DRMShadow
582
583DECLARE_INTERFACE_(IDirect3DRMShadow, IDirect3DRMVisual)
584{
585 IUNKNOWN_METHODS(PURE);
587
588 /*
589 * IDirect3DRMShadow methods
590 */
591 STDMETHOD(Init)
592 ( THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
593 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
594 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
595 ) PURE;
596};
597
598#undef INTERFACE
599#define INTERFACE IDirect3DRMFace
600
601DECLARE_INTERFACE_(IDirect3DRMFace, IDirect3DRMObject)
602{
603 IUNKNOWN_METHODS(PURE);
605
606 /*
607 * IDirect3DRMFace methods
608 */
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;
617
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;
625
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;
630};
631
632#undef INTERFACE
633#define INTERFACE IDirect3DRMMeshBuilder
634
635DECLARE_INTERFACE_(IDirect3DRMMeshBuilder, IDirect3DRMVisual)
636{
637 IUNKNOWN_METHODS(PURE);
639
640 /*
641 * IDirect3DRMMeshBuilder methods
642 */
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;
651
652 STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
653 STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
654 STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
655 STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
656 STDMETHOD(AddFaces)
657 ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
658 DWORD *data, LPDIRECT3DRMFACEARRAY*
659 ) PURE;
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;
673
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
677 ) PURE;
678 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
679
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;
688
689 STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
690};
691
692#undef INTERFACE
693#define INTERFACE IDirect3DRMMeshBuilder2
694
695DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2, IDirect3DRMMeshBuilder)
696{
697 IUNKNOWN_METHODS(PURE);
699
700 /*
701 * IDirect3DRMMeshBuilder methods
702 */
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;
711
712 STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
713 STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
714 STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
715 STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
716 STDMETHOD(AddFaces)
717 ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
718 DWORD *data, LPDIRECT3DRMFACEARRAY*
719 ) PURE;
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;
733
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
737 ) PURE;
738 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
739
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;
748
749 STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
750
751 /*
752 * IDirect3DRMMeshBuilder2 methods
753 */
754 STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
755 STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
756};
757
758#undef INTERFACE
759#define INTERFACE IDirect3DRMLight
760
761DECLARE_INTERFACE_(IDirect3DRMLight, IDirect3DRMObject)
762{
763 IUNKNOWN_METHODS(PURE);
765
766 /*
767 * IDirect3DRMLight methods
768 */
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;
778
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;
787
788 STDMETHOD(SetEnableFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
789 STDMETHOD(GetEnableFrame)(THIS_ LPDIRECT3DRMFRAME*) PURE;
790};
791
792#undef INTERFACE
793#define INTERFACE IDirect3DRMTexture
794
795DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
796{
797 IUNKNOWN_METHODS(PURE);
799
800 /*
801 * IDirect3DRMTexture methods
802 */
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;
807
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;
815
816 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
817 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
818
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;
825};
826
827#undef INTERFACE
828#define INTERFACE IDirect3DRMTexture2
829
830DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
831{
832 IUNKNOWN_METHODS(PURE);
834
835 /*
836 * IDirect3DRMTexture methods
837 */
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;
842
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;
850
851 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
852 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
853
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;
860
861 /*
862 * IDirect3DRMTexture2 methods
863 */
864 STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
865 STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
866 STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
867};
868
869#undef INTERFACE
870#define INTERFACE IDirect3DRMWrap
871
872DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
873{
874 IUNKNOWN_METHODS(PURE);
876
877 /*
878 * IDirect3DRMWrap methods
879 */
880 STDMETHOD(Init)
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
887 ) PURE;
888 STDMETHOD(Apply)(THIS_ LPDIRECT3DRMOBJECT) PURE;
889 STDMETHOD(ApplyRelative)(THIS_ LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT) PURE;
890};
891
892#undef INTERFACE
893#define INTERFACE IDirect3DRMMaterial
894
895DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
896{
897 IUNKNOWN_METHODS(PURE);
899
900 /*
901 * IDirect3DRMMaterial methods
902 */
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;
906
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;
910};
911
912#undef INTERFACE
913#define INTERFACE IDirect3DRMAnimation
914
915DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
916{
917 IUNKNOWN_METHODS(PURE);
919
920 /*
921 * IDirect3DRMAnimation methods
922 */
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;
930
931 STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
932};
933
934#undef INTERFACE
935#define INTERFACE IDirect3DRMAnimationSet
936
937DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
938{
939 IUNKNOWN_METHODS(PURE);
941
942 /*
943 * IDirect3DRMAnimationSet methods
944 */
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;
949};
950
951#undef INTERFACE
952#define INTERFACE IDirect3DRMUserVisual
953
954DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
955{
956 IUNKNOWN_METHODS(PURE);
958
959 /*
960 * IDirect3DRMUserVisual methods
961 */
962 STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
963};
964
965#undef INTERFACE
966#define INTERFACE IDirect3DRMArray
967
968DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
969{
970 IUNKNOWN_METHODS(PURE);
971
972 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
973 /* No GetElement method as it would get overloaded
974 * in derived classes, and overloading is
975 * a no-no in COM
976 */
977};
978
979#undef INTERFACE
980#define INTERFACE IDirect3DRMObjectArray
981
982DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
983{
984 IUNKNOWN_METHODS(PURE);
985
986 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
987 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMOBJECT *) PURE;
988};
989
990#undef INTERFACE
991#define INTERFACE IDirect3DRMDeviceArray
992
993DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
994{
995 IUNKNOWN_METHODS(PURE);
996
997 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
998 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMDEVICE *) PURE;
999};
1000
1001#undef INTERFACE
1002#define INTERFACE IDirect3DRMFrameArray
1003
1004DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
1005{
1006 IUNKNOWN_METHODS(PURE);
1007
1008 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1009 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFRAME *) PURE;
1010};
1011
1012#undef INTERFACE
1013#define INTERFACE IDirect3DRMViewportArray
1014
1015DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
1016{
1017 IUNKNOWN_METHODS(PURE);
1018
1019 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1020 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVIEWPORT *) PURE;
1021};
1022
1023#undef INTERFACE
1024#define INTERFACE IDirect3DRMVisualArray
1025
1026DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
1027{
1028 IUNKNOWN_METHODS(PURE);
1029
1030 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1031 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *) PURE;
1032};
1033
1034#undef INTERFACE
1035#define INTERFACE IDirect3DRMPickedArray
1036
1037DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
1038{
1039 IUNKNOWN_METHODS(PURE);
1040
1041 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1042 STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC) PURE;
1043};
1044
1045#undef INTERFACE
1046#define INTERFACE IDirect3DRMLightArray
1047
1048DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
1049{
1050 IUNKNOWN_METHODS(PURE);
1051
1052 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1053 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMLIGHT *) PURE;
1054};
1055
1056#undef INTERFACE
1057#define INTERFACE IDirect3DRMFaceArray
1058
1059DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
1060{
1061 IUNKNOWN_METHODS(PURE);
1062
1063 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1064 STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFACE *) PURE;
1065};
1066
1067#undef INTERFACE
1068#define INTERFACE IDirect3DRMPicked2Array
1069
1070DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
1071{
1072 IUNKNOWN_METHODS(PURE);
1073
1074 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1075 STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC2) PURE;
1076};
1077
1078#undef INTERFACE
1079#define INTERFACE IDirect3DRMInterpolator
1080
1081DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
1082{
1083 IUNKNOWN_METHODS(PURE);
1085
1086 /*
1087 * IDirect3DRMInterpolator methods
1088 */
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;
1095};
1096
1097#ifdef __cplusplus
1098};
1099#endif
1100#endif /* _D3DRMOBJ_H_ */
struct IDirect3D * LPDIRECT3D
Definition: d3d.h:85
struct IDirect3DDevice2 * LPDIRECT3DDEVICE2
Definition: d3d.h:88
struct IDirect3DDevice * LPDIRECT3DDEVICE
Definition: d3d.h:87
struct IDirect3DViewport * LPDIRECT3DVIEWPORT
Definition: d3d.h:95
struct IDirect3D2 * LPDIRECT3D2
Definition: d3d.h:86
LPSTR LPSTR LPVOID
Definition: d3dcaps.h:213
DWORD D3DRMANIMATIONOPTIONS
Definition: d3drmdef.h:250
struct _D3DRMIMAGE * LPD3DRMIMAGE
enum _D3DRMMATERIALMODE D3DRMMATERIALMODE
DWORD D3DRMINTERPOLATIONOPTIONS
Definition: d3drmdef.h:258
enum _D3DRMWRAPTYPE D3DRMWRAPTYPE
DWORD * LPD3DRMRENDERQUALITY
Definition: d3drmdef.h:88
D3DVALUE D3DRMMATRIX4D[4][4]
Definition: d3drmdef.h:35
enum _D3DRMLIGHTTYPE D3DRMLIGHTTYPE
enum _D3DRMZBUFFERMODE D3DRMZBUFFERMODE
DWORD D3DRMMAPPING
Definition: d3drmdef.h:322
DWORD D3DRMSAVEOPTIONS
Definition: d3drmdef.h:184
DWORD D3DRMLOADOPTIONS
Definition: d3drmdef.h:267
enum _D3DRMFOGMODE D3DRMFOGMODE
enum _D3DRMFRAMECONSTRAINT D3DRMFRAMECONSTRAINT
enum _D3DRMUSERVISUALREASON D3DRMUSERVISUALREASON
DWORD D3DRMRENDERQUALITY
Definition: d3drmdef.h:88
enum _D3DRMPROJECTIONTYPE D3DRMPROJECTIONTYPE
enum _D3DRMCOMBINETYPE D3DRMCOMBINETYPE
struct _D3DRMBOX * LPD3DRMBOX
enum _D3DRMSORTMODE D3DRMSORTMODE
enum _D3DRMTEXTUREQUALITY D3DRMTEXTUREQUALITY
enum _D3DRMXOFFORMAT D3DRMXOFFORMAT
enum _D3DRMCOLORSOURCE D3DRMCOLORSOURCE
LONG D3DRMGROUPINDEX
Definition: d3drmdef.h:334
void(CDECL * D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT)
Definition: d3drmobj.h:151
#define IUNKNOWN_METHODS(kind)
Definition: d3drmobj.h:26
void(CDECL * D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta)
Definition: d3drmobj.h:150
#define WIN_TYPES(itype, ptype)
Definition: d3drmobj.h:45
struct _D3DRMPICKDESC2 * LPD3DRMPICKDESC2
void(CDECL * D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg)
Definition: d3drmobj.h:149
struct _D3DRMPICKDESC2 D3DRMPICKDESC2
DECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
Definition: d3drmobj.h:188
HRESULT(CDECL * D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *)
Definition: d3drmobj.h:157
void(CDECL * D3DRMLOADCALLBACK)(LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg)
Definition: d3drmobj.h:159
struct _D3DRMPICKDESC D3DRMPICKDESC
int(CDECL * D3DRMUSERVISUALCALLBACK)(LPDIRECT3DRMUSERVISUAL obj, LPVOID arg, D3DRMUSERVISUALREASON reason, LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view)
Definition: d3drmobj.h:153
struct _D3DRMPICKDESC * LPD3DRMPICKDESC
DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1)
#define IDIRECT3DRMOBJECT_METHODS(kind)
Definition: d3drmobj.h:34
float D3DVALUE
Definition: d3dtypes.h:28
float * LPD3DVALUE
Definition: d3dtypes.h:28
DWORD D3DCOLOR
Definition: d3dtypes.h:103
DWORD D3DCOLORMODEL
Definition: d3dtypes.h:684
struct _D3DRECT * LPD3DRECT
#define IUnknown
Definition: ddraw.h:28
struct IDirectDrawClipper FAR * LPDIRECTDRAWCLIPPER
Definition: ddraw.h:79
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE
Definition: ddraw.h:74
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
long HRESULT
Definition: ddraw.h:115
struct IDirectDraw FAR * LPDIRECTDRAW
Definition: ddraw.h:72
typedef BOOL(FAR PASCAL *LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA
LPDWORD DWORD dwFlags
Definition: dplay.h:417
Definition: d3drmdef.h:48
Definition: d3drmdef.h:130
Definition: d3drmobj.h:171
D3DVALUE tv
Definition: d3drmobj.h:176
D3DVECTOR dvPosition
Definition: d3drmobj.h:174
D3DVECTOR dvNormal
Definition: d3drmobj.h:177
LONG lGroupIdx
Definition: d3drmobj.h:173
D3DVALUE tu
Definition: d3drmobj.h:175
ULONG ulFaceIdx
Definition: d3drmobj.h:172
D3DCOLOR dcColor
Definition: d3drmobj.h:178
Definition: d3drmobj.h:163
ULONG ulFaceIdx
Definition: d3drmobj.h:164
D3DVECTOR vPosition
Definition: d3drmobj.h:166
LONG lGroupIdx
Definition: d3drmobj.h:165
Definition: d3drmdef.h:305
Definition: d3drmdef.h:38
Definition: d3drmdef.h:43
Definition: d3drmdef.h:32
Definition: d3drmdef.h:328
Definition: d3dtypes.h:147