ReactOS  0.4.13-dev-259-g5ca9c9c
d3drmobj.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008 Vijay Kiran Kamuju
3  * Copyright (C) 2010 Christian Costa
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 #ifndef __D3DRMOBJ_H__
21 #define __D3DRMOBJ_H__
22 
23 #include <objbase.h>
24 #define VIRTUAL
25 #include <d3drmdef.h>
26 #include <d3d.h>
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /* Direct3DRM object CLSIDs */
33 
34 DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
35 DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
36 DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
37 DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
38 DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
39 DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
40 DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
41 DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
42 DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
43 DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
44 DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
45 DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
46 DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
47 DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
48 DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator, 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
49 DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator, 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
50 DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator, 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
51 DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator, 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
52 DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator, 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
53 DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator, 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
54 DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
55 DEFINE_GUID(CLSID_CDirect3DRMClippedVisual, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
56 
57 /* Direct3DRM object interface GUIDs */
58 
59 DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
60 DEFINE_GUID(IID_IDirect3DRMObject2, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
61 DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
62 DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
63 DEFINE_GUID(IID_IDirect3DRMDevice3, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
64 DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
65 DEFINE_GUID(IID_IDirect3DRMViewport2, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
66 DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
67 DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x00, 0x00, 0xc0, 0x29, 0x1a, 0xc3);
68 DEFINE_GUID(IID_IDirect3DRMFrame3, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
69 DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
70 DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
71 DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
72 DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
73 DEFINE_GUID(IID_IDirect3DRMMeshBuilder3, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
74 DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
75 DEFINE_GUID(IID_IDirect3DRMFace2, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
76 DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
77 DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
78 DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b);
79 DEFINE_GUID(IID_IDirect3DRMTexture3, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
80 DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
81 DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
82 DEFINE_GUID(IID_IDirect3DRMMaterial2, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
83 DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
84 DEFINE_GUID(IID_IDirect3DRMAnimation2, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
85 DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
86 DEFINE_GUID(IID_IDirect3DRMAnimationSet2, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
87 DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
88 DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
89 DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
90 DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
91 DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
92 DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
93 DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
94 DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
95 DEFINE_GUID(IID_IDirect3DRMAnimationArray, 0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x00, 0x60, 0x08, 0x3e, 0x45, 0xf3);
96 DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
97 DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
98 DEFINE_GUID(IID_IDirect3DRMShadow2, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0x0b, 0x00, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
99 DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
100 DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
101 DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
102 DEFINE_GUID(IID_IDirect3DRMClippedVisual, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0x0b, 0x00, 0x00, 0xf8, 0x75, 0x86, 0x5a);
103 
104 /*****************************************************************************
105  * Predeclare the interfaces
106  */
107 
108 typedef struct IDirect3DRMObject *LPDIRECT3DRMOBJECT, **LPLPDIRECT3DRMOBJECT;
109 typedef struct IDirect3DRMObject2 *LPDIRECT3DRMOBJECT2, **LPLPDIRECT3DRMOBJECT2;
110 typedef struct IDirect3DRMDevice *LPDIRECT3DRMDEVICE, **LPLPDIRECT3DRMDEVICE;
111 typedef struct IDirect3DRMDevice2 *LPDIRECT3DRMDEVICE2, **LPLPDIRECT3DRMDEVICE2;
112 typedef struct IDirect3DRMDevice3 *LPDIRECT3DRMDEVICE3, **LPLPDIRECT3DRMDEVICE3;
113 typedef struct IDirect3DRMViewport *LPDIRECT3DRMVIEWPORT, **LPLPDIRECT3DRMVIEWPORT;
114 typedef struct IDirect3DRMViewport2 *LPDIRECT3DRMVIEWPORT2, **LPLPDIRECT3DRMVIEWPORT2;
115 typedef struct IDirect3DRMFrame *LPDIRECT3DRMFRAME, **LPLPDIRECT3DRMFRAME;
116 typedef struct IDirect3DRMFrame2 *LPDIRECT3DRMFRAME2, **LPLPDIRECT3DRMFRAME2;
117 typedef struct IDirect3DRMFrame3 *LPDIRECT3DRMFRAME3, **LPLPDIRECT3DRMFRAME3;
118 typedef struct IDirect3DRMVisual *LPDIRECT3DRMVISUAL, **LPLPDIRECT3DRMVISUAL;
119 typedef struct IDirect3DRMMesh *LPDIRECT3DRMMESH, **LPLPDIRECT3DRMMESH;
120 typedef struct IDirect3DRMMeshBuilder *LPDIRECT3DRMMESHBUILDER, **LPLPDIRECT3DRMMESHBUILDER;
121 typedef struct IDirect3DRMMeshBuilder2 *LPDIRECT3DRMMESHBUILDER2, **LPLPDIRECT3DRMMESHBUILDER2;
122 typedef struct IDirect3DRMMeshBuilder3 *LPDIRECT3DRMMESHBUILDER3, **LPLPDIRECT3DRMMESHBUILDER3;
123 typedef struct IDirect3DRMFace *LPDIRECT3DRMFACE, **LPLPDIRECT3DRMFACE;
124 typedef struct IDirect3DRMFace2 *LPDIRECT3DRMFACE2, **LPLPDIRECT3DRMFACE2;
125 typedef struct IDirect3DRMLight *LPDIRECT3DRMLIGHT, **LPLPDIRECT3DRMLIGHT;
126 typedef struct IDirect3DRMTexture *LPDIRECT3DRMTEXTURE, **LPLPDIRECT3DRMTEXTURE;
127 typedef struct IDirect3DRMTexture2 *LPDIRECT3DRMTEXTURE2, **LPLPDIRECT3DRMTEXTURE2;
128 typedef struct IDirect3DRMTexture3 *LPDIRECT3DRMTEXTURE3, **LPLPDIRECT3DRMTEXTURE3;
129 typedef struct IDirect3DRMWrap *LPDIRECT3DRMWRAP, **LPLPDIRECT3DRMWRAP;
130 typedef struct IDirect3DRMMaterial *LPDIRECT3DRMMATERIAL, **LPLPDIRECT3DRMMATERIAL;
131 typedef struct IDirect3DRMMaterial2 *LPDIRECT3DRMMATERIAL2, **LPLPDIRECT3DRMMATERIAL2;
132 typedef struct IDirect3DRMAnimation *LPDIRECT3DRMANIMATION, **LPLPDIRECT3DRMANIMATION;
133 typedef struct IDirect3DRMAnimation2 *LPDIRECT3DRMANIMATION2, **LPLPDIRECT3DRMANIMATION2;
134 typedef struct IDirect3DRMAnimationSet *LPDIRECT3DRMANIMATIONSET, **LPLPDIRECT3DRMANIMATIONSET;
135 typedef struct IDirect3DRMAnimationSet2 *LPDIRECT3DRMANIMATIONSET2, **LPLPDIRECT3DRMANIMATIONSET2;
136 typedef struct IDirect3DRMUserVisual *LPDIRECT3DRMUSERVISUAL, **LPLPDIRECT3DRMUSERVISUAL;
137 typedef struct IDirect3DRMShadow *LPDIRECT3DRMSHADOW, **LPLPDIRECT3DRMSHADOW;
138 typedef struct IDirect3DRMShadow2 *LPDIRECT3DRMSHADOW2, **LPLPDIRECT3DRMSHADOW2;
139 typedef struct IDirect3DRMArray *LPDIRECT3DRMARRAY, **LPLPDIRECT3DRMARRAY;
140 typedef struct IDirect3DRMObjectArray *LPDIRECT3DRMOBJECTARRAY, **LPLPDIRECT3DRMOBJECTARRAY;
141 typedef struct IDirect3DRMDeviceArray *LPDIRECT3DRMDEVICEARRAY, **LPLPDIRECT3DRMDEVICEARRAY;
142 typedef struct IDirect3DRMFaceArray *LPDIRECT3DRMFACEARRAY, **LPLPDIRECT3DRMFACEARRAY;
143 typedef struct IDirect3DRMViewportArray *LPDIRECT3DRMVIEWPORTARRAY, **LPLPDIRECT3DRMVIEWPORTARRAY;
144 typedef struct IDirect3DRMFrameArray *LPDIRECT3DRMFRAMEARRAY, **LPLPDIRECT3DRMFRAMEARRAY;
145 typedef struct IDirect3DRMAnimationArray *LPDIRECT3DRMANIMATIONARRAY, **LPLPDIRECT3DRMANIMATIONARRAY;
146 typedef struct IDirect3DRMVisualArray *LPDIRECT3DRMVISUALARRAY, **LPLPDIRECT3DRMVISUALARRAY;
147 typedef struct IDirect3DRMPickedArray *LPDIRECT3DRMPICKEDARRAY, **LPLPDIRECT3DRMPICKEDARRAY;
148 typedef struct IDirect3DRMPicked2Array *LPDIRECT3DRMPICKED2ARRAY, **LPLPDIRECT3DRMPICKED2ARRAY;
149 typedef struct IDirect3DRMLightArray *LPDIRECT3DRMLIGHTARRAY, **LPLPDIRECT3DRMLIGHTARRAY;
150 typedef struct IDirect3DRMProgressiveMesh *LPDIRECT3DRMPROGRESSIVEMESH, **LPLPDIRECT3DRMPROGRESSIVEMESH;
151 typedef struct IDirect3DRMClippedVisual *LPDIRECT3DRMCLIPPEDVISUAL, **LPLPDIRECT3DRMCLIPPEDVISUAL;
152 
153 /* ********************************************************************
154  Types and structures
155  ******************************************************************** */
156 
157 typedef void (__cdecl *D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg);
158 typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(struct IDirect3DRMFrame *frame, void *ctx, D3DVALUE delta);
159 typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(struct IDirect3DRMFrame3 *frame, void *ctx, D3DVALUE delta);
160 typedef void (__cdecl *D3DRMUPDATECALLBACK)(struct IDirect3DRMDevice *device, void *ctx, int count, D3DRECT *rects);
161 typedef void (__cdecl *D3DRMDEVICE3UPDATECALLBACK)(struct IDirect3DRMDevice3 *device, void *ctx,
162  int count, D3DRECT *rects);
163 typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)(struct IDirect3DRMUserVisual *visual, void *ctx,
164  D3DRMUSERVISUALREASON reason, struct IDirect3DRMDevice *device, struct IDirect3DRMViewport *viewport);
165 typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture **texture);
166 typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture3 **texture);
167 typedef void (__cdecl *D3DRMLOADCALLBACK)(struct IDirect3DRMObject *object, REFIID objectguid, void *arg);
168 typedef HRESULT (__cdecl *D3DRMDOWNSAMPLECALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
169  IDirectDrawSurface *src_surface, IDirectDrawSurface *dst_surface);
170 typedef HRESULT (__cdecl *D3DRMVALIDATIONCALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
171  DWORD flags, DWORD rect_count, RECT *rects);
172 
173 typedef struct _D3DRMPICKDESC
174 {
179 
180 typedef struct _D3DRMPICKDESC2
181 {
190 
191 /*****************************************************************************
192  * IDirect3DRMObject interface
193  */
194 #ifdef WINE_NO_UNICODE_MACROS
195 #undef GetClassName
196 #endif
197 #define INTERFACE IDirect3DRMObject
198 DECLARE_INTERFACE_(IDirect3DRMObject,IUnknown)
199 {
200  /*** IUnknown methods ***/
204  /*** IDirect3DRMObject methods ***/
205  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
206  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
207  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
208  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
209  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
210  STDMETHOD(SetName)(THIS_ const char *name) PURE;
213 };
214 #undef INTERFACE
215 
216 #if !defined(__cplusplus) || defined(CINTERFACE)
217 /*** IUnknown methods ***/
218 #define IDirect3DRMObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
219 #define IDirect3DRMObject_AddRef(p) (p)->lpVtbl->AddRef(p)
220 #define IDirect3DRMObject_Release(p) (p)->lpVtbl->Release(p)
221 /*** IDirect3DRMObject methods ***/
222 #define IDirect3DRMObject_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
223 #define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
224 #define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
225 #define IDirect3DRMObject_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
226 #define IDirect3DRMObject_GetAppData(p) (p)->lpVtbl->GetAppData(p)
227 #define IDirect3DRMObject_SetName(p,a) (p)->lpVtbl->SetName(p,a)
228 #define IDirect3DRMObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
229 #define IDirect3DRMObject_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
230 #else
231 /*** IUnknown methods ***/
232 #define IDirect3DRMObject_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
233 #define IDirect3DRMObject_AddRef(p) (p)->AddRef()
234 #define IDirect3DRMObject_Release(p) (p)->Release()
235 /*** IDirect3DRMObject methods ***/
236 #define IDirect3DRMObject_Clone(p,a,b,c) (p)->Clone(a,b,c)
237 #define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
238 #define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
239 #define IDirect3DRMObject_SetAppData(p,a) (p)->SetAppData(a)
240 #define IDirect3DRMObject_GetAppData(p) (p)->GetAppData()
241 #define IDirect3DRMObject_SetName(p,a) (p)->SetName(a)
242 #define IDirect3DRMObject_GetName(p,a,b) (p)->GetName(a,b)
243 #define IDirect3DRMObject_GetClassName(p,a,b) (p)->GetClassName(a,b)
244 #endif
245 
246 /*****************************************************************************
247  * IDirect3DRMObject2 interface
248  */
249 #ifdef WINE_NO_UNICODE_MACROS
250 #undef GetClassName
251 #endif
252 #define INTERFACE IDirect3DRMObject2
253 DECLARE_INTERFACE_(IDirect3DRMObject2,IUnknown)
254 {
255  /*** IUnknown methods ***/
259  /*** IDirect3DRMObject2 methods ***/
260  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
261  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
262  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
263  STDMETHOD(GetClientData)(THIS_ DWORD id, void **data) PURE;
264  STDMETHOD(GetDirect3DRM)(THIS_ struct IDirect3DRM **d3drm) PURE;
266  STDMETHOD(SetClientData)(THIS_ DWORD id, void *data, DWORD flags) PURE;
267  STDMETHOD(SetName)(THIS_ const char *name) PURE;
268  STDMETHOD(GetAge)(THIS_ DWORD flags, DWORD *age) PURE;
269 };
270 #undef INTERFACE
271 
272 #if !defined(__cplusplus) || defined(CINTERFACE)
273 /*** IUnknown methods ***/
274 #define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
275 #define IDirect3DRMObject2_AddRef(p) (p)->lpVtbl->AddRef(p)
276 #define IDirect3DRMObject2_Release(p) (p)->lpVtbl->Release(p)
277 /*** IDirect3DRMObject2 methods ***/
278 #define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
279 #define IDirect3DRMObject2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
280 #define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
281 #define IDirect3DRMObject2_GetClientData(p,a,b) (p)->lpVtbl->SetClientData(p,a,b)
282 #define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->lpVtbl->GetDirect3DRM(p,a)
283 #define IDirect3DRMObject2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
284 #define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->lpVtbl->SetClientData(p,a,b,c)
285 #define IDirect3DRMObject2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
286 #define IDirect3DRMObject2_GetAge(p,a,b) (p)->lpVtbl->GetAge(p,a,b)
287 #else
288 /*** IUnknown methods ***/
289 #define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
290 #define IDirect3DRMObject2_AddRef(p) (p)->AddRef()
291 #define IDirect3DRMObject2_Release(p) (p)->Release()
292 /*** IDirect3DRMObject2 methods ***/
293 #define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
294 #define IDirect3DRMObject2_Clone(p,a,b,c) (p)->Clone(a,b,c)
295 #define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
296 #define IDirect3DRMObject2_GetClientData(p,a,b) (p)->SetClientData(a,b)
297 #define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->GetDirect3DRM(a)
298 #define IDirect3DRMObject2_GetName(p,a,b) (p)->GetName(a,b)
299 #define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->SetClientData(a,b,c)
300 #define IDirect3DRMObject2_SetName(p,a) (p)->SetName(a)
301 #define IDirect3DRMObject2_GetAge(p,a,b) (p)->GetAge(a,b)
302 #endif
303 
304 /*****************************************************************************
305  * IDirect3DRMVisual interface
306  */
307 #define INTERFACE IDirect3DRMVisual
308 DECLARE_INTERFACE_(IDirect3DRMVisual,IDirect3DRMObject)
309 {
310  /*** IUnknown methods ***/
314  /*** IDirect3DRMObject methods ***/
315  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
316  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
317  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
318  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
319  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
320  STDMETHOD(SetName)(THIS_ const char *name) PURE;
323 };
324 #undef INTERFACE
325 
326 #if !defined(__cplusplus) || defined(CINTERFACE)
327 /*** IUnknown methods ***/
328 #define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
329 #define IDirect3DRMVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
330 #define IDirect3DRMVisual_Release(p) (p)->lpVtbl->Release(p)
331 /*** IDirect3DRMObject methods ***/
332 #define IDirect3DRMVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
333 #define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
334 #define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
335 #define IDirect3DRMVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
336 #define IDirect3DRMVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
337 #define IDirect3DRMVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
338 #define IDirect3DRMVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
339 #define IDirect3DRMVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
340 #else
341 /*** IUnknown methods ***/
342 #define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
343 #define IDirect3DRMVisual_AddRef(p) (p)->AddRef()
344 #define IDirect3DRMVisual_Release(p) (p)->Release()
345 /*** IDirect3DRMObject methods ***/
346 #define IDirect3DRMVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
347 #define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
348 #define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
349 #define IDirect3DRMVisual_SetAppData(p,a) (p)->SetAppData(a)
350 #define IDirect3DRMVisual_GetAppData(p) (p)->GetAppData()
351 #define IDirect3DRMVisual_SetName(p,a) (p)->SetName(a)
352 #define IDirect3DRMVisual_GetName(p,a,b) (p)->GetName(a,b)
353 #define IDirect3DRMVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
354 #endif
355 
356 /*****************************************************************************
357  * IDirect3DRMDevice interface
358  */
359 #ifdef WINE_NO_UNICODE_MACROS
360 #undef GetClassName
361 #endif
362 #define INTERFACE IDirect3DRMDevice
363 DECLARE_INTERFACE_(IDirect3DRMDevice,IDirect3DRMObject)
364 {
365  /*** IUnknown methods ***/
369  /*** IDirect3DRMObject methods ***/
370  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
371  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
372  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
373  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
374  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
375  STDMETHOD(SetName)(THIS_ const char *name) PURE;
378  /*** IDirect3DRMDevice methods ***/
380  STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
381  STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
383  STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
384  STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
385  STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
386  STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
387  STDMETHOD(SetDither)(THIS_ BOOL) PURE;
388  STDMETHOD(SetShades)(THIS_ DWORD) PURE;
389  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
390  STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
391  STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
392  STDMETHOD_(BOOL, GetDither)(THIS) PURE;
393  STDMETHOD_(DWORD, GetShades)(THIS) PURE;
394  STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
395  STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
396  STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
397  STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
398  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
399  STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
400  STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
401  STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
402 };
403 #undef INTERFACE
404 
405 #if !defined(__cplusplus) || defined(CINTERFACE)
406 /*** IUnknown methods ***/
407 #define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
408 #define IDirect3DRMDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
409 #define IDirect3DRMDevice_Release(p) (p)->lpVtbl->Release(p)
410 /*** IDirect3DRMObject methods ***/
411 #define IDirect3DRMDevice_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
412 #define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
413 #define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
414 #define IDirect3DRMDevice_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
415 #define IDirect3DRMDevice_GetAppData(p) (p)->lpVtbl->GetAppData(p)
416 #define IDirect3DRMDevice_SetName(p,a) (p)->lpVtbl->SetName(p,a)
417 #define IDirect3DRMDevice_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
418 #define IDirect3DRMDevice_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
419 /*** IDirect3DRMDevice methods ***/
420 #define IDirect3DRMDevice_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
421 #define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
422 #define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
423 #define IDirect3DRMDevice_Update(p) (p)->lpVtbl->Update(p)
424 #define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
425 #define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
426 #define IDirect3DRMDevice_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
427 #define IDirect3DRMDevice_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
428 #define IDirect3DRMDevice_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
429 #define IDirect3DRMDevice_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
430 #define IDirect3DRMDevice_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
431 #define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
432 #define IDirect3DRMDevice_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
433 #define IDirect3DRMDevice_GetDither(p) (p)->lpVtbl->GetDither(p)
434 #define IDirect3DRMDevice_GetShades(p) (p)->lpVtbl->GetShades(p)
435 #define IDirect3DRMDevice_GetHeight(p) (p)->lpVtbl->GetHeight(p)
436 #define IDirect3DRMDevice_GetWidth(p) (p)->lpVtbl->GetWidth(p)
437 #define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
438 #define IDirect3DRMDevice_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
439 #define IDirect3DRMDevice_GetQuality(p) (p)->lpVtbl->GetQuality(p)
440 #define IDirect3DRMDevice_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
441 #define IDirect3DRMDevice_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
442 #define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
443 #else
444 /*** IUnknown methods ***/
445 #define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
446 #define IDirect3DRMDevice_AddRef(p) (p)->AddRef()
447 #define IDirect3DRMDevice_Release(p) (p)->Release()
448 /*** IDirect3DRMObject methods ***/
449 #define IDirect3DRMDevice_Clone(p,a,b,c) (p)->Clone(a,b,c)
450 #define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
451 #define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
452 #define IDirect3DRMDevice_SetAppData(p,a) (p)->SetAppData(a)
453 #define IDirect3DRMDevice_GetAppData(p) (p)->GetAppData()
454 #define IDirect3DRMDevice_SetName(p,a) (p)->SetName(a)
455 #define IDirect3DRMDevice_GetName(p,a,b) (p)->GetName(a,b)
456 #define IDirect3DRMDevice_GetClassName(p,a,b) (p)->GetClassName(a,b)
457 /*** IDirect3DRMDevice methods ***/
458 #define IDirect3DRMDevice_Init(p,a,b) (p)->Init(a,b)
459 #define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
460 #define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
461 #define IDirect3DRMDevice_Update(p) (p)->Update()
462 #define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
463 #define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
464 #define IDirect3DRMDevice_SetBufferCount(p,a) (p)->SetBufferCount(a)
465 #define IDirect3DRMDevice_GetBufferCount(p) (p)->GetBufferCount()
466 #define IDirect3DRMDevice_SetDither(p,a) (p)->SetDither(a)
467 #define IDirect3DRMDevice_SetShades(p,a) (p)->SetShades(a)
468 #define IDirect3DRMDevice_SetQuality(p,a) (p)->SetQuality(a)
469 #define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
470 #define IDirect3DRMDevice_GetViewports(p,a) (p)->GetViewports(a)
471 #define IDirect3DRMDevice_GetDither(p) (p)->GetDither()
472 #define IDirect3DRMDevice_GetShades(p) (p)->GetShades()
473 #define IDirect3DRMDevice_GetHeight(p) (p)->GetHeight()
474 #define IDirect3DRMDevice_GetWidth(p) (p)->GetWidth()
475 #define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
476 #define IDirect3DRMDevice_GetWireframeOptions(p) (p)->GetWireframeOptions()
477 #define IDirect3DRMDevice_GetQuality(p) (p)->GetQuality()
478 #define IDirect3DRMDevice_GetColorModel(p) (p)->GetColorModel()
479 #define IDirect3DRMDevice_GetTextureQuality(p) (p)->GetTextureQuality()
480 #define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
481 #endif
482 
483 /*****************************************************************************
484  * IDirect3DRMDevice2 interface
485  */
486 #ifdef WINE_NO_UNICODE_MACROS
487 #undef GetClassName
488 #endif
489 #define INTERFACE IDirect3DRMDevice2
490 DECLARE_INTERFACE_(IDirect3DRMDevice2,IDirect3DRMDevice)
491 {
492  /*** IUnknown methods ***/
496  /*** IDirect3DRMObject methods ***/
497  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
498  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
499  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
500  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
501  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
502  STDMETHOD(SetName)(THIS_ const char *name) PURE;
505  /*** IDirect3DRMDevice methods ***/
507  STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
508  STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
510  STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
511  STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
512  STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
513  STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
514  STDMETHOD(SetDither)(THIS_ BOOL) PURE;
515  STDMETHOD(SetShades)(THIS_ DWORD) PURE;
516  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
517  STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
518  STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
519  STDMETHOD_(BOOL, GetDither)(THIS) PURE;
520  STDMETHOD_(DWORD, GetShades)(THIS) PURE;
521  STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
522  STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
523  STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
524  STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
525  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
526  STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
527  STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
528  STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
529  /*** IDirect3DRMDevice2 methods ***/
530  STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
531  STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
532  STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
533  STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
534  STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
535 };
536 #undef INTERFACE
537 
538 #if !defined(__cplusplus) || defined(CINTERFACE)
539 /*** IUnknown methods ***/
540 #define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
541 #define IDirect3DRMDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
542 #define IDirect3DRMDevice2_Release(p) (p)->lpVtbl->Release(p)
543 /*** IDirect3DRMObject methods ***/
544 #define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
545 #define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
546 #define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
547 #define IDirect3DRMDevice2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
548 #define IDirect3DRMDevice2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
549 #define IDirect3DRMDevice2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
550 #define IDirect3DRMDevice2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
551 #define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
552 /*** IDirect3DRMDevice methods ***/
553 #define IDirect3DRMDevice2_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
554 #define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
555 #define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
556 #define IDirect3DRMDevice2_Update(p) (p)->lpVtbl->Update(p)
557 #define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
558 #define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
559 #define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
560 #define IDirect3DRMDevice2_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
561 #define IDirect3DRMDevice2_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
562 #define IDirect3DRMDevice2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
563 #define IDirect3DRMDevice2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
564 #define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
565 #define IDirect3DRMDevice2_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
566 #define IDirect3DRMDevice2_GetDither(p) (p)->lpVtbl->GetDither(p)
567 #define IDirect3DRMDevice2_GetShades(p) (p)->lpVtbl->GetShades(p)
568 #define IDirect3DRMDevice2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
569 #define IDirect3DRMDevice2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
570 #define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
571 #define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
572 #define IDirect3DRMDevice2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
573 #define IDirect3DRMDevice2_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
574 #define IDirect3DRMDevice2_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
575 #define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
576 /*** IDirect3DRMDevice2 methods ***/
577 #define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
578 #define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
579 #define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
580 #define IDirect3DRMDevice2_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
581 #define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
582 #else
583 /*** IUnknown methods ***/
584 #define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
585 #define IDirect3DRMDevice2_AddRef(p) (p)->AddRef()
586 #define IDirect3DRMDevice2_Release(p) (p)->Release()
587 /*** IDirect3DRMObject methods ***/
588 #define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->Clone(a,b,c)
589 #define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
590 #define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
591 #define IDirect3DRMDevice2_SetAppData(p,a) (p)->SetAppData(a)
592 #define IDirect3DRMDevice2_GetAppData(p) (p)->GetAppData()
593 #define IDirect3DRMDevice2_SetName(p,a) (p)->SetName(a)
594 #define IDirect3DRMDevice2_GetName(p,a,b) (p)->GetName(a,b)
595 #define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->GetClassName(a,b)
596 /*** IDirect3DRMDevice methods ***/
597 #define IDirect3DRMDevice2_Init(p,a,b) (p)->Init(a,b)
598 #define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
599 #define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
600 #define IDirect3DRMDevice2_Update(p) (p)->Update()
601 #define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
602 #define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
603 #define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->SetBufferCount(a)
604 #define IDirect3DRMDevice2_GetBufferCount(p) (p)->GetBufferCount()
605 #define IDirect3DRMDevice2_SetDither(p,a) (p)->SetDither(a)
606 #define IDirect3DRMDevice2_SetShades(p,a) (p)->SetShades(a)
607 #define IDirect3DRMDevice2_SetQuality(p,a) (p)->SetQuality(a)
608 #define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
609 #define IDirect3DRMDevice2_GetViewports(p,a) (p)->GetViewports(a)
610 #define IDirect3DRMDevice2_GetDither(p) (p)->GetDither()
611 #define IDirect3DRMDevice2_GetShades(p) (p)->GetShades()
612 #define IDirect3DRMDevice2_GetHeight(p) (p)->GetHeight()
613 #define IDirect3DRMDevice2_GetWidth(p) (p)->GetWidth()
614 #define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
615 #define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->GetWireframeOptions()
616 #define IDirect3DRMDevice2_GetQuality(p) (p)->GetQuality()
617 #define IDirect3DRMDevice2_GetColorModel(p) (p)->GetColorModel()
618 #define IDirect3DRMDevice2_GetTextureQuality(p) (p)->GetTextureQuality()
619 #define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
620 /*** IDirect3DRMDevice2 methods ***/
621 #define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
622 #define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
623 #define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->SetRenderMode(a)
624 #define IDirect3DRMDevice2_GetRenderMode(p) (p)->GetRenderMode()
625 #define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
626 #endif
627 
628 /*****************************************************************************
629  * IDirect3DRMDevice3 interface
630  */
631 #ifdef WINE_NO_UNICODE_MACROS
632 #undef GetClassName
633 #endif
634 #define INTERFACE IDirect3DRMDevice3
635 DECLARE_INTERFACE_(IDirect3DRMDevice3,IDirect3DRMObject)
636 {
637  /*** IUnknown methods ***/
641  /*** IDirect3DRMObject methods ***/
642  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
643  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
644  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
645  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
646  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
647  STDMETHOD(SetName)(THIS_ const char *name) PURE;
650  /*** IDirect3DRMDevice methods ***/
652  STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
653  STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
655  STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
656  STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
657  STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
658  STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
659  STDMETHOD(SetDither)(THIS_ BOOL) PURE;
660  STDMETHOD(SetShades)(THIS_ DWORD) PURE;
661  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
662  STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
663  STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
664  STDMETHOD_(BOOL, GetDither)(THIS) PURE;
665  STDMETHOD_(DWORD, GetShades)(THIS) PURE;
666  STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
667  STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
668  STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
669  STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
670  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
671  STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
672  STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
673  STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
674  /*** IDirect3DRMDevice2 methods ***/
675  STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
676  STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
677  STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
678  STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
679  STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
680  /*** IDirect3DRMDevice3 methods ***/
681  STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD BitDepths, DWORD flags, DDPIXELFORMAT *format) PURE;
682  STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD val, DWORD flags) PURE;
683  STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD val, DWORD flags) PURE;
684  STDMETHOD(GetStateChangeOptions)(THIS_ DWORD state_class, DWORD state_idx, DWORD *flags) PURE;
685  STDMETHOD(SetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, DWORD flags) PURE;
686 };
687 #undef INTERFACE
688 
689 #if !defined(__cplusplus) || defined(CINTERFACE)
690 /*** IUnknown methods ***/
691 #define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
692 #define IDirect3DRMDevice3_AddRef(p) (p)->lpVtbl->AddRef(p)
693 #define IDirect3DRMDevice3_Release(p) (p)->lpVtbl->Release(p)
694 /*** IDirect3DRMObject methods ***/
695 #define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
696 #define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
697 #define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
698 #define IDirect3DRMDevice3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
699 #define IDirect3DRMDevice3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
700 #define IDirect3DRMDevice3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
701 #define IDirect3DRMDevice3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
702 #define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
703 /*** IDirect3DRMDevice methods ***/
704 #define IDirect3DRMDevice3_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
705 #define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
706 #define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
707 #define IDirect3DRMDevice3_Update(p) (p)->lpVtbl->Update(p)
708 #define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
709 #define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
710 #define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
711 #define IDirect3DRMDevice3_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
712 #define IDirect3DRMDevice3_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
713 #define IDirect3DRMDevice3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
714 #define IDirect3DRMDevice3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
715 #define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
716 #define IDirect3DRMDevice3_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
717 #define IDirect3DRMDevice3_GetDither(p) (p)->lpVtbl->GetDither(p)
718 #define IDirect3DRMDevice3_GetShades(p) (p)->lpVtbl->GetShades(p)
719 #define IDirect3DRMDevice3_GetHeight(p) (p)->lpVtbl->GetHeight(p)
720 #define IDirect3DRMDevice3_GetWidth(p) (p)->lpVtbl->GetWidth(p)
721 #define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
722 #define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
723 #define IDirect3DRMDevice3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
724 #define IDirect3DRMDevice3_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
725 #define IDirect3DRMDevice3_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
726 #define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
727 /*** IDirect3DRMDevice2 methods ***/
728 #define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
729 #define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
730 #define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
731 #define IDirect3DRMDevice3_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
732 #define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
733 /*** IDirect3DRMDevice3 methods ***/
734 #define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b,c)
735 #define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->lpVtbl->RenderStateChange(p,a,b,c)
736 #define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->lpVtbl->LightStateChange(p,a,b,c)
737 #define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->lpVtbl->GetStateChangeOptions(p,a,b,c)
738 #define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->lpVtbl->SetStateChangeOptions(p,a,b,c)
739 #else
740 /*** IUnknown methods ***/
741 #define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
742 #define IDirect3DRMDevice3_AddRef(p) (p)->AddRef()
743 #define IDirect3DRMDevice3_Release(p) (p)->Release()
744 /*** IDirect3DRMObject methods ***/
745 #define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->Clone(a,b,c)
746 #define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
747 #define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
748 #define IDirect3DRMDevice3_SetAppData(p,a) (p)->SetAppData(a)
749 #define IDirect3DRMDevice3_GetAppData(p) (p)->GetAppData()
750 #define IDirect3DRMDevice3_SetName(p,a) (p)->SetName(a)
751 #define IDirect3DRMDevice3_GetName(p,a,b) (p)->GetName(a,b)
752 #define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->GetClassName(a,b)
753 /*** IDirect3DRMDevice methods ***/
754 #define IDirect3DRMDevice3_Init(p,a,b) (p)->Init(a,b)
755 #define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
756 #define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
757 #define IDirect3DRMDevice3_Update(p) (p)->Update()
758 #define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
759 #define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
760 #define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->SetBufferCount(a)
761 #define IDirect3DRMDevice3_GetBufferCount(p) (p)->GetBufferCount()
762 #define IDirect3DRMDevice3_SetDither(p,a) (p)->SetDither(a)
763 #define IDirect3DRMDevice3_SetShades(p,a) (p)->SetShades(a)
764 #define IDirect3DRMDevice3_SetQuality(p,a) (p)->SetQuality(a)
765 #define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
766 #define IDirect3DRMDevice3_GetViewports(p,a) (p)->GetViewports(a)
767 #define IDirect3DRMDevice3_GetDither(p) (p)->GetDither()
768 #define IDirect3DRMDevice3_GetShades(p) (p)->GetShades()
769 #define IDirect3DRMDevice3_GetHeight(p) (p)->GetHeight()
770 #define IDirect3DRMDevice3_GetWidth(p) (p)->GetWidth()
771 #define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
772 #define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->GetWireframeOptions()
773 #define IDirect3DRMDevice3_GetQuality(p) (p)->GetQuality()
774 #define IDirect3DRMDevice3_GetColorModel(p) (p)->GetColorModel()
775 #define IDirect3DRMDevice3_GetTextureQuality(p) (p)->GetTextureQuality()
776 #define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
777 /*** IDirect3DRMDevice2 methods ***/
778 #define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
779 #define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
780 #define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->SetRenderMode(a)
781 #define IDirect3DRMDevice3_GetRenderMode(p) (p)->GetRenderMode()
782 #define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
783 /*** IDirect3DRMDevice3 methods ***/
784 #define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
785 #define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->RenderStateChange(a,b,c)
786 #define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->LightStateChange(a,b,c)
787 #define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->GetStateChangeOptions(a,b,c)
788 #define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->SetStateChangeOptions(a,b,c)
789 #endif
790 
791 /*****************************************************************************
792  * IDirect3DRMViewport interface
793  */
794 #define INTERFACE IDirect3DRMViewport
795 DECLARE_INTERFACE_(IDirect3DRMViewport,IDirect3DRMObject)
796 {
797  /*** IUnknown methods ***/
801  /*** IDirect3DRMObject methods ***/
802  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
803  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
804  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
805  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
806  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
807  STDMETHOD(SetName)(THIS_ const char *name) PURE;
810  /*** IDirect3DRMViewport methods ***/
811  STDMETHOD(Init) (THIS_ IDirect3DRMDevice *device, struct IDirect3DRMFrame *camera,
814  STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame *frame) PURE;
815  STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
816  STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
817  STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
818  STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
819  STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame *camera) PURE;
820  STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
821  STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
822  STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
824  STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
826  STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame **camera) PURE;
827  STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice **device) PURE;
829  STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
830  STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
831  STDMETHOD_(LONG, GetX)(THIS) PURE;
832  STDMETHOD_(LONG, GetY)(THIS) PURE;
833  STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
834  STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
835  STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
836  STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
837  STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
838  STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
839  STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
840 };
841 #undef INTERFACE
842 
843 #if !defined(__cplusplus) || defined(CINTERFACE)
844 /*** IUnknown methods ***/
845 #define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
846 #define IDirect3DRMViewport_AddRef(p) (p)->lpVtbl->AddRef(p)
847 #define IDirect3DRMViewport_Release(p) (p)->lpVtbl->Release(p)
848 /*** IDirect3DRMObject methods ***/
849 #define IDirect3DRMViewport_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
850 #define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
851 #define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
852 #define IDirect3DRMViewport_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
853 #define IDirect3DRMViewport_GetAppData(p) (p)->lpVtbl->GetAppData(p)
854 #define IDirect3DRMViewport_SetName(p,a) (p)->lpVtbl->SetName(p,a)
855 #define IDirect3DRMViewport_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
856 #define IDirect3DRMViewport_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
857 /*** IDirect3DRMViewport methods ***/
858 #define IDirect3DRMViewport_Init(p,a,b,c,d,e,f) (p)->lpVtbl->Init(p,a,b,c,d,e,f)
859 #define IDirect3DRMViewport_Clear(p) (p)->lpVtbl->Clear(p)
860 #define IDirect3DRMViewport_Render(p,a) (p)->lpVtbl->Render(p,a)
861 #define IDirect3DRMViewport_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
862 #define IDirect3DRMViewport_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
863 #define IDirect3DRMViewport_SetField(p,a) (p)->lpVtbl->SetField(p,a)
864 #define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
865 #define IDirect3DRMViewport_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
866 #define IDirect3DRMViewport_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
867 #define IDirect3DRMViewport_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
868 #define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
869 #define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
870 #define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
871 #define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
872 #define IDirect3DRMViewport_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
873 #define IDirect3DRMViewport_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
874 #define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
875 #define IDirect3DRMViewport_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
876 #define IDirect3DRMViewport_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
877 #define IDirect3DRMViewport_GetX(p) (p)->lpVtbl->GetX(p)
878 #define IDirect3DRMViewport_GetY(p) (p)->lpVtbl->GetY(p)
879 #define IDirect3DRMViewport_GetWidth(p) (p)->lpVtbl->GetWidth(p)
880 #define IDirect3DRMViewport_GetHeight(p) (p)->lpVtbl->GetHeight(p)
881 #define IDirect3DRMViewport_GetField(p) (p)->lpVtbl->GetField(p)
882 #define IDirect3DRMViewport_GetBack(p) (p)->lpVtbl->GetBack(p)
883 #define IDirect3DRMViewport_GetFront(p) (p)->lpVtbl->GetFront(p)
884 #define IDirect3DRMViewport_GetProjection(p) (p)->lpVtbl->GetProjection(p)
885 #define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
886 #else
887 /*** IUnknown methods ***/
888 #define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
889 #define IDirect3DRMViewport_AddRef(p) (p)->AddRef()
890 #define IDirect3DRMViewport_Release(p) (p)->Release()
891 /*** IDirect3DRMObject methods ***/
892 #define IDirect3DRMViewport_Clone(p,a,b,c) (p)->Clone(a,b,c)
893 #define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
894 #define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
895 #define IDirect3DRMViewport_SetAppData(p,a) (p)->SetAppData(a)
896 #define IDirect3DRMViewport_GetAppData(p) (p)->GetAppData()
897 #define IDirect3DRMViewport_SetName(p,a) (p)->SetName(a)
898 #define IDirect3DRMViewport_GetName(p,a,b) (p)->GetName(a,b)
899 #define IDirect3DRMViewport_GetClassName(p,a,b) (p)->GetClassName(a,b)
900 /*** IDirect3DRMViewport methods ***/
901 #define IDirect3DRMViewport_Init(p,a,b,c,d,e,f) (p)->Init(a,b,c,d,e,f)
902 #define IDirect3DRMViewport_Clear(p) (p)->Clear()
903 #define IDirect3DRMViewport_Render(p,a) (p)->Render(a)
904 #define IDirect3DRMViewport_SetFront(p,a) (p)->SetFront(a)
905 #define IDirect3DRMViewport_SetBack(p,a) (p)->SetBack(a)
906 #define IDirect3DRMViewport_SetField(p,a) (p)->SetField(a)
907 #define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
908 #define IDirect3DRMViewport_SetCamera(p,a) (p)->SetCamera(a)
909 #define IDirect3DRMViewport_SetProjection(p,a) (p)->SetProjection(a)
910 #define IDirect3DRMViewport_Transform(p,a,b) (p)->Transform(a,b)
911 #define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
912 #define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
913 #define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
914 #define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
915 #define IDirect3DRMViewport_GetCamera(p,a) (p)->GetCamera(a)
916 #define IDirect3DRMViewport_GetDevice(p,a) (p)->GetDevice(a)
917 #define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
918 #define IDirect3DRMViewport_Pick(p,a,b,c) (p)->Pick(a,b,c)
919 #define IDirect3DRMViewport_GetUniformScaling(p) (p)->GetUniformScaling()
920 #define IDirect3DRMViewport_GetX(p) (p)->GetX()
921 #define IDirect3DRMViewport_GetY(p) (p)->GetY()
922 #define IDirect3DRMViewport_GetWidth(p) (p)->GetWidth()
923 #define IDirect3DRMViewport_GetHeight(p) (p)->GetHeight()
924 #define IDirect3DRMViewport_GetField(p) (p)->GetField()
925 #define IDirect3DRMViewport_GetBack(p) (p)->GetBack()
926 #define IDirect3DRMViewport_GetFront(p) (p)->GetFront()
927 #define IDirect3DRMViewport_GetProjection(p) (p)->GetProjection()
928 #define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
929 #endif
930 
931 /*****************************************************************************
932  * IDirect3DRMViewport2 interface
933  */
934 #define INTERFACE IDirect3DRMViewport2
935 DECLARE_INTERFACE_(IDirect3DRMViewport2,IDirect3DRMObject)
936 {
937  /*** IUnknown methods ***/
941  /*** IDirect3DRMObject methods ***/
942  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
943  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
944  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
945  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
946  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
947  STDMETHOD(SetName)(THIS_ const char *name) PURE;
950  /*** IDirect3DRMViewport2 methods ***/
951  STDMETHOD(Init) (THIS_ IDirect3DRMDevice3 *device, struct IDirect3DRMFrame3 *camera,
954  STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame3 *frame) PURE;
955  STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
956  STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
957  STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
958  STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
959  STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame3 *camera) PURE;
960  STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
961  STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
962  STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
964  STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
966  STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame3 **camera) PURE;
967  STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice3 **device) PURE;
969  STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
970  STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
971  STDMETHOD_(LONG, GetX)(THIS) PURE;
972  STDMETHOD_(LONG, GetY)(THIS) PURE;
973  STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
974  STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
975  STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
976  STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
977  STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
978  STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
979  STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
980  STDMETHOD(TransformVectors)(THIS_ DWORD vector_count, D3DRMVECTOR4D *dst_vectors,
981  D3DVECTOR *src_vectors) PURE;
982  STDMETHOD(InverseTransformVectors)(THIS_ DWORD vector_count, D3DVECTOR *dst_vectors,
983  D3DRMVECTOR4D *src_vectors) PURE;
984 };
985 #undef INTERFACE
986 
987 #if !defined(__cplusplus) || defined(CINTERFACE)
988 /*** IUnknown methods ***/
989 #define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
990 #define IDirect3DRMViewport2_AddRef(p) (p)->lpVtbl->AddRef(p)
991 #define IDirect3DRMViewport2_Release(p) (p)->lpVtbl->Release(p)
992 /*** IDirect3DRMObject methods ***/
993 #define IDirect3DRMViewport_2Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
994 #define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
995 #define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
996 #define IDirect3DRMViewport2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
997 #define IDirect3DRMViewport2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
998 #define IDirect3DRMViewport2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
999 #define IDirect3DRMViewport2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1000 #define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1001 /*** IDirect3DRMViewport2 methods ***/
1002 #define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f) (p)->lpVtbl->Init(p,a,b,c,d,e,f)
1003 #define IDirect3DRMViewport2_Clear(p,a) (p)->lpVtbl->Clear(p,a)
1004 #define IDirect3DRMViewport2_Render(p,a) (p)->lpVtbl->Render(p,a)
1005 #define IDirect3DRMViewport2_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
1006 #define IDirect3DRMViewport2_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
1007 #define IDirect3DRMViewport2_SetField(p,a) (p)->lpVtbl->SetField(p,a)
1008 #define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
1009 #define IDirect3DRMViewport2_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
1010 #define IDirect3DRMViewport2_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
1011 #define IDirect3DRMViewport2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1012 #define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1013 #define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
1014 #define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
1015 #define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
1016 #define IDirect3DRMViewport2_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
1017 #define IDirect3DRMViewport2_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1018 #define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
1019 #define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
1020 #define IDirect3DRMViewport2_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
1021 #define IDirect3DRMViewport2_GetX(p) (p)->lpVtbl->GetX(p)
1022 #define IDirect3DRMViewport2_GetY(p) (p)->lpVtbl->GetY(p)
1023 #define IDirect3DRMViewport2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
1024 #define IDirect3DRMViewport2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
1025 #define IDirect3DRMViewport2_GetField(p) (p)->lpVtbl->GetField(p)
1026 #define IDirect3DRMViewport2_GetBack(p) (p)->lpVtbl->GetBack(p)
1027 #define IDirect3DRMViewport2_GetFront(p) (p)->lpVtbl->GetFront(p)
1028 #define IDirect3DRMViewport2_GetProjection(p) (p)->lpVtbl->GetProjection(p)
1029 #define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
1030 #define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->lpVtbl->TransformVectors(p,a,b,c)
1031 #define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->lpVtbl->InverseTransformVectors(p,a,b,c)
1032 #else
1033 /*** IUnknown methods ***/
1034 #define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1035 #define IDirect3DRMViewport2_AddRef(p) (p)->AddRef()
1036 #define IDirect3DRMViewport2_Release(p) (p)->Release()
1037 /*** IDirect3DRMObject methods ***/
1038 #define IDirect3DRMViewport2_Clone(p,a,b,c) (p)->Clone(a,b,c)
1039 #define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1040 #define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1041 #define IDirect3DRMViewport2_SetAppData(p,a) (p)->SetAppData(a)
1042 #define IDirect3DRMViewport2_GetAppData(p) (p)->GetAppData()
1043 #define IDirect3DRMViewport2_SetName(p,a) (p)->SetName(a)
1044 #define IDirect3DRMViewport2_GetName(p,a,b) (p)->GetName(a,b)
1045 #define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->GetClassName(a,b)
1046 /*** IDirect3DRMViewport2 methods ***/
1047 #define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f) (p)->Init(a,b,c,d,e,f)
1048 #define IDirect3DRMViewport2_Clear(p) (p)->Clear()
1049 #define IDirect3DRMViewport2_Render(p,a) (p)->Render(a)
1050 #define IDirect3DRMViewport2_SetFront(p,a) (p)->SetFront(a)
1051 #define IDirect3DRMViewport2_SetBack(p,a) (p)->SetBack(a)
1052 #define IDirect3DRMViewport2_SetField(p,a) (p)->SetField(a)
1053 #define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
1054 #define IDirect3DRMViewport2_SetCamera(p,a) (p)->SetCamera(a)
1055 #define IDirect3DRMViewport2_SetProjection(p,a) (p)->SetProjection(a)
1056 #define IDirect3DRMViewport2_Transform(p,a,b) (p)->Transform(a,b)
1057 #define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1058 #define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
1059 #define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
1060 #define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
1061 #define IDirect3DRMViewport2_GetCamera(p,a) (p)->GetCamera(a)
1062 #define IDirect3DRMViewport2_GetDevice(p,a) (p)->GetDevice(a)
1063 #define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
1064 #define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->Pick(a,b,c)
1065 #define IDirect3DRMViewport2_GetUniformScaling(p) (p)->GetUniformScaling()
1066 #define IDirect3DRMViewport2_GetX(p) (p)->GetX()
1067 #define IDirect3DRMViewport2_GetY(p) (p)->GetY()
1068 #define IDirect3DRMViewport2_GetWidth(p) (p)->GetWidth()
1069 #define IDirect3DRMViewport2_GetHeight(p) (p)->GetHeight()
1070 #define IDirect3DRMViewport2_GetField(p) (p)->GetField()
1071 #define IDirect3DRMViewport2_GetBack(p) (p)->GetBack()
1072 #define IDirect3DRMViewport2_GetFront(p) (p)->GetFront()
1073 #define IDirect3DRMViewport2_GetProjection(p) (p)->GetProjection()
1074 #define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
1075 #define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->TransformVectors(a,b,c)
1076 #define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->InverseTransformVectors(a,b,c)
1077 #endif
1078 
1079 /*****************************************************************************
1080  * IDirect3DRMFrame interface
1081  */
1082 #define INTERFACE IDirect3DRMFrame
1083 DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
1084 {
1085  /*** IUnknown methods ***/
1089  /*** IDirect3DRMObject methods ***/
1090  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1091  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1092  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1093  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1094  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1095  STDMETHOD(SetName)(THIS_ const char *name) PURE;
1098  /*** IDirect3DRMFrame methods ***/
1099  STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
1100  STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1101  STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1106  STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1107  STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1109  STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1110  STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1111  STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
1112  STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
1113  STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1114  STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
1115  STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1116  STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
1117  STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
1118  STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1119  STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1120  STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
1121  STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
1122  STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1124  D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
1125  STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
1126  D3DRMFRAMECONSTRAINT constraint) PURE;
1127  STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1128  STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
1129  STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1130  STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1131  STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1132  STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1133  STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1134  STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1135  STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1136  STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1137  STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
1138  STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1139  STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1140  STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1141  STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1142  STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1143  STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1144  STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1145  STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1146  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1148  STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1149  STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1150  STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1151  D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1152  STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1153  STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1154  STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1155  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1156  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1157  STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
1158  D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1159  STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1160  STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1161 };
1162 #undef INTERFACE
1163 
1164 #if !defined(__cplusplus) || defined(CINTERFACE)
1165 /*** IUnknown methods ***/
1166 #define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1167 #define IDirect3DRMFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
1168 #define IDirect3DRMFrame_Release(p) (p)->lpVtbl->Release(p)
1169 /*** IDirect3DRMObject methods ***/
1170 #define IDirect3DRMFrame_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1171 #define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1172 #define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1173 #define IDirect3DRMFrame_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1174 #define IDirect3DRMFrame_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1175 #define IDirect3DRMFrame_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1176 #define IDirect3DRMFrame_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1177 #define IDirect3DRMFrame_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1178 /*** IDirect3DRMFrame methods ***/
1179 #define IDirect3DRMFrame_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1180 #define IDirect3DRMFrame_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1181 #define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
1182 #define IDirect3DRMFrame_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1183 #define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1184 #define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1185 #define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1186 #define IDirect3DRMFrame_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1187 #define IDirect3DRMFrame_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1188 #define IDirect3DRMFrame_GetColor(p) (p)->lpVtbl->GetColor(p)
1189 #define IDirect3DRMFrame_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1190 #define IDirect3DRMFrame_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1191 #define IDirect3DRMFrame_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1192 #define IDirect3DRMFrame_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1193 #define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1194 #define IDirect3DRMFrame_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1195 #define IDirect3DRMFrame_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1196 #define IDirect3DRMFrame_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1197 #define IDirect3DRMFrame_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
1198 #define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1199 #define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1200 #define IDirect3DRMFrame_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
1201 #define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
1202 #define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1203 #define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1204 #define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1205 #define IDirect3DRMFrame_Move(p,a) (p)->lpVtbl->Move(p,a)
1206 #define IDirect3DRMFrame_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1207 #define IDirect3DRMFrame_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1208 #define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1209 #define IDirect3DRMFrame_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1210 #define IDirect3DRMFrame_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1211 #define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1212 #define IDirect3DRMFrame_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1213 #define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1214 #define IDirect3DRMFrame_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1215 #define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1216 #define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1217 #define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1218 #define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1219 #define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1220 #define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1221 #define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1222 #define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1223 #define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1224 #define IDirect3DRMFrame_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1225 #define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1226 #define IDirect3DRMFrame_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1227 #define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1228 #define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1229 #define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1230 #define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1231 #define IDirect3DRMFrame_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1232 #define IDirect3DRMFrame_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1233 #define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
1234 #define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1235 #define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1236 #define IDirect3DRMFrame_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1237 #else
1238 /*** IUnknown methods ***/
1239 #define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1240 #define IDirect3DRMFrame_AddRef(p) (p)->AddRef()
1241 #define IDirect3DRMFrame_Release(p) (p)->Release()
1242 /*** IDirect3DRMObject methods ***/
1243 #define IDirect3DRMFrame_Clone(p,a,b,c) (p)->Clone(a,b,c)
1244 #define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1245 #define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1246 #define IDirect3DRMFrame_SetAppData(p,a) (p)->SetAppData(a)
1247 #define IDirect3DRMFrame_GetAppData(p) (p)->GetAppData()
1248 #define IDirect3DRMFrame_SetName(p,a) (p)->SetName(a)
1249 #define IDirect3DRMFrame_GetName(p,a,b) (p)->GetName(a,b)
1250 #define IDirect3DRMFrame_GetClassName(p,a,b) (p)->GetClassName(a,b)
1251 /*** IDirect3DRMFrame methods ***/
1252 #define IDirect3DRMFrame_AddChild(p,a) (p)->AddChild(a)
1253 #define IDirect3DRMFrame_AddLight(p,a) (p)->AddLight(a)
1254 #define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
1255 #define IDirect3DRMFrame_AddTransform(p,a,b) (p)->AddTransform(a,b)
1256 #define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1257 #define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1258 #define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1259 #define IDirect3DRMFrame_AddVisual(p,a) (p)->AddVisual(a)
1260 #define IDirect3DRMFrame_GetChildren(p,a) (p)->GetChildren(a)
1261 #define IDirect3DRMFrame_GetColor(p) (p)->GetColor()
1262 #define IDirect3DRMFrame_GetLights(p,a) (p)->GetLights(a)
1263 #define IDirect3DRMFrame_GetMaterialMode(p) (p)->GetMaterialMode()
1264 #define IDirect3DRMFrame_GetParent(p,a) (p)->GetParent(a)
1265 #define IDirect3DRMFrame_GetPosition(p,a,b) (p)->GetPosition(a,b)
1266 #define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1267 #define IDirect3DRMFrame_GetScene(p,a) (p)->GetScene(a)
1268 #define IDirect3DRMFrame_GetSortMode(p) (p)->GetSortMode()
1269 #define IDirect3DRMFrame_GetTexture(p,a) (p)->GetTexture(a)
1270 #define IDirect3DRMFrame_GetTransform(p,a) (p)->GetTransform(a)
1271 #define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1272 #define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1273 #define IDirect3DRMFrame_GetVisuals(p,a) (p)->GetVisuals(a)
1274 #define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
1275 #define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1276 #define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1277 #define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1278 #define IDirect3DRMFrame_Move(p,a) (p)->Move(a)
1279 #define IDirect3DRMFrame_DeleteChild(p,a) (p)->DeleteChild(a)
1280 #define IDirect3DRMFrame_DeleteLight(p,a) (p)->DeleteLight(a)
1281 #define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1282 #define IDirect3DRMFrame_DeleteVisual(p,a) (p)->DeleteVisual(a)
1283 #define IDirect3DRMFrame_GetSceneBackground(p) (p)->GetSceneBackground()
1284 #define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1285 #define IDirect3DRMFrame_GetSceneFogColor(p) (p)->GetSceneFogColor()
1286 #define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1287 #define IDirect3DRMFrame_GetSceneFogMode(p) (p)->GetSceneFogMode()
1288 #define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1289 #define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1290 #define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1291 #define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1292 #define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1293 #define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1294 #define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1295 #define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1296 #define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1297 #define IDirect3DRMFrame_SetColor(p,a) (p)->SetColor(a)
1298 #define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1299 #define IDirect3DRMFrame_GetZbufferMode(p) (p)->GetZbufferMode()
1300 #define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1301 #define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1302 #define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1303 #define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1304 #define IDirect3DRMFrame_SetSortMode(p,a) (p)->SetSortMode(a)
1305 #define IDirect3DRMFrame_SetTexture(p,a) (p)->SetTexture(a)
1306 #define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
1307 #define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1308 #define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1309 #define IDirect3DRMFrame_Transform(p,a,b) (p)->Transform(a,b)
1310 #endif
1311 
1312 /*****************************************************************************
1313  * IDirect3DRMFrame2 interface
1314  */
1315 #define INTERFACE IDirect3DRMFrame2
1316 DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
1317 {
1318  /*** IUnknown methods ***/
1322  /*** IDirect3DRMObject methods ***/
1323  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1324  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1325  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1326  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1327  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1328  STDMETHOD(SetName)(THIS_ const char *name) PURE;
1331  /*** IDirect3DRMFrame methods ***/
1332  STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
1333  STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1334  STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1339  STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1340  STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1342  STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1343  STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1344  STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
1345  STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
1346  STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1347  STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
1348  STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1349  STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
1350  STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
1351  STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1352  STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1353  STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
1354  STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
1355  STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1357  D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
1358  STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
1359  D3DRMFRAMECONSTRAINT constraint) PURE;
1360  STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1361  STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
1362  STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1363  STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1364  STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1365  STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1366  STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1367  STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1368  STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1369  STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1370  STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
1371  STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1372  STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1373  STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1374  STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1375  STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1376  STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1377  STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1378  STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1379  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1381  STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1382  STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1383  STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1384  D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1385  STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1386  STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1387  STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1388  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1389  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1390  STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
1391  D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1392  STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1393  STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1394  /*** IDirect3DRMFrame2 methods ***/
1395  STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx, DWORD flags) PURE;
1396  STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
1397  STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
1398  STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
1399  STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
1400  STDMETHOD_(BOOL, GetInheritAxes)(THIS);
1401  STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
1402  STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
1403  STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
1404  STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
1405  STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
1406  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
1407  STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame *reference, D3DRMQUATERNION *q) PURE;
1408  STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame *reference, D3DRMRAY *ray, DWORD flags,
1409  struct IDirect3DRMPicked2Array **return_visuals) PURE;
1411 };
1412 #undef INTERFACE
1413 
1414 #if !defined(__cplusplus) || defined(CINTERFACE)
1415 /*** IUnknown methods ***/
1416 #define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1417 #define IDirect3DRMFrame2_AddRef(p) (p)->lpVtbl->AddRef(p)
1418 #define IDirect3DRMFrame2_Release(p) (p)->lpVtbl->Release(p)
1419 /*** IDirect3DRMObject methods ***/
1420 #define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1421 #define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1422 #define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1423 #define IDirect3DRMFrame2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1424 #define IDirect3DRMFrame2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1425 #define IDirect3DRMFrame2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1426 #define IDirect3DRMFrame2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1427 #define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1428 /*** IDirect3DRMFrame methods ***/
1429 #define IDirect3DRMFrame2_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1430 #define IDirect3DRMFrame2_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1431 #define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
1432 #define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1433 #define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1434 #define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1435 #define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1436 #define IDirect3DRMFrame2_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1437 #define IDirect3DRMFrame2_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1438 #define IDirect3DRMFrame2_GetColor(p) (p)->lpVtbl->GetColor(p)
1439 #define IDirect3DRMFrame2_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1440 #define IDirect3DRMFrame2_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1441 #define IDirect3DRMFrame2_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1442 #define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1443 #define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1444 #define IDirect3DRMFrame2_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1445 #define IDirect3DRMFrame2_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1446 #define IDirect3DRMFrame2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1447 #define IDirect3DRMFrame2_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
1448 #define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1449 #define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1450 #define IDirect3DRMFrame2_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
1451 #define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
1452 #define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1453 #define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1454 #define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1455 #define IDirect3DRMFrame2_Move(p,a) (p)->lpVtbl->Move(p,a)
1456 #define IDirect3DRMFrame2_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1457 #define IDirect3DRMFrame2_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1458 #define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1459 #define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1460 #define IDirect3DRMFrame2_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1461 #define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1462 #define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1463 #define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1464 #define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1465 #define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1466 #define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1467 #define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1468 #define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1469 #define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1470 #define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1471 #define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1472 #define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1473 #define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1474 #define IDirect3DRMFrame2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1475 #define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1476 #define IDirect3DRMFrame2_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1477 #define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1478 #define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1479 #define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1480 #define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1481 #define IDirect3DRMFrame2_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1482 #define IDirect3DRMFrame2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1483 #define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
1484 #define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1485 #define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1486 #define IDirect3DRMFrame2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1487 /*** IDirect3DRMFrame2 methods ***/
1488 #define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->lpVtbl->AddMoveCallback2(p,a,b,c)
1489 #define IDirect3DRMFrame2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1490 #define IDirect3DRMFrame2_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
1491 #define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
1492 #define IDirect3DRMFrame2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1493 #define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->lpVtbl->GetInheritAxes(p,a,b)
1494 #define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
1495 #define IDirect3DRMFrame2_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
1496 #define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
1497 #define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
1498 #define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
1499 #define IDirect3DRMFrame2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1500 #define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
1501 #define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
1502 #define IDirect3DRMFrame2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
1503 #else
1504 /*** IUnknown methods ***/
1505 #define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1506 #define IDirect3DRMFrame2_AddRef(p) (p)->AddRef()
1507 #define IDirect3DRMFrame2_Release(p) (p)->Release()
1508 /*** IDirect3DRMObject methods ***/
1509 #define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->Clone(a,b,c)
1510 #define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1511 #define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1512 #define IDirect3DRMFrame2_SetAppData(p,a) (p)->SetAppData(a)
1513 #define IDirect3DRMFrame2_GetAppData(p) (p)->GetAppData()
1514 #define IDirect3DRMFrame2_SetName(p,a) (p)->SetName(a)
1515 #define IDirect3DRMFrame2_GetName(p,a,b) (p)->GetName(a,b)
1516 #define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->GetClassName(a,b)
1517 /*** IDirect3DRMFrame methods ***/
1518 #define IDirect3DRMFrame2_AddChild(p,a) (p)->AddChild(a)
1519 #define IDirect3DRMFrame2_AddLight(p,a) (p)->AddLight(a)
1520 #define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
1521 #define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->AddTransform(a,b)
1522 #define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1523 #define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1524 #define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1525 #define IDirect3DRMFrame2_AddVisual(p,a) (p)->AddVisual(a)
1526 #define IDirect3DRMFrame2_GetChildren(p,a) (p)->GetChildren(a)
1527 #define IDirect3DRMFrame2_GetColor(p) (p)->GetColor()
1528 #define IDirect3DRMFrame2_GetLights(p,a) (p)->GetLights(a)
1529 #define IDirect3DRMFrame2_GetMaterialMode(p) (p)->GetMaterialMode()
1530 #define IDirect3DRMFrame2_GetParent(p,a) (p)->GetParent(a)
1531 #define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->GetPosition(a,b)
1532 #define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1533 #define IDirect3DRMFrame2_GetScene(p,a) (p)->GetScene(a)
1534 #define IDirect3DRMFrame2_GetSortMode(p) (p)->GetSortMode()
1535 #define IDirect3DRMFrame2_GetTexture(p,a) (p)->GetTexture(a)
1536 #define IDirect3DRMFrame2_GetTransform(p,a) (p)->GetTransform(a)
1537 #define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1538 #define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1539 #define IDirect3DRMFrame2_GetVisuals(p,a) (p)->GetVisuals(a)
1540 #define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
1541 #define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1542 #define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1543 #define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1544 #define IDirect3DRMFrame2_Move(p,a) (p)->Move(a)
1545 #define IDirect3DRMFrame2_DeleteChild(p,a) (p)->DeleteChild(a)
1546 #define IDirect3DRMFrame2_DeleteLight(p,a) (p)->DeleteLight(a)
1547 #define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1548 #define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->DeleteVisual(a)
1549 #define IDirect3DRMFrame2_GetSceneBackground(p) (p)->GetSceneBackground()
1550 #define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1551 #define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->GetSceneFogColor()
1552 #define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1553 #define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->GetSceneFogMode()
1554 #define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1555 #define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1556 #define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1557 #define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1558 #define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1559 #define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1560 #define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1561 #define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1562 #define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1563 #define IDirect3DRMFrame2_SetColor(p,a) (p)->SetColor(a)
1564 #define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1565 #define IDirect3DRMFrame2_GetZbufferMode(p) (p)->GetZbufferMode()
1566 #define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1567 #define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1568 #define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1569 #define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1570 #define IDirect3DRMFrame2_SetSortMode(p,a) (p)->SetSortMode(a)
1571 #define IDirect3DRMFrame2_SetTexture(p,a) (p)->SetTexture(a)
1572 #define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
1573 #define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1574 #define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1575 #define IDirect3DRMFrame2_Transform(p,a,b) (p)->Transform(a,b)
1576 /*** IDirect3DRMFrame2 methods ***/
1577 #define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->AddMoveCallback2(a,b,c)
1578 #define IDirect3DRMFrame2_GetBox(p,a) (p)->GetBox(a)
1579 #define IDirect3DRMFrame2_GetBoxEnable(p) (p)->GetBoxEnable()
1580 #define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->GetAxes(a,b)
1581 #define IDirect3DRMFrame2_GetMaterial(p,a) (p)->GetMaterial(a)
1582 #define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->GetInheritAxes(a,b)
1583 #define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
1584 #define IDirect3DRMFrame2_SetBox(p,a) (p)->SetBox(a)
1585 #define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
1586 #define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
1587 #define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
1588 #define IDirect3DRMFrame2_SetMaterial(p,a) (p)->SetMaterial(a)
1589 #define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
1590 #define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
1591 #define IDirect3DRMFrame2_Save(p,a,b,c) (p)->Save(a,b,c)
1592 #endif
1593 
1594 /*****************************************************************************
1595  * IDirect3DRMFrame3 interface
1596  */
1597 #define INTERFACE IDirect3DRMFrame3
1598 DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
1599 {
1600  /*** IUnknown methods ***/
1604  /*** IDirect3DRMObject methods ***/
1605  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1606  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1607  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1608  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1609  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1610  STDMETHOD(SetName)(THIS_ const char *name) PURE;
1613  /*** IDirect3DRMFrame3 methods ***/
1614  STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
1615  STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1616  STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx, DWORD flags) PURE;
1621  STDMETHOD(AddVisual)(THIS_ IUnknown *visual) PURE;
1622  STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1624  STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1625  STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1626  STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame3 **parent) PURE;
1627  STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_position) PURE;
1628  STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1629  STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame3 **scene) PURE;
1630  STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1631  STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
1633  STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1634  STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1635  STDMETHOD(GetVisuals)(THIS_ DWORD *count, IUnknown **visuals) PURE;
1636  STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1638  D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
1639  STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame3 *target, IDirect3DRMFrame3 *reference,
1640  D3DRMFRAMECONSTRAINT constraint) PURE;
1641  STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1642  STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
1643  STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1644  STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx) PURE;
1645  STDMETHOD(DeleteVisual)(THIS_ IUnknown *visual) PURE;
1646  STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1647  STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1648  STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1649  STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1650  STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1651  STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end,
1652  D3DVALUE *return_density) PURE;
1653  STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1654  STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1655  STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1656  STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
1657  STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1658  STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1659  STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1660  STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1661  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1663  STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1664  STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1665  STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1666  D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1667  STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1668  STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame3 *reference,
1669  D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1670  STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1671  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
1672  STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame3 *reference,
1673  D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1674  STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1675  STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1676  STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
1677  STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
1678  STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
1679  STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
1680  STDMETHOD_(BOOL, GetInheritAxes)(THIS);
1681  STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
1682  STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
1683  STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
1684  STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
1685  STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
1686  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
1687  STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame3 *reference, D3DRMQUATERNION *q) PURE;
1688  STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame3 *reference, D3DRMRAY *ray, DWORD flags,
1689  struct IDirect3DRMPicked2Array **return_visuals) PURE;
1691  STDMETHOD(TransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
1692  D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
1693  STDMETHOD(InverseTransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
1694  D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
1695  STDMETHOD(SetTraversalOptions)(THIS_ DWORD flags) PURE;
1696  STDMETHOD(GetTraversalOptions)(THIS_ DWORD *flags) PURE;
1697  STDMETHOD(SetSceneFogMethod)(THIS_ DWORD flags) PURE;
1698  STDMETHOD(GetSceneFogMethod)(THIS_ DWORD *fog_mode) PURE;
1699  STDMETHOD(SetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
1700  STDMETHOD(GetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
1701 };
1702 #undef INTERFACE
1703 
1704 #if !defined(__cplusplus) || defined(CINTERFACE)
1705 /*** IUnknown methods ***/
1706 #define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1707 #define IDirect3DRMFrame3_AddRef(p) (p)->lpVtbl->AddRef(p)
1708 #define IDirect3DRMFrame3_Release(p) (p)->lpVtbl->Release(p)
1709 /*** IDirect3DRMObject methods ***/
1710 #define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1711 #define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1712 #define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1713 #define IDirect3DRMFrame3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1714 #define IDirect3DRMFrame3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1715 #define IDirect3DRMFrame3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1716 #define IDirect3DRMFrame3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1717 #define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1718 /*** IDirect3DRMFrame3 methods ***/
1719 #define IDirect3DRMFrame3_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1720 #define IDirect3DRMFrame3_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1721 #define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->lpVtbl->AddMoveCallback(p,a,b,c)
1722 #define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1723 #define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1724 #define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1725 #define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1726 #define IDirect3DRMFrame3_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1727 #define IDirect3DRMFrame3_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1728 #define IDirect3DRMFrame3_GetColor(p) (p)->lpVtbl->GetColor(p)
1729 #define IDirect3DRMFrame3_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1730 #define IDirect3DRMFrame3_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1731 #define IDirect3DRMFrame3_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1732 #define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1733 #define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1734 #define IDirect3DRMFrame3_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1735 #define IDirect3DRMFrame3_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1736 #define IDirect3DRMFrame3_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1737 #define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
1738 #define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1739 #define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1740 #define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->lpVtbl->GetVisuals(p,a,b)
1741 #define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1742 #define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1743 #define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1744 #define IDirect3DRMFrame3_Move(p,a) (p)->lpVtbl->Move(p,a)
1745 #define IDirect3DRMFrame3_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1746 #define IDirect3DRMFrame3_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1747 #define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1748 #define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1749 #define IDirect3DRMFrame3_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1750 #define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1751 #define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1752 #define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1753 #define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1754 #define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1755 #define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1756 #define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1757 #define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1758 #define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1759 #define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1760 #define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1761 #define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1762 #define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1763 #define IDirect3DRMFrame3_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1764 #define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1765 #define IDirect3DRMFrame3_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1766 #define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1767 #define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1768 #define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1769 #define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1770 #define IDirect3DRMFrame3_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1771 #define IDirect3DRMFrame3_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1772 #define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1773 #define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1774 #define IDirect3DRMFrame3_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1775 #define IDirect3DRMFrame3_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1776 #define IDirect3DRMFrame3_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
1777 #define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
1778 #define IDirect3DRMFrame3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1779 #define IDirect3DRMFrame3_GetInheritAxes(p) (p)->lpVtbl->GetInheritAxes(p)
1780 #define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
1781 #define IDirect3DRMFrame3_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
1782 #define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
1783 #define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
1784 #define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
1785 #define IDirect3DRMFrame3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1786 #define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
1787 #define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
1788 #define IDirect3DRMFrame3_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
1789 #define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->lpVtbl->TransformVectors(p,a,b,c,d)
1790 #define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->lpVtbl->InverseTransformVectors(p,a,b,c,d)
1791 #define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->lpVtbl->SetTraversalOptions(p,a)
1792 #define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->lpVtbl->GetTraversalOptions(p,a)
1793 #define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->lpVtbl->SetSceneFogMethod(p,a)
1794 #define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->lpVtbl->GetSceneFogMethod(p,a)
1795 #define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->lpVtbl->SetMaterialOverride(p,a)
1796 #define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->lpVtbl->GetMaterialOverride(p,a)
1797 #else
1798 /*** IUnknown methods ***/
1799 #define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1800 #define IDirect3DRMFrame3_AddRef(p) (p)->AddRef()
1801 #define IDirect3DRMFrame3_Release(p) (p)->Release()
1802 /*** IDirect3DRMObject methods ***/
1803 #define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->Clone(a,b,c)
1804 #define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1805 #define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1806 #define IDirect3DRMFrame3_SetAppData(p,a) (p)->SetAppData(a)
1807 #define IDirect3DRMFrame3_GetAppData(p) (p)->GetAppData()
1808 #define IDirect3DRMFrame3_SetName(p,a) (p)->SetName(a)
1809 #define IDirect3DRMFrame3_GetName(p,a,b) (p)->GetName(a,b)
1810 #define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->GetClassName(a,b)
1811 /*** IDirect3DRMFrame3 methods ***/
1812 #define IDirect3DRMFrame3_AddChild(p,a) (p)->AddChild(a)
1813 #define IDirect3DRMFrame3_AddLight(p,a) (p)->AddLight(a)
1814 #define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->AddMoveCallback(a,b,c)
1815 #define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->AddTransform(a,b)
1816 #define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1817 #define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1818 #define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1819 #define IDirect3DRMFrame3_AddVisual(p,a) (p)->AddVisual(a)
1820 #define IDirect3DRMFrame3_GetChildren(p,a) (p)->GetChildren(a)
1821 #define IDirect3DRMFrame3_GetColor(p) (p)->GetColor()
1822 #define IDirect3DRMFrame3_GetLights(p,a) (p)->GetLights(a)
1823 #define IDirect3DRMFrame3_GetMaterialMode(p) (p)->GetMaterialMode()
1824 #define IDirect3DRMFrame3_GetParent(p,a) (p)->GetParent(a)
1825 #define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->GetPosition(a,b)
1826 #define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1827 #define IDirect3DRMFrame3_GetScene(p,a) (p)->GetScene(a)
1828 #define IDirect3DRMFrame3_GetSortMode(p) (p)->GetSortMode()
1829 #define IDirect3DRMFrame3_GetTexture(p,a) (p)->GetTexture(a)
1830 #define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->GetTransform(a,b)
1831 #define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1832 #define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1833 #define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->GetVisuals(a,b)
1834 #define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1835 #define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1836 #define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1837 #define IDirect3DRMFrame3_Move(p,a) (p)->Move(a)
1838 #define IDirect3DRMFrame3_DeleteChild(p,a) (p)->DeleteChild(a)
1839 #define IDirect3DRMFrame3_DeleteLight(p,a) (p)->DeleteLight(a)
1840 #define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1841 #define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->DeleteVisual(a)
1842 #define IDirect3DRMFrame3_GetSceneBackground(p) (p)->GetSceneBackground()
1843 #define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1844 #define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->GetSceneFogColor()
1845 #define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1846 #define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->GetSceneFogMode()
1847 #define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1848 #define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1849 #define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1850 #define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1851 #define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1852 #define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1853 #define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1854 #define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1855 #define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1856 #define IDirect3DRMFrame3_SetColor(p,a) (p)->SetColor(a)
1857 #define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1858 #define IDirect3DRMFrame3_GetZbufferMode(p) (p)->GetZbufferMode()
1859 #define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1860 #define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1861 #define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1862 #define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1863 #define IDirect3DRMFrame3_SetSortMode(p,a) (p)->SetSortMode(a)
1864 #define IDirect3DRMFrame3_SetTexture(p,a) (p)->SetTexture(a)
1865 #define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1866 #define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1867 #define IDirect3DRMFrame3_Transform(p,a,b) (p)->Transform(a,b)
1868 #define IDirect3DRMFrame3_GetBox(p,a) (p)->GetBox(a)
1869 #define IDirect3DRMFrame3_GetBoxEnable(p) (p)->GetBoxEnable()
1870 #define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->GetAxes(a,b)
1871 #define IDirect3DRMFrame3_GetMaterial(p,a) (p)->GetMaterial(a)
1872 #define IDirect3DRMFrame3_GetInheritAxes(p) (p)->GetInheritAxes()
1873 #define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
1874 #define IDirect3DRMFrame3_SetBox(p,a) (p)->SetBox(a)
1875 #define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
1876 #define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
1877 #define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
1878 #define IDirect3DRMFrame3_SetMaterial(p,a) (p)->SetMaterial(a)
1879 #define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
1880 #define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
1881 #define IDirect3DRMFrame3_Save(p,a,b,c) (p)->Save(a,b,c)
1882 #define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->TransformVectors(a,b,c,d)
1883 #define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->InverseTransformVectors(a,b,c,d)
1884 #define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->SetTraversalOptions(a)
1885 #define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->GetTraversalOptions(a)
1886 #define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->SetSceneFogMethod(a)
1887 #define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->GetSceneFogMethod(a)
1888 #define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->SetMaterialOverride(a)
1889 #define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->GetMaterialOverride(a)
1890 #endif
1891 
1892 /*****************************************************************************
1893  * IDirect3DRMMesh interface
1894  */
1895 #define INTERFACE IDirect3DRMMesh
1896 DECLARE_INTERFACE_(IDirect3DRMMesh,IDirect3DRMVisual)
1897 {
1898  /*** IUnknown methods ***/
1902  /*** IDirect3DRMObject methods ***/
1903  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1904  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1905  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1906  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1907  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1908  STDMETHOD(SetName)(THIS_ const char *name) PURE;
1911  /*** IDirect3DRMMesh methods ***/
1912  STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1913  STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
1914  STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
1915  STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData,
1916  D3DRMGROUPINDEX *returnId) PURE;
1917  STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count,
1919  STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
1923  STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial *material) PURE;
1924  STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture *texture) PURE;
1925  STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
1926  STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace,
1927  DWORD *fDataSize, unsigned *fData) PURE;
1928  STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
1929  STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
1930  STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
1932  STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial **material) PURE;
1933  STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture **texture) PURE;
1934 };
1935 #undef INTERFACE
1936 
1937 #if !defined(__cplusplus) || defined(CINTERFACE)
1938 /*** IUnknown methods ***/
1939 #define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1940 #define IDirect3DRMMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
1941 #define IDirect3DRMMesh_Release(p) (p)->lpVtbl->Release(p)
1942 /*** IDirect3DRMObject methods ***/
1943 #define IDirect3DRMMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1944 #define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1945 #define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1946 #define IDirect3DRMMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1947 #define IDirect3DRMMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1948 #define IDirect3DRMMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1949 #define IDirect3DRMMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1950 #define IDirect3DRMMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1951 /*** IDirect3DRMMesh methods ***/
1952 #define IDirect3DRMMesh_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
1953 #define IDirect3DRMMesh_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
1954 #define IDirect3DRMMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1955 #define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->lpVtbl->AddGroup(p,a,b,c,d,e)
1956 #define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->lpVtbl->SetVertices(p,a,b,c,d)
1957 #define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->lpVtbl->SetGroupColor(p,a,b)
1958 #define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->lpVtbl->SetGroupColorRGB(p,a,b,c,d)
1959 #define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->lpVtbl->SetGroupMapping(p,a,b)
1960 #define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->lpVtbl->SetGroupQuality(p,a,b)
1961 #define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->lpVtbl->SetGroupMaterial(p,a,b)
1962 #define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->lpVtbl->SetGroupTexture(p,a,b)
1963 #define IDirect3DRMMesh_GetGroupCount(p) (p)->lpVtbl->GetGroupCount(p)
1964 #define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->lpVtbl->GetGroup(p,a,b,c,d,e,f)
1965 #define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->lpVtbl->GetVertices(p,a,b,c,d)
1966 #define IDirect3DRMMesh_GetGroupColor(p,a) (p)->lpVtbl->GetGroupColor(p,a)
1967 #define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->lpVtbl->GetGroupMapping(p,a)
1968 #define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->lpVtbl->GetGroupQuality(p,a)
1969 #define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->lpVtbl->GetGroupMaterial(p,a,b)
1970 #define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->lpVtbl->GetGroupTexture(p,a,b)
1971 #else
1972 /*** IUnknown methods ***/
1973 #define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1974 #define IDirect3DRMMesh_AddRef(p) (p)->AddRef()
1975 #define IDirect3DRMMesh_Release(p) (p)->Release()
1976 /*** IDirect3DRMObject methods ***/
1977 #define IDirect3DRMMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
1978 #define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1979 #define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1980 #define IDirect3DRMMesh_SetAppData(p,a) (p)->SetAppData(a)
1981 #define IDirect3DRMMesh_GetAppData(p) (p)->GetAppData()
1982 #define IDirect3DRMMesh_SetName(p,a) (p)->SetName(a)
1983 #define IDirect3DRMMesh_GetName(p,a,b) (p)->GetName(a,b)
1984 #define IDirect3DRMMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
1985 /*** IDirect3DRMMesh methods ***/
1986 #define IDirect3DRMMesh_Scale(p,a,b,c) (p)->Scale(a,b,c)
1987 #define IDirect3DRMMesh_Translate(p,a,b,c) (p)->Translate(a,b,c)
1988 #define IDirect3DRMMesh_GetBox(p,a) (p)->GetBox(a)
1989 #define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->AddGroup(a,b,c,d,e)
1990 #define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->SetVertices(a,b,c,d)
1991 #define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->SetGroupColor(a,b)
1992 #define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->SetGroupColorRGB(a,b,c,d)
1993 #define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->SetGroupMapping(a,b)
1994 #define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->SetGroupQuality(a,b)
1995 #define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->SetGroupMaterial(a,b)
1996 #define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->SetGroupTexture(a,b)
1997 #define IDirect3DRMMesh_GetGroupCount(p) (p)->GetGroupCount()
1998 #define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->GetGroup(a,b,c,d,e,f)
1999 #define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->GetVertices(a,b,c,d)
2000 #define IDirect3DRMMesh_GetGroupColor(p,a) (p)->GetGroupColor(a)
2001 #define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->GetGroupMapping(a)
2002 #define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->GetGroupQuality(a)
2003 #define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->GetGroupMaterial(a,b)
2004 #define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->GetGroupTexture(a,b)
2005 #endif
2006 
2007 /*****************************************************************************
2008  * IDirect3DRMProgressiveMesh interface
2009  */
2010 #define INTERFACE IDirect3DRMProgressiveMesh
2011 DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh,IDirect3DRMVisual)
2012 {
2013  /*** IUnknown methods ***/
2017  /*** IDirect3DRMObject methods ***/
2018  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2019  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2020  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2021  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2022  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2023  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2026  /*** IDirect3DRMProgressiveMesh methods ***/
2028  D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2029  STDMETHOD(GetLoadStatus) (THIS_ D3DRMPMESHLOADSTATUS *status) PURE;
2030  STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
2031  STDMETHOD(Abort) (THIS_ DWORD flags) PURE;
2032  STDMETHOD(GetFaceDetail) (THIS_ DWORD *count) PURE;
2033  STDMETHOD(GetVertexDetail) (THIS_ DWORD *count) PURE;
2034  STDMETHOD(SetFaceDetail) (THIS_ DWORD count) PURE;
2035  STDMETHOD(SetVertexDetail) (THIS_ DWORD count) PURE;
2036  STDMETHOD(GetFaceDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
2037  STDMETHOD(GetVertexDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
2038  STDMETHOD(GetDetail) (THIS_ D3DVALUE *pdvVal) PURE;
2039  STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
2040  STDMETHOD(RegisterEvents) (THIS_ HANDLE event, DWORD flags, DWORD reserved) PURE;
2041  STDMETHOD(CreateMesh) (THIS_ IDirect3DRMMesh **mesh) PURE;
2042  STDMETHOD(Duplicate) (THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
2043  STDMETHOD(GetBox) (THIS_ D3DRMBOX *box) PURE;
2046 };
2047 #undef INTERFACE
2048 
2049 #if !defined(__cplusplus) || defined(CINTERFACE)
2050 /*** IUnknown methods ***/
2051 #define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2052 #define IDirect3DRMProgressiveMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
2053 #define IDirect3DRMProgressiveMesh_Release(p) (p)->lpVtbl->Release(p)
2054 /*** IDirect3DRMObject methods ***/
2055 #define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2056 #define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2057 #define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2058 #define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2059 #define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2060 #define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2061 #define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2062 #define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2063 /*** IDirect3DRMProgressiveMesh methods ***/
2064 #define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2065 #define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->lpVtbl->GetLoadStatus(p,a)
2066 #define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->lpVtbl->SetMinRenderDetail(p,a)
2067 #define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->lpVtbl->Abort(p,a)
2068 #define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->lpVtbl->GetFaceDetail(p,a)
2069 #define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->lpVtbl->GetVertexDetail(p,a)
2070 #define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->lpVtbl->SetFaceDetail(p,a)
2071 #define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->lpVtbl->SetVertexDetail(p,a)
2072 #define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->lpVtbl->GetFaceDetailRange(p,a,b)
2073 #define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->lpVtbl->GetVertexDetailRange(p,a,b)
2074 #define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->lpVtbl->GetDetail(p,a)
2075 #define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->lpVtbl->SetDetail(p,a)
2076 #define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->lpVtbl->RegisterEvents(p,a,b,c)
2077 #define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2078 #define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->lpVtbl->Duplicate(p,a)
2079 #define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2080 #define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2081 #define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->lpVtbl->GetQuality(p,a)
2082 #else
2083 /*** IUnknown methods ***/
2084 #define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2085 #define IDirect3DRMProgressiveMesh_AddRef(p) (p)->AddRef()
2086 #define IDirect3DRMProgressiveMesh_Release(p) (p)->Release()
2087 /*** IDirect3DRMObject methods ***/
2088 #define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
2089 #define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2090 #define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2091 #define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->SetAppData(a)
2092 #define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->GetAppData()
2093 #define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->SetName(a)
2094 #define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->GetName(a,b)
2095 #define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
2096 /*** IDirect3DRMProgressiveMesh methods ***/
2097 #define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2098 #define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->GetLoadStatus(a)
2099 #define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->SetMinRenderDetail(a)
2100 #define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->Abort(a)
2101 #define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->GetFaceDetail(a)
2102 #define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->GetVertexDetail(a)
2103 #define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->SetFaceDetail(a)
2104 #define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->SetVertexDetail(a)
2105 #define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->GetFaceDetailRange(a,b)
2106 #define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->GetVertexDetailRange(a,b)
2107 #define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->GetDetail(a)
2108 #define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->SetDetail(a)
2109 #define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->RegisterEvents(a,b,c)
2110 #define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->CreateMesh(a)
2111 #define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->Duplicate(a)
2112 #define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->GetBox(a)
2113 #define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->SetQuality(a)
2114 #define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->GetQuality(a)
2115 #endif
2116 
2117 /*****************************************************************************
2118  * IDirect3DRMShadow interface
2119  */
2120 #define INTERFACE IDirect3DRMShadow
2121 DECLARE_INTERFACE_(IDirect3DRMShadow,IDirect3DRMVisual)
2122 {
2123  /*** IUnknown methods ***/
2127  /*** IDirect3DRMObject methods ***/
2128  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2129  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2130  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2131  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2132  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2133  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2136  /*** IDirect3DRMShadow methods ***/
2137  STDMETHOD(Init)(THIS_ IDirect3DRMVisual *visual, struct IDirect3DRMLight *light,
2139 };
2140 #undef INTERFACE
2141 
2142 #if !defined(__cplusplus) || defined(CINTERFACE)
2143 /*** IUnknown methods ***/
2144 #define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2145 #define IDirect3DRMShadow_AddRef(p) (p)->lpVtbl->AddRef(p)
2146 #define IDirect3DRMShadow_Release(p) (p)->lpVtbl->Release(p)
2147 /*** IDirect3DRMObject methods ***/
2148 #define IDirect3DRMShadow_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2149 #define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2150 #define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2151 #define IDirect3DRMShadow_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2152 #define IDirect3DRMShadow_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2153 #define IDirect3DRMShadow_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2154 #define IDirect3DRMShadow_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2155 #define IDirect3DRMShadow_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2156 /*** IDirect3DRMShadow methods ***/
2157 #define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g)
2158 #else
2159 /*** IUnknown methods ***/
2160 #define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2161 #define IDirect3DRMShadow_AddRef(p) (p)->AddRef()
2162 #define IDirect3DRMShadow_Release(p) (p)->Release()
2163 /*** IDirect3DRMObject methods ***/
2164 #define IDirect3DRMShadow_Clone(p,a,b,c) (p)->Clone(a,b,c)
2165 #define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2166 #define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2167 #define IDirect3DRMShadow_SetAppData(p,a) (p)->SetAppData(a)
2168 #define IDirect3DRMShadow_GetAppData(p) (p)->GetAppData()
2169 #define IDirect3DRMShadow_SetName(p,a) (p)->SetName(a)
2170 #define IDirect3DRMShadow_GetName(p,a,b) (p)->GetName(a,b)
2171 #define IDirect3DRMShadow_GetClassName(p,a,b) (p)->GetClassName(a,b)
2172 /*** IDirect3DRMShadow methods ***/
2173 #define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->Load(a,b,c,d,e,f,g)
2174 #endif
2175 
2176 /*****************************************************************************
2177  * IDirect3DRMShadow2 interface
2178  */
2179 #define INTERFACE IDirect3DRMShadow2
2180 DECLARE_INTERFACE_(IDirect3DRMShadow2,IDirect3DRMVisual)
2181 {
2182  /*** IUnknown methods ***/
2186  /*** IDirect3DRMObject methods ***/
2187  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2188  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2189  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2190  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2191  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2192  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2195  /*** IDirect3DRMShadow methods ***/
2196  STDMETHOD(Init)(THIS_ IUnknown *object, struct IDirect3DRMLight *light,
2198  /*** IDirect3DRMShadow2 methods ***/
2199  STDMETHOD(GetVisual)(THIS_ IDirect3DRMVisual **visual) PURE;
2200  STDMETHOD(SetVisual)(THIS_ IUnknown *visual, DWORD flags) PURE;
2201  STDMETHOD(GetLight)(THIS_ struct IDirect3DRMLight **light) PURE;
2202  STDMETHOD(SetLight)(THIS_ struct IDirect3DRMLight *light, DWORD flags) PURE;
2203  STDMETHOD(GetPlane)(THIS_ D3DVALUE *px, D3DVALUE *py, D3DVALUE *pz,
2205  STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
2207  STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
2208  STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
2209 };
2210 #undef INTERFACE
2211 
2212 #if !defined(__cplusplus) || defined(CINTERFACE)
2213 /*** IUnknown methods ***/
2214 #define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2215 #define IDirect3DRMShadow2_AddRef(p) (p)->lpVtbl->AddRef(p)
2216 #define IDirect3DRMShadow2_Release(p) (p)->lpVtbl->Release(p)
2217 /*** IDirect3DRMObject methods ***/
2218 #define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2219 #define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2220 #define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2221 #define IDirect3DRMShadow2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2222 #define IDirect3DRMShadow2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2223 #define IDirect3DRMShadow2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2224 #define IDirect3DRMShadow2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2225 #define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2226 /*** IDirect3DRMShadow methods ***/
2227 #define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Init(p,a,b,c,d,e,f,g)
2228 /*** IDirect3DRMShadow2 methods ***/
2229 #define IDirect3DRMShadow2_GetVisual(p,a) (p)->lpVtbl->GetVisual(p,a)
2230 #define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->lpVtbl->SetVisual(p,a,b)
2231 #define IDirect3DRMShadow2_GetLight(p,a) (p)->lpVtbl->GetLight(p,a)
2232 #define IDirect3DRMShadow2_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
2233 #define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->GetPlane(p,a,b,c,d,e,f)
2234 #define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->SetPlane(p,a,b,c,d,e,f)
2235 #define IDirect3DRMShadow2_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a)
2236 #define IDirect3DRMShadow2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
2237 #else
2238 /*** IUnknown methods ***/
2239 #define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2240 #define IDirect3DRMShadow2_AddRef(p) (p)->AddRef()
2241 #define IDirect3DRMShadow2_Release(p) (p)->Release()
2242 /*** IDirect3DRMObject methods ***/
2243 #define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2244 #define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2245 #define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2246 #define IDirect3DRMShadow2_SetAppData(p,a) (p)->SetAppData(a)
2247 #define IDirect3DRMShadow2_GetAppData(p) (p)->GetAppData()
2248 #define IDirect3DRMShadow2_SetName(p,a) (p)->SetName(a)
2249 #define IDirect3DRMShadow2_GetName(p,a,b) (p)->GetName(a,b)
2250 #define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2251 /*** IDirect3DRMShadow methods ***/
2252 #define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->Init(a,b,c,d,e,f,g)
2253 /*** IDirect3DRMShadow2 methods ***/
2254 #define IDirect3DRMShadow2_GetVisual(p,a) (p)->GetVisual(a)
2255 #define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->SetVisual(a,b)
2256 #define IDirect3DRMShadow2_GetLight(p,a) (p)->GetLight(a)
2257 #define IDirect3DRMShadow2_SetLight(p,a,b) (p)->SetLight(a,b)
2258 #define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->GetPlane(a,b,c,d,e,f)
2259 #define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->SetPlane(a,b,c,d,e,f)
2260 #define IDirect3DRMShadow2_GetOptions(p,a) (p)->GetOptions(a)
2261 #define IDirect3DRMShadow2_SetOptions(p,a) (p)->SetOptions(a)
2262 #endif
2263 
2264 /*****************************************************************************
2265  * IDirect3DRMFace interface
2266  */
2267 #define INTERFACE IDirect3DRMFace
2268 DECLARE_INTERFACE_(IDirect3DRMFace,IDirect3DRMObject)
2269 {
2270  /*** IUnknown methods ***/
2274  /*** IDirect3DRMObject methods ***/
2275  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2276  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2277  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2278  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2279  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2280  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2283  /*** IDirect3DRMFace methods ***/
2285  STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
2286  STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
2287  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2288  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2289  STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
2290  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2291  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2293  STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
2294  STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
2295  STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
2296  STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
2297  STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
2298  STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
2299  STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2300  STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
2301  STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
2303 };
2304 #undef INTERFACE
2305 
2306 #if !defined(__cplusplus) || defined(CINTERFACE)
2307 /*** IUnknown methods ***/
2308 #define IDirect3DRMFace_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2309 #define IDirect3DRMFace_AddRef(p) (p)->lpVtbl->AddRef(p)
2310 #define IDirect3DRMFace_Release(p) (p)->lpVtbl->Release(p)
2311 /*** IDirect3DRMObject methods ***/
2312 #define IDirect3DRMFace_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2313 #define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2314 #define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2315 #define IDirect3DRMFace_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2316 #define IDirect3DRMFace_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2317 #define IDirect3DRMFace_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2318 #define IDirect3DRMFace_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2319 #define IDirect3DRMFace_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2320 /*** IDirect3DRMFace methods ***/
2321 #define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2322 #define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
2323 #define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2324 #define IDirect3DRMFace_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2325 #define IDirect3DRMFace_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2326 #define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2327 #define IDirect3DRMFace_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2328 #define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2329 #define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
2330 #define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
2331 #define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2332 #define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
2333 #define IDirect3DRMFace_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
2334 #define IDirect3DRMFace_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
2335 #define IDirect3DRMFace_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2336 #define IDirect3DRMFace_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
2337 #define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
2338 #define IDirect3DRMFace_GetColor(p) (p)->lpVtbl->GetColor(p)
2339 #else
2340 /*** IUnknown methods ***/
2341 #define IDirect3DRMFace_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2342 #define IDirect3DRMFace_AddRef(p) (p)->AddRef()
2343 #define IDirect3DRMFace_Release(p) (p)->Release()
2344 /*** IDirect3DRMObject methods ***/
2345 #define IDirect3DRMFace_Clone(p,a,b,c) (p)->Clone(a,b,c)
2346 #define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2347 #define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2348 #define IDirect3DRMFace_SetAppData(p,a) (p)->SetAppData(a)
2349 #define IDirect3DRMFace_GetAppData(p) (p)->GetAppData()
2350 #define IDirect3DRMFace_SetName(p,a) (p)->SetName(a)
2351 #define IDirect3DRMFace_GetName(p,a,b) (p)->GetName(a,b)
2352 #define IDirect3DRMFace_GetClassName(p,a,b) (p)->GetClassName(a,b)
2353 /*** IDirect3DRMFace methods ***/
2354 #define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2355 #define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
2356 #define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2357 #define IDirect3DRMFace_SetColor(p,a) (p)->SetColor(a)
2358 #define IDirect3DRMFace_SetTexture(p,a) (p)->SetTexture(a)
2359 #define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2360 #define IDirect3DRMFace_SetMaterial(p,a) (p)->SetMaterial(a)
2361 #define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2362 #define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
2363 #define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
2364 #define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2365 #define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
2366 #define IDirect3DRMFace_GetNormal(p,a) (p)->GetNormal(a)
2367 #define IDirect3DRMFace_GetTexture(p,a) (p)->GetTexture(a)
2368 #define IDirect3DRMFace_GetVertexCount(p) (p)->GetVertexCount()
2369 #define IDirect3DRMFace_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
2370 #define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
2371 #define IDirect3DRMFace_GetColor(p) (p)->GetColor()
2372 #endif
2373 
2374 /*****************************************************************************
2375  * IDirect3DRMFace2 interface
2376  */
2377 #define INTERFACE IDirect3DRMFace2
2378 DECLARE_INTERFACE_(IDirect3DRMFace2,IDirect3DRMObject)
2379 {
2380  /*** IUnknown methods ***/
2384  /*** IDirect3DRMObject methods ***/
2385  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2386  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2387  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2388  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2389  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2390  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2393  /*** IDirect3DRMFace methods ***/
2395  STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
2396  STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
2397  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2398  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
2399  STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
2400  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
2401  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2403  STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
2404  STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
2405  STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
2406  STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
2407  STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
2408  STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
2409  STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2410  STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
2411  STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
2413 };
2414 #undef INTERFACE
2415 
2416 #if !defined(__cplusplus) || defined(CINTERFACE)
2417 /*** IUnknown methods ***/
2418 #define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2419 #define IDirect3DRMFace2_AddRef(p) (p)->lpVtbl->AddRef(p)
2420 #define IDirect3DRMFace2_Release(p) (p)->lpVtbl->Release(p)
2421 /*** IDirect3DRMObject methods ***/
2422 #define IDirect3DRMFace2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2423 #define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2424 #define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2425 #define IDirect3DRMFace2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2426 #define IDirect3DRMFace2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2427 #define IDirect3DRMFace2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2428 #define IDirect3DRMFace2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2429 #define IDirect3DRMFace2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2430 /*** IDirect3DRMFace methods ***/
2431 #define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2432 #define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
2433 #define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2434 #define IDirect3DRMFace2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2435 #define IDirect3DRMFace2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2436 #define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2437 #define IDirect3DRMFace2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2438 #define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2439 #define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
2440 #define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
2441 #define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2442 #define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
2443 #define IDirect3DRMFace2_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
2444 #define IDirect3DRMFace2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
2445 #define IDirect3DRMFace2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2446 #define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
2447 #define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
2448 #define IDirect3DRMFace2_GetColor(p) (p)->lpVtbl->GetColor(p)
2449 #else
2450 /*** IUnknown methods ***/
2451 #define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2452 #define IDirect3DRMFace2_AddRef(p) (p)->AddRef()
2453 #define IDirect3DRMFace2_Release(p) (p)->Release()
2454 /*** IDirect3DRMObject methods ***/
2455 #define IDirect3DRMFace2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2456 #define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2457 #define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2458 #define IDirect3DRMFace2_SetAppData(p,a) (p)->SetAppData(a)
2459 #define IDirect3DRMFace2_GetAppData(p) (p)->GetAppData()
2460 #define IDirect3DRMFace2_SetName(p,a) (p)->SetName(a)
2461 #define IDirect3DRMFace2_GetName(p,a,b) (p)->GetName(a,b)
2462 #define IDirect3DRMFace2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2463 /*** IDirect3DRMFace methods ***/
2464 #define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2465 #define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
2466 #define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2467 #define IDirect3DRMFace2_SetColor(p,a) (p)->SetColor(a)
2468 #define IDirect3DRMFace2_SetTexture(p,a) (p)->SetTexture(a)
2469 #define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2470 #define IDirect3DRMFace2_SetMaterial(p,a) (p)->SetMaterial(a)
2471 #define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2472 #define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
2473 #define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
2474 #define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2475 #define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
2476 #define IDirect3DRMFace2_GetNormal(p,a) (p)->GetNormal(a)
2477 #define IDirect3DRMFace2_GetTexture(p,a) (p)->GetTexture(a)
2478 #define IDirect3DRMFace2_GetVertexCount(p) (p)->GetVertexCount()
2479 #define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
2480 #define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
2481 #define IDirect3DRMFace2_GetColor(p) (p)->GetColor()
2482 #endif
2483 
2484 /*****************************************************************************
2485  * IDirect3DRMMeshBuilder interface
2486  */
2487 #define INTERFACE IDirect3DRMMeshBuilder
2488 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder,IDirect3DRMVisual)
2489 {
2490  /*** IUnknown methods ***/
2494  /*** IDirect3DRMObject methods ***/
2495  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2496  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2497  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2498  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2499  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2500  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2503  /*** IDirect3DRMMeshBuilder methods ***/
2505  D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2507  STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2508  STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2509  STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2510  STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2511  STDMETHOD(GenerateNormals)(THIS) PURE;
2512  STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2513  STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2514  STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
2515  STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
2516  STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
2517  STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2518  D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2519  STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2521  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2522  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2523  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2524  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2525  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2526  STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2529  STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2530  STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2532  STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2533  STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2534  DWORD *face_data_size, DWORD *face_data) PURE;
2535  STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2537  STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2538  STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
2539  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2540  STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2541  STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2542  STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2543  STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2544  STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2545 };
2546 #undef INTERFACE
2547 
2548 #if !defined(__cplusplus) || defined(CINTERFACE)
2549 /*** IUnknown methods ***/
2550 #define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2551 #define IDirect3DRMMeshBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
2552 #define IDirect3DRMMeshBuilder_Release(p) (p)->lpVtbl->Release(p)
2553 /*** IDirect3DRMObject methods ***/
2554 #define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2555 #define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2556 #define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2557 #define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2558 #define IDirect3DRMMeshBuilder_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2559 #define IDirect3DRMMeshBuilder_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2560 #define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2561 #define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2562 /*** IDirect3DRMMeshBuilder methods ***/
2563 #define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2564 #define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
2565 #define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
2566 #define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
2567 #define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
2568 #define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2569 #define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
2570 #define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
2571 #define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
2572 #define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
2573 #define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
2574 #define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
2575 #define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
2576 #define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
2577 #define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2578 #define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2579 #define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2580 #define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2581 #define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2582 #define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2583 #define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
2584 #define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
2585 #define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
2586 #define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2587 #define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
2588 #define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
2589 #define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
2590 #define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
2591 #define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2592 #define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2593 #define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
2594 #define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
2595 #define IDirect3DRMMeshBuilder_GetQuality(p) (p)->lpVtbl->GetQuality(p)
2596 #define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
2597 #define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
2598 #define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2599 #define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
2600 #define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2601 #else
2602 /*** IUnknown methods ***/
2603 #define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2604 #define IDirect3DRMMeshBuilder_AddRef(p) (p)->AddRef()
2605 #define IDirect3DRMMeshBuilder_Release(p) (p)->Release()
2606 /*** IDirect3DRMObject methods ***/
2607 #define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->Clone(a,b,c)
2608 #define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2609 #define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2610 #define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->SetAppData(a)
2611 #define IDirect3DRMMeshBuilder_GetAppData(p) (p)->GetAppData()
2612 #define IDirect3DRMMeshBuilder_SetName(p,a) (p)->SetName(a)
2613 #define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->GetName(a,b)
2614 #define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->GetClassName(a,b)
2615 /*** IDirect3DRMMeshBuilder methods ***/
2616 #define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2617 #define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->Save(a,b,c)
2618 #define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->Scale(a,b,c)
2619 #define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->Translate(a)
2620 #define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
2621 #define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->GetBox(a)
2622 #define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->GenerateNormals()
2623 #define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->GetColorSource()
2624 #define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)-->AddMesh(a)
2625 #define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
2626 #define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->AddFrame(a)
2627 #define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->AddFace(a)
2628 #define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
2629 #define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
2630 #define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2631 #define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->SetColor(a)
2632 #define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->SetTexture(a)
2633 #define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->SetMaterial(a)
2634 #define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2635 #define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->SetQuality(a)
2636 #define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->SetPerspective(a)
2637 #define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
2638 #define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
2639 #define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2640 #define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
2641 #define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
2642 #define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->GetFaces(a)
2643 #define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
2644 #define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2645 #define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2646 #define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
2647 #define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->CreateFace(a)
2648 #define IDirect3DRMMeshBuilder_GetQuality(p) (p)->GetQuality()
2649 #define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->GetPerspective()
2650 #define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->GetFaceCount()
2651 #define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->GetVertexCount()
2652 #define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->GetVertexColor(a)
2653 #define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->CreateMesh(a)
2654 #endif
2655 
2656 /*****************************************************************************
2657  * IDirect3DRMMeshBuilder2 interface
2658  */
2659 #define INTERFACE IDirect3DRMMeshBuilder2
2660 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2,IDirect3DRMMeshBuilder)
2661 {
2662  /*** IUnknown methods ***/
2666  /*** IDirect3DRMObject methods ***/
2667  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2668  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2669  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2670  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2671  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2672  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2675  /*** IDirect3DRMMeshBuilder methods ***/
2677  D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2679  STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2680  STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2681  STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2682  STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2683  STDMETHOD(GenerateNormals)(THIS) PURE;
2684  STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2685  STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2686  STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
2687  STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
2688  STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
2689  STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2690  D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2691  STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2693  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2694  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2695  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2696  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2697  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2698  STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2701  STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2702  STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2704  STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2705  STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2706  DWORD *face_data_size, DWORD *face_data) PURE;
2707  STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2709  STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2710  STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
2711  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2712  STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2713  STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2714  STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2715  STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2716  STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2717  /*** IDirect3DRMMeshBuilder2 methods ***/
2718  STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD flags) PURE;
2719  STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace **face) PURE;
2720 };
2721 #undef INTERFACE
2722 
2723 #if !defined(__cplusplus) || defined(CINTERFACE)
2724 /*** IUnknown methods ***/
2725 #define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2726 #define IDirect3DRMMeshBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
2727 #define IDirect3DRMMeshBuilder2_Release(p) (p)->lpVtbl->Release(p)
2728 /*** IDirect3DRMObject methods ***/
2729 #define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2730 #define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2731 #define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2732 #define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2733 #define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2734 #define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2735 #define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2736 #define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2737 /*** IDirect3DRMMeshBuilder methods ***/
2738 #define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2739 #define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
2740 #define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
2741 #define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
2742 #define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
2743 #define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2744 #define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
2745 #define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
2746 #define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
2747 #define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
2748 #define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
2749 #define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
2750 #define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
2751 #define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
2752 #define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2753 #define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2754 #define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2755 #define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2756 #define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2757 #define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2758 #define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
2759 #define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
2760 #define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
2761 #define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2762 #define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
2763 #define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
2764 #define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
2765 #define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
2766 #define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2767 #define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2768 #define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
2769 #define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
2770 #define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
2771 #define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
2772 #define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
2773 #define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2774 #define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
2775 #define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2776 /*** IDirect3DRMMeshBuilder2 methods ***/
2777 #define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->lpVtbl->GenerateNormals2(p,a,b)
2778 #define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->lpVtbl->GetFace(p,a,b)
2779 #else
2780 /*** IUnknown methods ***/
2781 #define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2782 #define IDirect3DRMMeshBuilder2_AddRef(p) (p)->AddRef()
2783 #define IDirect3DRMMeshBuilder2_Release(p) (p)->Release()
2784 /*** IDirect3DRMObject methods ***/
2785 #define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2786 #define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2787 #define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2788 #define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->SetAppData(a)
2789 #define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->GetAppData()
2790 #define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->SetName(a)
2791 #define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->GetName(a,b)
2792 #define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2793 /*** IDirect3DRMMeshBuilder methods ***/
2794 #define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2795 #define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->Save(a,b,c)
2796 #define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->Scale(a,b,c)
2797 #define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->Translate(a)
2798 #define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
2799 #define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->GetBox(a)
2800 #define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->GenerateNormals()
2801 #define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->GetColorSource()
2802 #define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)-->AddMesh(a)
2803 #define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
2804 #define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->AddFrame(a)
2805 #define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->AddFace(a)
2806 #define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
2807 #define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
2808 #define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2809 #define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->SetColor(a)
2810 #define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->SetTexture(a)
2811 #define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->SetMaterial(a)
2812 #define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2813 #define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->SetQuality(a)
2814 #define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->SetPerspective(a)
2815 #define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
2816 #define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
2817 #define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2818 #define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
2819 #define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
2820 #define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->GetFaces(a)
2821 #define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
2822 #define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2823 #define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2824 #define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
2825 #define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->CreateFace(a)
2826 #define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->GetQuality()
2827 #define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->GetPerspective()
2828 #define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->GetFaceCount()
2829 #define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->GetVertexCount()
2830 #define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->GetVertexColor(a)
2831 #define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->CreateMesh(a)
2832 /*** IDirect3DRMMeshBuilder2 methods ***/
2833 #define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->GenerateNormals2(a,b)
2834 #define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->GetFace(a,b)
2835 #endif
2836 
2837 /*****************************************************************************
2838  * IDirect3DRMMeshBuilder3 interface
2839  */
2840 #define INTERFACE IDirect3DRMMeshBuilder3
2841 DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3,IDirect3DRMVisual)
2842 {
2843  /*** IUnknown methods ***/
2847  /*** IDirect3DRMObject methods ***/
2848  STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2849  STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2850  STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2851  STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2852  STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2853  STDMETHOD(SetName)(THIS_ const char *name) PURE;
2856  /*** IDirect3DRMMeshBuilder3 methods ***/
2858  D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
2860  STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2861  STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2862  STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2863  STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2864  STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD flags) PURE;
2865  STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2866  STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2867  STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 *mesh_builder, DWORD flags) PURE;
2868  STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame3 *frame) PURE;
2869  STDMETHOD(AddFace)(THIS_ IDirect3DRMFace2 *face) PURE;
2870  STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2871  D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2872  STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2874  STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2875  STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
2876  STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
2877  STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2878  STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2879  STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2882  STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2883  STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2885  STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2886  STDMETHOD(GetGeometry)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2887  DWORD *face_data_size, DWORD *face_data) PURE;
2888  STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2890  STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2891  STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
2892  STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2893  STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2894  STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2895  STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2896  STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2897  STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2898  STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace2 **face) PURE;
2899  STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
2900  STDMETHOD(GetNormal)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
2901  STDMETHOD(DeleteVertices)(THIS_ DWORD IndexFirst, DWORD count) PURE;
2902  STDMETHOD(DeleteNormals)(THIS_ DWORD IndexFirst, DWORD count) PURE;
2903  STDMETHOD(DeleteFace)(THIS_ IDirect3DRMFace2 *face) PURE;
2905  STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
2906  STDMETHOD(AddFacesIndexed)(THIS_ DWORD flags, DWORD *pvIndices, DWORD *pIndexFirst, DWORD *pCount) PURE;
2907  STDMETHOD(CreateSubMesh)(THIS_ IUnknown **mesh) PURE;
2908  STDMETHOD(GetParentMesh)(THIS_ DWORD flags, IUnknown **parent) PURE;
2909  STDMETHOD(GetSubMeshes)(THIS_ DWORD *count, IUnknown **meshes) PURE;
2910  STDMETHOD(DeleteSubMesh)(THIS_ IUnknown *mesh) PURE;
2912  STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
2913  STDMETHOD(AddTriangles)(THIS_ DWORD flags, DWORD format, DWORD vertex_count, void *data) PURE;
2914  STDMETHOD(SetVertices)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v) PURE;
2915  STDMETHOD(GetVertices)(THIS_ DWORD start_idx, DWORD *count, D3DVECTOR *v) PURE;
2916  STDMETHOD(SetNormals)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v)