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