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