]> icculus.org git repositories - taylor/freespace2.git/blob - include/vd3drm.h
Initial revision
[taylor/freespace2.git] / include / vd3drm.h
1 /*==========================================================================;
2  *
3  *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
4  *
5  *  File:       d3drm.h
6  *  Content:    Direct3DRM include file
7  *
8  ***************************************************************************/
9
10 #ifndef __D3DRM_H__
11 #define __D3DRM_H__
12
13 #include "vddraw.h"
14 #include "vd3drmobj.h"
15
16 #ifdef __cplusplus
17 extern "C" {
18 struct IDirect3DRM;
19 #endif
20
21
22 DEFINE_GUID(IID_IDirect3DRM,    0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
23 DEFINE_GUID(IID_IDirect3DRM2,   0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
24 WIN_TYPES(IDirect3DRM, DIRECT3DRM);
25 WIN_TYPES(IDirect3DRM2, DIRECT3DRM2);
26
27
28 /* Create a Direct3DRM API */
29 STDAPI Direct3DRMCreate(LPDIRECT3DRM FAR *lplpDirect3DRM);
30
31 #undef INTERFACE
32 #define INTERFACE IDirect3DRM
33
34 DECLARE_INTERFACE_(IDirect3DRM, IUnknown)
35 {
36     IUNKNOWN_METHODS(PURE);
37
38     STDMETHOD(CreateObject)
39         (THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
40     STDMETHOD(CreateFrame)      (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
41     STDMETHOD(CreateMesh)       (THIS_ LPDIRECT3DRMMESH *) PURE;
42     STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
43     STDMETHOD(CreateFace)       (THIS_ LPDIRECT3DRMFACE *) PURE;
44     STDMETHOD(CreateAnimation)  (THIS_ LPDIRECT3DRMANIMATION *) PURE;
45     STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
46     STDMETHOD(CreateTexture)    (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
47     STDMETHOD(CreateLight)      (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
48     STDMETHOD(CreateLightRGB)
49         (THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
50     STDMETHOD(CreateMaterial)   (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
51     STDMETHOD(CreateDevice)     (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
52
53     /* Create a Windows Device using DirectDraw surfaces */
54     STDMETHOD(CreateDeviceFromSurface)
55     (   THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
56         LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE *
57     ) PURE;
58
59     /* Create a Windows Device using D3D objects */
60     STDMETHOD(CreateDeviceFromD3D)
61     (   THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev,
62         LPDIRECT3DRMDEVICE *
63     ) PURE;
64
65     STDMETHOD(CreateDeviceFromClipper)
66     (   THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
67         int width, int height, LPDIRECT3DRMDEVICE *) PURE;
68
69     STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE *) PURE;
70    
71     STDMETHOD(CreateShadow)
72     (   THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
73         D3DVALUE px, D3DVALUE py, D3DVALUE pz,
74         D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
75         LPDIRECT3DRMVISUAL *
76     ) PURE;
77     STDMETHOD(CreateViewport)
78     (   THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
79         DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
80     ) PURE;
81     STDMETHOD(CreateWrap)
82     (   THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
83         D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
84         D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
85         D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
86         D3DVALUE ou, D3DVALUE ov,
87         D3DVALUE su, D3DVALUE sv,
88         LPDIRECT3DRMWRAP *
89     ) PURE;
90     STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
91     STDMETHOD(LoadTexture)      (THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
92     STDMETHOD(LoadTextureFromResource)  (THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
93    
94     STDMETHOD(SetSearchPath)    (THIS_ LPCSTR) PURE;
95     STDMETHOD(AddSearchPath)    (THIS_ LPCSTR) PURE;
96     STDMETHOD(GetSearchPath)    (THIS_ DWORD *size_return, LPSTR path_return) PURE;
97     STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
98     STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
99    
100     STDMETHOD(GetDevices)       (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
101     STDMETHOD(GetNamedObject)   (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
102    
103     STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
104    
105     STDMETHOD(Load)             
106     (   THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
107         D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
108         LPDIRECT3DRMFRAME
109     ) PURE;
110     STDMETHOD(Tick)             (THIS_ D3DVALUE) PURE;
111 };
112
113 #undef INTERFACE
114 #define INTERFACE IDirect3DRM2
115
116 DECLARE_INTERFACE_(IDirect3DRM2, IUnknown)
117 {
118     IUNKNOWN_METHODS(PURE);
119
120     STDMETHOD(CreateObject)
121         (THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
122     STDMETHOD(CreateFrame)      (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 *) PURE;
123     STDMETHOD(CreateMesh)       (THIS_ LPDIRECT3DRMMESH *) PURE;
124     STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER2 *) PURE;
125     STDMETHOD(CreateFace)       (THIS_ LPDIRECT3DRMFACE *) PURE;
126     STDMETHOD(CreateAnimation)  (THIS_ LPDIRECT3DRMANIMATION *) PURE;
127     STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
128     STDMETHOD(CreateTexture)    (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE2 *) PURE;
129     STDMETHOD(CreateLight)      (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
130     STDMETHOD(CreateLightRGB)
131         (THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
132     STDMETHOD(CreateMaterial)   (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
133     STDMETHOD(CreateDevice)     (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE2 *) PURE;
134
135     /* Create a Windows Device using DirectDraw surfaces */
136     STDMETHOD(CreateDeviceFromSurface)
137     (   THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
138         LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE2 *
139     ) PURE;
140
141     /* Create a Windows Device using D3D objects */
142     STDMETHOD(CreateDeviceFromD3D)
143     (   THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev,
144         LPDIRECT3DRMDEVICE2 *
145     ) PURE;
146
147     STDMETHOD(CreateDeviceFromClipper)
148     (   THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
149         int width, int height, LPDIRECT3DRMDEVICE2 *) PURE;
150
151     STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE2 *) PURE;
152    
153     STDMETHOD(CreateShadow)
154     (   THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
155         D3DVALUE px, D3DVALUE py, D3DVALUE pz,
156         D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
157         LPDIRECT3DRMVISUAL *
158     ) PURE;
159     STDMETHOD(CreateViewport)
160     (   THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
161         DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
162     ) PURE;
163     STDMETHOD(CreateWrap)
164     (   THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
165         D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
166         D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
167         D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
168         D3DVALUE ou, D3DVALUE ov,
169         D3DVALUE su, D3DVALUE sv,
170         LPDIRECT3DRMWRAP *
171     ) PURE;
172     STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
173     STDMETHOD(LoadTexture)      (THIS_ const char *, LPDIRECT3DRMTEXTURE2 *) PURE;
174     STDMETHOD(LoadTextureFromResource)  (THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType, LPDIRECT3DRMTEXTURE2 *) PURE;
175    
176     STDMETHOD(SetSearchPath)    (THIS_ LPCSTR) PURE;
177     STDMETHOD(AddSearchPath)    (THIS_ LPCSTR) PURE;
178     STDMETHOD(GetSearchPath)    (THIS_ DWORD *size_return, LPSTR path_return) PURE;
179     STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
180     STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
181    
182     STDMETHOD(GetDevices)       (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
183     STDMETHOD(GetNamedObject)   (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
184    
185     STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
186    
187     STDMETHOD(Load)             
188     (   THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
189         D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
190         LPDIRECT3DRMFRAME
191     ) PURE;
192     STDMETHOD(Tick)             (THIS_ D3DVALUE) PURE;
193
194     STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH *) PURE;
195 };
196
197 #define D3DRM_OK                        DD_OK
198 #define D3DRMERR_BADOBJECT              MAKE_DDHRESULT(781)
199 #define D3DRMERR_BADTYPE                MAKE_DDHRESULT(782)
200 #define D3DRMERR_BADALLOC               MAKE_DDHRESULT(783)
201 #define D3DRMERR_FACEUSED               MAKE_DDHRESULT(784)
202 #define D3DRMERR_NOTFOUND               MAKE_DDHRESULT(785)
203 #define D3DRMERR_NOTDONEYET             MAKE_DDHRESULT(786)
204 #define D3DRMERR_FILENOTFOUND           MAKE_DDHRESULT(787)
205 #define D3DRMERR_BADFILE                MAKE_DDHRESULT(788)
206 #define D3DRMERR_BADDEVICE              MAKE_DDHRESULT(789)
207 #define D3DRMERR_BADVALUE               MAKE_DDHRESULT(790)
208 #define D3DRMERR_BADMAJORVERSION        MAKE_DDHRESULT(791)
209 #define D3DRMERR_BADMINORVERSION        MAKE_DDHRESULT(792)
210 #define D3DRMERR_UNABLETOEXECUTE        MAKE_DDHRESULT(793)
211 #define D3DRMERR_LIBRARYNOTFOUND        MAKE_DDHRESULT(794)
212 #define D3DRMERR_INVALIDLIBRARY         MAKE_DDHRESULT(795)
213 #define D3DRMERR_PENDING                MAKE_DDHRESULT(796)
214 #define D3DRMERR_NOTENOUGHDATA          MAKE_DDHRESULT(797)
215 #define D3DRMERR_REQUESTTOOLARGE        MAKE_DDHRESULT(798)
216 #define D3DRMERR_REQUESTTOOSMALL        MAKE_DDHRESULT(799)
217 #define D3DRMERR_CONNECTIONLOST         MAKE_DDHRESULT(800)
218 #define D3DRMERR_LOADABORTED            MAKE_DDHRESULT(801)
219 #define D3DRMERR_NOINTERNET             MAKE_DDHRESULT(802)
220 #define D3DRMERR_BADCACHEFILE           MAKE_DDHRESULT(803)
221 #define D3DRMERR_BOXNOTSET              MAKE_DDHRESULT(804)
222 #define D3DRMERR_BADPMDATA              MAKE_DDHRESULT(805)
223
224 #ifdef __cplusplus
225 };
226 #endif
227
228 #endif /* _D3DRMAPI_H_ */
229