VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/d3drmobj.h@ 85805

Last change on this file since 85805 was 53206, checked in by vboxsync, 10 years ago

Devices/vmsvga: header fixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 319.5 KB
Line 
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/*
21 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
22 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
23 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
24 * a choice of LGPL license versions is made available with the language indicating
25 * that LGPLv2 or any later version may be used, or where a choice of which version
26 * of the LGPL is applied is otherwise unspecified.
27 */
28
29#ifndef __D3DRMOBJ_H__
30#define __D3DRMOBJ_H__
31
32#include <objbase.h>
33#define VIRTUAL
34#include <d3drmdef.h>
35#include <d3d.h>
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/* Direct3DRM object CLSIDs */
42
43DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
44DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
45DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
46DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
47DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
48DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
49DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
50DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
51DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
52DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
53DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
54DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
55DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
56DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
57DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator, 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
58DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator, 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
59DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator, 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
60DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator, 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
61DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator, 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
62DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator, 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
63DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
64DEFINE_GUID(CLSID_CDirect3DRMClippedVisual, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
65
66/* Direct3DRM object interface GUIDs */
67
68DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
69DEFINE_GUID(IID_IDirect3DRMObject2, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
70DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
71DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
72DEFINE_GUID(IID_IDirect3DRMDevice3, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
73DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
74DEFINE_GUID(IID_IDirect3DRMViewport2, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
75DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
76DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x00, 0x00, 0xc0, 0x29, 0x1a, 0xc3);
77DEFINE_GUID(IID_IDirect3DRMFrame3, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
78DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
79DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
80DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
81DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
82DEFINE_GUID(IID_IDirect3DRMMeshBuilder3, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
83DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
84DEFINE_GUID(IID_IDirect3DRMFace2, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
85DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
86DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
87DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b);
88DEFINE_GUID(IID_IDirect3DRMTexture3, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
89DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
90DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
91DEFINE_GUID(IID_IDirect3DRMMaterial2, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
92DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
93DEFINE_GUID(IID_IDirect3DRMAnimation2, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
94DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
95DEFINE_GUID(IID_IDirect3DRMAnimationSet2, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
96DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
97DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
98DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
99DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
100DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
101DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
102DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
103DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
104DEFINE_GUID(IID_IDirect3DRMAnimationArray, 0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x00, 0x60, 0x08, 0x3e, 0x45, 0xf3);
105DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
106DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
107DEFINE_GUID(IID_IDirect3DRMShadow2, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0x0b, 0x00, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
108DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
109DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
110DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
111DEFINE_GUID(IID_IDirect3DRMClippedVisual, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0x0b, 0x00, 0x00, 0xf8, 0x75, 0x86, 0x5a);
112
113/*****************************************************************************
114 * Predeclare the interfaces
115 */
116
117typedef struct IDirect3DRMObject *LPDIRECT3DRMOBJECT, **LPLPDIRECT3DRMOBJECT;
118typedef struct IDirect3DRMObject2 *LPDIRECT3DRMOBJECT2, **LPLPDIRECT3DRMOBJECT2;
119typedef struct IDirect3DRMDevice *LPDIRECT3DRMDEVICE, **LPLPDIRECT3DRMDEVICE;
120typedef struct IDirect3DRMDevice2 *LPDIRECT3DRMDEVICE2, **LPLPDIRECT3DRMDEVICE2;
121typedef struct IDirect3DRMDevice3 *LPDIRECT3DRMDEVICE3, **LPLPDIRECT3DRMDEVICE3;
122typedef struct IDirect3DRMViewport *LPDIRECT3DRMVIEWPORT, **LPLPDIRECT3DRMVIEWPORT;
123typedef struct IDirect3DRMViewport2 *LPDIRECT3DRMVIEWPORT2, **LPLPDIRECT3DRMVIEWPORT2;
124typedef struct IDirect3DRMFrame *LPDIRECT3DRMFRAME, **LPLPDIRECT3DRMFRAME;
125typedef struct IDirect3DRMFrame2 *LPDIRECT3DRMFRAME2, **LPLPDIRECT3DRMFRAME2;
126typedef struct IDirect3DRMFrame3 *LPDIRECT3DRMFRAME3, **LPLPDIRECT3DRMFRAME3;
127typedef struct IDirect3DRMVisual *LPDIRECT3DRMVISUAL, **LPLPDIRECT3DRMVISUAL;
128typedef struct IDirect3DRMMesh *LPDIRECT3DRMMESH, **LPLPDIRECT3DRMMESH;
129typedef struct IDirect3DRMMeshBuilder *LPDIRECT3DRMMESHBUILDER, **LPLPDIRECT3DRMMESHBUILDER;
130typedef struct IDirect3DRMMeshBuilder2 *LPDIRECT3DRMMESHBUILDER2, **LPLPDIRECT3DRMMESHBUILDER2;
131typedef struct IDirect3DRMMeshBuilder3 *LPDIRECT3DRMMESHBUILDER3, **LPLPDIRECT3DRMMESHBUILDER3;
132typedef struct IDirect3DRMFace *LPDIRECT3DRMFACE, **LPLPDIRECT3DRMFACE;
133typedef struct IDirect3DRMFace2 *LPDIRECT3DRMFACE2, **LPLPDIRECT3DRMFACE2;
134typedef struct IDirect3DRMLight *LPDIRECT3DRMLIGHT, **LPLPDIRECT3DRMLIGHT;
135typedef struct IDirect3DRMTexture *LPDIRECT3DRMTEXTURE, **LPLPDIRECT3DRMTEXTURE;
136typedef struct IDirect3DRMTexture2 *LPDIRECT3DRMTEXTURE2, **LPLPDIRECT3DRMTEXTURE2;
137typedef struct IDirect3DRMTexture3 *LPDIRECT3DRMTEXTURE3, **LPLPDIRECT3DRMTEXTURE3;
138typedef struct IDirect3DRMWrap *LPDIRECT3DRMWRAP, **LPLPDIRECT3DRMWRAP;
139typedef struct IDirect3DRMMaterial *LPDIRECT3DRMMATERIAL, **LPLPDIRECT3DRMMATERIAL;
140typedef struct IDirect3DRMMaterial2 *LPDIRECT3DRMMATERIAL2, **LPLPDIRECT3DRMMATERIAL2;
141typedef struct IDirect3DRMAnimation *LPDIRECT3DRMANIMATION, **LPLPDIRECT3DRMANIMATION;
142typedef struct IDirect3DRMAnimation2 *LPDIRECT3DRMANIMATION2, **LPLPDIRECT3DRMANIMATION2;
143typedef struct IDirect3DRMAnimationSet *LPDIRECT3DRMANIMATIONSET, **LPLPDIRECT3DRMANIMATIONSET;
144typedef struct IDirect3DRMAnimationSet2 *LPDIRECT3DRMANIMATIONSET2, **LPLPDIRECT3DRMANIMATIONSET2;
145typedef struct IDirect3DRMUserVisual *LPDIRECT3DRMUSERVISUAL, **LPLPDIRECT3DRMUSERVISUAL;
146typedef struct IDirect3DRMShadow *LPDIRECT3DRMSHADOW, **LPLPDIRECT3DRMSHADOW;
147typedef struct IDirect3DRMShadow2 *LPDIRECT3DRMSHADOW2, **LPLPDIRECT3DRMSHADOW2;
148typedef struct IDirect3DRMArray *LPDIRECT3DRMARRAY, **LPLPDIRECT3DRMARRAY;
149typedef struct IDirect3DRMObjectArray *LPDIRECT3DRMOBJECTARRAY, **LPLPDIRECT3DRMOBJECTARRAY;
150typedef struct IDirect3DRMDeviceArray *LPDIRECT3DRMDEVICEARRAY, **LPLPDIRECT3DRMDEVICEARRAY;
151typedef struct IDirect3DRMFaceArray *LPDIRECT3DRMFACEARRAY, **LPLPDIRECT3DRMFACEARRAY;
152typedef struct IDirect3DRMViewportArray *LPDIRECT3DRMVIEWPORTARRAY, **LPLPDIRECT3DRMVIEWPORTARRAY;
153typedef struct IDirect3DRMFrameArray *LPDIRECT3DRMFRAMEARRAY, **LPLPDIRECT3DRMFRAMEARRAY;
154typedef struct IDirect3DRMAnimationArray *LPDIRECT3DRMANIMATIONARRAY, **LPLPDIRECT3DRMANIMATIONARRAY;
155typedef struct IDirect3DRMVisualArray *LPDIRECT3DRMVISUALARRAY, **LPLPDIRECT3DRMVISUALARRAY;
156typedef struct IDirect3DRMPickedArray *LPDIRECT3DRMPICKEDARRAY, **LPLPDIRECT3DRMPICKEDARRAY;
157typedef struct IDirect3DRMPicked2Array *LPDIRECT3DRMPICKED2ARRAY, **LPLPDIRECT3DRMPICKED2ARRAY;
158typedef struct IDirect3DRMLightArray *LPDIRECT3DRMLIGHTARRAY, **LPLPDIRECT3DRMLIGHTARRAY;
159typedef struct IDirect3DRMProgressiveMesh *LPDIRECT3DRMPROGRESSIVEMESH, **LPLPDIRECT3DRMPROGRESSIVEMESH;
160typedef struct IDirect3DRMClippedVisual *LPDIRECT3DRMCLIPPEDVISUAL, **LPLPDIRECT3DRMCLIPPEDVISUAL;
161
162/* ********************************************************************
163 Types and structures
164 ******************************************************************** */
165
166typedef void (__cdecl *D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg);
167typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(struct IDirect3DRMFrame *frame, void *ctx, D3DVALUE delta);
168typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(struct IDirect3DRMFrame3 *frame, void *ctx, D3DVALUE delta);
169typedef void (__cdecl *D3DRMUPDATECALLBACK)(struct IDirect3DRMDevice *device, void *ctx, int count, D3DRECT *rects);
170typedef void (__cdecl *D3DRMDEVICE3UPDATECALLBACK)(struct IDirect3DRMDevice3 *device, void *ctx,
171 int count, D3DRECT *rects);
172typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)(struct IDirect3DRMUserVisual *visual, void *ctx,
173 D3DRMUSERVISUALREASON reason, struct IDirect3DRMDevice *device, struct IDirect3DRMViewport *viewport);
174typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture **texture);
175typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture3 **texture);
176typedef void (__cdecl *D3DRMLOADCALLBACK)(struct IDirect3DRMObject *object, REFIID objectguid, void *arg);
177typedef HRESULT (__cdecl *D3DRMDOWNSAMPLECALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
178 IDirectDrawSurface *src_surface, IDirectDrawSurface *dst_surface);
179typedef HRESULT (__cdecl *D3DRMVALIDATIONCALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
180 DWORD flags, DWORD rect_count, RECT *rects);
181
182typedef struct _D3DRMPICKDESC
183{
184 ULONG ulFaceIdx;
185 LONG lGroupIdx;
186 D3DVECTOR vPosition;
187} D3DRMPICKDESC, *LPD3DRMPICKDESC;
188
189typedef struct _D3DRMPICKDESC2
190{
191 ULONG ulFaceIdx;
192 LONG lGroupIdx;
193 D3DVECTOR vPosition;
194 D3DVALUE tu;
195 D3DVALUE tv;
196 D3DVECTOR dvNormal;
197 D3DCOLOR dcColor;
198} D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
199
200/*****************************************************************************
201 * IDirect3DRMObject interface
202 */
203#ifdef WINE_NO_UNICODE_MACROS
204#undef GetClassName
205#endif
206#define INTERFACE IDirect3DRMObject
207DECLARE_INTERFACE_(IDirect3DRMObject,IUnknown)
208{
209 /*** IUnknown methods ***/
210 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
211 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
212 STDMETHOD_(ULONG,Release)(THIS) PURE;
213 /*** IDirect3DRMObject methods ***/
214 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
215 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
216 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
217 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
218 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
219 STDMETHOD(SetName)(THIS_ const char *name) PURE;
220 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
221 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
222};
223#undef INTERFACE
224
225#if !defined(__cplusplus) || defined(CINTERFACE)
226/*** IUnknown methods ***/
227#define IDirect3DRMObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
228#define IDirect3DRMObject_AddRef(p) (p)->lpVtbl->AddRef(p)
229#define IDirect3DRMObject_Release(p) (p)->lpVtbl->Release(p)
230/*** IDirect3DRMObject methods ***/
231#define IDirect3DRMObject_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
232#define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
233#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
234#define IDirect3DRMObject_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
235#define IDirect3DRMObject_GetAppData(p) (p)->lpVtbl->GetAppData(p)
236#define IDirect3DRMObject_SetName(p,a) (p)->lpVtbl->SetName(p,a)
237#define IDirect3DRMObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
238#define IDirect3DRMObject_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
239#else
240/*** IUnknown methods ***/
241#define IDirect3DRMObject_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
242#define IDirect3DRMObject_AddRef(p) (p)->AddRef()
243#define IDirect3DRMObject_Release(p) (p)->Release()
244/*** IDirect3DRMObject methods ***/
245#define IDirect3DRMObject_Clone(p,a,b,c) (p)->Clone(a,b,c)
246#define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
247#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
248#define IDirect3DRMObject_SetAppData(p,a) (p)->SetAppData(a)
249#define IDirect3DRMObject_GetAppData(p) (p)->GetAppData()
250#define IDirect3DRMObject_SetName(p,a) (p)->SetName(a)
251#define IDirect3DRMObject_GetName(p,a,b) (p)->GetName(a,b)
252#define IDirect3DRMObject_GetClassName(p,a,b) (p)->GetClassName(a,b)
253#endif
254
255/*****************************************************************************
256 * IDirect3DRMObject2 interface
257 */
258#ifdef WINE_NO_UNICODE_MACROS
259#undef GetClassName
260#endif
261#define INTERFACE IDirect3DRMObject2
262DECLARE_INTERFACE_(IDirect3DRMObject2,IUnknown)
263{
264 /*** IUnknown methods ***/
265 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
266 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
267 STDMETHOD_(ULONG,Release)(THIS) PURE;
268 /*** IDirect3DRMObject2 methods ***/
269 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
270 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
271 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
272 STDMETHOD(GetClientData)(THIS_ DWORD id, void **data) PURE;
273 STDMETHOD(GetDirect3DRM)(THIS_ struct IDirect3DRM **d3drm) PURE;
274 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
275 STDMETHOD(SetClientData)(THIS_ DWORD id, void *data, DWORD flags) PURE;
276 STDMETHOD(SetName)(THIS_ const char *name) PURE;
277 STDMETHOD(GetAge)(THIS_ DWORD flags, DWORD *age) PURE;
278};
279#undef INTERFACE
280
281#if !defined(__cplusplus) || defined(CINTERFACE)
282/*** IUnknown methods ***/
283#define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
284#define IDirect3DRMObject2_AddRef(p) (p)->lpVtbl->AddRef(p)
285#define IDirect3DRMObject2_Release(p) (p)->lpVtbl->Release(p)
286/*** IDirect3DRMObject2 methods ***/
287#define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
288#define IDirect3DRMObject2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
289#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
290#define IDirect3DRMObject2_GetClientData(p,a,b) (p)->lpVtbl->SetClientData(p,a,b)
291#define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->lpVtbl->GetDirect3DRM(p,a)
292#define IDirect3DRMObject2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
293#define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->lpVtbl->SetClientData(p,a,b,c)
294#define IDirect3DRMObject2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
295#define IDirect3DRMObject2_GetAge(p,a,b) (p)->lpVtbl->GetAge(p,a,b)
296#else
297/*** IUnknown methods ***/
298#define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
299#define IDirect3DRMObject2_AddRef(p) (p)->AddRef()
300#define IDirect3DRMObject2_Release(p) (p)->Release()
301/*** IDirect3DRMObject2 methods ***/
302#define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
303#define IDirect3DRMObject2_Clone(p,a,b,c) (p)->Clone(a,b,c)
304#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
305#define IDirect3DRMObject2_GetClientData(p,a,b) (p)->SetClientData(a,b)
306#define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->GetDirect3DRM(a)
307#define IDirect3DRMObject2_GetName(p,a,b) (p)->GetName(a,b)
308#define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->SetClientData(a,b,c)
309#define IDirect3DRMObject2_SetName(p,a) (p)->SetName(a)
310#define IDirect3DRMObject2_GetAge(p,a,b) (p)->GetAge(a,b)
311#endif
312
313/*****************************************************************************
314 * IDirect3DRMVisual interface
315 */
316#define INTERFACE IDirect3DRMVisual
317DECLARE_INTERFACE_(IDirect3DRMVisual,IDirect3DRMObject)
318{
319 /*** IUnknown methods ***/
320 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
321 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
322 STDMETHOD_(ULONG,Release)(THIS) PURE;
323 /*** IDirect3DRMObject methods ***/
324 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
325 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
326 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
327 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
328 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
329 STDMETHOD(SetName)(THIS_ const char *name) PURE;
330 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
331 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
332};
333#undef INTERFACE
334
335#if !defined(__cplusplus) || defined(CINTERFACE)
336/*** IUnknown methods ***/
337#define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
338#define IDirect3DRMVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
339#define IDirect3DRMVisual_Release(p) (p)->lpVtbl->Release(p)
340/*** IDirect3DRMObject methods ***/
341#define IDirect3DRMVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
342#define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
343#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
344#define IDirect3DRMVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
345#define IDirect3DRMVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
346#define IDirect3DRMVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
347#define IDirect3DRMVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
348#define IDirect3DRMVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
349#else
350/*** IUnknown methods ***/
351#define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
352#define IDirect3DRMVisual_AddRef(p) (p)->AddRef()
353#define IDirect3DRMVisual_Release(p) (p)->Release()
354/*** IDirect3DRMObject methods ***/
355#define IDirect3DRMVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
356#define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
357#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
358#define IDirect3DRMVisual_SetAppData(p,a) (p)->SetAppData(a)
359#define IDirect3DRMVisual_GetAppData(p) (p)->GetAppData()
360#define IDirect3DRMVisual_SetName(p,a) (p)->SetName(a)
361#define IDirect3DRMVisual_GetName(p,a,b) (p)->GetName(a,b)
362#define IDirect3DRMVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
363#endif
364
365/*****************************************************************************
366 * IDirect3DRMDevice interface
367 */
368#ifdef WINE_NO_UNICODE_MACROS
369#undef GetClassName
370#endif
371#define INTERFACE IDirect3DRMDevice
372DECLARE_INTERFACE_(IDirect3DRMDevice,IUnknown)
373{
374 /*** IUnknown methods ***/
375 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
376 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
377 STDMETHOD_(ULONG,Release)(THIS) PURE;
378 /*** IDirect3DRMObject methods ***/
379 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
380 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
381 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
382 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
383 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
384 STDMETHOD(SetName)(THIS_ const char *name) PURE;
385 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
386 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
387 /*** IDirect3DRMDevice methods ***/
388 STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
389 STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
390 STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
391 STDMETHOD(Update)(THIS) PURE;
392 STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
393 STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
394 STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
395 STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
396 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
397 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
398 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
399 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
400 STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
401 STDMETHOD_(BOOL, GetDither)(THIS) PURE;
402 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
403 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
404 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
405 STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
406 STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
407 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
408 STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
409 STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
410 STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
411};
412#undef INTERFACE
413
414#if !defined(__cplusplus) || defined(CINTERFACE)
415/*** IUnknown methods ***/
416#define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
417#define IDirect3DRMDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
418#define IDirect3DRMDevice_Release(p) (p)->lpVtbl->Release(p)
419/*** IDirect3DRMObject methods ***/
420#define IDirect3DRMDevice_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
421#define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
422#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
423#define IDirect3DRMDevice_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
424#define IDirect3DRMDevice_GetAppData(p) (p)->lpVtbl->GetAppData(p)
425#define IDirect3DRMDevice_SetName(p,a) (p)->lpVtbl->SetName(p,a)
426#define IDirect3DRMDevice_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
427#define IDirect3DRMDevice_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
428/*** IDirect3DRMDevice methods ***/
429#define IDirect3DRMDevice_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
430#define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
431#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
432#define IDirect3DRMDevice_Update(p) (p)->lpVtbl->Update(p)
433#define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
434#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
435#define IDirect3DRMDevice_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
436#define IDirect3DRMDevice_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
437#define IDirect3DRMDevice_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
438#define IDirect3DRMDevice_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
439#define IDirect3DRMDevice_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
440#define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
441#define IDirect3DRMDevice_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
442#define IDirect3DRMDevice_GetDither(p) (p)->lpVtbl->GetDither(p)
443#define IDirect3DRMDevice_GetShades(p) (p)->lpVtbl->GetShades(p)
444#define IDirect3DRMDevice_GetHeight(p) (p)->lpVtbl->GetHeight(p)
445#define IDirect3DRMDevice_GetWidth(p) (p)->lpVtbl->GetWidth(p)
446#define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
447#define IDirect3DRMDevice_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
448#define IDirect3DRMDevice_GetQuality(p) (p)->lpVtbl->GetQuality(p)
449#define IDirect3DRMDevice_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
450#define IDirect3DRMDevice_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
451#define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
452#else
453/*** IUnknown methods ***/
454#define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
455#define IDirect3DRMDevice_AddRef(p) (p)->AddRef()
456#define IDirect3DRMDevice_Release(p) (p)->Release()
457/*** IDirect3DRMObject methods ***/
458#define IDirect3DRMDevice_Clone(p,a,b,c) (p)->Clone(a,b,c)
459#define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
460#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
461#define IDirect3DRMDevice_SetAppData(p,a) (p)->SetAppData(a)
462#define IDirect3DRMDevice_GetAppData(p) (p)->GetAppData()
463#define IDirect3DRMDevice_SetName(p,a) (p)->SetName(a)
464#define IDirect3DRMDevice_GetName(p,a,b) (p)->GetName(a,b)
465#define IDirect3DRMDevice_GetClassName(p,a,b) (p)->GetClassName(a,b)
466/*** IDirect3DRMDevice methods ***/
467#define IDirect3DRMDevice_Init(p,a,b) (p)->Init(a,b)
468#define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
469#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
470#define IDirect3DRMDevice_Update(p) (p)->Update()
471#define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
472#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
473#define IDirect3DRMDevice_SetBufferCount(p,a) (p)->SetBufferCount(a)
474#define IDirect3DRMDevice_GetBufferCount(p) (p)->GetBufferCount()
475#define IDirect3DRMDevice_SetDither(p,a) (p)->SetDither(a)
476#define IDirect3DRMDevice_SetShades(p,a) (p)->SetShades(a)
477#define IDirect3DRMDevice_SetQuality(p,a) (p)->SetQuality(a)
478#define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
479#define IDirect3DRMDevice_GetViewports(p,a) (p)->GetViewports(a)
480#define IDirect3DRMDevice_GetDither(p) (p)->GetDither()
481#define IDirect3DRMDevice_GetShades(p) (p)->GetShades()
482#define IDirect3DRMDevice_GetHeight(p) (p)->GetHeight()
483#define IDirect3DRMDevice_GetWidth(p) (p)->GetWidth()
484#define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
485#define IDirect3DRMDevice_GetWireframeOptions(p) (p)->GetWireframeOptions()
486#define IDirect3DRMDevice_GetQuality(p) (p)->GetQuality()
487#define IDirect3DRMDevice_GetColorModel(p) (p)->GetColorModel()
488#define IDirect3DRMDevice_GetTextureQuality(p) (p)->GetTextureQuality()
489#define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
490#endif
491
492/*****************************************************************************
493 * IDirect3DRMDevice2 interface
494 */
495#ifdef WINE_NO_UNICODE_MACROS
496#undef GetClassName
497#endif
498#define INTERFACE IDirect3DRMDevice2
499DECLARE_INTERFACE_(IDirect3DRMDevice2,IDirect3DRMDevice)
500{
501 /*** IUnknown methods ***/
502 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
503 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
504 STDMETHOD_(ULONG,Release)(THIS) PURE;
505 /*** IDirect3DRMObject methods ***/
506 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
507 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
508 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
509 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
510 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
511 STDMETHOD(SetName)(THIS_ const char *name) PURE;
512 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
513 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
514 /*** IDirect3DRMDevice methods ***/
515 STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
516 STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
517 STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
518 STDMETHOD(Update)(THIS) PURE;
519 STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
520 STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
521 STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
522 STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
523 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
524 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
525 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
526 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
527 STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
528 STDMETHOD_(BOOL, GetDither)(THIS) PURE;
529 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
530 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
531 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
532 STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
533 STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
534 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
535 STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
536 STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
537 STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
538 /*** IDirect3DRMDevice2 methods ***/
539 STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
540 STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
541 STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
542 STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
543 STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
544};
545#undef INTERFACE
546
547#if !defined(__cplusplus) || defined(CINTERFACE)
548/*** IUnknown methods ***/
549#define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
550#define IDirect3DRMDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
551#define IDirect3DRMDevice2_Release(p) (p)->lpVtbl->Release(p)
552/*** IDirect3DRMObject methods ***/
553#define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
554#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
555#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
556#define IDirect3DRMDevice2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
557#define IDirect3DRMDevice2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
558#define IDirect3DRMDevice2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
559#define IDirect3DRMDevice2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
560#define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
561/*** IDirect3DRMDevice methods ***/
562#define IDirect3DRMDevice2_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
563#define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
564#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
565#define IDirect3DRMDevice2_Update(p) (p)->lpVtbl->Update(p)
566#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
567#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
568#define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
569#define IDirect3DRMDevice2_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
570#define IDirect3DRMDevice2_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
571#define IDirect3DRMDevice2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
572#define IDirect3DRMDevice2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
573#define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
574#define IDirect3DRMDevice2_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
575#define IDirect3DRMDevice2_GetDither(p) (p)->lpVtbl->GetDither(p)
576#define IDirect3DRMDevice2_GetShades(p) (p)->lpVtbl->GetShades(p)
577#define IDirect3DRMDevice2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
578#define IDirect3DRMDevice2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
579#define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
580#define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
581#define IDirect3DRMDevice2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
582#define IDirect3DRMDevice2_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
583#define IDirect3DRMDevice2_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
584#define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
585/*** IDirect3DRMDevice2 methods ***/
586#define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
587#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
588#define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
589#define IDirect3DRMDevice2_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
590#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
591#else
592/*** IUnknown methods ***/
593#define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
594#define IDirect3DRMDevice2_AddRef(p) (p)->AddRef()
595#define IDirect3DRMDevice2_Release(p) (p)->Release()
596/*** IDirect3DRMObject methods ***/
597#define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->Clone(a,b,c)
598#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
599#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
600#define IDirect3DRMDevice2_SetAppData(p,a) (p)->SetAppData(a)
601#define IDirect3DRMDevice2_GetAppData(p) (p)->GetAppData()
602#define IDirect3DRMDevice2_SetName(p,a) (p)->SetName(a)
603#define IDirect3DRMDevice2_GetName(p,a,b) (p)->GetName(a,b)
604#define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->GetClassName(a,b)
605/*** IDirect3DRMDevice methods ***/
606#define IDirect3DRMDevice2_Init(p,a,b) (p)->Init(a,b)
607#define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
608#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
609#define IDirect3DRMDevice2_Update(p) (p)->Update()
610#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
611#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
612#define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->SetBufferCount(a)
613#define IDirect3DRMDevice2_GetBufferCount(p) (p)->GetBufferCount()
614#define IDirect3DRMDevice2_SetDither(p,a) (p)->SetDither(a)
615#define IDirect3DRMDevice2_SetShades(p,a) (p)->SetShades(a)
616#define IDirect3DRMDevice2_SetQuality(p,a) (p)->SetQuality(a)
617#define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
618#define IDirect3DRMDevice2_GetViewports(p,a) (p)->GetViewports(a)
619#define IDirect3DRMDevice2_GetDither(p) (p)->GetDither()
620#define IDirect3DRMDevice2_GetShades(p) (p)->GetShades()
621#define IDirect3DRMDevice2_GetHeight(p) (p)->GetHeight()
622#define IDirect3DRMDevice2_GetWidth(p) (p)->GetWidth()
623#define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
624#define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->GetWireframeOptions()
625#define IDirect3DRMDevice2_GetQuality(p) (p)->GetQuality()
626#define IDirect3DRMDevice2_GetColorModel(p) (p)->GetColorModel()
627#define IDirect3DRMDevice2_GetTextureQuality(p) (p)->GetTextureQuality()
628#define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
629/*** IDirect3DRMDevice2 methods ***/
630#define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
631#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
632#define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->SetRenderMode(a)
633#define IDirect3DRMDevice2_GetRenderMode(p) (p)->GetRenderMode()
634#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
635#endif
636
637/*****************************************************************************
638 * IDirect3DRMDevice3 interface
639 */
640#ifdef WINE_NO_UNICODE_MACROS
641#undef GetClassName
642#endif
643#define INTERFACE IDirect3DRMDevice3
644DECLARE_INTERFACE_(IDirect3DRMDevice3,IDirect3DRMObject)
645{
646 /*** IUnknown methods ***/
647 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
648 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
649 STDMETHOD_(ULONG,Release)(THIS) PURE;
650 /*** IDirect3DRMObject methods ***/
651 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
652 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
653 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
654 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
655 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
656 STDMETHOD(SetName)(THIS_ const char *name) PURE;
657 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
658 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
659 /*** IDirect3DRMDevice methods ***/
660 STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
661 STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
662 STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
663 STDMETHOD(Update)(THIS) PURE;
664 STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
665 STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
666 STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
667 STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
668 STDMETHOD(SetDither)(THIS_ BOOL) PURE;
669 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
670 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
671 STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
672 STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
673 STDMETHOD_(BOOL, GetDither)(THIS) PURE;
674 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
675 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
676 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
677 STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
678 STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
679 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
680 STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
681 STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
682 STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
683 /*** IDirect3DRMDevice2 methods ***/
684 STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
685 STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
686 STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
687 STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
688 STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
689 /*** IDirect3DRMDevice3 methods ***/
690 STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD BitDepths, DWORD flags, DDPIXELFORMAT *format) PURE;
691 STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD val, DWORD flags) PURE;
692 STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD val, DWORD flags) PURE;
693 STDMETHOD(GetStateChangeOptions)(THIS_ DWORD state_class, DWORD state_idx, DWORD *flags) PURE;
694 STDMETHOD(SetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, DWORD flags) PURE;
695};
696#undef INTERFACE
697
698#if !defined(__cplusplus) || defined(CINTERFACE)
699/*** IUnknown methods ***/
700#define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
701#define IDirect3DRMDevice3_AddRef(p) (p)->lpVtbl->AddRef(p)
702#define IDirect3DRMDevice3_Release(p) (p)->lpVtbl->Release(p)
703/*** IDirect3DRMObject methods ***/
704#define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
705#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
706#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
707#define IDirect3DRMDevice3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
708#define IDirect3DRMDevice3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
709#define IDirect3DRMDevice3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
710#define IDirect3DRMDevice3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
711#define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
712/*** IDirect3DRMDevice methods ***/
713#define IDirect3DRMDevice3_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
714#define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
715#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
716#define IDirect3DRMDevice3_Update(p) (p)->lpVtbl->Update(p)
717#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
718#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
719#define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
720#define IDirect3DRMDevice3_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
721#define IDirect3DRMDevice3_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
722#define IDirect3DRMDevice3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
723#define IDirect3DRMDevice3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
724#define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
725#define IDirect3DRMDevice3_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
726#define IDirect3DRMDevice3_GetDither(p) (p)->lpVtbl->GetDither(p)
727#define IDirect3DRMDevice3_GetShades(p) (p)->lpVtbl->GetShades(p)
728#define IDirect3DRMDevice3_GetHeight(p) (p)->lpVtbl->GetHeight(p)
729#define IDirect3DRMDevice3_GetWidth(p) (p)->lpVtbl->GetWidth(p)
730#define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
731#define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
732#define IDirect3DRMDevice3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
733#define IDirect3DRMDevice3_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
734#define IDirect3DRMDevice3_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
735#define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
736/*** IDirect3DRMDevice2 methods ***/
737#define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
738#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
739#define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
740#define IDirect3DRMDevice3_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
741#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
742/*** IDirect3DRMDevice3 methods ***/
743#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b,c)
744#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->lpVtbl->RenderStateChange(p,a,b,c)
745#define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->lpVtbl->LightStateChange(p,a,b,c)
746#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->lpVtbl->GetStateChangeOptions(p,a,b,c)
747#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->lpVtbl->SetStateChangeOptions(p,a,b,c)
748#else
749/*** IUnknown methods ***/
750#define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
751#define IDirect3DRMDevice3_AddRef(p) (p)->AddRef()
752#define IDirect3DRMDevice3_Release(p) (p)->Release()
753/*** IDirect3DRMObject methods ***/
754#define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->Clone(a,b,c)
755#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
756#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
757#define IDirect3DRMDevice3_SetAppData(p,a) (p)->SetAppData(a)
758#define IDirect3DRMDevice3_GetAppData(p) (p)->GetAppData()
759#define IDirect3DRMDevice3_SetName(p,a) (p)->SetName(a)
760#define IDirect3DRMDevice3_GetName(p,a,b) (p)->GetName(a,b)
761#define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->GetClassName(a,b)
762/*** IDirect3DRMDevice methods ***/
763#define IDirect3DRMDevice3_Init(p,a,b) (p)->Init(a,b)
764#define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
765#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
766#define IDirect3DRMDevice3_Update(p) (p)->Update()
767#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
768#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
769#define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->SetBufferCount(a)
770#define IDirect3DRMDevice3_GetBufferCount(p) (p)->GetBufferCount()
771#define IDirect3DRMDevice3_SetDither(p,a) (p)->SetDither(a)
772#define IDirect3DRMDevice3_SetShades(p,a) (p)->SetShades(a)
773#define IDirect3DRMDevice3_SetQuality(p,a) (p)->SetQuality(a)
774#define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
775#define IDirect3DRMDevice3_GetViewports(p,a) (p)->GetViewports(a)
776#define IDirect3DRMDevice3_GetDither(p) (p)->GetDither()
777#define IDirect3DRMDevice3_GetShades(p) (p)->GetShades()
778#define IDirect3DRMDevice3_GetHeight(p) (p)->GetHeight()
779#define IDirect3DRMDevice3_GetWidth(p) (p)->GetWidth()
780#define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
781#define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->GetWireframeOptions()
782#define IDirect3DRMDevice3_GetQuality(p) (p)->GetQuality()
783#define IDirect3DRMDevice3_GetColorModel(p) (p)->GetColorModel()
784#define IDirect3DRMDevice3_GetTextureQuality(p) (p)->GetTextureQuality()
785#define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
786/*** IDirect3DRMDevice2 methods ***/
787#define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
788#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
789#define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->SetRenderMode(a)
790#define IDirect3DRMDevice3_GetRenderMode(p) (p)->GetRenderMode()
791#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
792/*** IDirect3DRMDevice3 methods ***/
793#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
794#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->RenderStateChange(a,b,c)
795#define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->LightStateChange(a,b,c)
796#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->GetStateChangeOptions(a,b,c)
797#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->SetStateChangeOptions(a,b,c)
798#endif
799
800/*****************************************************************************
801 * IDirect3DRMViewport interface
802 */
803#define INTERFACE IDirect3DRMViewport
804DECLARE_INTERFACE_(IDirect3DRMViewport,IDirect3DRMObject)
805{
806 /*** IUnknown methods ***/
807 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
808 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
809 STDMETHOD_(ULONG,Release)(THIS) PURE;
810 /*** IDirect3DRMObject methods ***/
811 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
812 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
813 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
814 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
815 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
816 STDMETHOD(SetName)(THIS_ const char *name) PURE;
817 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
818 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
819 /*** IDirect3DRMViewport methods ***/
820 STDMETHOD(Init) (THIS_ IDirect3DRMDevice *device, struct IDirect3DRMFrame *camera,
821 DWORD x, DWORD y, DWORD width, DWORD height) PURE;
822 STDMETHOD(Clear)(THIS) PURE;
823 STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame *frame) PURE;
824 STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
825 STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
826 STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
827 STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
828 STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame *camera) PURE;
829 STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
830 STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
831 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
832 STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
833 STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
834 STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
835 STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame **camera) PURE;
836 STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice **device) PURE;
837 STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
838 STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
839 STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
840 STDMETHOD_(LONG, GetX)(THIS) PURE;
841 STDMETHOD_(LONG, GetY)(THIS) PURE;
842 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
843 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
844 STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
845 STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
846 STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
847 STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
848 STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
849};
850#undef INTERFACE
851
852#if !defined(__cplusplus) || defined(CINTERFACE)
853/*** IUnknown methods ***/
854#define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
855#define IDirect3DRMViewport_AddRef(p) (p)->lpVtbl->AddRef(p)
856#define IDirect3DRMViewport_Release(p) (p)->lpVtbl->Release(p)
857/*** IDirect3DRMObject methods ***/
858#define IDirect3DRMViewport_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
859#define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
860#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
861#define IDirect3DRMViewport_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
862#define IDirect3DRMViewport_GetAppData(p) (p)->lpVtbl->GetAppData(p)
863#define IDirect3DRMViewport_SetName(p,a) (p)->lpVtbl->SetName(p,a)
864#define IDirect3DRMViewport_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
865#define IDirect3DRMViewport_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
866/*** IDirect3DRMViewport methods ***/
867#define IDirect3DRMViewport_Init(p,a,b,c,d) (p)->lpVtbl->Init(p,a,b,c,d)
868#define IDirect3DRMViewport_Clear(p) (p)->lpVtbl->Clear(p)
869#define IDirect3DRMViewport_Render(p,a) (p)->lpVtbl->Render(p,a)
870#define IDirect3DRMViewport_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
871#define IDirect3DRMViewport_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
872#define IDirect3DRMViewport_SetField(p,a) (p)->lpVtbl->SetField(p,a)
873#define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
874#define IDirect3DRMViewport_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
875#define IDirect3DRMViewport_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
876#define IDirect3DRMViewport_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
877#define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
878#define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
879#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
880#define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
881#define IDirect3DRMViewport_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
882#define IDirect3DRMViewport_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
883#define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
884#define IDirect3DRMViewport_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
885#define IDirect3DRMViewport_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
886#define IDirect3DRMViewport_GetX(p) (p)->lpVtbl->GetX(p)
887#define IDirect3DRMViewport_GetY(p) (p)->lpVtbl->GetY(p)
888#define IDirect3DRMViewport_GetWidth(p) (p)->lpVtbl->GetWidth(p)
889#define IDirect3DRMViewport_GetHeight(p) (p)->lpVtbl->GetHeight(p)
890#define IDirect3DRMViewport_GetField(p) (p)->lpVtbl->GetField(p)
891#define IDirect3DRMViewport_GetBack(p) (p)->lpVtbl->GetBack(p)
892#define IDirect3DRMViewport_GetFront(p) (p)->lpVtbl->GetFront(p)
893#define IDirect3DRMViewport_GetProjection(p) (p)->lpVtbl->GetProjection(p)
894#define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
895#else
896/*** IUnknown methods ***/
897#define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
898#define IDirect3DRMViewport_AddRef(p) (p)->AddRef()
899#define IDirect3DRMViewport_Release(p) (p)->Release()
900/*** IDirect3DRMObject methods ***/
901#define IDirect3DRMViewport_Clone(p,a,b,c) (p)->Clone(a,b,c)
902#define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
903#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
904#define IDirect3DRMViewport_SetAppData(p,a) (p)->SetAppData(a)
905#define IDirect3DRMViewport_GetAppData(p) (p)->GetAppData()
906#define IDirect3DRMViewport_SetName(p,a) (p)->SetName(a)
907#define IDirect3DRMViewport_GetName(p,a,b) (p)->GetName(a,b)
908#define IDirect3DRMViewport_GetClassName(p,a,b) (p)->GetClassName(a,b)
909/*** IDirect3DRMViewport methods ***/
910#define IDirect3DRMViewport_Init(p,a,b,c,d) (p)->Init(a,b,c,d)
911#define IDirect3DRMViewport_Clear(p) (p)->Clear()
912#define IDirect3DRMViewport_Render(p,a) (p)->Render(a)
913#define IDirect3DRMViewport_SetFront(p,a) (p)->SetFront(a)
914#define IDirect3DRMViewport_SetBack(p,a) (p)->SetBack(a)
915#define IDirect3DRMViewport_SetField(p,a) (p)->SetField(a)
916#define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
917#define IDirect3DRMViewport_SetCamera(p,a) (p)->SetCamera(a)
918#define IDirect3DRMViewport_SetProjection(p,a) (p)->SetProjection(a)
919#define IDirect3DRMViewport_Transform(p,a,b) (p)->Transform(a,b)
920#define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
921#define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
922#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
923#define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
924#define IDirect3DRMViewport_GetCamera(p,a) (p)->GetCamera(a)
925#define IDirect3DRMViewport_GetDevice(p,a) (p)->GetDevice(a)
926#define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
927#define IDirect3DRMViewport_Pick(p,a,b,c) (p)->Pick(a,b,c)
928#define IDirect3DRMViewport_GetUniformScaling(p) (p)->GetUniformScaling()
929#define IDirect3DRMViewport_GetX(p) (p)->GetX()
930#define IDirect3DRMViewport_GetY(p) (p)->GetY()
931#define IDirect3DRMViewport_GetWidth(p) (p)->GetWidth()
932#define IDirect3DRMViewport_GetHeight(p) (p)->GetHeight()
933#define IDirect3DRMViewport_GetField(p) (p)->GetField()
934#define IDirect3DRMViewport_GetBack(p) (p)->GetBack()
935#define IDirect3DRMViewport_GetFront(p) (p)->GetFront()
936#define IDirect3DRMViewport_GetProjection(p) (p)->GetProjection()
937#define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
938#endif
939
940/*****************************************************************************
941 * IDirect3DRMViewport2 interface
942 */
943#define INTERFACE IDirect3DRMViewport2
944DECLARE_INTERFACE_(IDirect3DRMViewport2,IDirect3DRMObject)
945{
946 /*** IUnknown methods ***/
947 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
948 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
949 STDMETHOD_(ULONG,Release)(THIS) PURE;
950 /*** IDirect3DRMObject methods ***/
951 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
952 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
953 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
954 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
955 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
956 STDMETHOD(SetName)(THIS_ const char *name) PURE;
957 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
958 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
959 /*** IDirect3DRMViewport2 methods ***/
960 STDMETHOD(Init) (THIS_ IDirect3DRMDevice3 *device, struct IDirect3DRMFrame3 *camera,
961 DWORD x, DWORD y, DWORD width, DWORD height) PURE;
962 STDMETHOD(Clear)(THIS_ DWORD flags) PURE;
963 STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame3 *frame) PURE;
964 STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
965 STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
966 STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
967 STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
968 STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame3 *camera) PURE;
969 STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
970 STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
971 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
972 STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
973 STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
974 STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
975 STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame3 **camera) PURE;
976 STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice3 **device) PURE;
977 STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
978 STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
979 STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
980 STDMETHOD_(LONG, GetX)(THIS) PURE;
981 STDMETHOD_(LONG, GetY)(THIS) PURE;
982 STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
983 STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
984 STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
985 STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
986 STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
987 STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
988 STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
989 STDMETHOD(TransformVectors)(THIS_ DWORD vector_count, D3DRMVECTOR4D *dst_vectors,
990 D3DVECTOR *src_vectors) PURE;
991 STDMETHOD(InverseTransformVectors)(THIS_ DWORD vector_count, D3DVECTOR *dst_vectors,
992 D3DRMVECTOR4D *src_vectors) PURE;
993};
994#undef INTERFACE
995
996#if !defined(__cplusplus) || defined(CINTERFACE)
997/*** IUnknown methods ***/
998#define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
999#define IDirect3DRMViewport2_AddRef(p) (p)->lpVtbl->AddRef(p)
1000#define IDirect3DRMViewport2_Release(p) (p)->lpVtbl->Release(p)
1001/*** IDirect3DRMObject methods ***/
1002#define IDirect3DRMViewport_2Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1003#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1004#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1005#define IDirect3DRMViewport2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1006#define IDirect3DRMViewport2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1007#define IDirect3DRMViewport2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1008#define IDirect3DRMViewport2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1009#define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1010/*** IDirect3DRMViewport2 methods ***/
1011#define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f) (p)->lpVtbl->Init(p,a,b,c,d,e,f)
1012#define IDirect3DRMViewport2_Clear(p,a) (p)->lpVtbl->Clear(p,a)
1013#define IDirect3DRMViewport2_Render(p,a) (p)->lpVtbl->Render(p,a)
1014#define IDirect3DRMViewport2_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
1015#define IDirect3DRMViewport2_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
1016#define IDirect3DRMViewport2_SetField(p,a) (p)->lpVtbl->SetField(p,a)
1017#define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
1018#define IDirect3DRMViewport2_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
1019#define IDirect3DRMViewport2_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
1020#define IDirect3DRMViewport2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1021#define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1022#define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
1023#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
1024#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
1025#define IDirect3DRMViewport2_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
1026#define IDirect3DRMViewport2_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1027#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
1028#define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
1029#define IDirect3DRMViewport2_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
1030#define IDirect3DRMViewport2_GetX(p) (p)->lpVtbl->GetX(p)
1031#define IDirect3DRMViewport2_GetY(p) (p)->lpVtbl->GetY(p)
1032#define IDirect3DRMViewport2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
1033#define IDirect3DRMViewport2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
1034#define IDirect3DRMViewport2_GetField(p) (p)->lpVtbl->GetField(p)
1035#define IDirect3DRMViewport2_GetBack(p) (p)->lpVtbl->GetBack(p)
1036#define IDirect3DRMViewport2_GetFront(p) (p)->lpVtbl->GetFront(p)
1037#define IDirect3DRMViewport2_GetProjection(p) (p)->lpVtbl->GetProjection(p)
1038#define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
1039#define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->lpVtbl->TransformVectors(p,a,b,c)
1040#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->lpVtbl->InverseTransformVectors(p,a,b,c)
1041#else
1042/*** IUnknown methods ***/
1043#define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1044#define IDirect3DRMViewport2_AddRef(p) (p)->AddRef()
1045#define IDirect3DRMViewport2_Release(p) (p)->Release()
1046/*** IDirect3DRMObject methods ***/
1047#define IDirect3DRMViewport2_Clone(p,a,b,c) (p)->Clone(a,b,c)
1048#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1049#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1050#define IDirect3DRMViewport2_SetAppData(p,a) (p)->SetAppData(a)
1051#define IDirect3DRMViewport2_GetAppData(p) (p)->GetAppData()
1052#define IDirect3DRMViewport2_SetName(p,a) (p)->SetName(a)
1053#define IDirect3DRMViewport2_GetName(p,a,b) (p)->GetName(a,b)
1054#define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->GetClassName(a,b)
1055/*** IDirect3DRMViewport2 methods ***/
1056#define IDirect3DRMViewport2_Init(p,a,b,c,d) (p)->Init(a,b,c,d)
1057#define IDirect3DRMViewport2_Clear(p) (p)->Clear()
1058#define IDirect3DRMViewport2_Render(p,a) (p)->Render(a)
1059#define IDirect3DRMViewport2_SetFront(p,a) (p)->SetFront(a)
1060#define IDirect3DRMViewport2_SetBack(p,a) (p)->SetBack(a)
1061#define IDirect3DRMViewport2_SetField(p,a) (p)->SetField(a)
1062#define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
1063#define IDirect3DRMViewport2_SetCamera(p,a) (p)->SetCamera(a)
1064#define IDirect3DRMViewport2_SetProjection(p,a) (p)->SetProjection(a)
1065#define IDirect3DRMViewport2_Transform(p,a,b) (p)->Transform(a,b)
1066#define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1067#define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
1068#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
1069#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
1070#define IDirect3DRMViewport2_GetCamera(p,a) (p)->GetCamera(a)
1071#define IDirect3DRMViewport2_GetDevice(p,a) (p)->GetDevice(a)
1072#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
1073#define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->Pick(a,b,c)
1074#define IDirect3DRMViewport2_GetUniformScaling(p) (p)->GetUniformScaling()
1075#define IDirect3DRMViewport2_GetX(p) (p)->GetX()
1076#define IDirect3DRMViewport2_GetY(p) (p)->GetY()
1077#define IDirect3DRMViewport2_GetWidth(p) (p)->GetWidth()
1078#define IDirect3DRMViewport2_GetHeight(p) (p)->GetHeight()
1079#define IDirect3DRMViewport2_GetField(p) (p)->GetField()
1080#define IDirect3DRMViewport2_GetBack(p) (p)->GetBack()
1081#define IDirect3DRMViewport2_GetFront(p) (p)->GetFront()
1082#define IDirect3DRMViewport2_GetProjection(p) (p)->GetProjection()
1083#define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
1084#define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->TransformVectors(a,b,c)
1085#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->InverseTransformVectors(a,b,c)
1086#endif
1087
1088/*****************************************************************************
1089 * IDirect3DRMFrame interface
1090 */
1091#define INTERFACE IDirect3DRMFrame
1092DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
1093{
1094 /*** IUnknown methods ***/
1095 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1096 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1097 STDMETHOD_(ULONG,Release)(THIS) PURE;
1098 /*** IDirect3DRMObject methods ***/
1099 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1100 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1101 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1102 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1103 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1104 STDMETHOD(SetName)(THIS_ const char *name) PURE;
1105 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
1106 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
1107 /*** IDirect3DRMFrame methods ***/
1108 STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
1109 STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1110 STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1111 STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
1112 STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1113 STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1114 STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1115 STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1116 STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1117 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
1118 STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1119 STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1120 STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
1121 STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
1122 STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1123 STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
1124 STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1125 STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
1126 STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
1127 STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1128 STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1129 STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
1130 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
1131 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1132 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
1133 D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
1134 STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
1135 D3DRMFRAMECONSTRAINT constraint) PURE;
1136 STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1137 STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
1138 STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1139 STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1140 STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1141 STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1142 STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1143 STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1144 STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1145 STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1146 STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
1147 STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1148 STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1149 STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1150 STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1151 STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1152 STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1153 STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1154 STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1155 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1156 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1157 STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1158 STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1159 STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1160 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1161 STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1162 STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1163 STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1164 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1165 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1166 STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
1167 D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1168 STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1169 STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1170};
1171#undef INTERFACE
1172
1173#if !defined(__cplusplus) || defined(CINTERFACE)
1174/*** IUnknown methods ***/
1175#define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1176#define IDirect3DRMFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
1177#define IDirect3DRMFrame_Release(p) (p)->lpVtbl->Release(p)
1178/*** IDirect3DRMObject methods ***/
1179#define IDirect3DRMFrame_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1180#define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1181#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1182#define IDirect3DRMFrame_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1183#define IDirect3DRMFrame_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1184#define IDirect3DRMFrame_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1185#define IDirect3DRMFrame_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1186#define IDirect3DRMFrame_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1187/*** IDirect3DRMFrame methods ***/
1188#define IDirect3DRMFrame_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1189#define IDirect3DRMFrame_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1190#define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
1191#define IDirect3DRMFrame_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1192#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1193#define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1194#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1195#define IDirect3DRMFrame_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1196#define IDirect3DRMFrame_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1197#define IDirect3DRMFrame_GetColor(p) (p)->lpVtbl->GetColor(p)
1198#define IDirect3DRMFrame_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1199#define IDirect3DRMFrame_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1200#define IDirect3DRMFrame_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1201#define IDirect3DRMFrame_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1202#define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1203#define IDirect3DRMFrame_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1204#define IDirect3DRMFrame_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1205#define IDirect3DRMFrame_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1206#define IDirect3DRMFrame_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
1207#define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1208#define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1209#define IDirect3DRMFrame_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
1210#define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
1211#define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1212#define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1213#define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1214#define IDirect3DRMFrame_Move(p,a) (p)->lpVtbl->Move(p,a)
1215#define IDirect3DRMFrame_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1216#define IDirect3DRMFrame_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1217#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1218#define IDirect3DRMFrame_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1219#define IDirect3DRMFrame_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1220#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1221#define IDirect3DRMFrame_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1222#define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1223#define IDirect3DRMFrame_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1224#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1225#define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1226#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1227#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1228#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1229#define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1230#define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1231#define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1232#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1233#define IDirect3DRMFrame_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1234#define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1235#define IDirect3DRMFrame_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1236#define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1237#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1238#define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1239#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1240#define IDirect3DRMFrame_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1241#define IDirect3DRMFrame_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1242#define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
1243#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1244#define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1245#define IDirect3DRMFrame_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1246#else
1247/*** IUnknown methods ***/
1248#define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1249#define IDirect3DRMFrame_AddRef(p) (p)->AddRef()
1250#define IDirect3DRMFrame_Release(p) (p)->Release()
1251/*** IDirect3DRMObject methods ***/
1252#define IDirect3DRMFrame_Clone(p,a,b,c) (p)->Clone(a,b,c)
1253#define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1254#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1255#define IDirect3DRMFrame_SetAppData(p,a) (p)->SetAppData(a)
1256#define IDirect3DRMFrame_GetAppData(p) (p)->GetAppData()
1257#define IDirect3DRMFrame_SetName(p,a) (p)->SetName(a)
1258#define IDirect3DRMFrame_GetName(p,a,b) (p)->GetName(a,b)
1259#define IDirect3DRMFrame_GetClassName(p,a,b) (p)->GetClassName(a,b)
1260/*** IDirect3DRMFrame methods ***/
1261#define IDirect3DRMFrame_AddChild(p,a) (p)->AddChild(a)
1262#define IDirect3DRMFrame_AddLight(p,a) (p)->AddLight(a)
1263#define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
1264#define IDirect3DRMFrame_AddTransform(p,a,b) (p)->AddTransform(a,b)
1265#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1266#define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1267#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1268#define IDirect3DRMFrame_AddVisual(p,a) (p)->AddVisual(a)
1269#define IDirect3DRMFrame_GetChildren(p,a) (p)->GetChildren(a)
1270#define IDirect3DRMFrame_GetColor(p) (p)->GetColor()
1271#define IDirect3DRMFrame_GetLights(p,a) (p)->GetLights(a)
1272#define IDirect3DRMFrame_GetMaterialMode(p) (p)->GetMaterialMode()
1273#define IDirect3DRMFrame_GetParent(p,a) (p)->GetParent(a)
1274#define IDirect3DRMFrame_GetPosition(p,a,b) (p)->GetPosition(a,b)
1275#define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1276#define IDirect3DRMFrame_GetScene(p,a) (p)->GetScene(a)
1277#define IDirect3DRMFrame_GetSortMode(p) (p)->GetSortMode()
1278#define IDirect3DRMFrame_GetTexture(p,a) (p)->GetTexture(a)
1279#define IDirect3DRMFrame_GetTransform(p,a) (p)->GetTransform(a)
1280#define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1281#define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1282#define IDirect3DRMFrame_GetVisuals(p,a) (p)->GetVisuals(a)
1283#define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
1284#define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1285#define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1286#define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1287#define IDirect3DRMFrame_Move(p,a) (p)->Move(a)
1288#define IDirect3DRMFrame_DeleteChild(p,a) (p)->DeleteChild(a)
1289#define IDirect3DRMFrame_DeleteLight(p,a) (p)->DeleteLight(a)
1290#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1291#define IDirect3DRMFrame_DeleteVisual(p,a) (p)->DeleteVisual(a)
1292#define IDirect3DRMFrame_GetSceneBackground(p) (p)->GetSceneBackground()
1293#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1294#define IDirect3DRMFrame_GetSceneFogColor(p) (p)->GetSceneFogColor()
1295#define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1296#define IDirect3DRMFrame_GetSceneFogMode(p) (p)->GetSceneFogMode()
1297#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1298#define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1299#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1300#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1301#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1302#define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1303#define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1304#define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1305#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1306#define IDirect3DRMFrame_SetColor(p,a) (p)->SetColor(a)
1307#define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1308#define IDirect3DRMFrame_GetZbufferMode(p) (p)->GetZbufferMode()
1309#define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1310#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1311#define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1312#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1313#define IDirect3DRMFrame_SetSortMode(p,a) (p)->SetSortMode(a)
1314#define IDirect3DRMFrame_SetTexture(p,a) (p)->SetTexture(a)
1315#define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
1316#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1317#define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1318#define IDirect3DRMFrame_Transform(p,a,b) (p)->Transform(a,b)
1319#endif
1320
1321/*****************************************************************************
1322 * IDirect3DRMFrame2 interface
1323 */
1324#define INTERFACE IDirect3DRMFrame2
1325DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
1326{
1327 /*** IUnknown methods ***/
1328 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1329 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1330 STDMETHOD_(ULONG,Release)(THIS) PURE;
1331 /*** IDirect3DRMObject methods ***/
1332 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1333 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1334 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1335 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1336 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1337 STDMETHOD(SetName)(THIS_ const char *name) PURE;
1338 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
1339 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
1340 /*** IDirect3DRMFrame methods ***/
1341 STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
1342 STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1343 STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1344 STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
1345 STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1346 STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1347 STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1348 STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1349 STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1350 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
1351 STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1352 STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1353 STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
1354 STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
1355 STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1356 STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
1357 STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1358 STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
1359 STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
1360 STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1361 STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1362 STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
1363 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
1364 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1365 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
1366 D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
1367 STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
1368 D3DRMFRAMECONSTRAINT constraint) PURE;
1369 STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1370 STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
1371 STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1372 STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
1373 STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
1374 STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1375 STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1376 STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1377 STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1378 STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1379 STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
1380 STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1381 STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1382 STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1383 STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1384 STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1385 STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1386 STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1387 STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1388 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1389 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1390 STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1391 STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1392 STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1393 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1394 STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1395 STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1396 STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1397 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
1398 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1399 STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
1400 D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1401 STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1402 STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1403 /*** IDirect3DRMFrame2 methods ***/
1404 STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx, DWORD flags) PURE;
1405 STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
1406 STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
1407 STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
1408 STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
1409 STDMETHOD_(BOOL, GetInheritAxes)(THIS);
1410 STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
1411 STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
1412 STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
1413 STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
1414 STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
1415 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
1416 STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame *reference, D3DRMQUATERNION *q) PURE;
1417 STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame *reference, D3DRMRAY *ray, DWORD flags,
1418 struct IDirect3DRMPicked2Array **return_visuals) PURE;
1419 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags);
1420};
1421#undef INTERFACE
1422
1423#if !defined(__cplusplus) || defined(CINTERFACE)
1424/*** IUnknown methods ***/
1425#define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1426#define IDirect3DRMFrame2_AddRef(p) (p)->lpVtbl->AddRef(p)
1427#define IDirect3DRMFrame2_Release(p) (p)->lpVtbl->Release(p)
1428/*** IDirect3DRMObject methods ***/
1429#define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1430#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1431#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1432#define IDirect3DRMFrame2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1433#define IDirect3DRMFrame2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1434#define IDirect3DRMFrame2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1435#define IDirect3DRMFrame2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1436#define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1437/*** IDirect3DRMFrame methods ***/
1438#define IDirect3DRMFrame2_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1439#define IDirect3DRMFrame2_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1440#define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
1441#define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1442#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1443#define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1444#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1445#define IDirect3DRMFrame2_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1446#define IDirect3DRMFrame2_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1447#define IDirect3DRMFrame2_GetColor(p) (p)->lpVtbl->GetColor(p)
1448#define IDirect3DRMFrame2_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1449#define IDirect3DRMFrame2_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1450#define IDirect3DRMFrame2_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1451#define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1452#define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1453#define IDirect3DRMFrame2_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1454#define IDirect3DRMFrame2_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1455#define IDirect3DRMFrame2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1456#define IDirect3DRMFrame2_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
1457#define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1458#define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1459#define IDirect3DRMFrame2_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
1460#define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
1461#define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1462#define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1463#define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1464#define IDirect3DRMFrame2_Move(p,a) (p)->lpVtbl->Move(p,a)
1465#define IDirect3DRMFrame2_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1466#define IDirect3DRMFrame2_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1467#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1468#define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1469#define IDirect3DRMFrame2_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1470#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1471#define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1472#define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1473#define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1474#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1475#define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1476#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1477#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1478#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1479#define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1480#define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1481#define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1482#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1483#define IDirect3DRMFrame2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1484#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1485#define IDirect3DRMFrame2_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1486#define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1487#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1488#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1489#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1490#define IDirect3DRMFrame2_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1491#define IDirect3DRMFrame2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1492#define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
1493#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1494#define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1495#define IDirect3DRMFrame2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1496/*** IDirect3DRMFrame2 methods ***/
1497#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->lpVtbl->AddMoveCallback2(p,a,b,c)
1498#define IDirect3DRMFrame2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1499#define IDirect3DRMFrame2_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
1500#define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
1501#define IDirect3DRMFrame2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1502#define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->lpVtbl->GetInheritAxes(p,a,b)
1503#define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
1504#define IDirect3DRMFrame2_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
1505#define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
1506#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
1507#define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
1508#define IDirect3DRMFrame2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1509#define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
1510#define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
1511#define IDirect3DRMFrame2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
1512#else
1513/*** IUnknown methods ***/
1514#define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1515#define IDirect3DRMFrame2_AddRef(p) (p)->AddRef()
1516#define IDirect3DRMFrame2_Release(p) (p)->Release()
1517/*** IDirect3DRMObject methods ***/
1518#define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->Clone(a,b,c)
1519#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1520#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1521#define IDirect3DRMFrame2_SetAppData(p,a) (p)->SetAppData(a)
1522#define IDirect3DRMFrame2_GetAppData(p) (p)->GetAppData()
1523#define IDirect3DRMFrame2_SetName(p,a) (p)->SetName(a)
1524#define IDirect3DRMFrame2_GetName(p,a,b) (p)->GetName(a,b)
1525#define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->GetClassName(a,b)
1526/*** IDirect3DRMFrame methods ***/
1527#define IDirect3DRMFrame2_AddChild(p,a) (p)->AddChild(a)
1528#define IDirect3DRMFrame2_AddLight(p,a) (p)->AddLight(a)
1529#define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
1530#define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->AddTransform(a,b)
1531#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1532#define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1533#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1534#define IDirect3DRMFrame2_AddVisual(p,a) (p)->AddVisual(a)
1535#define IDirect3DRMFrame2_GetChildren(p,a) (p)->GetChildren(a)
1536#define IDirect3DRMFrame2_GetColor(p) (p)->GetColor()
1537#define IDirect3DRMFrame2_GetLights(p,a) (p)->GetLights(a)
1538#define IDirect3DRMFrame2_GetMaterialMode(p) (p)->GetMaterialMode()
1539#define IDirect3DRMFrame2_GetParent(p,a) (p)->GetParent(a)
1540#define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->GetPosition(a,b)
1541#define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1542#define IDirect3DRMFrame2_GetScene(p,a) (p)->GetScene(a)
1543#define IDirect3DRMFrame2_GetSortMode(p) (p)->GetSortMode()
1544#define IDirect3DRMFrame2_GetTexture(p,a) (p)->GetTexture(a)
1545#define IDirect3DRMFrame2_GetTransform(p,a) (p)->GetTransform(a)
1546#define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1547#define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1548#define IDirect3DRMFrame2_GetVisuals(p,a) (p)->GetVisuals(a)
1549#define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
1550#define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1551#define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1552#define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1553#define IDirect3DRMFrame2_Move(p,a) (p)->Move(a)
1554#define IDirect3DRMFrame2_DeleteChild(p,a) (p)->DeleteChild(a)
1555#define IDirect3DRMFrame2_DeleteLight(p,a) (p)->DeleteLight(a)
1556#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1557#define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->DeleteVisual(a)
1558#define IDirect3DRMFrame2_GetSceneBackground(p) (p)->GetSceneBackground()
1559#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1560#define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->GetSceneFogColor()
1561#define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1562#define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->GetSceneFogMode()
1563#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1564#define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1565#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1566#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1567#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1568#define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1569#define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1570#define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1571#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1572#define IDirect3DRMFrame2_SetColor(p,a) (p)->SetColor(a)
1573#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1574#define IDirect3DRMFrame2_GetZbufferMode(p) (p)->GetZbufferMode()
1575#define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1576#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1577#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1578#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1579#define IDirect3DRMFrame2_SetSortMode(p,a) (p)->SetSortMode(a)
1580#define IDirect3DRMFrame2_SetTexture(p,a) (p)->SetTexture(a)
1581#define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
1582#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1583#define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1584#define IDirect3DRMFrame2_Transform(p,a,b) (p)->Transform(a,b)
1585/*** IDirect3DRMFrame2 methods ***/
1586#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->AddMoveCallback2(a,b,c)
1587#define IDirect3DRMFrame2_GetBox(p,a) (p)->GetBox(a)
1588#define IDirect3DRMFrame2_GetBoxEnable(p) (p)->GetBoxEnable()
1589#define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->GetAxes(a,b)
1590#define IDirect3DRMFrame2_GetMaterial(p,a) (p)->GetMaterial(a)
1591#define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->GetInheritAxes(a,b)
1592#define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
1593#define IDirect3DRMFrame2_SetBox(p,a) (p)->SetBox(a)
1594#define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
1595#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
1596#define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
1597#define IDirect3DRMFrame2_SetMaterial(p,a) (p)->SetMaterial(a)
1598#define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
1599#define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
1600#define IDirect3DRMFrame2_Save(p,a,b,c) (p)->Save(a,b,c)
1601#endif
1602
1603/*****************************************************************************
1604 * IDirect3DRMFrame3 interface
1605 */
1606#define INTERFACE IDirect3DRMFrame3
1607DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
1608{
1609 /*** IUnknown methods ***/
1610 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1611 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1612 STDMETHOD_(ULONG,Release)(THIS) PURE;
1613 /*** IDirect3DRMObject methods ***/
1614 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1615 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1616 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1617 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1618 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1619 STDMETHOD(SetName)(THIS_ const char *name) PURE;
1620 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
1621 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
1622 /*** IDirect3DRMFrame3 methods ***/
1623 STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
1624 STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1625 STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx, DWORD flags) PURE;
1626 STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
1627 STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1628 STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1629 STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1630 STDMETHOD(AddVisual)(THIS_ IUnknown *visual) PURE;
1631 STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
1632 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
1633 STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
1634 STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
1635 STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame3 **parent) PURE;
1636 STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_position) PURE;
1637 STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
1638 STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame3 **scene) PURE;
1639 STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
1640 STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
1641 STDMETHOD(GetTransform)(THIS_ IDirect3DRMFrame3 *reference, D3DRMMATRIX4D matrix) PURE;
1642 STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_velocity, BOOL with_rotation) PURE;
1643 STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
1644 STDMETHOD(GetVisuals)(THIS_ DWORD *count, IUnknown **visuals) PURE;
1645 STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1646 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
1647 D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
1648 STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame3 *target, IDirect3DRMFrame3 *reference,
1649 D3DRMFRAMECONSTRAINT constraint) PURE;
1650 STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
1651 STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
1652 STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
1653 STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx) PURE;
1654 STDMETHOD(DeleteVisual)(THIS_ IUnknown *visual) PURE;
1655 STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
1656 STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
1657 STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
1658 STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
1659 STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
1660 STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end,
1661 D3DVALUE *return_density) PURE;
1662 STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
1663 STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1664 STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
1665 STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
1666 STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
1667 STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
1668 STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
1669 STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
1670 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1671 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1672 STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
1673 STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
1674 STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1675 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
1676 STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1677 STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame3 *reference,
1678 D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
1679 STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
1680 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
1681 STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame3 *reference,
1682 D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
1683 STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
1684 STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
1685 STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
1686 STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
1687 STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
1688 STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
1689 STDMETHOD_(BOOL, GetInheritAxes)(THIS);
1690 STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
1691 STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
1692 STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
1693 STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
1694 STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
1695 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
1696 STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame3 *reference, D3DRMQUATERNION *q) PURE;
1697 STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame3 *reference, D3DRMRAY *ray, DWORD flags,
1698 struct IDirect3DRMPicked2Array **return_visuals) PURE;
1699 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags);
1700 STDMETHOD(TransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
1701 D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
1702 STDMETHOD(InverseTransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
1703 D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
1704 STDMETHOD(SetTraversalOptions)(THIS_ DWORD flags) PURE;
1705 STDMETHOD(GetTraversalOptions)(THIS_ DWORD *flags) PURE;
1706 STDMETHOD(SetSceneFogMethod)(THIS_ DWORD flags) PURE;
1707 STDMETHOD(GetSceneFogMethod)(THIS_ DWORD *fog_mode) PURE;
1708 STDMETHOD(SetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
1709 STDMETHOD(GetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
1710};
1711#undef INTERFACE
1712
1713#if !defined(__cplusplus) || defined(CINTERFACE)
1714/*** IUnknown methods ***/
1715#define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1716#define IDirect3DRMFrame3_AddRef(p) (p)->lpVtbl->AddRef(p)
1717#define IDirect3DRMFrame3_Release(p) (p)->lpVtbl->Release(p)
1718/*** IDirect3DRMObject methods ***/
1719#define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1720#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1721#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1722#define IDirect3DRMFrame3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1723#define IDirect3DRMFrame3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1724#define IDirect3DRMFrame3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1725#define IDirect3DRMFrame3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1726#define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1727/*** IDirect3DRMFrame3 methods ***/
1728#define IDirect3DRMFrame3_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
1729#define IDirect3DRMFrame3_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
1730#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->lpVtbl->AddMoveCallback(p,a,b,c)
1731#define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
1732#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
1733#define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
1734#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
1735#define IDirect3DRMFrame3_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
1736#define IDirect3DRMFrame3_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
1737#define IDirect3DRMFrame3_GetColor(p) (p)->lpVtbl->GetColor(p)
1738#define IDirect3DRMFrame3_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
1739#define IDirect3DRMFrame3_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
1740#define IDirect3DRMFrame3_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
1741#define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
1742#define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
1743#define IDirect3DRMFrame3_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
1744#define IDirect3DRMFrame3_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
1745#define IDirect3DRMFrame3_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
1746#define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
1747#define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
1748#define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
1749#define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->lpVtbl->GetVisuals(p,a,b)
1750#define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
1751#define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
1752#define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
1753#define IDirect3DRMFrame3_Move(p,a) (p)->lpVtbl->Move(p,a)
1754#define IDirect3DRMFrame3_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
1755#define IDirect3DRMFrame3_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
1756#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
1757#define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
1758#define IDirect3DRMFrame3_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
1759#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
1760#define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
1761#define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
1762#define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
1763#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
1764#define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
1765#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
1766#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
1767#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
1768#define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
1769#define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
1770#define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
1771#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
1772#define IDirect3DRMFrame3_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
1773#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
1774#define IDirect3DRMFrame3_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
1775#define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
1776#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
1777#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1778#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
1779#define IDirect3DRMFrame3_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
1780#define IDirect3DRMFrame3_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
1781#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
1782#define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
1783#define IDirect3DRMFrame3_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
1784#define IDirect3DRMFrame3_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1785#define IDirect3DRMFrame3_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
1786#define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
1787#define IDirect3DRMFrame3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1788#define IDirect3DRMFrame3_GetInheritAxes(p) (p)->lpVtbl->GetInheritAxes(p)
1789#define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
1790#define IDirect3DRMFrame3_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
1791#define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
1792#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
1793#define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
1794#define IDirect3DRMFrame3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1795#define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
1796#define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
1797#define IDirect3DRMFrame3_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
1798#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->lpVtbl->TransformVectors(p,a,b,c,d)
1799#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->lpVtbl->InverseTransformVectors(p,a,b,c,d)
1800#define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->lpVtbl->SetTraversalOptions(p,a)
1801#define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->lpVtbl->GetTraversalOptions(p,a)
1802#define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->lpVtbl->SetSceneFogMethod(p,a)
1803#define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->lpVtbl->GetSceneFogMethod(p,a)
1804#define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->lpVtbl->SetMaterialOverride(p,a)
1805#define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->lpVtbl->GetMaterialOverride(p,a)
1806#else
1807/*** IUnknown methods ***/
1808#define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1809#define IDirect3DRMFrame3_AddRef(p) (p)->AddRef()
1810#define IDirect3DRMFrame3_Release(p) (p)->Release()
1811/*** IDirect3DRMObject methods ***/
1812#define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->Clone(a,b,c)
1813#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1814#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1815#define IDirect3DRMFrame3_SetAppData(p,a) (p)->SetAppData(a)
1816#define IDirect3DRMFrame3_GetAppData(p) (p)->GetAppData()
1817#define IDirect3DRMFrame3_SetName(p,a) (p)->SetName(a)
1818#define IDirect3DRMFrame3_GetName(p,a,b) (p)->GetName(a,b)
1819#define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->GetClassName(a,b)
1820/*** IDirect3DRMFrame3 methods ***/
1821#define IDirect3DRMFrame3_AddChild(p,a) (p)->AddChild(a)
1822#define IDirect3DRMFrame3_AddLight(p,a) (p)->AddLight(a)
1823#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->AddMoveCallback(a,b,c)
1824#define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->AddTransform(a,b)
1825#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
1826#define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
1827#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
1828#define IDirect3DRMFrame3_AddVisual(p,a) (p)->AddVisual(a)
1829#define IDirect3DRMFrame3_GetChildren(p,a) (p)->GetChildren(a)
1830#define IDirect3DRMFrame3_GetColor(p) (p)->GetColor()
1831#define IDirect3DRMFrame3_GetLights(p,a) (p)->GetLights(a)
1832#define IDirect3DRMFrame3_GetMaterialMode(p) (p)->GetMaterialMode()
1833#define IDirect3DRMFrame3_GetParent(p,a) (p)->GetParent(a)
1834#define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->GetPosition(a,b)
1835#define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
1836#define IDirect3DRMFrame3_GetScene(p,a) (p)->GetScene(a)
1837#define IDirect3DRMFrame3_GetSortMode(p) (p)->GetSortMode()
1838#define IDirect3DRMFrame3_GetTexture(p,a) (p)->GetTexture(a)
1839#define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->GetTransform(a,b)
1840#define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
1841#define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
1842#define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->GetVisuals(a,b)
1843#define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
1844#define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
1845#define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
1846#define IDirect3DRMFrame3_Move(p,a) (p)->Move(a)
1847#define IDirect3DRMFrame3_DeleteChild(p,a) (p)->DeleteChild(a)
1848#define IDirect3DRMFrame3_DeleteLight(p,a) (p)->DeleteLight(a)
1849#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
1850#define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->DeleteVisual(a)
1851#define IDirect3DRMFrame3_GetSceneBackground(p) (p)->GetSceneBackground()
1852#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
1853#define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->GetSceneFogColor()
1854#define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
1855#define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->GetSceneFogMode()
1856#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
1857#define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
1858#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
1859#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
1860#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
1861#define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
1862#define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
1863#define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
1864#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
1865#define IDirect3DRMFrame3_SetColor(p,a) (p)->SetColor(a)
1866#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
1867#define IDirect3DRMFrame3_GetZbufferMode(p) (p)->GetZbufferMode()
1868#define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
1869#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1870#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1871#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
1872#define IDirect3DRMFrame3_SetSortMode(p,a) (p)->SetSortMode(a)
1873#define IDirect3DRMFrame3_SetTexture(p,a) (p)->SetTexture(a)
1874#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
1875#define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
1876#define IDirect3DRMFrame3_Transform(p,a,b) (p)->Transform(a,b)
1877#define IDirect3DRMFrame3_GetBox(p,a) (p)->GetBox(a)
1878#define IDirect3DRMFrame3_GetBoxEnable(p) (p)->GetBoxEnable()
1879#define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->GetAxes(a,b)
1880#define IDirect3DRMFrame3_GetMaterial(p,a) (p)->GetMaterial(a)
1881#define IDirect3DRMFrame3_GetInheritAxes(p) (p)->GetInheritAxes()
1882#define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
1883#define IDirect3DRMFrame3_SetBox(p,a) (p)->SetBox(a)
1884#define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
1885#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
1886#define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
1887#define IDirect3DRMFrame3_SetMaterial(p,a) (p)->SetMaterial(a)
1888#define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
1889#define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
1890#define IDirect3DRMFrame3_Save(p,a,b,c) (p)->Save(a,b,c)
1891#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->TransformVectors(a,b,c,d)
1892#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->InverseTransformVectors(a,b,c,d)
1893#define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->SetTraversalOptions(a)
1894#define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->GetTraversalOptions(a)
1895#define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->SetSceneFogMethod(a)
1896#define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->GetSceneFogMethod(a)
1897#define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->SetMaterialOverride(a)
1898#define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->GetMaterialOverride(a)
1899#endif
1900
1901/*****************************************************************************
1902 * IDirect3DRMMesh interface
1903 */
1904#define INTERFACE IDirect3DRMMesh
1905DECLARE_INTERFACE_(IDirect3DRMMesh,IDirect3DRMVisual)
1906{
1907 /*** IUnknown methods ***/
1908 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1909 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1910 STDMETHOD_(ULONG,Release)(THIS) PURE;
1911 /*** IDirect3DRMObject methods ***/
1912 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
1913 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1914 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
1915 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
1916 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
1917 STDMETHOD(SetName)(THIS_ const char *name) PURE;
1918 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
1919 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
1920 /*** IDirect3DRMMesh methods ***/
1921 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1922 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
1923 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
1924 STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData,
1925 D3DRMGROUPINDEX *returnId) PURE;
1926 STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count,
1927 D3DRMVERTEX *values) PURE;
1928 STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
1929 STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1930 STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
1931 STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
1932 STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial *material) PURE;
1933 STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture *texture) PURE;
1934 STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
1935 STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace,
1936 DWORD *fDataSize, unsigned *fData) PURE;
1937 STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
1938 STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
1939 STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
1940 STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
1941 STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial **material) PURE;
1942 STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture **texture) PURE;
1943};
1944#undef INTERFACE
1945
1946#if !defined(__cplusplus) || defined(CINTERFACE)
1947/*** IUnknown methods ***/
1948#define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1949#define IDirect3DRMMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
1950#define IDirect3DRMMesh_Release(p) (p)->lpVtbl->Release(p)
1951/*** IDirect3DRMObject methods ***/
1952#define IDirect3DRMMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
1953#define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
1954#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
1955#define IDirect3DRMMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
1956#define IDirect3DRMMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
1957#define IDirect3DRMMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
1958#define IDirect3DRMMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
1959#define IDirect3DRMMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
1960/*** IDirect3DRMMesh methods ***/
1961#define IDirect3DRMMesh_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
1962#define IDirect3DRMMesh_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
1963#define IDirect3DRMMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
1964#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->lpVtbl->AddGroup(p,a,b,c,d,e)
1965#define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->lpVtbl->SetVertices(p,a,b,c,d)
1966#define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->lpVtbl->SetGroupColor(p,a,b)
1967#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->lpVtbl->SetGroupColorRGB(p,a,b,c,d)
1968#define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->lpVtbl->SetGroupMapping(p,a,b)
1969#define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->lpVtbl->SetGroupQuality(p,a,b)
1970#define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->lpVtbl->SetGroupMaterial(p,a,b)
1971#define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->lpVtbl->SetGroupTexture(p,a,b)
1972#define IDirect3DRMMesh_GetGroupCount(p) (p)->lpVtbl->GetGroupCount(p)
1973#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->lpVtbl->GetGroup(p,a,b,c,d,e,f)
1974#define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->lpVtbl->GetVertices(p,a,b,c,d)
1975#define IDirect3DRMMesh_GetGroupColor(p,a) (p)->lpVtbl->GetGroupColor(p,a)
1976#define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->lpVtbl->GetGroupMapping(p,a)
1977#define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->lpVtbl->GetGroupQuality(p,a)
1978#define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->lpVtbl->GetGroupMaterial(p,a,b)
1979#define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->lpVtbl->GetGroupTexture(p,a,b)
1980#else
1981/*** IUnknown methods ***/
1982#define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1983#define IDirect3DRMMesh_AddRef(p) (p)->AddRef()
1984#define IDirect3DRMMesh_Release(p) (p)->Release()
1985/*** IDirect3DRMObject methods ***/
1986#define IDirect3DRMMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
1987#define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
1988#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
1989#define IDirect3DRMMesh_SetAppData(p,a) (p)->SetAppData(a)
1990#define IDirect3DRMMesh_GetAppData(p) (p)->GetAppData()
1991#define IDirect3DRMMesh_SetName(p,a) (p)->SetName(a)
1992#define IDirect3DRMMesh_GetName(p,a,b) (p)->GetName(a,b)
1993#define IDirect3DRMMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
1994/*** IDirect3DRMMesh methods ***/
1995#define IDirect3DRMMesh_Scale(p,a,b,c) (p)->Scale(a,b,c)
1996#define IDirect3DRMMesh_Translate(p,a,b,c) (p)->Translate(a,b,c)
1997#define IDirect3DRMMesh_GetBox(p,a) (p)->GetBox(a)
1998#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->AddGroup(a,b,c,d,e)
1999#define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->SetVertices(a,b,c,d)
2000#define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->SetGroupColor(a,b)
2001#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->SetGroupColorRGB(a,b,c,d)
2002#define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->SetGroupMapping(a,b)
2003#define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->SetGroupQuality(a,b)
2004#define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->SetGroupMaterial(a,b)
2005#define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->SetGroupTexture(a,b)
2006#define IDirect3DRMMesh_GetGroupCount(p) (p)->GetGroupCount()
2007#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->GetGroup(a,b,c,d,e,f)
2008#define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->GetVertices(a,b,c,d)
2009#define IDirect3DRMMesh_GetGroupColor(p,a) (p)->GetGroupColor(a)
2010#define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->GetGroupMapping(a)
2011#define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->GetGroupQuality(a)
2012#define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->GetGroupMaterial(a,b)
2013#define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->GetGroupTexture(a,b)
2014#endif
2015
2016/*****************************************************************************
2017 * IDirect3DRMProgressiveMesh interface
2018 */
2019#define INTERFACE IDirect3DRMProgressiveMesh
2020DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh,IDirect3DRMVisual)
2021{
2022 /*** IUnknown methods ***/
2023 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2024 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2025 STDMETHOD_(ULONG,Release)(THIS) PURE;
2026 /*** IDirect3DRMObject methods ***/
2027 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2028 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2029 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2030 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2031 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2032 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2033 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2034 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2035 /*** IDirect3DRMProgressiveMesh methods ***/
2036 STDMETHOD(Load) (THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
2037 D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2038 STDMETHOD(GetLoadStatus) (THIS_ D3DRMPMESHLOADSTATUS *status) PURE;
2039 STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
2040 STDMETHOD(Abort) (THIS_ DWORD flags) PURE;
2041 STDMETHOD(GetFaceDetail) (THIS_ DWORD *count) PURE;
2042 STDMETHOD(GetVertexDetail) (THIS_ DWORD *count) PURE;
2043 STDMETHOD(SetFaceDetail) (THIS_ DWORD count) PURE;
2044 STDMETHOD(SetVertexDetail) (THIS_ DWORD count) PURE;
2045 STDMETHOD(GetFaceDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
2046 STDMETHOD(GetVertexDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
2047 STDMETHOD(GetDetail) (THIS_ D3DVALUE *pdvVal) PURE;
2048 STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
2049 STDMETHOD(RegisterEvents) (THIS_ HANDLE event, DWORD flags, DWORD reserved) PURE;
2050 STDMETHOD(CreateMesh) (THIS_ IDirect3DRMMesh **mesh) PURE;
2051 STDMETHOD(Duplicate) (THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
2052 STDMETHOD(GetBox) (THIS_ D3DRMBOX *box) PURE;
2053 STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY quality) PURE;
2054 STDMETHOD(GetQuality) (THIS_ D3DRMRENDERQUALITY *quality) PURE;
2055};
2056#undef INTERFACE
2057
2058#if !defined(__cplusplus) || defined(CINTERFACE)
2059/*** IUnknown methods ***/
2060#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2061#define IDirect3DRMProgressiveMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
2062#define IDirect3DRMProgressiveMesh_Release(p) (p)->lpVtbl->Release(p)
2063/*** IDirect3DRMObject methods ***/
2064#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2065#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2066#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2067#define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2068#define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2069#define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2070#define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2071#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2072/*** IDirect3DRMProgressiveMesh methods ***/
2073#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2074#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->lpVtbl->GetLoadStatus(p,a)
2075#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->lpVtbl->SetMinRenderDetail(p,a)
2076#define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->lpVtbl->Abort(p,a)
2077#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->lpVtbl->GetFaceDetail(p,a)
2078#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->lpVtbl->GetVertexDetail(p,a)
2079#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->lpVtbl->SetFaceDetail(p,a)
2080#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->lpVtbl->SetVertexDetail(p,a)
2081#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->lpVtbl->GetFaceDetailRange(p,a,b)
2082#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->lpVtbl->GetVertexDetailRange(p,a,b)
2083#define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->lpVtbl->GetDetail(p,a)
2084#define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->lpVtbl->SetDetail(p,a)
2085#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->lpVtbl->RegisterEvents(p,a,b,c)
2086#define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2087#define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->lpVtbl->Duplicate(p,a)
2088#define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2089#define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2090#define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->lpVtbl->GetQuality(p,a)
2091#else
2092/*** IUnknown methods ***/
2093#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2094#define IDirect3DRMProgressiveMesh_AddRef(p) (p)->AddRef()
2095#define IDirect3DRMProgressiveMesh_Release(p) (p)->Release()
2096/*** IDirect3DRMObject methods ***/
2097#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
2098#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2099#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2100#define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->SetAppData(a)
2101#define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->GetAppData()
2102#define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->SetName(a)
2103#define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->GetName(a,b)
2104#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
2105/*** IDirect3DRMProgressiveMesh methods ***/
2106#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2107#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->GetLoadStatus(a)
2108#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->SetMinRenderDetail(a)
2109#define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->Abort(a)
2110#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->GetFaceDetail(a)
2111#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->GetVertexDetail(a)
2112#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->SetFaceDetail(a)
2113#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->SetVertexDetail(a)
2114#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->GetFaceDetailRange(a,b)
2115#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->GetVertexDetailRange(a,b)
2116#define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->GetDetail(a)
2117#define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->SetDetail(a)
2118#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->RegisterEvents(a,b,c)
2119#define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->CreateMesh(a)
2120#define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->Duplicate(a)
2121#define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->GetBox(a)
2122#define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->SetQuality(a)
2123#define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->GetQuality(a)
2124#endif
2125
2126/*****************************************************************************
2127 * IDirect3DRMShadow interface
2128 */
2129#define INTERFACE IDirect3DRMShadow
2130DECLARE_INTERFACE_(IDirect3DRMShadow,IDirect3DRMVisual)
2131{
2132 /*** IUnknown methods ***/
2133 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2134 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2135 STDMETHOD_(ULONG,Release)(THIS) PURE;
2136 /*** IDirect3DRMObject methods ***/
2137 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2138 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2139 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2140 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2141 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2142 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2143 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2144 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2145 /*** IDirect3DRMShadow methods ***/
2146 STDMETHOD(Init)(THIS_ IDirect3DRMVisual *visual, struct IDirect3DRMLight *light,
2147 D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
2148};
2149#undef INTERFACE
2150
2151#if !defined(__cplusplus) || defined(CINTERFACE)
2152/*** IUnknown methods ***/
2153#define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2154#define IDirect3DRMShadow_AddRef(p) (p)->lpVtbl->AddRef(p)
2155#define IDirect3DRMShadow_Release(p) (p)->lpVtbl->Release(p)
2156/*** IDirect3DRMObject methods ***/
2157#define IDirect3DRMShadow_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2158#define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2159#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2160#define IDirect3DRMShadow_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2161#define IDirect3DRMShadow_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2162#define IDirect3DRMShadow_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2163#define IDirect3DRMShadow_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2164#define IDirect3DRMShadow_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2165/*** IDirect3DRMShadow methods ***/
2166#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g)
2167#else
2168/*** IUnknown methods ***/
2169#define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2170#define IDirect3DRMShadow_AddRef(p) (p)->AddRef()
2171#define IDirect3DRMShadow_Release(p) (p)->Release()
2172/*** IDirect3DRMObject methods ***/
2173#define IDirect3DRMShadow_Clone(p,a,b,c) (p)->Clone(a,b,c)
2174#define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2175#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2176#define IDirect3DRMShadow_SetAppData(p,a) (p)->SetAppData(a)
2177#define IDirect3DRMShadow_GetAppData(p) (p)->GetAppData()
2178#define IDirect3DRMShadow_SetName(p,a) (p)->SetName(a)
2179#define IDirect3DRMShadow_GetName(p,a,b) (p)->GetName(a,b)
2180#define IDirect3DRMShadow_GetClassName(p,a,b) (p)->GetClassName(a,b)
2181/*** IDirect3DRMShadow methods ***/
2182#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->Load(a,b,c,d,e,f,g)
2183#endif
2184
2185/*****************************************************************************
2186 * IDirect3DRMShadow2 interface
2187 */
2188#define INTERFACE IDirect3DRMShadow2
2189DECLARE_INTERFACE_(IDirect3DRMShadow2,IDirect3DRMVisual)
2190{
2191 /*** IUnknown methods ***/
2192 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2193 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2194 STDMETHOD_(ULONG,Release)(THIS) PURE;
2195 /*** IDirect3DRMObject methods ***/
2196 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2197 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2198 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2199 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2200 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2201 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2202 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2203 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2204 /*** IDirect3DRMShadow methods ***/
2205 STDMETHOD(Init)(THIS_ IUnknown *object, struct IDirect3DRMLight *light,
2206 D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
2207 /*** IDirect3DRMShadow2 methods ***/
2208 STDMETHOD(GetVisual)(THIS_ IDirect3DRMVisual **visual) PURE;
2209 STDMETHOD(SetVisual)(THIS_ IUnknown *visual, DWORD flags) PURE;
2210 STDMETHOD(GetLight)(THIS_ struct IDirect3DRMLight **light) PURE;
2211 STDMETHOD(SetLight)(THIS_ struct IDirect3DRMLight *light, DWORD flags) PURE;
2212 STDMETHOD(GetPlane)(THIS_ D3DVALUE *px, D3DVALUE *py, D3DVALUE *pz,
2213 D3DVALUE *nx, D3DVALUE *ny, D3DVALUE *nz) PURE;
2214 STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
2215 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
2216 STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
2217 STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
2218};
2219#undef INTERFACE
2220
2221#if !defined(__cplusplus) || defined(CINTERFACE)
2222/*** IUnknown methods ***/
2223#define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2224#define IDirect3DRMShadow2_AddRef(p) (p)->lpVtbl->AddRef(p)
2225#define IDirect3DRMShadow2_Release(p) (p)->lpVtbl->Release(p)
2226/*** IDirect3DRMObject methods ***/
2227#define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2228#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2229#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2230#define IDirect3DRMShadow2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2231#define IDirect3DRMShadow2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2232#define IDirect3DRMShadow2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2233#define IDirect3DRMShadow2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2234#define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2235/*** IDirect3DRMShadow methods ***/
2236#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Init(p,a,b,c,d,e,f,g)
2237/*** IDirect3DRMShadow2 methods ***/
2238#define IDirect3DRMShadow2_GetVisual(p,a) (p)->lpVtbl->GetVisual(p,a)
2239#define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->lpVtbl->SetVisual(p,a,b)
2240#define IDirect3DRMShadow2_GetLight(p,a) (p)->lpVtbl->GetLight(p,a)
2241#define IDirect3DRMShadow2_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
2242#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->GetPlane(p,a,b,c,d,e,f)
2243#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->SetPlane(p,a,b,c,d,e,f)
2244#define IDirect3DRMShadow2_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a)
2245#define IDirect3DRMShadow2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
2246#else
2247/*** IUnknown methods ***/
2248#define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2249#define IDirect3DRMShadow2_AddRef(p) (p)->AddRef()
2250#define IDirect3DRMShadow2_Release(p) (p)->Release()
2251/*** IDirect3DRMObject methods ***/
2252#define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2253#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2254#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2255#define IDirect3DRMShadow2_SetAppData(p,a) (p)->SetAppData(a)
2256#define IDirect3DRMShadow2_GetAppData(p) (p)->GetAppData()
2257#define IDirect3DRMShadow2_SetName(p,a) (p)->SetName(a)
2258#define IDirect3DRMShadow2_GetName(p,a,b) (p)->GetName(a,b)
2259#define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2260/*** IDirect3DRMShadow methods ***/
2261#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->Init(a,b,c,d,e,f,g)
2262/*** IDirect3DRMShadow2 methods ***/
2263#define IDirect3DRMShadow2_GetVisual(p,a) (p)->GetVisual(a)
2264#define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->SetVisual(a,b)
2265#define IDirect3DRMShadow2_GetLight(p,a) (p)->GetLight(a)
2266#define IDirect3DRMShadow2_SetLight(p,a,b) (p)->SetLight(a,b)
2267#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->GetPlane(a,b,c,d,e,f)
2268#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->SetPlane(a,b,c,d,e,f)
2269#define IDirect3DRMShadow2_GetOptions(p,a) (p)->GetOptions(a)
2270#define IDirect3DRMShadow2_SetOptions(p,a) (p)->SetOptions(a)
2271#endif
2272
2273/*****************************************************************************
2274 * IDirect3DRMFace interface
2275 */
2276#define INTERFACE IDirect3DRMFace
2277DECLARE_INTERFACE_(IDirect3DRMFace,IDirect3DRMObject)
2278{
2279 /*** IUnknown methods ***/
2280 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2281 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2282 STDMETHOD_(ULONG,Release)(THIS) PURE;
2283 /*** IDirect3DRMObject methods ***/
2284 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2285 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2286 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2287 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2288 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2289 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2290 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2291 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2292 /*** IDirect3DRMFace methods ***/
2293 STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2294 STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
2295 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
2296 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2297 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2298 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
2299 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2300 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2301 STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
2302 STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
2303 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
2304 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
2305 STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
2306 STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
2307 STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
2308 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2309 STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
2310 STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
2311 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
2312};
2313#undef INTERFACE
2314
2315#if !defined(__cplusplus) || defined(CINTERFACE)
2316/*** IUnknown methods ***/
2317#define IDirect3DRMFace_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2318#define IDirect3DRMFace_AddRef(p) (p)->lpVtbl->AddRef(p)
2319#define IDirect3DRMFace_Release(p) (p)->lpVtbl->Release(p)
2320/*** IDirect3DRMObject methods ***/
2321#define IDirect3DRMFace_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2322#define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2323#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2324#define IDirect3DRMFace_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2325#define IDirect3DRMFace_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2326#define IDirect3DRMFace_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2327#define IDirect3DRMFace_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2328#define IDirect3DRMFace_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2329/*** IDirect3DRMFace methods ***/
2330#define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2331#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
2332#define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2333#define IDirect3DRMFace_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2334#define IDirect3DRMFace_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2335#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2336#define IDirect3DRMFace_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2337#define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2338#define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
2339#define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
2340#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2341#define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
2342#define IDirect3DRMFace_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
2343#define IDirect3DRMFace_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
2344#define IDirect3DRMFace_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2345#define IDirect3DRMFace_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
2346#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
2347#define IDirect3DRMFace_GetColor(p,a) (p)->lpVtbl->GetColor(p,a)
2348#else
2349/*** IUnknown methods ***/
2350#define IDirect3DRMFace_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2351#define IDirect3DRMFace_AddRef(p) (p)->AddRef()
2352#define IDirect3DRMFace_Release(p) (p)->Release()
2353/*** IDirect3DRMObject methods ***/
2354#define IDirect3DRMFace_Clone(p,a,b,c) (p)->Clone(a,b,c)
2355#define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2356#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2357#define IDirect3DRMFace_SetAppData(p,a) (p)->SetAppData(a)
2358#define IDirect3DRMFace_GetAppData(p) (p)->GetAppData()
2359#define IDirect3DRMFace_SetName(p,a) (p)->SetName(a)
2360#define IDirect3DRMFace_GetName(p,a,b) (p)->GetName(a,b)
2361#define IDirect3DRMFace_GetClassName(p,a,b) (p)->GetClassName(a,b)
2362/*** IDirect3DRMFace methods ***/
2363#define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2364#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
2365#define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2366#define IDirect3DRMFace_SetColor(p,a) (p)->SetColor(a)
2367#define IDirect3DRMFace_SetTexture(p,a) (p)->SetTexture(a)
2368#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2369#define IDirect3DRMFace_SetMaterial(p,a) (p)->SetMaterial(a)
2370#define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2371#define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
2372#define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
2373#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2374#define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
2375#define IDirect3DRMFace_GetNormal(p,a) (p)->GetNormal(a)
2376#define IDirect3DRMFace_GetTexture(p,a) (p)->GetTexture(a)
2377#define IDirect3DRMFace_GetVertexCount(p) (p)->GetVertexCount()
2378#define IDirect3DRMFace_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
2379#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
2380#define IDirect3DRMFace_GetColor(p,a) (p)->GetColor(a)
2381#endif
2382
2383/*****************************************************************************
2384 * IDirect3DRMFace2 interface
2385 */
2386#define INTERFACE IDirect3DRMFace2
2387DECLARE_INTERFACE_(IDirect3DRMFace2,IDirect3DRMObject)
2388{
2389 /*** IUnknown methods ***/
2390 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2391 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2392 STDMETHOD_(ULONG,Release)(THIS) PURE;
2393 /*** IDirect3DRMObject methods ***/
2394 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2395 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2396 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2397 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2398 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2399 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2400 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2401 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2402 /*** IDirect3DRMFace methods ***/
2403 STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2404 STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
2405 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
2406 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2407 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
2408 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
2409 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
2410 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2411 STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
2412 STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
2413 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
2414 STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
2415 STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
2416 STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
2417 STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
2418 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2419 STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
2420 STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
2421 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
2422};
2423#undef INTERFACE
2424
2425#if !defined(__cplusplus) || defined(CINTERFACE)
2426/*** IUnknown methods ***/
2427#define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2428#define IDirect3DRMFace2_AddRef(p) (p)->lpVtbl->AddRef(p)
2429#define IDirect3DRMFace2_Release(p) (p)->lpVtbl->Release(p)
2430/*** IDirect3DRMObject methods ***/
2431#define IDirect3DRMFace2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2432#define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2433#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2434#define IDirect3DRMFace2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2435#define IDirect3DRMFace2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2436#define IDirect3DRMFace2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2437#define IDirect3DRMFace2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2438#define IDirect3DRMFace2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2439/*** IDirect3DRMFace methods ***/
2440#define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2441#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
2442#define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2443#define IDirect3DRMFace2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2444#define IDirect3DRMFace2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2445#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2446#define IDirect3DRMFace2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2447#define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2448#define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
2449#define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
2450#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2451#define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
2452#define IDirect3DRMFace2_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
2453#define IDirect3DRMFace2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
2454#define IDirect3DRMFace2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2455#define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
2456#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
2457#define IDirect3DRMFace2_GetColor(p,a) (p)->lpVtbl->GetColor(p,a)
2458#else
2459/*** IUnknown methods ***/
2460#define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2461#define IDirect3DRMFace2_AddRef(p) (p)->AddRef()
2462#define IDirect3DRMFace2_Release(p) (p)->Release()
2463/*** IDirect3DRMObject methods ***/
2464#define IDirect3DRMFace2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2465#define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2466#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2467#define IDirect3DRMFace2_SetAppData(p,a) (p)->SetAppData(a)
2468#define IDirect3DRMFace2_GetAppData(p) (p)->GetAppData()
2469#define IDirect3DRMFace2_SetName(p,a) (p)->SetName(a)
2470#define IDirect3DRMFace2_GetName(p,a,b) (p)->GetName(a,b)
2471#define IDirect3DRMFace2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2472/*** IDirect3DRMFace methods ***/
2473#define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2474#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
2475#define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2476#define IDirect3DRMFace2_SetColor(p,a) (p)->SetColor(a)
2477#define IDirect3DRMFace2_SetTexture(p,a) (p)->SetTexture(a)
2478#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2479#define IDirect3DRMFace2_SetMaterial(p,a) (p)->SetMaterial(a)
2480#define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2481#define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
2482#define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
2483#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2484#define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
2485#define IDirect3DRMFace2_GetNormal(p,a) (p)->GetNormal(a)
2486#define IDirect3DRMFace2_GetTexture(p,a) (p)->GetTexture(a)
2487#define IDirect3DRMFace2_GetVertexCount(p) (p)->GetVertexCount()
2488#define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
2489#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
2490#define IDirect3DRMFace2_GetColor(p,a) (p)->GetColor(a)
2491#endif
2492
2493/*****************************************************************************
2494 * IDirect3DRMMeshBuilder interface
2495 */
2496#define INTERFACE IDirect3DRMMeshBuilder
2497DECLARE_INTERFACE_(IDirect3DRMMeshBuilder,IDirect3DRMVisual)
2498{
2499 /*** IUnknown methods ***/
2500 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2501 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2502 STDMETHOD_(ULONG,Release)(THIS) PURE;
2503 /*** IDirect3DRMObject methods ***/
2504 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2505 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2506 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2507 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2508 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2509 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2510 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2511 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2512 /*** IDirect3DRMMeshBuilder methods ***/
2513 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
2514 D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2515 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
2516 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2517 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2518 STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2519 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2520 STDMETHOD(GenerateNormals)(THIS) PURE;
2521 STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2522 STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2523 STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
2524 STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
2525 STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
2526 STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2527 D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2528 STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2529 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2530 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2531 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2532 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2533 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2534 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2535 STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2536 STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2537 STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2538 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2539 STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2540 STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2541 STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2542 STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2543 DWORD *face_data_size, DWORD *face_data) PURE;
2544 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2545 STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2546 STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2547 STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
2548 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2549 STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2550 STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2551 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2552 STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2553 STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2554};
2555#undef INTERFACE
2556
2557#if !defined(__cplusplus) || defined(CINTERFACE)
2558/*** IUnknown methods ***/
2559#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2560#define IDirect3DRMMeshBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
2561#define IDirect3DRMMeshBuilder_Release(p) (p)->lpVtbl->Release(p)
2562/*** IDirect3DRMObject methods ***/
2563#define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2564#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2565#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2566#define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2567#define IDirect3DRMMeshBuilder_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2568#define IDirect3DRMMeshBuilder_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2569#define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2570#define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2571/*** IDirect3DRMMeshBuilder methods ***/
2572#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2573#define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
2574#define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
2575#define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
2576#define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
2577#define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2578#define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
2579#define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
2580#define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
2581#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
2582#define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
2583#define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
2584#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
2585#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
2586#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2587#define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2588#define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2589#define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2590#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2591#define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2592#define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
2593#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
2594#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
2595#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2596#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
2597#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
2598#define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
2599#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
2600#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2601#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2602#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
2603#define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
2604#define IDirect3DRMMeshBuilder_GetQuality(p) (p)->lpVtbl->GetQuality(p)
2605#define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
2606#define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
2607#define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2608#define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
2609#define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2610#else
2611/*** IUnknown methods ***/
2612#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2613#define IDirect3DRMMeshBuilder_AddRef(p) (p)->AddRef()
2614#define IDirect3DRMMeshBuilder_Release(p) (p)->Release()
2615/*** IDirect3DRMObject methods ***/
2616#define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->Clone(a,b,c)
2617#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2618#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2619#define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->SetAppData(a)
2620#define IDirect3DRMMeshBuilder_GetAppData(p) (p)->GetAppData()
2621#define IDirect3DRMMeshBuilder_SetName(p,a) (p)->SetName(a)
2622#define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->GetName(a,b)
2623#define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->GetClassName(a,b)
2624/*** IDirect3DRMMeshBuilder methods ***/
2625#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2626#define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->Save(a,b,c)
2627#define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->Scale(a,b,c)
2628#define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->Translate(a)
2629#define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
2630#define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->GetBox(a)
2631#define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->GenerateNormals()
2632#define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->GetColorSource()
2633#define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)-->AddMesh(a)
2634#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
2635#define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->AddFrame(a)
2636#define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->AddFace(a)
2637#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
2638#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
2639#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2640#define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->SetColor(a)
2641#define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->SetTexture(a)
2642#define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->SetMaterial(a)
2643#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2644#define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->SetQuality(a)
2645#define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->SetPerspective(a)
2646#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
2647#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
2648#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2649#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
2650#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
2651#define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->GetFaces(a)
2652#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
2653#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2654#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2655#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
2656#define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->CreateFace(a)
2657#define IDirect3DRMMeshBuilder_GetQuality(p) (p)->GetQuality()
2658#define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->GetPerspective()
2659#define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->GetFaceCount()
2660#define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->GetVertexCount()
2661#define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->GetVertexColor(a)
2662#define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->CreateMesh(a)
2663#endif
2664
2665/*****************************************************************************
2666 * IDirect3DRMMeshBuilder2 interface
2667 */
2668#define INTERFACE IDirect3DRMMeshBuilder2
2669DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2,IDirect3DRMMeshBuilder)
2670{
2671 /*** IUnknown methods ***/
2672 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2673 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2674 STDMETHOD_(ULONG,Release)(THIS) PURE;
2675 /*** IDirect3DRMObject methods ***/
2676 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2677 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2678 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2679 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2680 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2681 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2682 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2683 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2684 /*** IDirect3DRMMeshBuilder methods ***/
2685 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
2686 D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
2687 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
2688 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2689 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2690 STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2691 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2692 STDMETHOD(GenerateNormals)(THIS) PURE;
2693 STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2694 STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2695 STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
2696 STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
2697 STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
2698 STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2699 D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2700 STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2701 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2702 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2703 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
2704 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
2705 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2706 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2707 STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2708 STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2709 STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2710 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2711 STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2712 STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2713 STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2714 STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2715 DWORD *face_data_size, DWORD *face_data) PURE;
2716 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2717 STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2718 STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2719 STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
2720 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2721 STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2722 STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2723 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2724 STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2725 STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2726 /*** IDirect3DRMMeshBuilder2 methods ***/
2727 STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD flags) PURE;
2728 STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace **face) PURE;
2729};
2730#undef INTERFACE
2731
2732#if !defined(__cplusplus) || defined(CINTERFACE)
2733/*** IUnknown methods ***/
2734#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2735#define IDirect3DRMMeshBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
2736#define IDirect3DRMMeshBuilder2_Release(p) (p)->lpVtbl->Release(p)
2737/*** IDirect3DRMObject methods ***/
2738#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2739#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2740#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2741#define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2742#define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2743#define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2744#define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2745#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2746/*** IDirect3DRMMeshBuilder methods ***/
2747#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2748#define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
2749#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
2750#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
2751#define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
2752#define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2753#define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
2754#define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
2755#define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
2756#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
2757#define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
2758#define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
2759#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
2760#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
2761#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2762#define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2763#define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2764#define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2765#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2766#define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2767#define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
2768#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
2769#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
2770#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2771#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
2772#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
2773#define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
2774#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
2775#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2776#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2777#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
2778#define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
2779#define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
2780#define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
2781#define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
2782#define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2783#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
2784#define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2785/*** IDirect3DRMMeshBuilder2 methods ***/
2786#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->lpVtbl->GenerateNormals2(p,a,b)
2787#define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->lpVtbl->GetFace(p,a,b)
2788#else
2789/*** IUnknown methods ***/
2790#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2791#define IDirect3DRMMeshBuilder2_AddRef(p) (p)->AddRef()
2792#define IDirect3DRMMeshBuilder2_Release(p) (p)->Release()
2793/*** IDirect3DRMObject methods ***/
2794#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->Clone(a,b,c)
2795#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
2796#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
2797#define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->SetAppData(a)
2798#define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->GetAppData()
2799#define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->SetName(a)
2800#define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->GetName(a,b)
2801#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->GetClassName(a,b)
2802/*** IDirect3DRMMeshBuilder methods ***/
2803#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
2804#define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->Save(a,b,c)
2805#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->Scale(a,b,c)
2806#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->Translate(a)
2807#define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
2808#define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->GetBox(a)
2809#define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->GenerateNormals()
2810#define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->GetColorSource()
2811#define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)-->AddMesh(a)
2812#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
2813#define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->AddFrame(a)
2814#define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->AddFace(a)
2815#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
2816#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
2817#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
2818#define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->SetColor(a)
2819#define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->SetTexture(a)
2820#define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->SetMaterial(a)
2821#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
2822#define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->SetQuality(a)
2823#define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->SetPerspective(a)
2824#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
2825#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
2826#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
2827#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
2828#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
2829#define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->GetFaces(a)
2830#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
2831#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
2832#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
2833#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
2834#define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->CreateFace(a)
2835#define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->GetQuality()
2836#define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->GetPerspective()
2837#define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->GetFaceCount()
2838#define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->GetVertexCount()
2839#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->GetVertexColor(a)
2840#define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->CreateMesh(a)
2841/*** IDirect3DRMMeshBuilder2 methods ***/
2842#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->GenerateNormals2(a,b)
2843#define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->GetFace(a,b)
2844#endif
2845
2846/*****************************************************************************
2847 * IDirect3DRMMeshBuilder3 interface
2848 */
2849#define INTERFACE IDirect3DRMMeshBuilder3
2850DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3,IDirect3DRMVisual)
2851{
2852 /*** IUnknown methods ***/
2853 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2854 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2855 STDMETHOD_(ULONG,Release)(THIS) PURE;
2856 /*** IDirect3DRMObject methods ***/
2857 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
2858 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2859 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
2860 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
2861 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
2862 STDMETHOD(SetName)(THIS_ const char *name) PURE;
2863 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
2864 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
2865 /*** IDirect3DRMMeshBuilder3 methods ***/
2866 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
2867 D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
2868 STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
2869 STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2870 STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
2871 STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
2872 STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
2873 STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD flags) PURE;
2874 STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
2875 STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
2876 STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 *mesh_builder, DWORD flags) PURE;
2877 STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame3 *frame) PURE;
2878 STDMETHOD(AddFace)(THIS_ IDirect3DRMFace2 *face) PURE;
2879 STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
2880 D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
2881 STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
2882 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2883 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
2884 STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
2885 STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
2886 STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
2887 STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
2888 STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
2889 STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2890 STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2891 STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
2892 STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
2893 STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2894 STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
2895 STDMETHOD(GetGeometry)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
2896 DWORD *face_data_size, DWORD *face_data) PURE;
2897 STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
2898 STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2899 STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2900 STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
2901 STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
2902 STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
2903 STDMETHOD_(int, GetFaceCount)(THIS) PURE;
2904 STDMETHOD_(int, GetVertexCount)(THIS) PURE;
2905 STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
2906 STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
2907 STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace2 **face) PURE;
2908 STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
2909 STDMETHOD(GetNormal)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
2910 STDMETHOD(DeleteVertices)(THIS_ DWORD IndexFirst, DWORD count) PURE;
2911 STDMETHOD(DeleteNormals)(THIS_ DWORD IndexFirst, DWORD count) PURE;
2912 STDMETHOD(DeleteFace)(THIS_ IDirect3DRMFace2 *face) PURE;
2913 STDMETHOD(Empty)(THIS_ DWORD flags) PURE;
2914 STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
2915 STDMETHOD(AddFacesIndexed)(THIS_ DWORD flags, DWORD *pvIndices, DWORD *pIndexFirst, DWORD *pCount) PURE;
2916 STDMETHOD(CreateSubMesh)(THIS_ IUnknown **mesh) PURE;
2917 STDMETHOD(GetParentMesh)(THIS_ DWORD flags, IUnknown **parent) PURE;
2918 STDMETHOD(GetSubMeshes)(THIS_ DWORD *count, IUnknown **meshes) PURE;
2919 STDMETHOD(DeleteSubMesh)(THIS_ IUnknown *mesh) PURE;
2920 STDMETHOD(Enable)(THIS_ DWORD) PURE;
2921 STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
2922 STDMETHOD(AddTriangles)(THIS_ DWORD flags, DWORD format, DWORD vertex_count, void *data) PURE;
2923 STDMETHOD(SetVertices)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v) PURE;
2924 STDMETHOD(GetVertices)(THIS_ DWORD start_idx, DWORD *count, D3DVECTOR *v) PURE;
2925 STDMETHOD(SetNormals)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v) PURE;
2926 STDMETHOD(GetNormals)(THIS_ DWORD start_idx, DWORD *count, D3DVECTOR *v) PURE;
2927 STDMETHOD_(int, GetNormalCount)(THIS) PURE;
2928};
2929#undef INTERFACE
2930
2931#if !defined(__cplusplus) || defined(CINTERFACE)
2932/*** IUnknown methods ***/
2933#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2934#define IDirect3DRMMeshBuilder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2935#define IDirect3DRMMeshBuilder3_Release(p) (p)->lpVtbl->Release(p)
2936/*** IDirect3DRMObject methods ***/
2937#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
2938#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
2939#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
2940#define IDirect3DRMMeshBuilder3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
2941#define IDirect3DRMMeshBuilder3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
2942#define IDirect3DRMMeshBuilder3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
2943#define IDirect3DRMMeshBuilder3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
2944#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
2945
2946/*** IDirect3DRMMeshBuilder3 methods ***/
2947#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
2948#define IDirect3DRMMeshBuilder3_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
2949#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
2950#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
2951#define IDirect3DRMMeshBuilder3_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
2952#define IDirect3DRMMeshBuilder3_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
2953#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b) (p)->lpVtbl->GenerateNormals(p,a,b)
2954#define IDirect3DRMMeshBuilder3_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
2955#define IDirect3DRMMeshBuilder3_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
2956#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
2957#define IDirect3DRMMeshBuilder3_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
2958#define IDirect3DRMMeshBuilder3_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
2959#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
2960#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
2961#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
2962#define IDirect3DRMMeshBuilder3_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
2963#define IDirect3DRMMeshBuilder3_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
2964#define IDirect3DRMMeshBuilder3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2965#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
2966#define IDirect3DRMMeshBuilder3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
2967#define IDirect3DRMMeshBuilder3_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
2968#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
2969#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
2970#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
2971#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
2972#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
2973#define IDirect3DRMMeshBuilder3_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
2974#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f) (p)->lpVtbl->GetGeometry(p,a,b,c,d,e,f)
2975#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
2976#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
2977#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
2978
2979#define IDirect3DRMMeshBuilder3_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
2980#define IDirect3DRMMeshBuilder3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
2981#define IDirect3DRMMeshBuilder3_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
2982
2983#define IDirect3DRMMeshBuilder3_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
2984#define IDirect3DRMMeshBuilder3_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
2985#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
2986#define IDirect3DRMMeshBuilder3_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
2987#define IDirect3DRMMeshBuilder3_GetFace(p,a,b) (p)->lpVtbl->GetFace(p,a,b)
2988#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b) (p)->lpVtbl->GetVertex(p,a,b)
2989#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b) (p)->lpVtbl->GetNormal(p,a,b)
2990#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b) (p)->lpVtbl->DeleteVertices(p,a,b)
2991#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b) (p)->lpVtbl->DeleteNormals(p,a,b)
2992#define IDirect3DRMMeshBuilder3_DeleteFace(p,a) (p)->lpVtbl->DeleteFace(p,a)
2993#define IDirect3DRMMeshBuilder3_Empty(p,a) (p)->lpVtbl->Empty(p,a)
2994#define IDirect3DRMMeshBuilder3_Optimize(p,a) (p)->lpVtbl->Optimize(p,a)
2995#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d) (p)->lpVtbl->AddFacesIndexed(p,a,b,c,d)
2996#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a) (p)->lpVtbl->CreateSubMesh(p,a)
2997#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b) (p)->lpVtbl->GetParentMesh(p,a,b)
2998#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b) (p)->lpVtbl->GetSubMeshes(p,a,b)
2999#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a) (p)->lpVtbl->DeleteSubMesh(p,a)
3000#define IDirect3DRMMeshBuilder3_Enable(p,a) (p)->lpVtbl->Enable(p,a)
3001#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d) (p)->lpVtbl->AddTriangles(p,a,b,c,d)
3002#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c) (p)->lpVtbl->SetVertices(p,a,b,c)
3003#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
3004#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c) (p)->lpVtbl->SetNormals(p,a,b,c)
3005#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c) (p)->lpVtbl->GetNormals(p,a,b,c)
3006#define IDirect3DRMMeshBuilder3_GetNormalCount(p) (p)->lpVtbl->GetNormalCount(p)
3007#else
3008/*** IUnknown methods ***/
3009#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3010#define IDirect3DRMMeshBuilder3_AddRef(p) (p)->AddRef()
3011#define IDirect3DRMMeshBuilder3_Release(p) (p)->Release()
3012/*** IDirect3DRMObject methods ***/
3013#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c) (p)->Clone(a,b,c)
3014#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3015#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3016#define IDirect3DRMMeshBuilder3_SetAppData(p,a) (p)->SetAppData(a)
3017#define IDirect3DRMMeshBuilder3_GetAppData(p) (p)->GetAppData()
3018#define IDirect3DRMMeshBuilder3_SetName(p,a) (p)->SetName(a)
3019#define IDirect3DRMMeshBuilder3_GetName(p,a,b) (p)->GetName(a,b)
3020#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b) (p)->GetClassName(a,b)
3021/*** IDirect3DRMMeshBuilder3 methods ***/
3022#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
3023#define IDirect3DRMMeshBuilder3_Save(p,a,b,c) (p)->Save(a,b,c)
3024#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c) (p)->Scale(a,b,c)
3025#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c) (p)->Translate(a)
3026#define IDirect3DRMMeshBuilder3_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
3027#define IDirect3DRMMeshBuilder3_GetBox(p,a) (p)->GetBox(a)
3028#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b) (p)->GenerateNormals(a,b)
3029#define IDirect3DRMMeshBuilder3_GetColorSource(p) (p)->GetColorSource()
3030#define IDirect3DRMMeshBuilder3_AddMesh(p,a) (p)-->AddMesh(a)
3031#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
3032#define IDirect3DRMMeshBuilder3_AddFrame(p,a) (p)->AddFrame(a)
3033#define IDirect3DRMMeshBuilder3_AddFace(p,a) (p)->AddFace(a)
3034#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
3035#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
3036#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
3037#define IDirect3DRMMeshBuilder3_SetColor(p,a) (p)->SetColor(a)
3038#define IDirect3DRMMeshBuilder3_SetTexture(p,a) (p)->SetTexture(a)
3039#define IDirect3DRMMeshBuilder3_SetMaterial(p,a) (p)->SetMaterial(a)
3040#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
3041#define IDirect3DRMMeshBuilder3_SetQuality(p,a) (p)->SetQuality(a)
3042#define IDirect3DRMMeshBuilder3_SetPerspective(p,a) (p)->SetPerspective(a)
3043#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
3044#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
3045#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
3046#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
3047#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
3048#define IDirect3DRMMeshBuilder3_GetFaces(p,a) (p)->GetFaces(a)
3049#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f) (p)->GetGeometry(a,b,c,d,e,f)
3050#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
3051#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
3052#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
3053#define IDirect3DRMMeshBuilder3_CreateFace(p,a) (p)->CreateFace(a)
3054
3055#define IDirect3DRMMeshBuilder3_GetQuality(p) (p)->GetQuality()
3056#define IDirect3DRMMeshBuilder3_GetPerspective(p) (p)->GetPerspective()
3057#define IDirect3DRMMeshBuilder3_GetFaceCount(p) (p)->GetFaceCount()
3058#define IDirect3DRMMeshBuilder3_GetVertexCount(p) (p)->GetVertexCount()
3059#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a) (p)->GetVertexColor(a)
3060#define IDirect3DRMMeshBuilder3_CreateMesh(p,a) (p)->CreateMesh(a)
3061#define IDirect3DRMMeshBuilder3_GetFace(p,a,b) (p)->GetFace(a,b)
3062#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b) (p)->GetVertex(a,b)
3063#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b) (p)->GetNormal(a,b)
3064#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b) (p)->DeleteVertices(a,b)
3065#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b) (p)->DeleteNormals(a,b)
3066#define IDirect3DRMMeshBuilder3_DeleteFace(p,a) (p)->DeleteFace(a)
3067#define IDirect3DRMMeshBuilder3_Empty(p,a) (p)->Empty(a)
3068#define IDirect3DRMMeshBuilder3_Optimize(p,a) (p)->Optimize(a)
3069#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d) (p)->AddFacesIndexed(a,b,c,d)
3070#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a) (p)->CreateSubMesh(a)
3071#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b) (p)->GetParentMesh(a,b)
3072#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b) (p)->GetSubMeshes(a,b)
3073#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a) (p)->DeleteSubMesh(a)
3074#define IDirect3DRMMeshBuilder3_Enable(p,a) (p)->Enable(a)
3075#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d) (p)->AddTriangles(a,b,c,d)
3076#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c) (p)->SetVertices(a,b,c)
3077#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
3078#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c) (p)->SetNormals(a,b,c)
3079#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c) (p)->GetNormals(a,b,c)
3080#define IDirect3DRMMeshBuilder3_GetNormalCount(p) (p)->GetNormalCount()
3081#endif
3082
3083/*****************************************************************************
3084 * IDirect3DRMLight interface
3085 */
3086#define INTERFACE IDirect3DRMLight
3087DECLARE_INTERFACE_(IDirect3DRMLight,IDirect3DRMObject)
3088{
3089 /*** IUnknown methods ***/
3090 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3091 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3092 STDMETHOD_(ULONG,Release)(THIS) PURE;
3093 /*** IDirect3DRMObject methods ***/
3094 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3095 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3096 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3097 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3098 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3099 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3100 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3101 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3102 /*** IDirect3DRMLight methods ***/
3103 STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
3104 STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
3105 STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
3106 STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
3107 STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
3108 STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
3109 STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
3110 STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
3111 STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
3112 STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
3113 STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
3114 STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
3115 STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
3116 STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
3117 STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
3118 STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
3119 STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
3120 STDMETHOD(SetEnableFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
3121 STDMETHOD(GetEnableFrame)(THIS_ IDirect3DRMFrame **frame) PURE;
3122};
3123#undef INTERFACE
3124
3125#if !defined(__cplusplus) || defined(CINTERFACE)
3126/*** IUnknown methods ***/
3127#define IDirect3DRMLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3128#define IDirect3DRMLight_AddRef(p) (p)->lpVtbl->AddRef(p)
3129#define IDirect3DRMLight_Release(p) (p)->lpVtbl->Release(p)
3130/*** IDirect3DRMObject methods ***/
3131#define IDirect3DRMLight_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3132#define IDirect3DRMLight_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3133#define IDirect3DRMLight_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3134#define IDirect3DRMLight_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3135#define IDirect3DRMLight_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3136#define IDirect3DRMLight_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3137#define IDirect3DRMLight_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3138#define IDirect3DRMLight_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3139/*** IDirect3DRMLight methods ***/
3140#define IDirect3DRMLight_SetType(p,a) (p)->lpVtbl->SetType(p,a)
3141#define IDirect3DRMLight_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
3142#define IDirect3DRMLight_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
3143#define IDirect3DRMLight_SetRange(p,a) (p)->lpVtbl->SetRange(p,a)
3144#define IDirect3DRMLight_SetUmbra(p,a) (p)->lpVtbl->SetUmbra(p,a)
3145#define IDirect3DRMLight_SetPenumbra(p,a) (p)->lpVtbl->SetPenumbra(p,a)
3146#define IDirect3DRMLight_SetConstantAttenuation(p,a) (p)->lpVtbl->SetConstantAttenuation(p,a)
3147#define IDirect3DRMLight_SetLinearAttenuation(p,a) (p)->lpVtbl->SetLinearAttenuation(p,a)
3148#define IDirect3DRMLight_SetQuadraticAttenuation(p,a) (p)->lpVtbl->SetQuadraticAttenuation(p,a)
3149#define IDirect3DRMLight_GetRange(p) (p)->lpVtbl->GetRange(p)
3150#define IDirect3DRMLight_GetUmbra(p) (p)->lpVtbl->GetUmbra(p)
3151#define IDirect3DRMLight_GetPenumbra(p) (p)->lpVtbl->GetPenumbra(p)
3152#define IDirect3DRMLight_GetConstantAttenuation(p) (p)->lpVtbl->GetConstantAttenuation(p)
3153#define IDirect3DRMLight_GetLinearAttenuation(p) (p)->lpVtbl->GetLinearAttenuation(p)
3154#define IDirect3DRMLight_GetQuadraticAttenuation(p) (p)->lpVtbl->GetQuadraticAttenuation(p)
3155#define IDirect3DRMLight_GetColor(p) (p)->lpVtbl->GetColor(p)
3156#define IDirect3DRMLight_GetType(p) (p)->lpVtbl->GetType(p)
3157#define IDirect3DRMLight_SetEnableFrame(p,a) (p)->lpVtbl->SetEnableFrame(p,a)
3158#define IDirect3DRMLight_GetEnableFrame(p,a) (p)->lpVtbl->GetEnableFrame(p,a)
3159#else
3160/*** IUnknown methods ***/
3161#define IDirect3DRMLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3162#define IDirect3DRMLight_AddRef(p) (p)->AddRef()
3163#define IDirect3DRMLight_Release(p) (p)->Release()
3164/*** IDirect3DRMObject methods ***/
3165#define IDirect3DRMLight_Clone(p,a,b,c) (p)->Clone(a,b,c)
3166#define IDirect3DRMLight_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3167#define IDirect3DRMLight_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3168#define IDirect3DRMLight_SetAppData(p,a) (p)->SetAppData(a)
3169#define IDirect3DRMLight_GetAppData(p) (p)->GetAppData()
3170#define IDirect3DRMLight_SetName(p,a) (p)->SetName(a)
3171#define IDirect3DRMLight_GetName(p,a,b) (p)->GetName(a,b)
3172#define IDirect3DRMLight_GetClassName(p,a,b) (p)->GetClassName(a,b)
3173/*** IDirect3DRMLight methods ***/
3174#define IDirect3DRMLight_SetType(p,a) (p)->SetType(a)
3175#define IDirect3DRMLight_SetColor(p,a) (p)->SetColor(a)
3176#define IDirect3DRMLight_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
3177#define IDirect3DRMLight_SetRange(p,a) (p)->SetRange(a)
3178#define IDirect3DRMLight_SetUmbra(p,a) (p)->SetUmbra(a)
3179#define IDirect3DRMLight_SetPenumbra(p,a) (p)->SetPenumbra(a)
3180#define IDirect3DRMLight_SetConstantAttenuation(p,a) (p)->SetConstantAttenuation(a)
3181#define IDirect3DRMLight_SetLinearAttenuation(p,a) (p)->SetLinearAttenuation(a)
3182#define IDirect3DRMLight_SetQuadraticAttenuation(p,a) (p)->SetQuadraticAttenuation(a)
3183#define IDirect3DRMLight_GetRange(p) (p)->GetRange()
3184#define IDirect3DRMLight_GetUmbra(p) (p)->GetUmbra()
3185#define IDirect3DRMLight_GetPenumbra(p) (p)->GetPenumbra()
3186#define IDirect3DRMLight_GetConstantAttenuation(p) (p)->GetConstantAttenuation()
3187#define IDirect3DRMLight_GetLinearAttenuation(p) (p)->GetLinearAttenuation()
3188#define IDirect3DRMLight_GetQuadraticAttenuation(p) (p)->GetQuadraticAttenuation()
3189#define IDirect3DRMLight_GetColor(p) (p)->GetColor()
3190#define IDirect3DRMLight_GetType(p) (p)->GetType()
3191#define IDirect3DRMLight_SetEnableFrame(p,a) (p)->SetEnableFrame(a)
3192#define IDirect3DRMLight_GetEnableFrame(p,a) (p)->GetEnableFrame(a)
3193#endif
3194
3195/*****************************************************************************
3196 * IDirect3DRMTexture interface
3197 */
3198#define INTERFACE IDirect3DRMTexture
3199DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
3200{
3201 /*** IUnknown methods ***/
3202 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3203 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3204 STDMETHOD_(ULONG,Release)(THIS) PURE;
3205 /*** IDirect3DRMObject methods ***/
3206 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3207 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3208 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3209 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3210 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3211 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3212 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3213 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3214 /*** IDirect3DRMTexture methods ***/
3215 STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
3216 STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
3217 STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
3218 STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
3219 STDMETHOD(SetColors)(THIS_ DWORD) PURE;
3220 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
3221 STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
3222 STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
3223 STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
3224 STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
3225 STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
3226 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
3227 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
3228 STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
3229 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
3230 STDMETHOD_(DWORD, GetColors)(THIS) PURE;
3231 STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
3232 STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
3233 STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
3234};
3235#undef INTERFACE
3236
3237#if !defined(__cplusplus) || defined(CINTERFACE)
3238/*** IUnknown methods ***/
3239#define IDirect3DRMTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3240#define IDirect3DRMTexture_AddRef(p) (p)->lpVtbl->AddRef(p)
3241#define IDirect3DRMTexture_Release(p) (p)->lpVtbl->Release(p)
3242/*** IDirect3DRMObject methods ***/
3243#define IDirect3DRMTexture_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3244#define IDirect3DRMTexture_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3245#define IDirect3DRMTexture_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3246#define IDirect3DRMTexture_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3247#define IDirect3DRMTexture_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3248#define IDirect3DRMTexture_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3249#define IDirect3DRMTexture_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3250#define IDirect3DRMTexture_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3251/*** IDirect3DRMTexture methods ***/
3252#define IDirect3DRMTexture_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
3253#define IDirect3DRMTexture_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
3254#define IDirect3DRMTexture_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
3255#define IDirect3DRMTexture_Changed(p,a,b) (p)->lpVtbl->Changed(p,a,b)
3256#define IDirect3DRMTexture_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
3257#define IDirect3DRMTexture_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
3258#define IDirect3DRMTexture_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
3259#define IDirect3DRMTexture_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
3260#define IDirect3DRMTexture_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
3261#define IDirect3DRMTexture_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
3262#define IDirect3DRMTexture_SetDecalTransparencyColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
3263#define IDirect3DRMTexture_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
3264#define IDirect3DRMTexture_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
3265#define IDirect3DRMTexture_GetImage(p) (p)->lpVtbl->GetImage(p)
3266#define IDirect3DRMTexture_GetShades(p) (p)->lpVtbl->GetShades(p)
3267#define IDirect3DRMTexture_GetColors(p) (p)->lpVtbl->GetColors(p)
3268#define IDirect3DRMTexture_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
3269#define IDirect3DRMTexture_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
3270#define IDirect3DRMTexture_GetDecalTransparencyColor(p) (p)->lpVtbl->GetDecalTransparencyColor(p)
3271#else
3272/*** IUnknown methods ***/
3273#define IDirect3DRMTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3274#define IDirect3DRMTexture_AddRef(p) (p)->AddRef()
3275#define IDirect3DRMTexture_Release(p) (p)->Release()
3276/*** IDirect3DRMObject methods ***/
3277#define IDirect3DRMTexture_Clone(p,a,b,c) (p)->Clone(a,b,c)
3278#define IDirect3DRMTexture_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3279#define IDirect3DRMTexture_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3280#define IDirect3DRMTexture_SetAppData(p,a) (p)->SetAppData(a)
3281#define IDirect3DRMTexture_GetAppData(p) (p)->GetAppData()
3282#define IDirect3DRMTexture_SetName(p,a) (p)->SetName(a)
3283#define IDirect3DRMTexture_GetName(p,a,b) (p)->GetName(a,b)
3284#define IDirect3DRMTexture_GetClassName(p,a,b) (p)->GetClassName(a,b)
3285/*** IDirect3DRMTexture methods ***/
3286#define IDirect3DRMTexture_InitFromFile(p,a) (p)->InitFromFile(a)
3287#define IDirect3DRMTexture_InitFromSurface(p,a) (p)->InitFromSurface(a)
3288#define IDirect3DRMTexture_InitFromResource(p,a) (p)->InitFromResource(a)
3289#define IDirect3DRMTexture_Changed(p,a,b) (p)->Changed(a,b)
3290#define IDirect3DRMTexture_SetColors(p,a) (p)->SetColors(a)
3291#define IDirect3DRMTexture_SetShades(p,a) (p)->SetShades(a)
3292#define IDirect3DRMTexture_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
3293#define IDirect3DRMTexture_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
3294#define IDirect3DRMTexture_SetDecalScale(p,a) (p)->SetDecalScale(a)
3295#define IDirect3DRMTexture_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
3296#define IDirect3DRMTexture_SetDecalTransparencyColor(p,a) (p)->SetDecalTransparentColor(a)
3297#define IDirect3DRMTexture_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
3298#define IDirect3DRMTexture_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
3299#define IDirect3DRMTexture_GetImage(p) (p)->GetImage()
3300#define IDirect3DRMTexture_GetShades(p) (p)->GetShades()
3301#define IDirect3DRMTexture_GetColors(p) (p)->GetColors()
3302#define IDirect3DRMTexture_GetDecalScale(p) (p)->GetDecalScale()
3303#define IDirect3DRMTexture_GetDecalTransparency(p) (p)->GetDecalTransparency()
3304#define IDirect3DRMTexture_GetDecalTransparencyColor(p) (p)->GetDecalTransparencyColor()
3305#endif
3306
3307/*****************************************************************************
3308 * IDirect3DRMTexture2 interface
3309 */
3310#define INTERFACE IDirect3DRMTexture2
3311DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
3312{
3313 /*** IUnknown methods ***/
3314 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3315 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3316 STDMETHOD_(ULONG,Release)(THIS) PURE;
3317 /*** IDirect3DRMObject methods ***/
3318 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3319 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3320 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3321 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3322 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3323 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3324 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3325 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3326 /*** IDirect3DRMTexture methods ***/
3327 STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
3328 STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
3329 STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
3330 STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
3331 STDMETHOD(SetColors)(THIS_ DWORD) PURE;
3332 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
3333 STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
3334 STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
3335 STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
3336 STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
3337 STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
3338 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
3339 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
3340 STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
3341 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
3342 STDMETHOD_(DWORD, GetColors)(THIS) PURE;
3343 STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
3344 STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
3345 STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
3346 /*** IDirect3DRMTexture2 methods ***/
3347 STDMETHOD(InitFromImage)(THIS_ D3DRMIMAGE *image) PURE;
3348 STDMETHOD(InitFromResource2)(THIS_ HMODULE module, const char *name, const char *type) PURE;
3349 STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
3350};
3351#undef INTERFACE
3352
3353#if !defined(__cplusplus) || defined(CINTERFACE)
3354/*** IUnknown methods ***/
3355#define IDirect3DRMTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3356#define IDirect3DRMTexture2_AddRef(p) (p)->lpVtbl->AddRef(p)
3357#define IDirect3DRMTexture2_Release(p) (p)->lpVtbl->Release(p)
3358/*** IDirect3DRMObject methods ***/
3359#define IDirect3DRMTexture2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3360#define IDirect3DRMTexture2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3361#define IDirect3DRMTexture2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3362#define IDirect3DRMTexture2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3363#define IDirect3DRMTexture2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3364#define IDirect3DRMTexture2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3365#define IDirect3DRMTexture2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3366#define IDirect3DRMTexture2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3367/*** IDirect3DRMTexture methods ***/
3368#define IDirect3DRMTexture2_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
3369#define IDirect3DRMTexture2_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
3370#define IDirect3DRMTexture2_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
3371#define IDirect3DRMTexture2_Changed(p,a,b) (p)->lpVtbl->Changed(p,a,b)
3372#define IDirect3DRMTexture2_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
3373#define IDirect3DRMTexture2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
3374#define IDirect3DRMTexture2_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
3375#define IDirect3DRMTexture2_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
3376#define IDirect3DRMTexture2_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
3377#define IDirect3DRMTexture2_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
3378#define IDirect3DRMTexture2_SetDecalTransparencyColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
3379#define IDirect3DRMTexture2_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
3380#define IDirect3DRMTexture2_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
3381#define IDirect3DRMTexture2_GetImage(p) (p)->lpVtbl->GetImage(p)
3382#define IDirect3DRMTexture2_GetShades(p) (p)->lpVtbl->GetShades(p)
3383#define IDirect3DRMTexture2_GetColors(p) (p)->lpVtbl->GetColors(p)
3384#define IDirect3DRMTexture2_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
3385#define IDirect3DRMTexture2_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
3386#define IDirect3DRMTexture2_GetDecalTransparencyColor(p) (p)->lpVtbl->GetDecalTransparencyColor(p)
3387/*** IDirect3DRMTexture2 methods ***/
3388#define IDirect3DRMTexture2_InitFromImage(p,a) (p)->lpVtbl->InitFromImage(p,a)
3389#define IDirect3DRMTexture2_InitFromResource2(p,a,b,c) (p)->lpVtbl->InitFromResource2(p,a,b,c)
3390#define IDirect3DRMTexture2_GenerateMIPMap(p,a) (p)->lpVtbl->GenerateMIPMap(p,a)
3391#else
3392/*** IUnknown methods ***/
3393#define IDirect3DRMTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3394#define IDirect3DRMTexture2_AddRef(p) (p)->AddRef()
3395#define IDirect3DRMTexture2_Release(p) (p)->Release()
3396/*** IDirect3DRMObject methods ***/
3397#define IDirect3DRMTexture2_Clone(p,a,b,c) (p)->Clone(a,b,c)
3398#define IDirect3DRMTexture2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3399#define IDirect3DRMTexture2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3400#define IDirect3DRMTexture2_SetAppData(p,a) (p)->SetAppData(a)
3401#define IDirect3DRMTexture2_GetAppData(p) (p)->GetAppData()
3402#define IDirect3DRMTexture2_SetName(p,a) (p)->SetName(a)
3403#define IDirect3DRMTexture2_GetName(p,a,b) (p)->GetName(a,b)
3404#define IDirect3DRMTexture2_GetClassName(p,a,b) (p)->GetClassName(a,b)
3405/*** IDirect3DRMTexture methods ***/
3406#define IDirect3DRMTexture2_InitFromFile(p,a) (p)->InitFromFile(a)
3407#define IDirect3DRMTexture2_InitFromSurface(p,a) (p)->InitFromSurface(a)
3408#define IDirect3DRMTexture2_InitFromResource(p,a) (p)->InitFromResource(a)
3409#define IDirect3DRMTexture2_Changed(p,a,b) (p)->Changed(a,b)
3410#define IDirect3DRMTexture2_SetColors(p,a) (p)->SetColors(a)
3411#define IDirect3DRMTexture2_SetShades(p,a) (p)->SetShades(a)
3412#define IDirect3DRMTexture2_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
3413#define IDirect3DRMTexture2_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
3414#define IDirect3DRMTexture2_SetDecalScale(p,a) (p)->SetDecalScale(a)
3415#define IDirect3DRMTexture2_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
3416#define IDirect3DRMTexture2_SetDecalTransparencyColor(p,a) (p)->SetDecalTransparentColor(a)
3417#define IDirect3DRMTexture2_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
3418#define IDirect3DRMTexture2_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
3419#define IDirect3DRMTexture2_GetImage(p) (p)->GetImage()
3420#define IDirect3DRMTexture2_GetShades(p) (p)->GetShades()
3421#define IDirect3DRMTexture2_GetColors(p) (p)->GetColors()
3422#define IDirect3DRMTexture2_GetDecalScale(p) (p)->GetDecalScale()
3423#define IDirect3DRMTexture2_GetDecalTransparency(p) (p)->GetDecalTransparency()
3424#define IDirect3DRMTexture2_GetDecalTransparencyColor(p) (p)->GetDecalTransparencyColor()
3425/*** IDirect3DRMTexture2 methods ***/
3426#define IDirect3DRMTexture2_InitFromImage(p,a) (p)->InitFromImage(a)
3427#define IDirect3DRMTexture2_InitFromResource2(p,a,b,c) (p)->InitFromResource2(a,b,c)
3428#define IDirect3DRMTexture2_GenerateMIPMap(p,a) (p)->GenerateMIPMap(a)
3429#endif
3430
3431/*****************************************************************************
3432 * IDirect3DRMTexture3 interface
3433 */
3434#define INTERFACE IDirect3DRMTexture3
3435DECLARE_INTERFACE_(IDirect3DRMTexture3, IDirect3DRMVisual)
3436{
3437 /*** IUnknown methods ***/
3438 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3439 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3440 STDMETHOD_(ULONG,Release)(THIS) PURE;
3441 /*** IDirect3DRMObject methods ***/
3442 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3443 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3444 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3445 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3446 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3447 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3448 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3449 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3450 /*** IDirect3DRMTexture3 methods ***/
3451 STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
3452 STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
3453 STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
3454 STDMETHOD(Changed)(THIS_ DWORD flags, DWORD rect_count, RECT *rects) PURE;
3455 STDMETHOD(SetColors)(THIS_ DWORD) PURE;
3456 STDMETHOD(SetShades)(THIS_ DWORD) PURE;
3457 STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
3458 STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
3459 STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
3460 STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
3461 STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
3462 STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
3463 STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
3464 STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
3465 STDMETHOD_(DWORD, GetShades)(THIS) PURE;
3466 STDMETHOD_(DWORD, GetColors)(THIS) PURE;
3467 STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
3468 STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
3469 STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
3470 STDMETHOD(InitFromImage)(THIS_ D3DRMIMAGE *image) PURE;
3471 STDMETHOD(InitFromResource2)(THIS_ HMODULE module, const char *name, const char *type) PURE;
3472 STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
3473 STDMETHOD(GetSurface)(THIS_ DWORD flags, IDirectDrawSurface **surface) PURE;
3474 STDMETHOD(SetCacheOptions)(THIS_ LONG lImportance, DWORD dwFlags) PURE;
3475 STDMETHOD(GetCacheOptions)(THIS_ LONG *importance, DWORD *flags) PURE;
3476 STDMETHOD(SetDownsampleCallback)(THIS_ D3DRMDOWNSAMPLECALLBACK cb, void *ctx) PURE;
3477 STDMETHOD(SetValidationCallback)(THIS_ D3DRMVALIDATIONCALLBACK cb, void *ctx) PURE;
3478};
3479#undef INTERFACE
3480
3481#if !defined(__cplusplus) || defined(CINTERFACE)
3482/*** IUnknown methods ***/
3483#define IDirect3DRMTexture3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3484#define IDirect3DRMTexture3_AddRef(p) (p)->lpVtbl->AddRef(p)
3485#define IDirect3DRMTexture3_Release(p) (p)->lpVtbl->Release(p)
3486/*** IDirect3DRMObject methods ***/
3487#define IDirect3DRMTexture3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3488#define IDirect3DRMTexture3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3489#define IDirect3DRMTexture3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3490#define IDirect3DRMTexture3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3491#define IDirect3DRMTexture3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3492#define IDirect3DRMTexture3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3493#define IDirect3DRMTexture3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3494#define IDirect3DRMTexture3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3495/*** IDirect3DRMTexture3 methods ***/
3496#define IDirect3DRMTexture3_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
3497#define IDirect3DRMTexture3_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
3498#define IDirect3DRMTexture3_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
3499#define IDirect3DRMTexture3_Changed(p,a,b,c) (p)->lpVtbl->Changed(p,a,b,c)
3500#define IDirect3DRMTexture3_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
3501#define IDirect3DRMTexture3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
3502#define IDirect3DRMTexture3_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
3503#define IDirect3DRMTexture3_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
3504#define IDirect3DRMTexture3_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
3505#define IDirect3DRMTexture3_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
3506#define IDirect3DRMTexture3_SetDecalTransparencyColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
3507#define IDirect3DRMTexture3_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
3508#define IDirect3DRMTexture3_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
3509#define IDirect3DRMTexture3_GetImage(p) (p)->lpVtbl->GetImage(p)
3510#define IDirect3DRMTexture3_GetShades(p) (p)->lpVtbl->GetShades(p)
3511#define IDirect3DRMTexture3_GetColors(p) (p)->lpVtbl->GetColors(p)
3512#define IDirect3DRMTexture3_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
3513#define IDirect3DRMTexture3_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
3514#define IDirect3DRMTexture3_GetDecalTransparencyColor(p) (p)->lpVtbl->GetDecalTransparencyColor(p)
3515#define IDirect3DRMTexture3_InitFromImage(p,a) (p)->lpVtbl->InitFromImage(p,a)
3516#define IDirect3DRMTexture3_InitFromResource2(p,a,b,c) (p)->lpVtbl->InitFromResource2(p,a,b,c)
3517#define IDirect3DRMTexture3_GenerateMIPMap(p,a) (p)->lpVtbl->GenerateMIPMap(p,a)
3518#define IDirect3DRMTexture3_GetSurface(p,a,b) (p)->lpVtbl->GetSurface(p,a,b)
3519#define IDirect3DRMTexture3_SetCacheOptions(p,a,b) (p)->lpVtbl->SetCacheOptions(p,a,b)
3520#define IDirect3DRMTexture3_GetCacheOptions(p,a,b) (p)->lpVtbl->GetCacheOptions(p,a,b)
3521#define IDirect3DRMTexture3_SetDownsampleCallback(p,a,b) (p)->lpVtbl->SetDownsampleCallback(p,a,b)
3522#define IDirect3DRMTexture3_SetValidationCallback(p,a,b) (p)->lpVtbl->SetValidationCallback(p,a,b)
3523#else
3524/*** IUnknown methods ***/
3525#define IDirect3DRMTexture3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3526#define IDirect3DRMTexture3_AddRef(p) (p)->AddRef()
3527#define IDirect3DRMTexture3_Release(p) (p)->Release()
3528/*** IDirect3DRMObject methods ***/
3529#define IDirect3DRMTexture3_Clone(p,a,b,c) (p)->Clone(a,b,c)
3530#define IDirect3DRMTexture3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3531#define IDirect3DRMTexture3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3532#define IDirect3DRMTexture3_SetAppData(p,a) (p)->SetAppData(a)
3533#define IDirect3DRMTexture3_GetAppData(p) (p)->GetAppData()
3534#define IDirect3DRMTexture3_SetName(p,a) (p)->SetName(a)
3535#define IDirect3DRMTexture3_GetName(p,a,b) (p)->GetName(a,b)
3536#define IDirect3DRMTexture3_GetClassName(p,a,b) (p)->GetClassName(a,b)
3537/*** IDirect3DRMTexture3 methods ***/
3538#define IDirect3DRMTexture3_InitFromFile(p,a) (p)->InitFromFile(a)
3539#define IDirect3DRMTexture3_InitFromSurface(p,a) (p)->InitFromSurface(a)
3540#define IDirect3DRMTexture3_InitFromResource(p,a) (p)->InitFromResource(a)
3541#define IDirect3DRMTexture3_Changed(p,a,b,c) (p)->Changed(a,b,c)
3542#define IDirect3DRMTexture3_SetColors(p,a) (p)->SetColors(a)
3543#define IDirect3DRMTexture3_SetShades(p,a) (p)->SetShades(a)
3544#define IDirect3DRMTexture3_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
3545#define IDirect3DRMTexture3_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
3546#define IDirect3DRMTexture3_SetDecalScale(p,a) (p)->SetDecalScale(a)
3547#define IDirect3DRMTexture3_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
3548#define IDirect3DRMTexture3_SetDecalTransparencyColor(p,a) (p)->SetDecalTransparentColor(a)
3549#define IDirect3DRMTexture3_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
3550#define IDirect3DRMTexture3_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
3551#define IDirect3DRMTexture3_GetImage(p) (p)->GetImage()
3552#define IDirect3DRMTexture3_GetShades(p) (p)->GetShades()
3553#define IDirect3DRMTexture3_GetColors(p) (p)->GetColors()
3554#define IDirect3DRMTexture3_GetDecalScale(p) (p)->GetDecalScale()
3555#define IDirect3DRMTexture3_GetDecalTransparency(p) (p)->GetDecalTransparency()
3556#define IDirect3DRMTexture3_GetDecalTransparencyColor(p) (p)->GetDecalTransparencyColor()
3557#define IDirect3DRMTexture3_InitFromImage(p,a) (p)->InitFromImage(a)
3558#define IDirect3DRMTexture3_InitFromResource2(p,a,b,c) (p)->InitFromResource2(a,b,c)
3559#define IDirect3DRMTexture3_GenerateMIPMap(p,a) (p)->GenerateMIPMap(a)
3560#define IDirect3DRMTexture3_GetSurface(p,a,b) (p)->GetSurface(a,b)
3561#define IDirect3DRMTexture3_SetCacheOptions(p,a,b) (p)->SetCacheOptions(a,b)
3562#define IDirect3DRMTexture3_GetCacheOptions(p,a,b) (p)->GetCacheOptions(a,b)
3563#define IDirect3DRMTexture3_SetDownsampleCallback(p,a,b) (p)->SetDownsampleCallback(a,b)
3564#define IDirect3DRMTexture3_SetValidationCallback(p,a,b) (p)->SetValidationCallback(a,b)
3565#endif
3566
3567/*****************************************************************************
3568 * IDirect3DRMWrap interface
3569 */
3570#define INTERFACE IDirect3DRMWrap
3571DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
3572{
3573 /*** IUnknown methods ***/
3574 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3575 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3576 STDMETHOD_(ULONG,Release)(THIS) PURE;
3577 /*** IDirect3DRMObject methods ***/
3578 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3579 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3580 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3581 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3582 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3583 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3584 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3585 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3586 /*** IDirect3DRMWrap methods ***/
3587 STDMETHOD(Init)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
3588 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
3589 D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv) PURE;
3590 STDMETHOD(Apply)(THIS_ IDirect3DRMObject *object) PURE;
3591 STDMETHOD(ApplyRelative)(THIS_ IDirect3DRMFrame *frame, IDirect3DRMObject *object) PURE;
3592};
3593#undef INTERFACE
3594
3595#if !defined(__cplusplus) || defined(CINTERFACE)
3596/*** IUnknown methods ***/
3597#define IDirect3DRMWrap_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3598#define IDirect3DRMWrap_AddRef(p) (p)->lpVtbl->AddRef(p)
3599#define IDirect3DRMWrap_Release(p) (p)->lpVtbl->Release(p)
3600/*** IDirect3DRMObject methods ***/
3601#define IDirect3DRMWrap_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3602#define IDirect3DRMWrap_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3603#define IDirect3DRMWrap_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3604#define IDirect3DRMWrap_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3605#define IDirect3DRMWrap_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3606#define IDirect3DRMWrap_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3607#define IDirect3DRMWrap_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3608#define IDirect3DRMWrap_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3609/*** IDirect3DRMWrap methods ***/
3610#define IDirect3DRMWrap_Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
3611#define IDirect3DRMWrap_Apply(p,a) (p)->lpVtbl->Apply(p,a)
3612#define IDirect3DRMWrap_ApplyRelative(p,a,b) (p)->lpVtbl->ApplyRelative(p,a,b)
3613#else
3614/*** IUnknown methods ***/
3615#define IDirect3DRMWrap_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3616#define IDirect3DRMWrap_AddRef(p) (p)->AddRef()
3617#define IDirect3DRMWrap_Release(p) (p)->Release()
3618/*** IDirect3DRMObject methods ***/
3619#define IDirect3DRMWrap_Clone(p,a,b,c) (p)->Clone(a,b,c)
3620#define IDirect3DRMWrap_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3621#define IDirect3DRMWrap_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3622#define IDirect3DRMWrap_SetAppData(p,a) (p)->SetAppData(a)
3623#define IDirect3DRMWrap_GetAppData(p) (p)->GetAppData()
3624#define IDirect3DRMWrap_SetName(p,a) (p)->SetName(a)
3625#define IDirect3DRMWrap_GetName(p,a,b) (p)->GetName(a,b)
3626#define IDirect3DRMWrap_GetClassName(p,a,b) (p)->GetClassName(a,b)
3627/*** IDirect3DRMWrap methods ***/
3628#define IDirect3DRMWrap_Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
3629#define IDirect3DRMWrap_Apply(p,a) (p)->Apply(p,a)
3630#define IDirect3DRMWrap_ApplyRelative(p,a,b) (p)->ApplyRelative(p,a,b)
3631#endif
3632
3633/*****************************************************************************
3634 * IDirect3DRMMaterial interface
3635 */
3636#define INTERFACE IDirect3DRMMaterial
3637DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
3638{
3639 /*** IUnknown methods ***/
3640 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3641 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3642 STDMETHOD_(ULONG,Release)(THIS) PURE;
3643 /*** IDirect3DRMObject methods ***/
3644 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3645 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3646 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3647 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3648 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3649 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3650 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3651 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3652 /*** IDirect3DRMMaterial methods ***/
3653 STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
3654 STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
3655 STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
3656 STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
3657 STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
3658 STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
3659};
3660#undef INTERFACE
3661
3662#if !defined(__cplusplus) || defined(CINTERFACE)
3663/*** IUnknown methods ***/
3664#define IDirect3DRMMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3665#define IDirect3DRMMaterial_AddRef(p) (p)->lpVtbl->AddRef(p)
3666#define IDirect3DRMMaterial_Release(p) (p)->lpVtbl->Release(p)
3667/*** IDirect3DRMObject methods ***/
3668#define IDirect3DRMMaterial_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3669#define IDirect3DRMMaterial_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3670#define IDirect3DRMMaterial_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3671#define IDirect3DRMMaterial_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3672#define IDirect3DRMMaterial_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3673#define IDirect3DRMMaterial_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3674#define IDirect3DRMMaterial_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3675#define IDirect3DRMMaterial_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3676/*** IDirect3DRMMaterial methods ***/
3677#define IDirect3DRMMaterial_SetPower(p,a) (p)->lpVtbl->SetPower(p,a)
3678#define IDirect3DRMMaterial_SetSpecular(p,a,b,c) (p)->lpVtbl->SetSpecular(p,a,b,c)
3679#define IDirect3DRMMaterial_SetEmissive(p,a,b,c) (p)->lpVtbl->SetEmissive(p,a,b,c)
3680#define IDirect3DRMMaterial_GetPower(p) (p)->lpVtbl->GetPower(p)
3681#define IDirect3DRMMaterial_GetSpecular(p,a,b,c) (p)->lpVtbl->GetSpecular(p,a,b,c)
3682#define IDirect3DRMMaterial_GetEmissive(p,a,b,c) (p)->lpVtbl->GetEmissive(p,a,b,c)
3683#else
3684/*** IUnknown methods ***/
3685#define IDirect3DRMMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3686#define IDirect3DRMMaterial_AddRef(p) (p)->AddRef()
3687#define IDirect3DRMMaterial_Release(p) (p)->Release()
3688/*** IDirect3DRMObject methods ***/
3689#define IDirect3DRMMaterial_Clone(p,a,b,c) (p)->Clone(a,b,c)
3690#define IDirect3DRMMaterial_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3691#define IDirect3DRMMaterial_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3692#define IDirect3DRMMaterial_SetAppData(p,a) (p)->SetAppData(a)
3693#define IDirect3DRMMaterial_GetAppData(p) (p)->GetAppData()
3694#define IDirect3DRMMaterial_SetName(p,a) (p)->SetName(a)
3695#define IDirect3DRMMaterial_GetName(p,a,b) (p)->GetName(a,b)
3696#define IDirect3DRMMaterial_GetClassName(p,a,b) (p)->GetClassName(a,b)
3697/*** IDirect3DRMMaterial methods ***/
3698#define IDirect3DRMMaterial_SetPower(p,a) (p)->SetPower(a)
3699#define IDirect3DRMMaterial_SetSpecular(p,a,b,c) (p)->SetSpecular(a,b,c)
3700#define IDirect3DRMMaterial_SetEmissive(p,a,b,c) (p)->SetEmissive(a,b,c)
3701#define IDirect3DRMMaterial_GetPower(p) (p)->GetPower()
3702#define IDirect3DRMMaterial_GetSpecular(p,a,b,c) (p)->GetSpecular(a,b,c)
3703#define IDirect3DRMMaterial_GetEmissive(p,a,b,c) (p)->GetEmissive(a,b,c)
3704#endif
3705
3706/*****************************************************************************
3707 * IDirect3DRMMaterial2 interface
3708 */
3709#define INTERFACE IDirect3DRMMaterial2
3710DECLARE_INTERFACE_(IDirect3DRMMaterial2, IDirect3DRMObject)
3711{
3712 /*** IUnknown methods ***/
3713 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3714 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3715 STDMETHOD_(ULONG,Release)(THIS) PURE;
3716 /*** IDirect3DRMObject methods ***/
3717 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3718 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3719 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3720 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3721 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3722 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3723 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3724 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3725 /*** IDirect3DRMMaterial2 methods ***/
3726 STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
3727 STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
3728 STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
3729 STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
3730 STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
3731 STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
3732 STDMETHOD(GetAmbient)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
3733 STDMETHOD(SetAmbient)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
3734};
3735#undef INTERFACE
3736
3737#if !defined(__cplusplus) || defined(CINTERFACE)
3738/*** IUnknown methods ***/
3739#define IDirect3DRMMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3740#define IDirect3DRMMaterial2_AddRef(p) (p)->lpVtbl->AddRef(p)
3741#define IDirect3DRMMaterial2_Release(p) (p)->lpVtbl->Release(p)
3742/*** IDirect3DRMObject methods ***/
3743#define IDirect3DRMMaterial2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3744#define IDirect3DRMMaterial2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3745#define IDirect3DRMMaterial2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3746#define IDirect3DRMMaterial2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3747#define IDirect3DRMMaterial2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3748#define IDirect3DRMMaterial2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3749#define IDirect3DRMMaterial2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3750#define IDirect3DRMMaterial2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3751/*** IDirect3DRMMaterial2 methods ***/
3752#define IDirect3DRMMaterial2_SetPower(p,a) (p)->lpVtbl->SetPower(p,a)
3753#define IDirect3DRMMaterial2_SetSpecular(p,a,b,c) (p)->lpVtbl->SetSpecular(p,a,b,c)
3754#define IDirect3DRMMaterial2_SetEmissive(p,a,b,c) (p)->lpVtbl->SetEmissive(p,a,b,c)
3755#define IDirect3DRMMaterial2_GetPower(p) (p)->lpVtbl->GetPower(p)
3756#define IDirect3DRMMaterial2_GetSpecular(p,a,b,c) (p)->lpVtbl->GetSpecular(p,a,b,c)
3757#define IDirect3DRMMaterial2_GetEmissive(p,a,b,c) (p)->lpVtbl->GetEmissive(p,a,b,c)
3758#define IDirect3DRMMaterial2_SetAmbient(p,a,b,c) (p)->lpVtbl->SetAmbient(p,a,b,c)
3759#define IDirect3DRMMaterial2_GetAmbient(p,a,b,c) (p)->lpVtbl->GetAmbient(p,a,b,c)
3760#else
3761/*** IUnknown methods ***/
3762#define IDirect3DRMMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3763#define IDirect3DRMMaterial2_AddRef(p) (p)->AddRef()
3764#define IDirect3DRMMaterial2_Release(p) (p)->Release()
3765/*** IDirect3DRMObject methods ***/
3766#define IDirect3DRMMaterial2_Clone(p,a,b,c) (p)->Clone(a,b,c)
3767#define IDirect3DRMMaterial2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3768#define IDirect3DRMMaterial2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3769#define IDirect3DRMMaterial2_SetAppData(p,a) (p)->SetAppData(a)
3770#define IDirect3DRMMaterial2_GetAppData(p) (p)->GetAppData()
3771#define IDirect3DRMMaterial2_SetName(p,a) (p)->SetName(a)
3772#define IDirect3DRMMaterial2_GetName(p,a,b) (p)->GetName(a,b)
3773#define IDirect3DRMMaterial2_GetClassName(p,a,b) (p)->GetClassName(a,b)
3774/*** IDirect3DRMMaterial2 methods ***/
3775#define IDirect3DRMMaterial2_SetPower(p,a) (p)->SetPower(a)
3776#define IDirect3DRMMaterial2_SetSpecular(p,a,b,c) (p)->SetSpecular(a,b,c)
3777#define IDirect3DRMMaterial2_SetEmissive(p,a,b,c) (p)->SetEmissive(a,b,c)
3778#define IDirect3DRMMaterial2_GetPower(p) (p)->GetPower()
3779#define IDirect3DRMMaterial2_GetSpecular(p,a,b,c) (p)->GetSpecular(a,b,c)
3780#define IDirect3DRMMaterial2_GetEmissive(p,a,b,c) (p)->GetEmissive(a,b,c)
3781#define IDirect3DRMMaterial2_SetAmbient(p,a,b,c) (p)->SetAmbient(a,b,c)
3782#define IDirect3DRMMaterial2_GetAmbient(p,a,b,c) (p)->GetAmbient(a,b,c)
3783#endif
3784
3785/*****************************************************************************
3786 * IDirect3DRMAnimation interface
3787 */
3788#define INTERFACE IDirect3DRMAnimation
3789DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
3790{
3791 /*** IUnknown methods ***/
3792 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3793 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3794 STDMETHOD_(ULONG,Release)(THIS) PURE;
3795 /*** IDirect3DRMObject methods ***/
3796 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3797 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3798 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3799 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3800 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3801 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3802 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3803 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3804 /*** IDirect3DRMAnimation methods ***/
3805 STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
3806 STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
3807 STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3808 STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3809 STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
3810 STDMETHOD(SetFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
3811 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
3812 STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
3813};
3814#undef INTERFACE
3815
3816#if !defined(__cplusplus) || defined(CINTERFACE)
3817/*** IUnknown methods ***/
3818#define IDirect3DRMAnimation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3819#define IDirect3DRMAnimation_AddRef(p) (p)->lpVtbl->AddRef(p)
3820#define IDirect3DRMAnimation_Release(p) (p)->lpVtbl->Release(p)
3821/*** IDirect3DRMObject methods ***/
3822#define IDirect3DRMAnimation_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3823#define IDirect3DRMAnimation_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3824#define IDirect3DRMAnimation_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3825#define IDirect3DRMAnimation_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3826#define IDirect3DRMAnimation_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3827#define IDirect3DRMAnimation_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3828#define IDirect3DRMAnimation_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3829#define IDirect3DRMAnimation_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3830/*** IDirect3DRMAnimation methods ***/
3831#define IDirect3DRMAnimation_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
3832#define IDirect3DRMAnimation_AddRotateKey(p,a,b) (p)->lpVtbl->AddRotateKey(p,a,b)
3833#define IDirect3DRMAnimation_AddPositionKey(p,a,b,c,d) (p)->lpVtbl->AddPositionKey(p,a,b,c,d)
3834#define IDirect3DRMAnimation_AddScaleKey(p,a,b,c,d) (p)->lpVtbl->AddScaleKey(p,a,b,c,d)
3835#define IDirect3DRMAnimation_DeleteKey(p,a) (p)->lpVtbl->DeleteKey(p,a)
3836#define IDirect3DRMAnimation_SetFrame(p,a) (p)->lpVtbl->SetFrame(p,a)
3837#define IDirect3DRMAnimation_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
3838#define IDirect3DRMAnimation_GetOptions(p) (p)->lpVtbl->GetOptions(p)
3839#else
3840/*** IUnknown methods ***/
3841#define IDirect3DRMAnimation_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3842#define IDirect3DRMAnimation_AddRef(p) (p)->AddRef()
3843#define IDirect3DRMAnimation_Release(p) (p)->Release()
3844/*** IDirect3DRMObject methods ***/
3845#define IDirect3DRMAnimation_Clone(p,a,b,c) (p)->Clone(a,b,c)
3846#define IDirect3DRMAnimation_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3847#define IDirect3DRMAnimation_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3848#define IDirect3DRMAnimation_SetAppData(p,a) (p)->SetAppData(a)
3849#define IDirect3DRMAnimation_GetAppData(p) (p)->GetAppData()
3850#define IDirect3DRMAnimation_SetName(p,a) (p)->SetName(a)
3851#define IDirect3DRMAnimation_GetName(p,a,b) (p)->GetName(a,b)
3852#define IDirect3DRMAnimation_GetClassName(p,a,b) (p)->GetClassName(a,b)
3853/*** IDirect3DRMAnimation methods ***/
3854#define IDirect3DRMAnimation_SetOptions(p,a) (p)->SetOptions(a)
3855#define IDirect3DRMAnimation_AddRotateKey(p,a,b) (p)->AddRotateKey(a,b)
3856#define IDirect3DRMAnimation_AddPositionKey(p,a,b,c,d) (p)->AddPositionKey(a,b,c,d)
3857#define IDirect3DRMAnimation_AddScaleKey(p,a,b,c,d) (p)->AddScaleKey(a,b,c,d)
3858#define IDirect3DRMAnimation_DeleteKey(p,a) (p)->DeleteKey(a)
3859#define IDirect3DRMAnimation_SetFrame(p,a) (p)->SetFrame(a)
3860#define IDirect3DRMAnimation_SetTime(p,a) (p)->SetTime(a)
3861#define IDirect3DRMAnimation_GetOptions(p) (p)->GetOptions()
3862#endif
3863
3864/*****************************************************************************
3865 * IDirect3DRMAnimation2 interface
3866 */
3867#define INTERFACE IDirect3DRMAnimation2
3868DECLARE_INTERFACE_(IDirect3DRMAnimation2, IDirect3DRMObject)
3869{
3870 /*** IUnknown methods ***/
3871 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3872 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3873 STDMETHOD_(ULONG,Release)(THIS) PURE;
3874 /*** IDirect3DRMObject methods ***/
3875 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3876 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3877 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3878 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3879 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3880 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3881 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3882 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3883 /*** IDirect3DRMAnimation2 methods ***/
3884 STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
3885 STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
3886 STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3887 STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3888 STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
3889 STDMETHOD(SetFrame)(THIS_ IDirect3DRMFrame3 *frame) PURE;
3890 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
3891 STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
3892 STDMETHOD(GetFrame)(THIS_ IDirect3DRMFrame3 **frame) PURE;
3893 STDMETHOD(DeleteKeyByID)(THIS_ DWORD dwID) PURE;
3894 STDMETHOD(AddKey)(THIS_ D3DRMANIMATIONKEY *key) PURE;
3895 STDMETHOD(ModifyKey)(THIS_ D3DRMANIMATIONKEY *key) PURE;
3896 STDMETHOD(GetKeys)(THIS_ D3DVALUE time_min, D3DVALUE time_max, DWORD *key_count, D3DRMANIMATIONKEY *keys);
3897};
3898#undef INTERFACE
3899
3900#if !defined(__cplusplus) || defined(CINTERFACE)
3901/*** IUnknown methods ***/
3902#define IDirect3DRMAnimation2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3903#define IDirect3DRMAnimation2_AddRef(p) (p)->lpVtbl->AddRef(p)
3904#define IDirect3DRMAnimation2_Release(p) (p)->lpVtbl->Release(p)
3905/*** IDirect3DRMObject methods ***/
3906#define IDirect3DRMAnimation2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3907#define IDirect3DRMAnimation2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3908#define IDirect3DRMAnimation2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3909#define IDirect3DRMAnimation2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3910#define IDirect3DRMAnimation2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3911#define IDirect3DRMAnimation2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3912#define IDirect3DRMAnimation2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3913#define IDirect3DRMAnimation2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
3914/*** IDirect3DRMAnimation2 methods ***/
3915#define IDirect3DRMAnimation2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
3916#define IDirect3DRMAnimation2_AddRotateKey(p,a,b) (p)->lpVtbl->AddRotateKey(p,a,b)
3917#define IDirect3DRMAnimation2_AddPositionKey(p,a,b,c,d) (p)->lpVtbl->AddPositionKey(p,a,b,c,d)
3918#define IDirect3DRMAnimation2_AddScaleKey(p,a,b,c,d) (p)->lpVtbl->AddScaleKey(p,a,b,c,d)
3919#define IDirect3DRMAnimation2_DeleteKey(p,a) (p)->lpVtbl->DeleteKey(p,a)
3920#define IDirect3DRMAnimation2_SetFrame(p,a) (p)->lpVtbl->SetFrame(p,a)
3921#define IDirect3DRMAnimation2_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
3922#define IDirect3DRMAnimation2_GetOptions(p) (p)->lpVtbl->GetOptions(p)
3923#define IDirect3DRMAnimation2_GetFrame(p,a) (p)->lpVtbl->GetFrame(p,a)
3924#define IDirect3DRMAnimation2_DeleteKeyByID(p,a) (p)->lpVtbl->DeleteKeyByID(p,a)
3925#define IDirect3DRMAnimation2_AddKey(p,a) (p)->lpVtbl->AddKey(p,a)
3926#define IDirect3DRMAnimation2_ModifyKey(p,a) (p)->lpVtbl->ModifyKey(p,a)
3927#define IDirect3DRMAnimation2_GetKeys(p,a,b,c,d) (p)->lpVtbl->GetKeys(p,a,b,c,d)
3928#else
3929/*** IUnknown methods ***/
3930#define IDirect3DRMAnimation2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
3931#define IDirect3DRMAnimation2_AddRef(p) (p)->AddRef()
3932#define IDirect3DRMAnimation2_Release(p) (p)->Release()
3933/*** IDirect3DRMObject methods ***/
3934#define IDirect3DRMAnimation2_Clone(p,a,b,c) (p)->Clone(a,b,c)
3935#define IDirect3DRMAnimation2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
3936#define IDirect3DRMAnimation2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
3937#define IDirect3DRMAnimation2_SetAppData(p,a) (p)->SetAppData(a)
3938#define IDirect3DRMAnimation2_GetAppData(p) (p)->GetAppData()
3939#define IDirect3DRMAnimation2_SetName(p,a) (p)->SetName(a)
3940#define IDirect3DRMAnimation2_GetName(p,a,b) (p)->GetName(a,b)
3941#define IDirect3DRMAnimation2_GetClassName(p,a,b) (p)->GetClassName(a,b)
3942/*** IDirect3DRMAnimation2 methods ***/
3943#define IDirect3DRMAnimation2_SetOptions(p,a) (p)->SetOptions(a)
3944#define IDirect3DRMAnimation2_AddRotateKey(p,a,b) (p)->AddRotateKey(a,b)
3945#define IDirect3DRMAnimation2_AddPositionKey(p,a,b,c,d) (p)->AddPositionKey(a,b,c,d)
3946#define IDirect3DRMAnimation2_AddScaleKey(p,a,b,c,d) (p)->AddScaleKey(a,b,c,d)
3947#define IDirect3DRMAnimation2_DeleteKey(p,a) (p)->DeleteKey(a)
3948#define IDirect3DRMAnimation2_SetFrame(p,a) (p)->SetFrame(a)
3949#define IDirect3DRMAnimation2_SetTime(p,a) (p)->SetTime(a)
3950#define IDirect3DRMAnimation2_GetOptions(p) (p)->GetOptions()
3951#define IDirect3DRMAnimation2_GetFrame(p,a) (p)->GetFrame(a)
3952#define IDirect3DRMAnimation2_DeleteKeyByID(p,a) (p)->DeleteKeyByID(a)
3953#define IDirect3DRMAnimation2_AddKey(p,a) (p)->AddKey(a)
3954#define IDirect3DRMAnimation2_ModifyKey(p,a) (p)->ModifyKey(a)
3955#define IDirect3DRMAnimation2_GetKeys(p,a,b,c,d) (p)->GetKeys(a,b,c,d)
3956#endif
3957
3958/*****************************************************************************
3959 * IDirect3DRMAnimationSet interface
3960 */
3961#define INTERFACE IDirect3DRMAnimationSet
3962DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
3963{
3964 /*** IUnknown methods ***/
3965 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
3966 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3967 STDMETHOD_(ULONG,Release)(THIS) PURE;
3968 /*** IDirect3DRMObject methods ***/
3969 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
3970 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3971 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
3972 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
3973 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
3974 STDMETHOD(SetName)(THIS_ const char *name) PURE;
3975 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
3976 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
3977 /*** IDirect3DRMAnimationSet methods ***/
3978 STDMETHOD(AddAnimation)(THIS_ IDirect3DRMAnimation *animation) PURE;
3979 STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
3980 D3DRMLOADTEXTURECALLBACK cb, void *ctx, IDirect3DRMFrame *parent)PURE;
3981 STDMETHOD(DeleteAnimation)(THIS_ IDirect3DRMAnimation *animation) PURE;
3982 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
3983};
3984#undef INTERFACE
3985
3986#if !defined(__cplusplus) || defined(CINTERFACE)
3987/*** IUnknown methods ***/
3988#define IDirect3DRMAnimationSet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3989#define IDirect3DRMAnimationSet_AddRef(p) (p)->lpVtbl->AddRef(p)
3990#define IDirect3DRMAnimationSet_Release(p) (p)->lpVtbl->Release(p)
3991/*** IDirect3DRMObject methods ***/
3992#define IDirect3DRMAnimationSet_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
3993#define IDirect3DRMAnimationSet_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
3994#define IDirect3DRMAnimationSet_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
3995#define IDirect3DRMAnimationSet_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
3996#define IDirect3DRMAnimationSet_GetAppData(p) (p)->lpVtbl->GetAppData(p)
3997#define IDirect3DRMAnimationSet_SetName(p,a) (p)->lpVtbl->SetName(p,a)
3998#define IDirect3DRMAnimationSet_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
3999#define IDirect3DRMAnimationSet_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
4000/*** IDirect3DRMAnimationSet methods ***/
4001#define IDirect3DRMAnimationSet_AddAnimation(p,a) (p)->lpVtbl->AddAnimation(p,a)
4002#define IDirect3DRMAnimationSet_Load(p,a,b,c,d,e,f) (p)->lpVtbl->Load(p,a,b,c,d,e,f)
4003#define IDirect3DRMAnimationSet_DeleteAnimation(p,a) (p)->lpVtbl->DeleteAnimation(p,a)
4004#define IDirect3DRMAnimationSet_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
4005#else
4006/*** IUnknown methods ***/
4007#define IDirect3DRMAnimationSet_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4008#define IDirect3DRMAnimationSet_AddRef(p) (p)->AddRef()
4009#define IDirect3DRMAnimationSet_Release(p) (p)->Release()
4010/*** IDirect3DRMObject methods ***/
4011#define IDirect3DRMAnimationSet_Clone(p,a,b,c) (p)->Clone(a,b,c)
4012#define IDirect3DRMAnimationSet_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
4013#define IDirect3DRMAnimationSet_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
4014#define IDirect3DRMAnimationSet_SetAppData(p,a) (p)->SetAppData(a)
4015#define IDirect3DRMAnimationSet_GetAppData(p) (p)->GetAppData()
4016#define IDirect3DRMAnimationSet_SetName(p,a) (p)->SetName(a)
4017#define IDirect3DRMAnimationSet_GetName(p,a,b) (p)->GetName(a,b)
4018#define IDirect3DRMAnimationSet_GetClassName(p,a,b) (p)->GetClassName(a,b)
4019/*** IDirect3DRMAnimationSet methods ***/
4020#define IDirect3DRMAnimationSet_AddAnimation(p,a) (p)->AddAnimation(a)
4021#define IDirect3DRMAnimationSet_Load(p,a,b,c,d,e,f) (p)->Load(a,b,c,d,e,f)
4022#define IDirect3DRMAnimationSet_DeleteAnimation(p,a) (p)->DeleteAnimation(a)
4023#define IDirect3DRMAnimationSet_SetTime(p,a) (p)->SetTime(a)
4024#endif
4025
4026/*****************************************************************************
4027 * IDirect3DRMAnimationSet2 interface
4028 */
4029#define INTERFACE IDirect3DRMAnimationSet2
4030DECLARE_INTERFACE_(IDirect3DRMAnimationSet2, IDirect3DRMObject)
4031{
4032 /*** IUnknown methods ***/
4033 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4034 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4035 STDMETHOD_(ULONG,Release)(THIS) PURE;
4036 /*** IDirect3DRMObject methods ***/
4037 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
4038 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4039 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4040 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
4041 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
4042 STDMETHOD(SetName)(THIS_ const char *name) PURE;
4043 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
4044 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
4045 /*** IDirect3DRMAnimationSet2 methods ***/
4046 STDMETHOD(AddAnimation)(THIS_ IDirect3DRMAnimation2 *animation) PURE;
4047 STDMETHOD(Load)(THIS_ void *source, void *object_id, D3DRMLOADOPTIONS flags,
4048 D3DRMLOADTEXTURE3CALLBACK cb, void *ctx, IDirect3DRMFrame3 *parent_frame)PURE;
4049 STDMETHOD(DeleteAnimation)(THIS_ IDirect3DRMAnimation2 *animation) PURE;
4050 STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
4051 STDMETHOD(GetAnimations)(THIS_ struct IDirect3DRMAnimationArray **array) PURE;
4052};
4053#undef INTERFACE
4054
4055#if !defined(__cplusplus) || defined(CINTERFACE)
4056/*** IUnknown methods ***/
4057#define IDirect3DRMAnimationSet2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4058#define IDirect3DRMAnimationSet2_AddRef(p) (p)->lpVtbl->AddRef(p)
4059#define IDirect3DRMAnimationSet2_Release(p) (p)->lpVtbl->Release(p)
4060/*** IDirect3DRMObject methods ***/
4061#define IDirect3DRMAnimationSet2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
4062#define IDirect3DRMAnimationSet2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
4063#define IDirect3DRMAnimationSet2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
4064#define IDirect3DRMAnimationSet2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
4065#define IDirect3DRMAnimationSet2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
4066#define IDirect3DRMAnimationSet2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4067#define IDirect3DRMAnimationSet2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
4068#define IDirect3DRMAnimationSet2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
4069/*** IDirect3DRMAnimationSet2 methods ***/
4070#define IDirect3DRMAnimationSet2_AddAnimation(p,a) (p)->lpVtbl->AddAnimation(p,a)
4071#define IDirect3DRMAnimationSet2_Load(p,a,b,c,d,e,f) (p)->lpVtbl->Load(p,a,b,c,d,e,f)
4072#define IDirect3DRMAnimationSet2_DeleteAnimation(p,a) (p)->lpVtbl->DeleteAnimation(p,a)
4073#define IDirect3DRMAnimationSet2_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
4074#define IDirect3DRMAnimationSet2_GetAnimations(p,a) (p)->lpVtbl->GetAnimations(p,a)
4075#else
4076/*** IUnknown methods ***/
4077#define IDirect3DRMAnimationSet2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4078#define IDirect3DRMAnimationSet2_AddRef(p) (p)->AddRef()
4079#define IDirect3DRMAnimationSet2_Release(p) (p)->Release()
4080/*** IDirect3DRMObject methods ***/
4081#define IDirect3DRMAnimationSet2_Clone(p,a,b,c) (p)->Clone(a,b,c)
4082#define IDirect3DRMAnimationSet2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
4083#define IDirect3DRMAnimationSet2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
4084#define IDirect3DRMAnimationSet2_SetAppData(p,a) (p)->SetAppData(a)
4085#define IDirect3DRMAnimationSet2_GetAppData(p) (p)->GetAppData()
4086#define IDirect3DRMAnimationSet2_SetName(p,a) (p)->SetName(a)
4087#define IDirect3DRMAnimationSet2_GetName(p,a,b) (p)->GetName(a,b)
4088#define IDirect3DRMAnimationSet2_GetClassName(p,a,b) (p)->GetClassName(a,b)
4089/*** IDirect3DRMAnimationSet2 methods ***/
4090#define IDirect3DRMAnimationSet2_AddAnimation(p,a) (p)->AddAnimation(a)
4091#define IDirect3DRMAnimationSet2_Load(p,a,b,c,d,e,f) (p)->Load(a,b,c,d,e,f)
4092#define IDirect3DRMAnimationSet2_DeleteAnimation(p,a) (p)->DeleteAnimation(a)
4093#define IDirect3DRMAnimationSet2_SetTime(p,a) (p)->SetTime(a)
4094#define IDirect3DRMAnimationSet2_GetAnimations(p,a) (p)->GetAnimations(a)
4095#endif
4096
4097/*****************************************************************************
4098 * IDirect3DRMUserVisual interface
4099 */
4100#define INTERFACE IDirect3DRMUserVisual
4101DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
4102{
4103 /*** IUnknown methods ***/
4104 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4105 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4106 STDMETHOD_(ULONG,Release)(THIS) PURE;
4107 /*** IDirect3DRMObject methods ***/
4108 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
4109 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4110 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4111 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
4112 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
4113 STDMETHOD(SetName)(THIS_ const char *name) PURE;
4114 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
4115 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
4116 /*** IDirect3DRMUserVisual methods ***/
4117 STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
4118};
4119#undef INTERFACE
4120
4121#if !defined(__cplusplus) || defined(CINTERFACE)
4122/*** IUnknown methods ***/
4123#define IDirect3DRMUserVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4124#define IDirect3DRMUserVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
4125#define IDirect3DRMUserVisual_Release(p) (p)->lpVtbl->Release(p)
4126/*** IDirect3DRMObject methods ***/
4127#define IDirect3DRMUserVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
4128#define IDirect3DRMUserVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
4129#define IDirect3DRMUserVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
4130#define IDirect3DRMUserVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
4131#define IDirect3DRMUserVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
4132#define IDirect3DRMUserVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4133#define IDirect3DRMUserVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
4134#define IDirect3DRMUserVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
4135/*** IDirect3DRMUserVisual methods ***/
4136#define IDirect3DRMUserVisual_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
4137#else
4138/*** IUnknown methods ***/
4139#define IDirect3DRMUserVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4140#define IDirect3DRMUserVisual_AddRef(p) (p)->AddRef()
4141#define IDirect3DRMUserVisual_Release(p) (p)->Release()
4142/*** IDirect3DRMObject methods ***/
4143#define IDirect3DRMUserVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
4144#define IDirect3DRMUserVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
4145#define IDirect3DRMUserVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
4146#define IDirect3DRMUserVisual_SetAppData(p,a) (p)->SetAppData(a)
4147#define IDirect3DRMUserVisual_GetAppData(p) (p)->GetAppData()
4148#define IDirect3DRMUserVisual_SetName(p,a) (p)->SetName(a)
4149#define IDirect3DRMUserVisual_GetName(p,a,b) (p)->GetName(a,b)
4150#define IDirect3DRMUserVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
4151/*** IDirect3DRMUserVisual methods ***/
4152#define IDirect3DRMUserVisual_Init(p,a,b) (p)->Init(a,b)
4153#endif
4154
4155/*****************************************************************************
4156 * IDirect3DRMArray interface
4157 */
4158#define INTERFACE IDirect3DRMArray
4159DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
4160{
4161 /*** IUnknown methods ***/
4162 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4163 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4164 STDMETHOD_(ULONG,Release)(THIS) PURE;
4165 /*** IDirect3DRMArray methods ***/
4166 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4167};
4168#undef INTERFACE
4169
4170#if !defined(__cplusplus) || defined(CINTERFACE)
4171/*** IUnknown methods ***/
4172#define IDirect3DRMArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4173#define IDirect3DRMArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4174#define IDirect3DRMArray_Release(p) (p)->lpVtbl->Release(p)
4175/*** IDirect3DRMArray methods ***/
4176#define IDirect3DRMArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4177#else
4178/*** IUnknown methods ***/
4179#define IDirect3DRMArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4180#define IDirect3DRMArray_AddRef(p) (p)->AddRef()
4181#define IDirect3DRMArray_Release(p) (p)->Release()
4182/*** IDirect3DRMArray methods ***/
4183#define IDirect3DRMArray_GetSize(p) (p)->GetSize()
4184#endif
4185
4186/*****************************************************************************
4187 * IDirect3DRMObjectArray interface
4188 */
4189#define INTERFACE IDirect3DRMObjectArray
4190DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
4191{
4192 /*** IUnknown methods ***/
4193 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4194 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4195 STDMETHOD_(ULONG,Release)(THIS) PURE;
4196 /*** IDirect3DRMArray methods ***/
4197 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4198 /*** IDirect3DRMObjectArray methods ***/
4199 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMObject **element) PURE;
4200};
4201#undef INTERFACE
4202
4203#if !defined(__cplusplus) || defined(CINTERFACE)
4204/*** IUnknown methods ***/
4205#define IDirect3DRMObjectArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4206#define IDirect3DRMObjectArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4207#define IDirect3DRMObjectArray_Release(p) (p)->lpVtbl->Release(p)
4208/*** IDirect3DRMArray methods ***/
4209#define IDirect3DRMObjectArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4210/*** IDirect3DRMObjectArray methods ***/
4211#define IDirect3DRMObjectArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4212#else
4213/*** IUnknown methods ***/
4214#define IDirect3DRMObjectArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4215#define IDirect3DRMObjectArray_AddRef(p) (p)->AddRef()
4216#define IDirect3DRMObjectArray_Release(p) (p)->Release()
4217/*** IDirect3DRMArray methods ***/
4218#define IDirect3DRMObjectArray_GetSize(p) (p)->GetSize()
4219/*** IDirect3DRMObjectArray methods ***/
4220#define IDirect3DRMObjectArray_GetElement(p,a,b) (p)->GetElement(a,b)
4221#endif
4222
4223/*****************************************************************************
4224 * IDirect3DRMDeviceArray interface
4225 */
4226#define INTERFACE IDirect3DRMDeviceArray
4227DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
4228{
4229 /*** IUnknown methods ***/
4230 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4231 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4232 STDMETHOD_(ULONG,Release)(THIS) PURE;
4233 /*** IDirect3DRMArray methods ***/
4234 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4235 /*** IDirect3DRMDeviceArray methods ***/
4236 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMDevice **element) PURE;
4237};
4238#undef INTERFACE
4239
4240#if !defined(__cplusplus) || defined(CINTERFACE)
4241/*** IUnknown methods ***/
4242#define IDirect3DRMDeviceArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4243#define IDirect3DRMDeviceArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4244#define IDirect3DRMDeviceArray_Release(p) (p)->lpVtbl->Release(p)
4245/*** IDirect3DRMArray methods ***/
4246#define IDirect3DRMDeviceArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4247/*** IDirect3DRMDeviceArray methods ***/
4248#define IDirect3DRMDeviceArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4249#else
4250/*** IUnknown methods ***/
4251#define IDirect3DRMDeviceArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4252#define IDirect3DRMDeviceArray_AddRef(p) (p)->AddRef()
4253#define IDirect3DRMDeviceArray_Release(p) (p)->Release()
4254/*** IDirect3DRMArray methods ***/
4255#define IDirect3DRMDeviceArray_GetSize(p) (p)->GetSize()
4256/*** IDirect3DRMDeviceArray methods ***/
4257#define IDirect3DRMDeviceArray_GetElement(p,a,b) (p)->GetElement(a,b)
4258#endif
4259
4260/*****************************************************************************
4261 * IDirect3DRMFrameArray interface
4262 */
4263#define INTERFACE IDirect3DRMFrameArray
4264DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
4265{
4266 /*** IUnknown methods ***/
4267 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4268 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4269 STDMETHOD_(ULONG,Release)(THIS) PURE;
4270 /*** IDirect3DRMArray methods ***/
4271 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4272 /*** IDirect3DRMFrameArray methods ***/
4273 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMFrame **element) PURE;
4274};
4275#undef INTERFACE
4276
4277#if !defined(__cplusplus) || defined(CINTERFACE)
4278/*** IUnknown methods ***/
4279#define IDirect3DRMFrameArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4280#define IDirect3DRMFrameArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4281#define IDirect3DRMFrameArray_Release(p) (p)->lpVtbl->Release(p)
4282/*** IDirect3DRMArray methods ***/
4283#define IDirect3DRMFrameArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4284/*** IDirect3DRMFrameArray methods ***/
4285#define IDirect3DRMFrameArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4286#else
4287/*** IUnknown methods ***/
4288#define IDirect3DRMFrameArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4289#define IDirect3DRMFrameArray_AddRef(p) (p)->AddRef()
4290#define IDirect3DRMFrameArray_Release(p) (p)->Release()
4291/*** IDirect3DRMArray methods ***/
4292#define IDirect3DRMFrameArray_GetSize(p) (p)->GetSize()
4293/*** IDirect3DRMFrameArray methods ***/
4294#define IDirect3DRMFrameArray_GetElement(p,a,b) (p)->GetElement(a,b)
4295#endif
4296
4297/*****************************************************************************
4298 * IDirect3DRMViewportArray interface
4299 */
4300#define INTERFACE IDirect3DRMViewportArray
4301DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
4302{
4303 /*** IUnknown methods ***/
4304 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4305 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4306 STDMETHOD_(ULONG,Release)(THIS) PURE;
4307 /*** IDirect3DRMArray methods ***/
4308 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4309 /*** IDirect3DRMViewportArray methods ***/
4310 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMViewport **element) PURE;
4311};
4312#undef INTERFACE
4313
4314#if !defined(__cplusplus) || defined(CINTERFACE)
4315/*** IUnknown methods ***/
4316#define IDirect3DRMViewportArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4317#define IDirect3DRMViewportArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4318#define IDirect3DRMViewportArray_Release(p) (p)->lpVtbl->Release(p)
4319/*** IDirect3DRMArray methods ***/
4320#define IDirect3DRMViewportArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4321/*** IDirect3DRMViewportArray methods ***/
4322#define IDirect3DRMViewportArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4323#else
4324/*** IUnknown methods ***/
4325#define IDirect3DRMViewportArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4326#define IDirect3DRMViewportArray_AddRef(p) (p)->AddRef()
4327#define IDirect3DRMViewportArray_Release(p) (p)->Release()
4328/*** IDirect3DRMArray methods ***/
4329#define IDirect3DRMViewportArray_GetSize(p) (p)->GetSize()
4330/*** IDirect3DRMViewportArray methods ***/
4331#define IDirect3DRMviewportArray_GetElement(p,a,b) (p)->GetElement(a,b)
4332#endif
4333
4334/*****************************************************************************
4335 * IDirect3DRMVisualArray interface
4336 */
4337#define INTERFACE IDirect3DRMVisualArray
4338DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
4339{
4340 /*** IUnknown methods ***/
4341 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4342 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4343 STDMETHOD_(ULONG,Release)(THIS) PURE;
4344 /*** IDirect3DRMArray methods ***/
4345 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4346 /*** IDirect3DRMVisualArray methods ***/
4347 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMVisual **element) PURE;
4348};
4349#undef INTERFACE
4350
4351#if !defined(__cplusplus) || defined(CINTERFACE)
4352/*** IUnknown methods ***/
4353#define IDirect3DRMVisualArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4354#define IDirect3DRMVisualArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4355#define IDirect3DRMVisualArray_Release(p) (p)->lpVtbl->Release(p)
4356/*** IDirect3DRMArray methods ***/
4357#define IDirect3DRMVisualArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4358/*** IDirect3DRMVisualArray methods ***/
4359#define IDirect3DRMVisualArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4360#else
4361/*** IUnknown methods ***/
4362#define IDirect3DRMVisualArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4363#define IDirect3DRMVisualArray_AddRef(p) (p)->AddRef()
4364#define IDirect3DRMVisualArray_Release(p) (p)->Release()
4365/*** IDirect3DRMArray methods ***/
4366#define IDirect3DRMVisualArray_GetSize(p) (p)->GetSize()
4367/*** IDirect3DRMVisualArray methods ***/
4368#define IDirect3DRMVisualArray_GetElement(p,a,b) (p)->GetElement(a,b)
4369#endif
4370
4371/*****************************************************************************
4372 * IDirect3DRMAnimationArray interface
4373 */
4374#define INTERFACE IDirect3DRMAnimationArray
4375DECLARE_INTERFACE_(IDirect3DRMAnimationArray, IDirect3DRMArray)
4376{
4377 /*** IUnknown methods ***/
4378 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4379 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4380 STDMETHOD_(ULONG,Release)(THIS) PURE;
4381 /*** IDirect3DRMArray methods ***/
4382 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4383 /*** IDirect3DRMAnimationArray methods ***/
4384 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMAnimation2 **element) PURE;
4385};
4386#undef INTERFACE
4387
4388#if !defined(__cplusplus) || defined(CINTERFACE)
4389/*** IUnknown methods ***/
4390#define IDirect3DRMAnimationArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4391#define IDirect3DRMAnimationArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4392#define IDirect3DRMAnimationArray_Release(p) (p)->lpVtbl->Release(p)
4393/*** IDirect3DRMArray methods ***/
4394#define IDirect3DRMAnimationArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4395/*** IDirect3DRMAnimationArray methods ***/
4396#define IDirect3DRMAnimationArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4397#else
4398/*** IUnknown methods ***/
4399#define IDirect3DRMAnimationArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4400#define IDirect3DRMAnimationArray_AddRef(p) (p)->AddRef()
4401#define IDirect3DRMAnimationArray_Release(p) (p)->Release()
4402/*** IDirect3DRMArray methods ***/
4403#define IDirect3DRMAnimationArray_GetSize(p) (p)->GetSize()
4404/*** IDirect3DRMAnimationArray methods ***/
4405#define IDirect3DRMAnimationArray_GetElement(p,a,b) (p)->GetElement(a,b)
4406#endif
4407
4408/*****************************************************************************
4409 * IDirect3DRMPickedArray interface
4410 */
4411#define INTERFACE IDirect3DRMPickedArray
4412DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
4413{
4414 /*** IUnknown methods ***/
4415 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4416 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4417 STDMETHOD_(ULONG,Release)(THIS) PURE;
4418 /*** IDirect3DRMArray methods ***/
4419 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4420 /*** IDirect3DRMPickedArray methods ***/
4421 STDMETHOD(GetPick)(THIS_ DWORD index, IDirect3DRMVisual **visual,
4422 IDirect3DRMFrameArray **frame_array, D3DRMPICKDESC *pick_desc) PURE;
4423};
4424#undef INTERFACE
4425
4426#if !defined(__cplusplus) || defined(CINTERFACE)
4427/*** IUnknown methods ***/
4428#define IDirect3DRMPickedArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4429#define IDirect3DRMPickedArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4430#define IDirect3DRMPickedArray_Release(p) (p)->lpVtbl->Release(p)
4431/*** IDirect3DRMArray methods ***/
4432#define IDirect3DRMPickedArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4433/*** IDirect3DRMPickedArray methods ***/
4434#define IDirect3DRMPickedArray_GetPick(p,a,b,c,d) (p)->lpVtbl->GetPick(p,a,b,c,d)
4435#else
4436/*** IUnknown methods ***/
4437#define IDirect3DRMPickedArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4438#define IDirect3DRMPickedArray_AddRef(p) (p)->AddRef()
4439#define IDirect3DRMPickedArray_Release(p) (p)->Release()
4440/*** IDirect3DRMArray methods ***/
4441#define IDirect3DRMPickedArray_GetSize(p) (p)->GetSize()
4442/*** IDirect3DRMPickedArray methods ***/
4443#define IDirect3DRMPickedArray_GetPick(p,a,b,c,d) (p)->GetPick(a,b,c,d)
4444#endif
4445
4446/*****************************************************************************
4447 * IDirect3DRMLightArray interface
4448 */
4449#define INTERFACE IDirect3DRMLightArray
4450DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
4451{
4452 /*** IUnknown methods ***/
4453 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4454 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4455 STDMETHOD_(ULONG,Release)(THIS) PURE;
4456 /*** IDirect3DRMArray methods ***/
4457 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4458 /*** IDirect3DRMLightArray methods ***/
4459 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMLight **element) PURE;
4460};
4461#undef INTERFACE
4462
4463#if !defined(__cplusplus) || defined(CINTERFACE)
4464/*** IUnknown methods ***/
4465#define IDirect3DRMLightArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4466#define IDirect3DRMLightArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4467#define IDirect3DRMLightArray_Release(p) (p)->lpVtbl->Release(p)
4468/*** IDirect3DRMArray methods ***/
4469#define IDirect3DRMLightArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4470/*** IDirect3DRMLightArray methods ***/
4471#define IDirect3DRMLightArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4472#else
4473/*** IUnknown methods ***/
4474#define IDirect3DRMLightArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4475#define IDirect3DRMLightArray_AddRef(p) (p)->AddRef()
4476#define IDirect3DRMLightArray_Release(p) (p)->Release()
4477/*** IDirect3DRMArray methods ***/
4478#define IDirect3DRMLightArray_GetSize(p) (p)->GetSize()
4479/*** IDirect3DRMLightArray methods ***/
4480#define IDirect3DRMLightArray_GetElement(p,a,b) (p)->GetElement(a,b)
4481#endif
4482
4483/*****************************************************************************
4484 * IDirect3DRMFaceArray interface
4485 */
4486#define INTERFACE IDirect3DRMFaceArray
4487DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
4488{
4489 /*** IUnknown methods ***/
4490 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4491 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4492 STDMETHOD_(ULONG,Release)(THIS) PURE;
4493 /*** IDirect3DRMArray methods ***/
4494 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4495 /*** IDirect3DRMFaceArray methods ***/
4496 STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMFace **element) PURE;
4497};
4498#undef INTERFACE
4499
4500#if !defined(__cplusplus) || defined(CINTERFACE)
4501/*** IUnknown methods ***/
4502#define IDirect3DRMFaceArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4503#define IDirect3DRMFaceArray_AddRef(p) (p)->lpVtbl->AddRef(p)
4504#define IDirect3DRMFaceArray_Release(p) (p)->lpVtbl->Release(p)
4505/*** IDirect3DRMArray methods ***/
4506#define IDirect3DRMFaceArray_GetSize(p) (p)->lpVtbl->GetSize(p)
4507/*** IDirect3DRMFaceArray methods ***/
4508#define IDirect3DRMFaceArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
4509#else
4510/*** IUnknown methods ***/
4511#define IDirect3DRMFaceArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4512#define IDirect3DRMFaceArray_AddRef(p) (p)->AddRef()
4513#define IDirect3DRMFaceArray_Release(p) (p)->Release()
4514/*** IDirect3DRMArray methods ***/
4515#define IDirect3DRMFaceArray_GetSize(p) (p)->GetSize()
4516/*** IDirect3DRMFaceArray methods ***/
4517#define IDirect3DRMFaceArray_GetElement(p,a,b) (p)->GetElement(a,b)
4518#endif
4519
4520/*****************************************************************************
4521 * IDirect3DRMPicked2Array interface
4522 */
4523#define INTERFACE IDirect3DRMPicked2Array
4524DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
4525{
4526 /*** IUnknown methods ***/
4527 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4528 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4529 STDMETHOD_(ULONG,Release)(THIS) PURE;
4530 /*** IDirect3DRMArray methods ***/
4531 STDMETHOD_(DWORD, GetSize)(THIS) PURE;
4532 /*** IDirect3DRMPicked2Array methods ***/
4533 STDMETHOD(GetPick)(THIS_ DWORD index, IDirect3DRMVisual **visual,
4534 IDirect3DRMFrameArray **frame_array, D3DRMPICKDESC2 *pick_desc) PURE;
4535};
4536#undef INTERFACE
4537
4538#if !defined(__cplusplus) || defined(CINTERFACE)
4539/*** IUnknown methods ***/
4540#define IDirect3DRMPicked2Array_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4541#define IDirect3DRMPicked2Array_AddRef(p) (p)->lpVtbl->AddRef(p)
4542#define IDirect3DRMPicked2Array_Release(p) (p)->lpVtbl->Release(p)
4543/*** IDirect3DRMArray methods ***/
4544#define IDirect3DRMPicked2Array_GetSize(p) (p)->lpVtbl->GetSize(p)
4545/*** IDirect3DRMPicked2Array methods ***/
4546#define IDirect3DRMPicked2Array_GetPick(p,a,b,c,d) (p)->lpVtbl->GetPick(p,a,b,c,d)
4547#else
4548/*** IUnknown methods ***/
4549#define IDirect3DRMPicked2Array_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4550#define IDirect3DRMPicked2Array_AddRef(p) (p)->AddRef()
4551#define IDirect3DRMPicked2Array_Release(p) (p)->Release()
4552/*** IDirect3DRMArray methods ***/
4553#define IDirect3DRMPicked2Array_GetSize(p) (p)->GetSize()
4554/*** IDirect3DRMPicked2Array methods ***/
4555#define IDirect3DRMPicked2Array_GetPick(p,a,b,c,d) (p)->GetPick(a,b,c,d)
4556#endif
4557
4558/*****************************************************************************
4559 * IDirect3DRMInterpolator interface
4560 */
4561#define INTERFACE IDirect3DRMInterpolator
4562DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
4563{
4564 /*** IUnknown methods ***/
4565 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4566 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4567 STDMETHOD_(ULONG,Release)(THIS) PURE;
4568 /*** IDirect3DRMObject methods ***/
4569 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
4570 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4571 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4572 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
4573 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
4574 STDMETHOD(SetName)(THIS_ const char *name) PURE;
4575 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
4576 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
4577 /*** IDirect3DRMInterpolator methods ***/
4578 STDMETHOD(AttachObject)(THIS_ IDirect3DRMObject *object) PURE;
4579 STDMETHOD(GetAttachedObjects)(THIS_ IDirect3DRMObjectArray **array) PURE;
4580 STDMETHOD(DetachObject)(THIS_ IDirect3DRMObject *object) PURE;
4581 STDMETHOD(SetIndex)(THIS_ D3DVALUE) PURE;
4582 STDMETHOD_(D3DVALUE, GetIndex)(THIS) PURE;
4583 STDMETHOD(Interpolate)(THIS_ D3DVALUE index, IDirect3DRMObject *object, D3DRMINTERPOLATIONOPTIONS flags) PURE;
4584};
4585#undef INTERFACE
4586
4587#if !defined(__cplusplus) || defined(CINTERFACE)
4588/*** IUnknown methods ***/
4589#define IDirect3DRMInterpolator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4590#define IDirect3DRMInterpolator_AddRef(p) (p)->lpVtbl->AddRef(p)
4591#define IDirect3DRMInterpolator_Release(p) (p)->lpVtbl->Release(p)
4592/*** IDirect3DRMObject methods ***/
4593#define IDirect3DRMInterpolator_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
4594#define IDirect3DRMInterpolator_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
4595#define IDirect3DRMInterpolator_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
4596#define IDirect3DRMInterpolator_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
4597#define IDirect3DRMInterpolator_GetAppData(p) (p)->lpVtbl->GetAppData(p)
4598#define IDirect3DRMInterpolator_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4599#define IDirect3DRMInterpolator_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
4600#define IDirect3DRMInterpolator_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
4601/*** IDirect3DRMInterpolator methods ***/
4602#define IDirect3DRMInterpolator_AttachObject(p,a) (p)->lpVtbl->AttachObject(p,a)
4603#define IDirect3DRMInterpolator_GetAttachedObjects(p,a) (p)->lpVtbl->GetAttachedObjects(p,a)
4604#define IDirect3DRMInterpolator_DetachObject(p,a) (p)->lpVtbl->DetachObject(p,a)
4605#define IDirect3DRMInterpolator_SetIndex(p,a) (p)->lpVtbl->SetIndex(p,a)
4606#define IDirect3DRMInterpolator_GetIndex(p) (p)->lpVtbl->GetIndex(p)
4607#define IDirect3DRMInterpolator_Interpolate(p,a,b,c) (p)->lpVtbl->Interpolate(p,a,b,c)
4608#else
4609/*** IUnknown methods ***/
4610#define IDirect3DRMInterpolator_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4611#define IDirect3DRMInterpolator_AddRef(p) (p)->AddRef()
4612#define IDirect3DRMInterpolator_Release(p) (p)->Release()
4613/*** IDirect3DRMObject methods ***/
4614#define IDirect3DRMInterpolator_Clone(p,a,b,c) (p)->Clone(a,b,c)
4615#define IDirect3DRMInterpolator_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
4616#define IDirect3DRMInterpolator_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
4617#define IDirect3DRMInterpolator_SetAppData(p,a) (p)->SetAppData(a)
4618#define IDirect3DRMInterpolator_GetAppData(p) (p)->GetAppData()
4619#define IDirect3DRMInterpolator_SetName(p,a) (p)->SetName(a)
4620#define IDirect3DRMInterpolator_GetName(p,a,b) (p)->GetName(a,b)
4621#define IDirect3DRMInterpolator_GetClassName(p,a,b) (p)->GetClassName(a,b)
4622/*** IDirect3DRMInterpolator methods ***/
4623#define IDirect3DRMInterpolator_AttachObject(p,a) (p)->AttachObject(a)
4624#define IDirect3DRMInterpolator_GetAttachedObjects(p,a) (p)->GetAttachedObjects(a)
4625#define IDirect3DRMInterpolator_DetachObject(p,a) (p)->DetachObject(a)
4626#define IDirect3DRMInterpolator_SetIndex(p,a) (p)->SetIndex(a)
4627#define IDirect3DRMInterpolator_GetIndex(p) (p)->GetIndex()
4628#define IDirect3DRMInterpolator_Interpolate(p,a,b,c) (p)->Interpolate(a,b,c)
4629#endif
4630
4631/*****************************************************************************
4632 * IDirect3DRMClippedVisual interface
4633 */
4634#define INTERFACE IDirect3DRMClippedVisual
4635DECLARE_INTERFACE_(IDirect3DRMClippedVisual, IDirect3DRMVisual)
4636{
4637 /*** IUnknown methods ***/
4638 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
4639 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4640 STDMETHOD_(ULONG,Release)(THIS) PURE;
4641 /*** IDirect3DRMObject methods ***/
4642 STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
4643 STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4644 STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
4645 STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
4646 STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
4647 STDMETHOD(SetName)(THIS_ const char *name) PURE;
4648 STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
4649 STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
4650 /*** IDirect3DRMClippedVisual methods ***/
4651 STDMETHOD(Init) (THIS_ IDirect3DRMVisual *visual) PURE;
4652 STDMETHOD(AddPlane) (THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *point,
4653 D3DVECTOR *normal, DWORD flags, DWORD *id) PURE;
4654 STDMETHOD(DeletePlane)(THIS_ DWORD, DWORD) PURE;
4655 STDMETHOD(GetPlaneIDs)(THIS_ DWORD *count, DWORD *id, DWORD flags) PURE;
4656 STDMETHOD(GetPlane) (THIS_ DWORD id, IDirect3DRMFrame3 *reference, D3DVECTOR *point,
4657 D3DVECTOR *normal, DWORD flags) PURE;
4658 STDMETHOD(SetPlane) (THIS_ DWORD id, IDirect3DRMFrame3 *reference, D3DVECTOR *point,
4659 D3DVECTOR *normal, DWORD flags) PURE;
4660};
4661#undef INTERFACE
4662
4663#if !defined(__cplusplus) || defined(CINTERFACE)
4664/*** IUnknown methods ***/
4665#define IDirect3DRMClippedVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4666#define IDirect3DRMClippedVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
4667#define IDirect3DRMClippedVisual_Release(p) (p)->lpVtbl->Release(p)
4668/*** IDirect3DRMObject methods ***/
4669#define IDirect3DRMClippedVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
4670#define IDirect3DRMClippedVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
4671#define IDirect3DRMClippedVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
4672#define IDirect3DRMClippedVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
4673#define IDirect3DRMClippedVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
4674#define IDirect3DRMClippedVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
4675#define IDirect3DRMClippedVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
4676#define IDirect3DRMClippedVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
4677/*** IDirect3DRMClippedVisual methods ***/
4678#define IDirect3DRMClippedVisual_Init(p,a) (p)->lpVtbl->Init(p,a)
4679#define IDirect3DRMClippedVisual_AddPlane(p,a,b,c,d,e) (p)->lpVtbl->AddPlane(p,a,b,c,d,e)
4680#define IDirect3DRMClippedVisual_DeletePlane(p,a,b) (p)->lpVtbl->DeletePlane(p,a,b)
4681#define IDirect3DRMClippedVisual_GetPlaneIDs(p,a,b,c) (p)->lpVtbl->GetPlaneIDs(p,a,b,c)
4682#define IDirect3DRMClippedVisual_GetPlane(p,a,b,c,d,e) (p)->lpVtbl->GetPlane(p,a,b,c,d,e)
4683#define IDirect3DRMClippedVisual_SetPlane(p,a,b,c,d,e) (p)->lpVtbl->SetPlane(p,a,b,c,d,e)
4684#else
4685/*** IUnknown methods ***/
4686#define IDirect3DRMClippedVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
4687#define IDirect3DRMClippedVisual_AddRef(p) (p)->AddRef()
4688#define IDirect3DRMClippedVisual_Release(p) (p)->Release()
4689/*** IDirect3DRMObject methods ***/
4690#define IDirect3DRMClippedVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
4691#define IDirect3DRMClippedVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
4692#define IDirect3DRMClippedVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
4693#define IDirect3DRMClippedVisual_SetAppData(p,a) (p)->SetAppData(a)
4694#define IDirect3DRMClippedVisual_GetAppData(p) (p)->GetAppData()
4695#define IDirect3DRMClippedVisual_SetName(p,a) (p)->SetName(a)
4696#define IDirect3DRMClippedVisual_GetName(p,a,b) (p)->GetName(a,b)
4697#define IDirect3DRMClippedVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
4698/*** IDirect3DRMClippedVisual methods ***/
4699#define IDirect3DRMClippedVisual_Init(p,a) (p)->Init(a)
4700#define IDirect3DRMClippedVisual_AddPlane(p,a,b,c,d,e) (p)->AddPlane(a,b,c,d,e)
4701#define IDirect3DRMClippedVisual_DeletePlane(p,a,b) (p)->DeletePlane(a,b)
4702#define IDirect3DRMClippedVisual_GetPlaneIDs(p,a,b,c) (p)->GetPlaneIDs(a,b,c)
4703#define IDirect3DRMClippedVisual_GetPlane(p,a,b,c,d,e) (p)->GetPlane(a,b,c,d,e)
4704#define IDirect3DRMClippedVisual_SetPlane(p,a,b,c,d,e) (p)->SetPlane(a,b,c,d,e)
4705#endif
4706
4707#ifdef __cplusplus
4708};
4709#endif
4710
4711#endif /* __D3DRMOBJ_H__ */
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette