Subversion Repositories Games.Chess Giants

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
/*==========================================================================;
2
 *
3
 *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4
 *
5
 *  File:   d3d9.h
6
 *  Content:    Direct3D include file
7
 *
8
 ****************************************************************************/
9
 
10
#ifndef _D3D9_H_
11
#define _D3D9_H_
12
 
13
#ifndef DIRECT3D_VERSION
14
#define DIRECT3D_VERSION         0x0900
15
#endif  //DIRECT3D_VERSION
16
 
17
// include this file content only if compiling for DX9 interfaces
18
#if(DIRECT3D_VERSION >= 0x0900)
19
 
20
 
21
/* This identifier is passed to Direct3DCreate9 in order to ensure that an
22
 * application was built against the correct header files. This number is
23
 * incremented whenever a header (or other) change would require applications
24
 * to be rebuilt. If the version doesn't match, Direct3DCreate9 will fail.
25
 * (The number itself has no meaning.)*/
26
 
27
#ifdef D3D_DEBUG_INFO
28
#define D3D_SDK_VERSION   (32 | 0x80000000)
29
#define D3D9b_SDK_VERSION (31 | 0x80000000)
30
 
31
#else
32
#define D3D_SDK_VERSION   32
33
#define D3D9b_SDK_VERSION 31
34
#endif
35
 
36
 
37
#include <stdlib.h>
38
 
39
#define COM_NO_WINDOWS_H
40
#include <objbase.h>
41
 
42
#include <windows.h>
43
 
44
#if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500)
45
    #define HMONITOR_DECLARED
46
    DECLARE_HANDLE(HMONITOR);
47
#endif
48
 
49
#define D3DAPI WINAPI
50
 
51
/*
52
 * Interface IID's
53
 */
54
#if defined( _WIN32 ) && !defined( _NO_COM)
55
 
56
/* IID_IDirect3D9 */
57
/* {81BDCBCA-64D4-426d-AE8D-AD0147F4275C} */
58
DEFINE_GUID(IID_IDirect3D9, 0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c);
59
 
60
/* IID_IDirect3DDevice9 */
61
// {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB} */
62
DEFINE_GUID(IID_IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
63
 
64
/* IID_IDirect3DResource9 */
65
// {05EEC05D-8F7D-4362-B999-D1BAF357C704}
66
DEFINE_GUID(IID_IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
67
 
68
/* IID_IDirect3DBaseTexture9 */
69
/* {580CA87E-1D3C-4d54-991D-B7D3E3C298CE} */
70
DEFINE_GUID(IID_IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
71
 
72
/* IID_IDirect3DTexture9 */
73
/* {85C31227-3DE5-4f00-9B3A-F11AC38C18B5} */
74
DEFINE_GUID(IID_IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
75
 
76
/* IID_IDirect3DCubeTexture9 */
77
/* {FFF32F81-D953-473a-9223-93D652ABA93F} */
78
DEFINE_GUID(IID_IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
79
 
80
/* IID_IDirect3DVolumeTexture9 */
81
/* {2518526C-E789-4111-A7B9-47EF328D13E6} */
82
DEFINE_GUID(IID_IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
83
 
84
/* IID_IDirect3DVertexBuffer9 */
85
/* {B64BB1B5-FD70-4df6-BF91-19D0A12455E3} */
86
DEFINE_GUID(IID_IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
87
 
88
/* IID_IDirect3DIndexBuffer9 */
89
/* {7C9DD65E-D3F7-4529-ACEE-785830ACDE35} */
90
DEFINE_GUID(IID_IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
91
 
92
/* IID_IDirect3DSurface9 */
93
/* {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B} */
94
DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
95
 
96
/* IID_IDirect3DVolume9 */
97
/* {24F416E6-1F67-4aa7-B88E-D33F6F3128A1} */
98
DEFINE_GUID(IID_IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
99
 
100
/* IID_IDirect3DSwapChain9 */
101
/* {794950F2-ADFC-458a-905E-10A10B0B503B} */
102
DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
103
 
104
/* IID_IDirect3DVertexDeclaration9 */
105
/* {DD13C59C-36FA-4098-A8FB-C7ED39DC8546} */
106
DEFINE_GUID(IID_IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
107
 
108
/* IID_IDirect3DVertexShader9 */
109
/* {EFC5557E-6265-4613-8A94-43857889EB36} */
110
DEFINE_GUID(IID_IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
111
 
112
/* IID_IDirect3DPixelShader9 */
113
/* {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289} */
114
DEFINE_GUID(IID_IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
115
 
116
/* IID_IDirect3DStateBlock9 */
117
/* {B07C4FE5-310D-4ba8-A23C-4F0F206F218B} */
118
DEFINE_GUID(IID_IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
119
 
120
/* IID_IDirect3DQuery9 */
121
/* {d9771460-a695-4f26-bbd3-27b840b541cc} */
122
DEFINE_GUID(IID_IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
123
 
124
 
125
/* IID_HelperName */
126
/* {E4A36723-FDFE-4b22-B146-3C04C07F4CC8} */
127
DEFINE_GUID(IID_HelperName, 0xe4a36723, 0xfdfe, 0x4b22, 0xb1, 0x46, 0x3c, 0x4, 0xc0, 0x7f, 0x4c, 0xc8);
128
 
129
/* D3D9Ex only -- */
130
#if !defined(D3D_DISABLE_9EX)
131
 
132
/* IID_IDirect3D9Ex */
133
/* {02177241-69FC-400C-8FF1-93A44DF6861D} */
134
DEFINE_GUID(IID_IDirect3D9Ex, 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
135
 
136
/* IID_IDirect3DDevice9Ex */
137
// {B18B10CE-2649-405a-870F-95F777D4313A}
138
DEFINE_GUID(IID_IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
139
 
140
/* IID_IDirect3DSwapChain9Ex */
141
/* {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303} */
142
DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
143
 
144
/* IID_IDirect3D9ExOverlayExtension */
145
/* {187aeb13-aaf5-4c59-876d-e059088c0df8} */
146
DEFINE_GUID(IID_IDirect3D9ExOverlayExtension, 0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x8, 0x8c, 0xd, 0xf8);
147
 
148
/* IID_IDirect3DDevice9Video */
149
// {26DC4561-A1EE-4ae7-96DA-118A36C0EC95}
150
DEFINE_GUID(IID_IDirect3DDevice9Video, 0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95);
151
 
152
/* IID_IDirect3D9AuthenticatedChannel */
153
// {FF24BEEE-DA21-4beb-98B5-D2F899F98AF9}
154
DEFINE_GUID(IID_IDirect3DAuthenticatedChannel9, 0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9);
155
 
156
/* IID_IDirect3DCryptoSession9 */
157
// {FA0AB799-7A9C-48ca-8C5B-237E71A54434}
158
DEFINE_GUID(IID_IDirect3DCryptoSession9, 0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34);
159
 
160
 
161
#endif // !D3D_DISABLE_9EX
162
/* -- D3D9Ex only */
163
 
164
#endif
165
 
166
#ifdef __cplusplus
167
 
168
#ifndef DECLSPEC_UUID
169
#if _MSC_VER >= 1100
170
#define DECLSPEC_UUID(x)    __declspec(uuid(x))
171
#else
172
#define DECLSPEC_UUID(x)
173
#endif
174
#endif
175
 
176
interface DECLSPEC_UUID("81BDCBCA-64D4-426d-AE8D-AD0147F4275C") IDirect3D9;
177
interface DECLSPEC_UUID("D0223B96-BF7A-43fd-92BD-A43B0D82B9EB") IDirect3DDevice9;
178
 
179
interface DECLSPEC_UUID("B07C4FE5-310D-4ba8-A23C-4F0F206F218B") IDirect3DStateBlock9;
180
interface DECLSPEC_UUID("05EEC05D-8F7D-4362-B999-D1BAF357C704") IDirect3DResource9;
181
interface DECLSPEC_UUID("DD13C59C-36FA-4098-A8FB-C7ED39DC8546") IDirect3DVertexDeclaration9;
182
interface DECLSPEC_UUID("EFC5557E-6265-4613-8A94-43857889EB36") IDirect3DVertexShader9;
183
interface DECLSPEC_UUID("6D3BDBDC-5B02-4415-B852-CE5E8BCCB289") IDirect3DPixelShader9;
184
interface DECLSPEC_UUID("580CA87E-1D3C-4d54-991D-B7D3E3C298CE") IDirect3DBaseTexture9;
185
interface DECLSPEC_UUID("85C31227-3DE5-4f00-9B3A-F11AC38C18B5") IDirect3DTexture9;
186
interface DECLSPEC_UUID("2518526C-E789-4111-A7B9-47EF328D13E6") IDirect3DVolumeTexture9;
187
interface DECLSPEC_UUID("FFF32F81-D953-473a-9223-93D652ABA93F") IDirect3DCubeTexture9;
188
 
189
interface DECLSPEC_UUID("B64BB1B5-FD70-4df6-BF91-19D0A12455E3") IDirect3DVertexBuffer9;
190
interface DECLSPEC_UUID("7C9DD65E-D3F7-4529-ACEE-785830ACDE35") IDirect3DIndexBuffer9;
191
 
192
interface DECLSPEC_UUID("0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B") IDirect3DSurface9;
193
interface DECLSPEC_UUID("24F416E6-1F67-4aa7-B88E-D33F6F3128A1") IDirect3DVolume9;
194
 
195
interface DECLSPEC_UUID("794950F2-ADFC-458a-905E-10A10B0B503B") IDirect3DSwapChain9;
196
interface DECLSPEC_UUID("d9771460-a695-4f26-bbd3-27b840b541cc") IDirect3DQuery9;
197
 
198
 
199
/* D3D9Ex only -- */
200
#if !defined(D3D_DISABLE_9EX)
201
 
202
interface DECLSPEC_UUID("02177241-69FC-400C-8FF1-93A44DF6861D") IDirect3D9Ex;
203
interface DECLSPEC_UUID("B18B10CE-2649-405a-870F-95F777D4313A") IDirect3DDevice9Ex;
204
interface DECLSPEC_UUID("91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303") IDirect3DSwapChain9Ex;
205
interface DECLSPEC_UUID("187AEB13-AAF5-4C59-876D-E059088C0DF8") IDirect3D9ExOverlayExtension;
206
interface DECLSPEC_UUID("26DC4561-A1EE-4ae7-96DA-118A36C0EC95") IDirect3DDevice9Video;
207
interface DECLSPEC_UUID("FF24BEEE-DA21-4beb-98B5-D2F899F98AF9") IDirect3DAuthenticatedChannel9;
208
interface DECLSPEC_UUID("FA0AB799-7A9C-48CA-8C5B-237E71A54434") IDirect3DCryptoSession9;
209
 
210
#endif // !D3D_DISABLE_9EX
211
/* -- D3D9Ex only */
212
 
213
#if defined(_COM_SMARTPTR_TYPEDEF)
214
_COM_SMARTPTR_TYPEDEF(IDirect3D9, __uuidof(IDirect3D9));
215
_COM_SMARTPTR_TYPEDEF(IDirect3DDevice9, __uuidof(IDirect3DDevice9));
216
 
217
_COM_SMARTPTR_TYPEDEF(IDirect3DStateBlock9, __uuidof(IDirect3DStateBlock9));
218
_COM_SMARTPTR_TYPEDEF(IDirect3DResource9, __uuidof(IDirect3DResource9));
219
_COM_SMARTPTR_TYPEDEF(IDirect3DVertexDeclaration9, __uuidof(IDirect3DVertexDeclaration9));
220
_COM_SMARTPTR_TYPEDEF(IDirect3DVertexShader9, __uuidof(IDirect3DVertexShader9));
221
_COM_SMARTPTR_TYPEDEF(IDirect3DPixelShader9, __uuidof(IDirect3DPixelShader9));
222
_COM_SMARTPTR_TYPEDEF(IDirect3DBaseTexture9, __uuidof(IDirect3DBaseTexture9));
223
_COM_SMARTPTR_TYPEDEF(IDirect3DTexture9, __uuidof(IDirect3DTexture9));
224
_COM_SMARTPTR_TYPEDEF(IDirect3DVolumeTexture9, __uuidof(IDirect3DVolumeTexture9));
225
_COM_SMARTPTR_TYPEDEF(IDirect3DCubeTexture9, __uuidof(IDirect3DCubeTexture9));
226
 
227
_COM_SMARTPTR_TYPEDEF(IDirect3DVertexBuffer9, __uuidof(IDirect3DVertexBuffer9));
228
_COM_SMARTPTR_TYPEDEF(IDirect3DIndexBuffer9, __uuidof(IDirect3DIndexBuffer9));
229
 
230
_COM_SMARTPTR_TYPEDEF(IDirect3DSurface9, __uuidof(IDirect3DSurface9));
231
_COM_SMARTPTR_TYPEDEF(IDirect3DVolume9, __uuidof(IDirect3DVolume9));
232
 
233
_COM_SMARTPTR_TYPEDEF(IDirect3DSwapChain9, __uuidof(IDirect3DSwapChain9));
234
_COM_SMARTPTR_TYPEDEF(IDirect3DQuery9, __uuidof(IDirect3DQuery9));
235
 
236
 
237
/* D3D9Ex only -- */
238
#if !defined(D3D_DISABLE_9EX)
239
 
240
_COM_SMARTPTR_TYPEDEF(IDirect3D9Ex, __uuidof(IDirect3D9Ex));
241
_COM_SMARTPTR_TYPEDEF(IDirect3DDevice9Ex, __uuidof(IDirect3DDevice9Ex));
242
_COM_SMARTPTR_TYPEDEF(IDirect3DSwapChain9Ex, __uuidof(IDirect3DSwapChain9Ex));
243
_COM_SMARTPTR_TYPEDEF(IDirect3D9ExOverlayExtension, __uuidof(IDirect3D9ExOverlayExtension));
244
_COM_SMARTPTR_TYPEDEF(IDirect3DDevice9Video, __uuidof(IDirect3DDevice9Video));
245
_COM_SMARTPTR_TYPEDEF(IDirect3DAuthenticatedChannel9, __uuidof(IDirect3DAuthenticatedChannel9));
246
_COM_SMARTPTR_TYPEDEF(IDirect3DCryptoSession9, __uuidof(IDirect3DCryptoSession9));
247
 
248
#endif // !D3D_DISABLE_9EX
249
/* -- D3D9Ex only */
250
 
251
#endif
252
 
253
#endif
254
 
255
 
256
typedef interface IDirect3D9                    IDirect3D9;
257
typedef interface IDirect3DDevice9              IDirect3DDevice9;
258
typedef interface IDirect3DStateBlock9          IDirect3DStateBlock9;
259
typedef interface IDirect3DVertexDeclaration9   IDirect3DVertexDeclaration9;
260
typedef interface IDirect3DVertexShader9        IDirect3DVertexShader9;
261
typedef interface IDirect3DPixelShader9         IDirect3DPixelShader9;
262
typedef interface IDirect3DResource9            IDirect3DResource9;
263
typedef interface IDirect3DBaseTexture9         IDirect3DBaseTexture9;
264
typedef interface IDirect3DTexture9             IDirect3DTexture9;
265
typedef interface IDirect3DVolumeTexture9       IDirect3DVolumeTexture9;
266
typedef interface IDirect3DCubeTexture9         IDirect3DCubeTexture9;
267
typedef interface IDirect3DVertexBuffer9        IDirect3DVertexBuffer9;
268
typedef interface IDirect3DIndexBuffer9         IDirect3DIndexBuffer9;
269
typedef interface IDirect3DSurface9             IDirect3DSurface9;
270
typedef interface IDirect3DVolume9              IDirect3DVolume9;
271
typedef interface IDirect3DSwapChain9           IDirect3DSwapChain9;
272
typedef interface IDirect3DQuery9               IDirect3DQuery9;
273
 
274
 
275
/* D3D9Ex only -- */
276
#if !defined(D3D_DISABLE_9EX)
277
 
278
 
279
typedef interface IDirect3D9Ex                   IDirect3D9Ex;
280
typedef interface IDirect3DDevice9Ex             IDirect3DDevice9Ex;
281
typedef interface IDirect3DSwapChain9Ex          IDirect3DSwapChain9Ex;
282
typedef interface IDirect3D9ExOverlayExtension   IDirect3D9ExOverlayExtension;
283
typedef interface IDirect3DDevice9Video          IDirect3DDevice9Video;
284
typedef interface IDirect3DAuthenticatedChannel9 IDirect3DAuthenticatedChannel9;
285
typedef interface IDirect3DCryptoSession9        IDirect3DCryptoSession9;
286
 
287
#endif // !D3D_DISABLE_9EX
288
/* -- D3D9Ex only */
289
 
290
#include "d3d9types.h"
291
#include "d3d9caps.h"
292
 
293
 
294
#ifdef __cplusplus
295
extern "C" {
296
#endif
297
 
298
/*
299
 * DLL Function for creating a Direct3D9 object. This object supports
300
 * enumeration and allows the creation of Direct3DDevice9 objects.
301
 * Pass the value of the constant D3D_SDK_VERSION to this function, so
302
 * that the run-time can validate that your application was compiled
303
 * against the right headers.
304
 */
305
 
306
IDirect3D9 * WINAPI Direct3DCreate9(UINT SDKVersion);
307
 
308
/*
309
 * Stubs for graphics profiling.
310
 */
311
 
312
int WINAPI D3DPERF_BeginEvent( D3DCOLOR col, LPCWSTR wszName );
313
int WINAPI D3DPERF_EndEvent( void );
314
void WINAPI D3DPERF_SetMarker( D3DCOLOR col, LPCWSTR wszName );
315
void WINAPI D3DPERF_SetRegion( D3DCOLOR col, LPCWSTR wszName );
316
BOOL WINAPI D3DPERF_QueryRepeatFrame( void );
317
 
318
void WINAPI D3DPERF_SetOptions( DWORD dwOptions );
319
DWORD WINAPI D3DPERF_GetStatus( void );
320
 
321
/*
322
 * Direct3D interfaces
323
 */
324
 
325
 
326
 
327
 
328
 
329
 
330
#undef INTERFACE
331
#define INTERFACE IDirect3D9
332
 
333
DECLARE_INTERFACE_(IDirect3D9, IUnknown)
334
{
335
    /*** IUnknown methods ***/
336
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
337
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
338
    STDMETHOD_(ULONG,Release)(THIS) PURE;
339
 
340
    /*** IDirect3D9 methods ***/
341
    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
342
    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
343
    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
344
    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter,D3DFORMAT Format) PURE;
345
    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode) PURE;
346
    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter,D3DDISPLAYMODE* pMode) PURE;
347
    STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed) PURE;
348
    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat) PURE;
349
    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels) PURE;
350
    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat) PURE;
351
    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat) PURE;
352
    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps) PURE;
353
    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
354
    STDMETHOD(CreateDevice)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
355
 
356
    #ifdef D3D_DEBUG_INFO
357
    LPCWSTR Version;
358
    #endif
359
};
360
 
361
typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
362
 
363
#if !defined(__cplusplus) || defined(CINTERFACE)
364
#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
365
#define IDirect3D9_AddRef(p) (p)->lpVtbl->AddRef(p)
366
#define IDirect3D9_Release(p) (p)->lpVtbl->Release(p)
367
#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
368
#define IDirect3D9_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
369
#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
370
#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
371
#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
372
#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
373
#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
374
#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
375
#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
376
#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
377
#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
378
#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
379
#define IDirect3D9_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
380
#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
381
#else
382
#define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
383
#define IDirect3D9_AddRef(p) (p)->AddRef()
384
#define IDirect3D9_Release(p) (p)->Release()
385
#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
386
#define IDirect3D9_GetAdapterCount(p) (p)->GetAdapterCount()
387
#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
388
#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
389
#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
390
#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
391
#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
392
#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
393
#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
394
#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
395
#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
396
#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
397
#define IDirect3D9_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
398
#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
399
#endif
400
 
401
 
402
 
403
 
404
 
405
 
406
 
407
/* SwapChain */
408
 
409
 
410
 
411
 
412
 
413
 
414
 
415
 
416
 
417
 
418
 
419
 
420
 
421
 
422
 
423
#undef INTERFACE
424
#define INTERFACE IDirect3DDevice9
425
 
426
DECLARE_INTERFACE_(IDirect3DDevice9, IUnknown)
427
{
428
    /*** IUnknown methods ***/
429
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
430
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
431
    STDMETHOD_(ULONG,Release)(THIS) PURE;
432
 
433
    /*** IDirect3DDevice9 methods ***/
434
    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
435
    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
436
    STDMETHOD(EvictManagedResources)(THIS) PURE;
437
    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
438
    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
439
    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain,D3DDISPLAYMODE* pMode) PURE;
440
    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
441
    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap) PURE;
442
    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y,DWORD Flags) PURE;
443
    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
444
    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain9** pSwapChain) PURE;
445
    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain,IDirect3DSwapChain9** pSwapChain) PURE;
446
    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
447
    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
448
    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion) PURE;
449
    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) PURE;
450
    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus) PURE;
451
    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
452
    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain,DWORD Flags,CONST D3DGAMMARAMP* pRamp) PURE;
453
    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain,D3DGAMMARAMP* pRamp) PURE;
454
    STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle) PURE;
455
    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) PURE;
456
    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle) PURE;
457
    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle) PURE;
458
    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle) PURE;
459
    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
460
    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
461
    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,CONST POINT* pDestPoint) PURE;
462
    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture,IDirect3DBaseTexture9* pDestinationTexture) PURE;
463
    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface) PURE;
464
    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain,IDirect3DSurface9* pDestSurface) PURE;
465
    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter) PURE;
466
    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface,CONST RECT* pRect,D3DCOLOR color) PURE;
467
    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
468
    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget) PURE;
469
    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) PURE;
470
    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
471
    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
472
    STDMETHOD(BeginScene)(THIS) PURE;
473
    STDMETHOD(EndScene)(THIS) PURE;
474
    STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE;
475
    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) PURE;
476
    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) PURE;
477
    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*) PURE;
478
    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
479
    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
480
    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
481
    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
482
    STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3DLIGHT9*) PURE;
483
    STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT9*) PURE;
484
    STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE;
485
    STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL* pEnable) PURE;
486
    STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float* pPlane) PURE;
487
    STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float* pPlane) PURE;
488
    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE;
489
    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD* pValue) PURE;
490
    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB) PURE;
491
    STDMETHOD(BeginStateBlock)(THIS) PURE;
492
    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
493
    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
494
    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
495
    STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture9** ppTexture) PURE;
496
    STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture9* pTexture) PURE;
497
    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) PURE;
498
    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
499
    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue) PURE;
500
    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value) PURE;
501
    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
502
    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY* pEntries) PURE;
503
    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
504
    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
505
    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
506
    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
507
    STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
508
    STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
509
    STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
510
    STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
511
    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
512
    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE;
513
    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE;
514
    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
515
    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount,CONST void* pIndexData,D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
516
    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags) PURE;
517
    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl) PURE;
518
    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
519
    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
520
    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
521
    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
522
    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction,IDirect3DVertexShader9** ppShader) PURE;
523
    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
524
    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
525
    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) PURE;
526
    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister,float* pConstantData,UINT Vector4fCount) PURE;
527
    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) PURE;
528
    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister,int* pConstantData,UINT Vector4iCount) PURE;
529
    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount) PURE;
530
    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister,BOOL* pConstantData,UINT BoolCount) PURE;
531
    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) PURE;
532
    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* pOffsetInBytes,UINT* pStride) PURE;
533
    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber,UINT Setting) PURE;
534
    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber,UINT* pSetting) PURE;
535
    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
536
    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
537
    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction,IDirect3DPixelShader9** ppShader) PURE;
538
    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
539
    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
540
    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) PURE;
541
    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister,float* pConstantData,UINT Vector4fCount) PURE;
542
    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) PURE;
543
    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister,int* pConstantData,UINT Vector4iCount) PURE;
544
    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount) PURE;
545
    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister,BOOL* pConstantData,UINT BoolCount) PURE;
546
    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
547
    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
548
    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
549
    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type,IDirect3DQuery9** ppQuery) PURE;
550
 
551
    #ifdef D3D_DEBUG_INFO
552
    D3DDEVICE_CREATION_PARAMETERS CreationParameters;
553
    D3DPRESENT_PARAMETERS PresentParameters;
554
    D3DDISPLAYMODE DisplayMode;
555
    D3DCAPS9 Caps;
556
 
557
    UINT AvailableTextureMem;
558
    UINT SwapChains;
559
    UINT Textures;
560
    UINT VertexBuffers;
561
    UINT IndexBuffers;
562
    UINT VertexShaders;
563
    UINT PixelShaders;
564
 
565
    D3DVIEWPORT9 Viewport;
566
    D3DMATRIX ProjectionMatrix;
567
    D3DMATRIX ViewMatrix;
568
    D3DMATRIX WorldMatrix;
569
    D3DMATRIX TextureMatrices[8];
570
 
571
    DWORD FVF;
572
    UINT VertexSize;
573
    DWORD VertexShaderVersion;
574
    DWORD PixelShaderVersion;
575
    BOOL SoftwareVertexProcessing;
576
 
577
    D3DMATERIAL9 Material;
578
    D3DLIGHT9 Lights[16];
579
    BOOL LightsEnabled[16];
580
 
581
    D3DGAMMARAMP GammaRamp;
582
    RECT ScissorRect;
583
    BOOL DialogBoxMode;
584
    #endif
585
};
586
 
587
typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9, *PDIRECT3DDEVICE9;
588
 
589
#if !defined(__cplusplus) || defined(CINTERFACE)
590
#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
591
#define IDirect3DDevice9_AddRef(p) (p)->lpVtbl->AddRef(p)
592
#define IDirect3DDevice9_Release(p) (p)->lpVtbl->Release(p)
593
#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
594
#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
595
#define IDirect3DDevice9_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
596
#define IDirect3DDevice9_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
597
#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
598
#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
599
#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
600
#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
601
#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
602
#define IDirect3DDevice9_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
603
#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
604
#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
605
#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
606
#define IDirect3DDevice9_Reset(p,a) (p)->lpVtbl->Reset(p,a)
607
#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
608
#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
609
#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
610
#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
611
#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
612
#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
613
#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
614
#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
615
#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
616
#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
617
#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
618
#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
619
#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
620
#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
621
#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
622
#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
623
#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
624
#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
625
#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
626
#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
627
#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
628
#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
629
#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
630
#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
631
#define IDirect3DDevice9_BeginScene(p) (p)->lpVtbl->BeginScene(p)
632
#define IDirect3DDevice9_EndScene(p) (p)->lpVtbl->EndScene(p)
633
#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
634
#define IDirect3DDevice9_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
635
#define IDirect3DDevice9_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
636
#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
637
#define IDirect3DDevice9_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
638
#define IDirect3DDevice9_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
639
#define IDirect3DDevice9_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
640
#define IDirect3DDevice9_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
641
#define IDirect3DDevice9_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
642
#define IDirect3DDevice9_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
643
#define IDirect3DDevice9_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
644
#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
645
#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
646
#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
647
#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
648
#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
649
#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
650
#define IDirect3DDevice9_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
651
#define IDirect3DDevice9_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
652
#define IDirect3DDevice9_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
653
#define IDirect3DDevice9_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
654
#define IDirect3DDevice9_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
655
#define IDirect3DDevice9_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
656
#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
657
#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
658
#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
659
#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
660
#define IDirect3DDevice9_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
661
#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
662
#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
663
#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
664
#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
665
#define IDirect3DDevice9_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
666
#define IDirect3DDevice9_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
667
#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
668
#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
669
#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
670
#define IDirect3DDevice9_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
671
#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
672
#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
673
#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
674
#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
675
#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
676
#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
677
#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
678
#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
679
#define IDirect3DDevice9_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
680
#define IDirect3DDevice9_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
681
#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
682
#define IDirect3DDevice9_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
683
#define IDirect3DDevice9_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
684
#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
685
#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
686
#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
687
#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
688
#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
689
#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
690
#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
691
#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
692
#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
693
#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
694
#define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
695
#define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
696
#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
697
#define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
698
#define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
699
#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
700
#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
701
#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
702
#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
703
#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
704
#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
705
#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
706
#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
707
#define IDirect3DDevice9_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
708
#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
709
#else
710
#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
711
#define IDirect3DDevice9_AddRef(p) (p)->AddRef()
712
#define IDirect3DDevice9_Release(p) (p)->Release()
713
#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
714
#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
715
#define IDirect3DDevice9_EvictManagedResources(p) (p)->EvictManagedResources()
716
#define IDirect3DDevice9_GetDirect3D(p,a) (p)->GetDirect3D(a)
717
#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
718
#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
719
#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
720
#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
721
#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
722
#define IDirect3DDevice9_ShowCursor(p,a) (p)->ShowCursor(a)
723
#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
724
#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
725
#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
726
#define IDirect3DDevice9_Reset(p,a) (p)->Reset(a)
727
#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
728
#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
729
#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
730
#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
731
#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
732
#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
733
#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
734
#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
735
#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
736
#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
737
#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
738
#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
739
#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
740
#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
741
#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
742
#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
743
#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
744
#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
745
#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
746
#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
747
#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
748
#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
749
#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
750
#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
751
#define IDirect3DDevice9_BeginScene(p) (p)->BeginScene()
752
#define IDirect3DDevice9_EndScene(p) (p)->EndScene()
753
#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
754
#define IDirect3DDevice9_SetTransform(p,a,b) (p)->SetTransform(a,b)
755
#define IDirect3DDevice9_GetTransform(p,a,b) (p)->GetTransform(a,b)
756
#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
757
#define IDirect3DDevice9_SetViewport(p,a) (p)->SetViewport(a)
758
#define IDirect3DDevice9_GetViewport(p,a) (p)->GetViewport(a)
759
#define IDirect3DDevice9_SetMaterial(p,a) (p)->SetMaterial(a)
760
#define IDirect3DDevice9_GetMaterial(p,a) (p)->GetMaterial(a)
761
#define IDirect3DDevice9_SetLight(p,a,b) (p)->SetLight(a,b)
762
#define IDirect3DDevice9_GetLight(p,a,b) (p)->GetLight(a,b)
763
#define IDirect3DDevice9_LightEnable(p,a,b) (p)->LightEnable(a,b)
764
#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
765
#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
766
#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
767
#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
768
#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
769
#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
770
#define IDirect3DDevice9_BeginStateBlock(p) (p)->BeginStateBlock()
771
#define IDirect3DDevice9_EndStateBlock(p,a) (p)->EndStateBlock(a)
772
#define IDirect3DDevice9_SetClipStatus(p,a) (p)->SetClipStatus(a)
773
#define IDirect3DDevice9_GetClipStatus(p,a) (p)->GetClipStatus(a)
774
#define IDirect3DDevice9_GetTexture(p,a,b) (p)->GetTexture(a,b)
775
#define IDirect3DDevice9_SetTexture(p,a,b) (p)->SetTexture(a,b)
776
#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
777
#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
778
#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
779
#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
780
#define IDirect3DDevice9_ValidateDevice(p,a) (p)->ValidateDevice(a)
781
#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
782
#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
783
#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
784
#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
785
#define IDirect3DDevice9_SetScissorRect(p,a) (p)->SetScissorRect(a)
786
#define IDirect3DDevice9_GetScissorRect(p,a) (p)->GetScissorRect(a)
787
#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
788
#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
789
#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
790
#define IDirect3DDevice9_GetNPatchMode(p) (p)->GetNPatchMode()
791
#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
792
#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
793
#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
794
#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
795
#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
796
#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
797
#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
798
#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
799
#define IDirect3DDevice9_SetFVF(p,a) (p)->SetFVF(a)
800
#define IDirect3DDevice9_GetFVF(p,a) (p)->GetFVF(a)
801
#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
802
#define IDirect3DDevice9_SetVertexShader(p,a) (p)->SetVertexShader(a)
803
#define IDirect3DDevice9_GetVertexShader(p,a) (p)->GetVertexShader(a)
804
#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
805
#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
806
#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
807
#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
808
#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
809
#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
810
#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
811
#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
812
#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
813
#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
814
#define IDirect3DDevice9_SetIndices(p,a) (p)->SetIndices(a)
815
#define IDirect3DDevice9_GetIndices(p,a) (p)->GetIndices(a)
816
#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
817
#define IDirect3DDevice9_SetPixelShader(p,a) (p)->SetPixelShader(a)
818
#define IDirect3DDevice9_GetPixelShader(p,a) (p)->GetPixelShader(a)
819
#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
820
#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
821
#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
822
#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
823
#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
824
#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
825
#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
826
#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
827
#define IDirect3DDevice9_DeletePatch(p,a) (p)->DeletePatch(a)
828
#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
829
#endif
830
 
831
 
832
 
833
 
834
 
835
#undef INTERFACE
836
#define INTERFACE IDirect3DStateBlock9
837
 
838
DECLARE_INTERFACE_(IDirect3DStateBlock9, IUnknown)
839
{
840
    /*** IUnknown methods ***/
841
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
842
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
843
    STDMETHOD_(ULONG,Release)(THIS) PURE;
844
 
845
    /*** IDirect3DStateBlock9 methods ***/
846
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
847
    STDMETHOD(Capture)(THIS) PURE;
848
    STDMETHOD(Apply)(THIS) PURE;
849
 
850
    #ifdef D3D_DEBUG_INFO
851
    LPCWSTR CreationCallStack;
852
    #endif
853
};
854
 
855
typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9, *PDIRECT3DSTATEBLOCK9;
856
 
857
#if !defined(__cplusplus) || defined(CINTERFACE)
858
#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
859
#define IDirect3DStateBlock9_AddRef(p) (p)->lpVtbl->AddRef(p)
860
#define IDirect3DStateBlock9_Release(p) (p)->lpVtbl->Release(p)
861
#define IDirect3DStateBlock9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
862
#define IDirect3DStateBlock9_Capture(p) (p)->lpVtbl->Capture(p)
863
#define IDirect3DStateBlock9_Apply(p) (p)->lpVtbl->Apply(p)
864
#else
865
#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
866
#define IDirect3DStateBlock9_AddRef(p) (p)->AddRef()
867
#define IDirect3DStateBlock9_Release(p) (p)->Release()
868
#define IDirect3DStateBlock9_GetDevice(p,a) (p)->GetDevice(a)
869
#define IDirect3DStateBlock9_Capture(p) (p)->Capture()
870
#define IDirect3DStateBlock9_Apply(p) (p)->Apply()
871
#endif
872
 
873
 
874
 
875
 
876
#undef INTERFACE
877
#define INTERFACE IDirect3DSwapChain9
878
 
879
DECLARE_INTERFACE_(IDirect3DSwapChain9, IUnknown)
880
{
881
    /*** IUnknown methods ***/
882
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
883
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
884
    STDMETHOD_(ULONG,Release)(THIS) PURE;
885
 
886
    /*** IDirect3DSwapChain9 methods ***/
887
    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion,DWORD dwFlags) PURE;
888
    STDMETHOD(GetFrontBufferData)(THIS_ IDirect3DSurface9* pDestSurface) PURE;
889
    STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) PURE;
890
    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
891
    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
892
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
893
    STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
894
 
895
    #ifdef D3D_DEBUG_INFO
896
    D3DPRESENT_PARAMETERS PresentParameters;
897
    D3DDISPLAYMODE DisplayMode;
898
    LPCWSTR CreationCallStack;
899
    #endif
900
};
901
 
902
typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
903
 
904
#if !defined(__cplusplus) || defined(CINTERFACE)
905
#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
906
#define IDirect3DSwapChain9_AddRef(p) (p)->lpVtbl->AddRef(p)
907
#define IDirect3DSwapChain9_Release(p) (p)->lpVtbl->Release(p)
908
#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
909
#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
910
#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
911
#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
912
#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
913
#define IDirect3DSwapChain9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
914
#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
915
#else
916
#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
917
#define IDirect3DSwapChain9_AddRef(p) (p)->AddRef()
918
#define IDirect3DSwapChain9_Release(p) (p)->Release()
919
#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
920
#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
921
#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
922
#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
923
#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
924
#define IDirect3DSwapChain9_GetDevice(p,a) (p)->GetDevice(a)
925
#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
926
#endif
927
 
928
 
929
 
930
#undef INTERFACE
931
#define INTERFACE IDirect3DResource9
932
 
933
DECLARE_INTERFACE_(IDirect3DResource9, IUnknown)
934
{
935
    /*** IUnknown methods ***/
936
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
937
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
938
    STDMETHOD_(ULONG,Release)(THIS) PURE;
939
 
940
    /*** IDirect3DResource9 methods ***/
941
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
942
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
943
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
944
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
945
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
946
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
947
    STDMETHOD_(void, PreLoad)(THIS) PURE;
948
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
949
};
950
 
951
typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
952
 
953
#if !defined(__cplusplus) || defined(CINTERFACE)
954
#define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
955
#define IDirect3DResource9_AddRef(p) (p)->lpVtbl->AddRef(p)
956
#define IDirect3DResource9_Release(p) (p)->lpVtbl->Release(p)
957
#define IDirect3DResource9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
958
#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
959
#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
960
#define IDirect3DResource9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
961
#define IDirect3DResource9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
962
#define IDirect3DResource9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
963
#define IDirect3DResource9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
964
#define IDirect3DResource9_GetType(p) (p)->lpVtbl->GetType(p)
965
#else
966
#define IDirect3DResource9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
967
#define IDirect3DResource9_AddRef(p) (p)->AddRef()
968
#define IDirect3DResource9_Release(p) (p)->Release()
969
#define IDirect3DResource9_GetDevice(p,a) (p)->GetDevice(a)
970
#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
971
#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
972
#define IDirect3DResource9_FreePrivateData(p,a) (p)->FreePrivateData(a)
973
#define IDirect3DResource9_SetPriority(p,a) (p)->SetPriority(a)
974
#define IDirect3DResource9_GetPriority(p) (p)->GetPriority()
975
#define IDirect3DResource9_PreLoad(p) (p)->PreLoad()
976
#define IDirect3DResource9_GetType(p) (p)->GetType()
977
#endif
978
 
979
 
980
 
981
 
982
#undef INTERFACE
983
#define INTERFACE IDirect3DVertexDeclaration9
984
 
985
DECLARE_INTERFACE_(IDirect3DVertexDeclaration9, IUnknown)
986
{
987
    /*** IUnknown methods ***/
988
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
989
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
990
    STDMETHOD_(ULONG,Release)(THIS) PURE;
991
 
992
    /*** IDirect3DVertexDeclaration9 methods ***/
993
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
994
    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9* pElement,UINT* pNumElements) PURE;
995
 
996
    #ifdef D3D_DEBUG_INFO
997
    LPCWSTR CreationCallStack;
998
    #endif
999
};
1000
 
1001
typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9, *PDIRECT3DVERTEXDECLARATION9;
1002
 
1003
#if !defined(__cplusplus) || defined(CINTERFACE)
1004
#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1005
#define IDirect3DVertexDeclaration9_AddRef(p) (p)->lpVtbl->AddRef(p)
1006
#define IDirect3DVertexDeclaration9_Release(p) (p)->lpVtbl->Release(p)
1007
#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1008
#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->lpVtbl->GetDeclaration(p,a,b)
1009
#else
1010
#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1011
#define IDirect3DVertexDeclaration9_AddRef(p) (p)->AddRef()
1012
#define IDirect3DVertexDeclaration9_Release(p) (p)->Release()
1013
#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->GetDevice(a)
1014
#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->GetDeclaration(a,b)
1015
#endif
1016
 
1017
 
1018
 
1019
 
1020
#undef INTERFACE
1021
#define INTERFACE IDirect3DVertexShader9
1022
 
1023
DECLARE_INTERFACE_(IDirect3DVertexShader9, IUnknown)
1024
{
1025
    /*** IUnknown methods ***/
1026
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1027
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1028
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1029
 
1030
    /*** IDirect3DVertexShader9 methods ***/
1031
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1032
    STDMETHOD(GetFunction)(THIS_ void*,UINT* pSizeOfData) PURE;
1033
 
1034
    #ifdef D3D_DEBUG_INFO
1035
    DWORD Version;
1036
    LPCWSTR CreationCallStack;
1037
    #endif
1038
};
1039
 
1040
typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9, *PDIRECT3DVERTEXSHADER9;
1041
 
1042
#if !defined(__cplusplus) || defined(CINTERFACE)
1043
#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1044
#define IDirect3DVertexShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
1045
#define IDirect3DVertexShader9_Release(p) (p)->lpVtbl->Release(p)
1046
#define IDirect3DVertexShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1047
#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
1048
#else
1049
#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1050
#define IDirect3DVertexShader9_AddRef(p) (p)->AddRef()
1051
#define IDirect3DVertexShader9_Release(p) (p)->Release()
1052
#define IDirect3DVertexShader9_GetDevice(p,a) (p)->GetDevice(a)
1053
#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
1054
#endif
1055
 
1056
 
1057
 
1058
 
1059
#undef INTERFACE
1060
#define INTERFACE IDirect3DPixelShader9
1061
 
1062
DECLARE_INTERFACE_(IDirect3DPixelShader9, IUnknown)
1063
{
1064
    /*** IUnknown methods ***/
1065
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1066
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1067
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1068
 
1069
    /*** IDirect3DPixelShader9 methods ***/
1070
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1071
    STDMETHOD(GetFunction)(THIS_ void*,UINT* pSizeOfData) PURE;
1072
 
1073
    #ifdef D3D_DEBUG_INFO
1074
    DWORD Version;
1075
    LPCWSTR CreationCallStack;
1076
    #endif
1077
};
1078
 
1079
typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9, *PDIRECT3DPIXELSHADER9;
1080
 
1081
#if !defined(__cplusplus) || defined(CINTERFACE)
1082
#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1083
#define IDirect3DPixelShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
1084
#define IDirect3DPixelShader9_Release(p) (p)->lpVtbl->Release(p)
1085
#define IDirect3DPixelShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1086
#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
1087
#else
1088
#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1089
#define IDirect3DPixelShader9_AddRef(p) (p)->AddRef()
1090
#define IDirect3DPixelShader9_Release(p) (p)->Release()
1091
#define IDirect3DPixelShader9_GetDevice(p,a) (p)->GetDevice(a)
1092
#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
1093
#endif
1094
 
1095
 
1096
 
1097
 
1098
#undef INTERFACE
1099
#define INTERFACE IDirect3DBaseTexture9
1100
 
1101
DECLARE_INTERFACE_(IDirect3DBaseTexture9, IDirect3DResource9)
1102
{
1103
    /*** IUnknown methods ***/
1104
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1105
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1106
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1107
 
1108
    /*** IDirect3DResource9 methods ***/
1109
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1110
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1111
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1112
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1113
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1114
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1115
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1116
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1117
    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
1118
    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
1119
    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
1120
    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
1121
    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
1122
    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
1123
};
1124
 
1125
typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
1126
 
1127
#if !defined(__cplusplus) || defined(CINTERFACE)
1128
#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1129
#define IDirect3DBaseTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1130
#define IDirect3DBaseTexture9_Release(p) (p)->lpVtbl->Release(p)
1131
#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1132
#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1133
#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1134
#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1135
#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1136
#define IDirect3DBaseTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1137
#define IDirect3DBaseTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1138
#define IDirect3DBaseTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1139
#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1140
#define IDirect3DBaseTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1141
#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1142
#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1143
#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1144
#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1145
#else
1146
#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1147
#define IDirect3DBaseTexture9_AddRef(p) (p)->AddRef()
1148
#define IDirect3DBaseTexture9_Release(p) (p)->Release()
1149
#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->GetDevice(a)
1150
#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1151
#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1152
#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1153
#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->SetPriority(a)
1154
#define IDirect3DBaseTexture9_GetPriority(p) (p)->GetPriority()
1155
#define IDirect3DBaseTexture9_PreLoad(p) (p)->PreLoad()
1156
#define IDirect3DBaseTexture9_GetType(p) (p)->GetType()
1157
#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->SetLOD(a)
1158
#define IDirect3DBaseTexture9_GetLOD(p) (p)->GetLOD()
1159
#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->GetLevelCount()
1160
#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1161
#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1162
#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1163
#endif
1164
 
1165
 
1166
 
1167
 
1168
 
1169
#undef INTERFACE
1170
#define INTERFACE IDirect3DTexture9
1171
 
1172
DECLARE_INTERFACE_(IDirect3DTexture9, IDirect3DBaseTexture9)
1173
{
1174
    /*** IUnknown methods ***/
1175
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1176
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1177
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1178
 
1179
    /*** IDirect3DBaseTexture9 methods ***/
1180
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1181
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1182
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1183
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1184
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1185
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1186
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1187
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1188
    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
1189
    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
1190
    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
1191
    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
1192
    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
1193
    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
1194
    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC *pDesc) PURE;
1195
    STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface9** ppSurfaceLevel) PURE;
1196
    STDMETHOD(LockRect)(THIS_ UINT Level,D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE;
1197
    STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
1198
    STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE;
1199
 
1200
    #ifdef D3D_DEBUG_INFO
1201
    LPCWSTR Name;
1202
    UINT Width;
1203
    UINT Height;
1204
    UINT Levels;
1205
    DWORD Usage;
1206
    D3DFORMAT Format;
1207
    D3DPOOL Pool;
1208
    DWORD Priority;
1209
    DWORD LOD;
1210
    D3DTEXTUREFILTERTYPE FilterType;
1211
    UINT LockCount;
1212
    LPCWSTR CreationCallStack;
1213
    #endif
1214
};
1215
 
1216
typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
1217
 
1218
#if !defined(__cplusplus) || defined(CINTERFACE)
1219
#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1220
#define IDirect3DTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1221
#define IDirect3DTexture9_Release(p) (p)->lpVtbl->Release(p)
1222
#define IDirect3DTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1223
#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1224
#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1225
#define IDirect3DTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1226
#define IDirect3DTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1227
#define IDirect3DTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1228
#define IDirect3DTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1229
#define IDirect3DTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1230
#define IDirect3DTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1231
#define IDirect3DTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1232
#define IDirect3DTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1233
#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1234
#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1235
#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1236
#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
1237
#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
1238
#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
1239
#define IDirect3DTexture9_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
1240
#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
1241
#else
1242
#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1243
#define IDirect3DTexture9_AddRef(p) (p)->AddRef()
1244
#define IDirect3DTexture9_Release(p) (p)->Release()
1245
#define IDirect3DTexture9_GetDevice(p,a) (p)->GetDevice(a)
1246
#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1247
#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1248
#define IDirect3DTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1249
#define IDirect3DTexture9_SetPriority(p,a) (p)->SetPriority(a)
1250
#define IDirect3DTexture9_GetPriority(p) (p)->GetPriority()
1251
#define IDirect3DTexture9_PreLoad(p) (p)->PreLoad()
1252
#define IDirect3DTexture9_GetType(p) (p)->GetType()
1253
#define IDirect3DTexture9_SetLOD(p,a) (p)->SetLOD(a)
1254
#define IDirect3DTexture9_GetLOD(p) (p)->GetLOD()
1255
#define IDirect3DTexture9_GetLevelCount(p) (p)->GetLevelCount()
1256
#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1257
#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1258
#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1259
#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
1260
#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
1261
#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
1262
#define IDirect3DTexture9_UnlockRect(p,a) (p)->UnlockRect(a)
1263
#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
1264
#endif
1265
 
1266
 
1267
 
1268
 
1269
 
1270
#undef INTERFACE
1271
#define INTERFACE IDirect3DVolumeTexture9
1272
 
1273
DECLARE_INTERFACE_(IDirect3DVolumeTexture9, IDirect3DBaseTexture9)
1274
{
1275
    /*** IUnknown methods ***/
1276
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1277
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1278
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1279
 
1280
    /*** IDirect3DBaseTexture9 methods ***/
1281
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1282
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1283
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1284
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1285
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1286
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1287
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1288
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1289
    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
1290
    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
1291
    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
1292
    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
1293
    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
1294
    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
1295
    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC *pDesc) PURE;
1296
    STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume9** ppVolumeLevel) PURE;
1297
    STDMETHOD(LockBox)(THIS_ UINT Level,D3DLOCKED_BOX* pLockedVolume,CONST D3DBOX* pBox,DWORD Flags) PURE;
1298
    STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
1299
    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
1300
 
1301
    #ifdef D3D_DEBUG_INFO
1302
    LPCWSTR Name;
1303
    UINT Width;
1304
    UINT Height;
1305
    UINT Depth;
1306
    UINT Levels;
1307
    DWORD Usage;
1308
    D3DFORMAT Format;
1309
    D3DPOOL Pool;
1310
    DWORD Priority;
1311
    DWORD LOD;
1312
    D3DTEXTUREFILTERTYPE FilterType;
1313
    UINT LockCount;
1314
    LPCWSTR CreationCallStack;
1315
    #endif
1316
};
1317
 
1318
typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
1319
 
1320
#if !defined(__cplusplus) || defined(CINTERFACE)
1321
#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1322
#define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1323
#define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
1324
#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1325
#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1326
#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1327
#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1328
#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1329
#define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1330
#define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1331
#define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1332
#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1333
#define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1334
#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1335
#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1336
#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1337
#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1338
#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
1339
#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
1340
#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
1341
#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
1342
#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
1343
#else
1344
#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1345
#define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
1346
#define IDirect3DVolumeTexture9_Release(p) (p)->Release()
1347
#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
1348
#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1349
#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1350
#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1351
#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
1352
#define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
1353
#define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
1354
#define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
1355
#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
1356
#define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
1357
#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
1358
#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1359
#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1360
#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1361
#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
1362
#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
1363
#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
1364
#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
1365
#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
1366
#endif
1367
 
1368
 
1369
 
1370
 
1371
 
1372
#undef INTERFACE
1373
#define INTERFACE IDirect3DCubeTexture9
1374
 
1375
DECLARE_INTERFACE_(IDirect3DCubeTexture9, IDirect3DBaseTexture9)
1376
{
1377
    /*** IUnknown methods ***/
1378
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1379
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1380
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1381
 
1382
    /*** IDirect3DBaseTexture9 methods ***/
1383
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1384
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1385
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1386
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1387
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1388
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1389
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1390
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1391
    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
1392
    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
1393
    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
1394
    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
1395
    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
1396
    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
1397
    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC *pDesc) PURE;
1398
    STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface9** ppCubeMapSurface) PURE;
1399
    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE;
1400
    STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE;
1401
    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType,CONST RECT* pDirtyRect) PURE;
1402
 
1403
    #ifdef D3D_DEBUG_INFO
1404
    LPCWSTR Name;
1405
    UINT Width;
1406
    UINT Height;
1407
    UINT Levels;
1408
    DWORD Usage;
1409
    D3DFORMAT Format;
1410
    D3DPOOL Pool;
1411
    DWORD Priority;
1412
    DWORD LOD;
1413
    D3DTEXTUREFILTERTYPE FilterType;
1414
    UINT LockCount;
1415
    LPCWSTR CreationCallStack;
1416
    #endif
1417
};
1418
 
1419
typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
1420
 
1421
#if !defined(__cplusplus) || defined(CINTERFACE)
1422
#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1423
#define IDirect3DCubeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1424
#define IDirect3DCubeTexture9_Release(p) (p)->lpVtbl->Release(p)
1425
#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1426
#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1427
#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1428
#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1429
#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1430
#define IDirect3DCubeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1431
#define IDirect3DCubeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1432
#define IDirect3DCubeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1433
#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1434
#define IDirect3DCubeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1435
#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1436
#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1437
#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1438
#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1439
#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
1440
#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
1441
#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
1442
#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
1443
#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
1444
#else
1445
#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1446
#define IDirect3DCubeTexture9_AddRef(p) (p)->AddRef()
1447
#define IDirect3DCubeTexture9_Release(p) (p)->Release()
1448
#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->GetDevice(a)
1449
#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1450
#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1451
#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1452
#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->SetPriority(a)
1453
#define IDirect3DCubeTexture9_GetPriority(p) (p)->GetPriority()
1454
#define IDirect3DCubeTexture9_PreLoad(p) (p)->PreLoad()
1455
#define IDirect3DCubeTexture9_GetType(p) (p)->GetType()
1456
#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->SetLOD(a)
1457
#define IDirect3DCubeTexture9_GetLOD(p) (p)->GetLOD()
1458
#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->GetLevelCount()
1459
#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1460
#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1461
#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1462
#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
1463
#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
1464
#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
1465
#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
1466
#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
1467
#endif
1468
 
1469
 
1470
 
1471
 
1472
#undef INTERFACE
1473
#define INTERFACE IDirect3DVertexBuffer9
1474
 
1475
DECLARE_INTERFACE_(IDirect3DVertexBuffer9, IDirect3DResource9)
1476
{
1477
    /*** IUnknown methods ***/
1478
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1479
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1480
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1481
 
1482
    /*** IDirect3DResource9 methods ***/
1483
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1484
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1485
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1486
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1487
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1488
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1489
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1490
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1491
    STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags) PURE;
1492
    STDMETHOD(Unlock)(THIS) PURE;
1493
    STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC *pDesc) PURE;
1494
 
1495
    #ifdef D3D_DEBUG_INFO
1496
    LPCWSTR Name;
1497
    UINT Length;
1498
    DWORD Usage;
1499
    DWORD FVF;
1500
    D3DPOOL Pool;
1501
    DWORD Priority;
1502
    UINT LockCount;
1503
    LPCWSTR CreationCallStack;
1504
    #endif
1505
};
1506
 
1507
typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
1508
 
1509
#if !defined(__cplusplus) || defined(CINTERFACE)
1510
#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1511
#define IDirect3DVertexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
1512
#define IDirect3DVertexBuffer9_Release(p) (p)->lpVtbl->Release(p)
1513
#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1514
#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1515
#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1516
#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1517
#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1518
#define IDirect3DVertexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1519
#define IDirect3DVertexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1520
#define IDirect3DVertexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
1521
#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
1522
#define IDirect3DVertexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
1523
#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
1524
#else
1525
#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1526
#define IDirect3DVertexBuffer9_AddRef(p) (p)->AddRef()
1527
#define IDirect3DVertexBuffer9_Release(p) (p)->Release()
1528
#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
1529
#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1530
#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1531
#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1532
#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
1533
#define IDirect3DVertexBuffer9_GetPriority(p) (p)->GetPriority()
1534
#define IDirect3DVertexBuffer9_PreLoad(p) (p)->PreLoad()
1535
#define IDirect3DVertexBuffer9_GetType(p) (p)->GetType()
1536
#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
1537
#define IDirect3DVertexBuffer9_Unlock(p) (p)->Unlock()
1538
#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
1539
#endif
1540
 
1541
 
1542
 
1543
 
1544
#undef INTERFACE
1545
#define INTERFACE IDirect3DIndexBuffer9
1546
 
1547
DECLARE_INTERFACE_(IDirect3DIndexBuffer9, IDirect3DResource9)
1548
{
1549
    /*** IUnknown methods ***/
1550
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1551
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1552
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1553
 
1554
    /*** IDirect3DResource9 methods ***/
1555
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1556
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1557
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1558
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1559
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1560
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1561
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1562
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1563
    STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags) PURE;
1564
    STDMETHOD(Unlock)(THIS) PURE;
1565
    STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC *pDesc) PURE;
1566
 
1567
    #ifdef D3D_DEBUG_INFO
1568
    LPCWSTR Name;
1569
    UINT Length;
1570
    DWORD Usage;
1571
    D3DFORMAT Format;
1572
    D3DPOOL Pool;
1573
    DWORD Priority;
1574
    UINT LockCount;
1575
    LPCWSTR CreationCallStack;
1576
    #endif
1577
};
1578
 
1579
typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
1580
 
1581
#if !defined(__cplusplus) || defined(CINTERFACE)
1582
#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1583
#define IDirect3DIndexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
1584
#define IDirect3DIndexBuffer9_Release(p) (p)->lpVtbl->Release(p)
1585
#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1586
#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1587
#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1588
#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1589
#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1590
#define IDirect3DIndexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1591
#define IDirect3DIndexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1592
#define IDirect3DIndexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
1593
#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
1594
#define IDirect3DIndexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
1595
#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
1596
#else
1597
#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1598
#define IDirect3DIndexBuffer9_AddRef(p) (p)->AddRef()
1599
#define IDirect3DIndexBuffer9_Release(p) (p)->Release()
1600
#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
1601
#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1602
#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1603
#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1604
#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
1605
#define IDirect3DIndexBuffer9_GetPriority(p) (p)->GetPriority()
1606
#define IDirect3DIndexBuffer9_PreLoad(p) (p)->PreLoad()
1607
#define IDirect3DIndexBuffer9_GetType(p) (p)->GetType()
1608
#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
1609
#define IDirect3DIndexBuffer9_Unlock(p) (p)->Unlock()
1610
#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
1611
#endif
1612
 
1613
 
1614
 
1615
 
1616
#undef INTERFACE
1617
#define INTERFACE IDirect3DSurface9
1618
 
1619
DECLARE_INTERFACE_(IDirect3DSurface9, IDirect3DResource9)
1620
{
1621
    /*** IUnknown methods ***/
1622
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1623
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1624
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1625
 
1626
    /*** IDirect3DResource9 methods ***/
1627
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1628
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1629
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1630
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1631
    STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1632
    STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1633
    STDMETHOD_(void, PreLoad)(THIS) PURE;
1634
    STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
1635
    STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer) PURE;
1636
    STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC *pDesc) PURE;
1637
    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE;
1638
    STDMETHOD(UnlockRect)(THIS) PURE;
1639
    STDMETHOD(GetDC)(THIS_ HDC *phdc) PURE;
1640
    STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
1641
 
1642
    #ifdef D3D_DEBUG_INFO
1643
    LPCWSTR Name;
1644
    UINT Width;
1645
    UINT Height;
1646
    DWORD Usage;
1647
    D3DFORMAT Format;
1648
    D3DPOOL Pool;
1649
    D3DMULTISAMPLE_TYPE MultiSampleType;
1650
    DWORD MultiSampleQuality;
1651
    DWORD Priority;
1652
    UINT LockCount;
1653
    UINT DCCount;
1654
    LPCWSTR CreationCallStack;
1655
    #endif
1656
};
1657
 
1658
typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
1659
 
1660
#if !defined(__cplusplus) || defined(CINTERFACE)
1661
#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1662
#define IDirect3DSurface9_AddRef(p) (p)->lpVtbl->AddRef(p)
1663
#define IDirect3DSurface9_Release(p) (p)->lpVtbl->Release(p)
1664
#define IDirect3DSurface9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1665
#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1666
#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1667
#define IDirect3DSurface9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1668
#define IDirect3DSurface9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1669
#define IDirect3DSurface9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1670
#define IDirect3DSurface9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1671
#define IDirect3DSurface9_GetType(p) (p)->lpVtbl->GetType(p)
1672
#define IDirect3DSurface9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
1673
#define IDirect3DSurface9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
1674
#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
1675
#define IDirect3DSurface9_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
1676
#define IDirect3DSurface9_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
1677
#define IDirect3DSurface9_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
1678
#else
1679
#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1680
#define IDirect3DSurface9_AddRef(p) (p)->AddRef()
1681
#define IDirect3DSurface9_Release(p) (p)->Release()
1682
#define IDirect3DSurface9_GetDevice(p,a) (p)->GetDevice(a)
1683
#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1684
#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1685
#define IDirect3DSurface9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1686
#define IDirect3DSurface9_SetPriority(p,a) (p)->SetPriority(a)
1687
#define IDirect3DSurface9_GetPriority(p) (p)->GetPriority()
1688
#define IDirect3DSurface9_PreLoad(p) (p)->PreLoad()
1689
#define IDirect3DSurface9_GetType(p) (p)->GetType()
1690
#define IDirect3DSurface9_GetContainer(p,a,b) (p)->GetContainer(a,b)
1691
#define IDirect3DSurface9_GetDesc(p,a) (p)->GetDesc(a)
1692
#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
1693
#define IDirect3DSurface9_UnlockRect(p) (p)->UnlockRect()
1694
#define IDirect3DSurface9_GetDC(p,a) (p)->GetDC(a)
1695
#define IDirect3DSurface9_ReleaseDC(p,a) (p)->ReleaseDC(a)
1696
#endif
1697
 
1698
 
1699
 
1700
 
1701
 
1702
#undef INTERFACE
1703
#define INTERFACE IDirect3DVolume9
1704
 
1705
DECLARE_INTERFACE_(IDirect3DVolume9, IUnknown)
1706
{
1707
    /*** IUnknown methods ***/
1708
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1709
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1710
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1711
 
1712
    /*** IDirect3DVolume9 methods ***/
1713
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1714
    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
1715
    STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
1716
    STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1717
    STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer) PURE;
1718
    STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC *pDesc) PURE;
1719
    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX* pBox,DWORD Flags) PURE;
1720
    STDMETHOD(UnlockBox)(THIS) PURE;
1721
 
1722
    #ifdef D3D_DEBUG_INFO
1723
    LPCWSTR Name;
1724
    UINT Width;
1725
    UINT Height;
1726
    UINT Depth;
1727
    DWORD Usage;
1728
    D3DFORMAT Format;
1729
    D3DPOOL Pool;
1730
    UINT LockCount;
1731
    LPCWSTR CreationCallStack;
1732
    #endif
1733
};
1734
 
1735
typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
1736
 
1737
#if !defined(__cplusplus) || defined(CINTERFACE)
1738
#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1739
#define IDirect3DVolume9_AddRef(p) (p)->lpVtbl->AddRef(p)
1740
#define IDirect3DVolume9_Release(p) (p)->lpVtbl->Release(p)
1741
#define IDirect3DVolume9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1742
#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1743
#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1744
#define IDirect3DVolume9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1745
#define IDirect3DVolume9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
1746
#define IDirect3DVolume9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
1747
#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
1748
#define IDirect3DVolume9_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
1749
#else
1750
#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1751
#define IDirect3DVolume9_AddRef(p) (p)->AddRef()
1752
#define IDirect3DVolume9_Release(p) (p)->Release()
1753
#define IDirect3DVolume9_GetDevice(p,a) (p)->GetDevice(a)
1754
#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1755
#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1756
#define IDirect3DVolume9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1757
#define IDirect3DVolume9_GetContainer(p,a,b) (p)->GetContainer(a,b)
1758
#define IDirect3DVolume9_GetDesc(p,a) (p)->GetDesc(a)
1759
#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
1760
#define IDirect3DVolume9_UnlockBox(p) (p)->UnlockBox()
1761
#endif
1762
 
1763
 
1764
 
1765
 
1766
#undef INTERFACE
1767
#define INTERFACE IDirect3DQuery9
1768
 
1769
DECLARE_INTERFACE_(IDirect3DQuery9, IUnknown)
1770
{
1771
    /*** IUnknown methods ***/
1772
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
1773
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1774
    STDMETHOD_(ULONG,Release)(THIS) PURE;
1775
 
1776
    /*** IDirect3DQuery9 methods ***/
1777
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
1778
    STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
1779
    STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
1780
    STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
1781
    STDMETHOD(GetData)(THIS_ void* pData,DWORD dwSize,DWORD dwGetDataFlags) PURE;
1782
 
1783
    #ifdef D3D_DEBUG_INFO
1784
    D3DQUERYTYPE Type;
1785
    DWORD DataSize;
1786
    LPCWSTR CreationCallStack;
1787
    #endif
1788
};
1789
 
1790
typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
1791
 
1792
#if !defined(__cplusplus) || defined(CINTERFACE)
1793
#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1794
#define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
1795
#define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
1796
#define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1797
#define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
1798
#define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
1799
#define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
1800
#define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
1801
#else
1802
#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1803
#define IDirect3DQuery9_AddRef(p) (p)->AddRef()
1804
#define IDirect3DQuery9_Release(p) (p)->Release()
1805
#define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
1806
#define IDirect3DQuery9_GetType(p) (p)->GetType()
1807
#define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
1808
#define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
1809
#define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
1810
#endif
1811
 
1812
 
1813
/****************************************************************************
1814
 * Flags for SetPrivateData method on all D3D9 interfaces
1815
 *
1816
 * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData
1817
 * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this
1818
 * pointer and Release when the private data is destroyed. The data will be
1819
 * destroyed when another SetPrivateData with the same GUID is set, when
1820
 * FreePrivateData is called, or when the D3D9 object is freed.
1821
 ****************************************************************************/
1822
#define D3DSPD_IUNKNOWN                         0x00000001L
1823
 
1824
/****************************************************************************
1825
 *
1826
 * Flags for IDirect3D9::CreateDevice's BehaviorFlags
1827
 *
1828
 ****************************************************************************/
1829
 
1830
#define D3DCREATE_FPU_PRESERVE                  0x00000002L
1831
#define D3DCREATE_MULTITHREADED                 0x00000004L
1832
 
1833
#define D3DCREATE_PUREDEVICE                    0x00000010L
1834
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
1835
#define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
1836
#define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
1837
 
1838
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT     0x00000100L
1839
#define D3DCREATE_ADAPTERGROUP_DEVICE           0x00000200L
1840
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX  0x00000400L
1841
 
1842
// This flag causes the D3D runtime not to alter the focus 
1843
// window in any way. Use with caution- the burden of supporting
1844
// focus management events (alt-tab, etc.) falls on the 
1845
// application, and appropriate responses (switching display
1846
// mode, etc.) should be coded.
1847
#define D3DCREATE_NOWINDOWCHANGES                               0x00000800L
1848
 
1849
/* D3D9Ex only -- */
1850
#if !defined(D3D_DISABLE_9EX)
1851
 
1852
// Disable multithreading for software vertex processing
1853
#define D3DCREATE_DISABLE_PSGP_THREADING        0x00002000L
1854
// This flag enables present statistics on device.
1855
#define D3DCREATE_ENABLE_PRESENTSTATS           0x00004000L
1856
// This flag disables printscreen support in the runtime for this device
1857
#define D3DCREATE_DISABLE_PRINTSCREEN           0x00008000L
1858
 
1859
#define D3DCREATE_SCREENSAVER                   0x10000000L
1860
 
1861
 
1862
#endif // !D3D_DISABLE_9EX
1863
/* -- D3D9Ex only */
1864
 
1865
 
1866
 
1867
/****************************************************************************
1868
 *
1869
 * Parameter for IDirect3D9::CreateDevice's Adapter argument
1870
 *
1871
 ****************************************************************************/
1872
 
1873
#define D3DADAPTER_DEFAULT                     0
1874
 
1875
/****************************************************************************
1876
 *
1877
 * Flags for IDirect3D9::EnumAdapters
1878
 *
1879
 ****************************************************************************/
1880
 
1881
/*
1882
 * The D3DENUM_WHQL_LEVEL value has been retired for 9Ex and future versions,
1883
 * but it needs to be defined here for compatibility with DX9 and earlier versions.
1884
 * See the DirectX SDK for sample code on discovering driver signatures.
1885
 */
1886
#define D3DENUM_WHQL_LEVEL                      0x00000002L
1887
 
1888
/* D3D9Ex only -- */
1889
#if !defined(D3D_DISABLE_9EX)
1890
 
1891
/* NO_DRIVERVERSION will not fill out the DriverVersion field, nor will the
1892
   DriverVersion be incorporated into the DeviceIdentifier GUID. WINNT only */
1893
#define D3DENUM_NO_DRIVERVERSION                0x00000004L
1894
 
1895
#endif // !D3D_DISABLE_9EX
1896
/* -- D3D9Ex only */
1897
 
1898
 
1899
/****************************************************************************
1900
 *
1901
 * Maximum number of back-buffers supported in DX9
1902
 *
1903
 ****************************************************************************/
1904
 
1905
#define D3DPRESENT_BACK_BUFFERS_MAX             3L
1906
 
1907
/* D3D9Ex only -- */
1908
#if !defined(D3D_DISABLE_9EX)
1909
 
1910
/****************************************************************************
1911
 *
1912
 * Maximum number of back-buffers supported when apps use CreateDeviceEx
1913
 *
1914
 ****************************************************************************/
1915
 
1916
#define D3DPRESENT_BACK_BUFFERS_MAX_EX          30L
1917
 
1918
#endif // !D3D_DISABLE_9EX
1919
/* -- D3D9Ex only */
1920
 
1921
/****************************************************************************
1922
 *
1923
 * Flags for IDirect3DDevice9::SetGammaRamp
1924
 *
1925
 ****************************************************************************/
1926
 
1927
#define D3DSGR_NO_CALIBRATION                  0x00000000L
1928
#define D3DSGR_CALIBRATE                       0x00000001L
1929
 
1930
/****************************************************************************
1931
 *
1932
 * Flags for IDirect3DDevice9::SetCursorPosition
1933
 *
1934
 ****************************************************************************/
1935
 
1936
#define D3DCURSOR_IMMEDIATE_UPDATE             0x00000001L
1937
 
1938
/****************************************************************************
1939
 *
1940
 * Flags for IDirect3DSwapChain9::Present
1941
 *
1942
 ****************************************************************************/
1943
 
1944
#define D3DPRESENT_DONOTWAIT                   0x00000001L
1945
#define D3DPRESENT_LINEAR_CONTENT              0x00000002L
1946
 
1947
/* D3D9Ex only -- */
1948
#if !defined(D3D_DISABLE_9EX)
1949
 
1950
#define D3DPRESENT_DONOTFLIP                   0x00000004L
1951
#define D3DPRESENT_FLIPRESTART                 0x00000008L
1952
#define D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR   0x00000010L
1953
#define D3DPRESENT_UPDATEOVERLAYONLY           0x00000020L
1954
#define D3DPRESENT_HIDEOVERLAY                 0x00000040L
1955
#define D3DPRESENT_UPDATECOLORKEY              0x00000080L
1956
#define D3DPRESENT_FORCEIMMEDIATE              0x00000100L
1957
 
1958
#endif // !D3D_DISABLE_9EX
1959
/* -- D3D9Ex only */
1960
 
1961
 
1962
/****************************************************************************
1963
 *
1964
 * Flags for DrawPrimitive/DrawIndexedPrimitive
1965
 *   Also valid for Begin/BeginIndexed
1966
 *   Also valid for VertexBuffer::CreateVertexBuffer
1967
 ****************************************************************************/
1968
 
1969
 
1970
/*
1971
 *  DirectDraw error codes
1972
 */
1973
#define _FACD3D  0x876
1974
#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
1975
#define MAKE_D3DSTATUS( code )  MAKE_HRESULT( 0, _FACD3D, code )
1976
 
1977
/*
1978
 * Direct3D Errors
1979
 */
1980
#define D3D_OK                              S_OK
1981
 
1982
#define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
1983
#define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
1984
#define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
1985
#define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
1986
#define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
1987
#define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
1988
#define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
1989
#define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
1990
#define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
1991
#define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
1992
#define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
1993
#define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
1994
 
1995
#define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
1996
#define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
1997
#define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
1998
#define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
1999
#define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
2000
#define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
2001
#define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
2002
#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
2003
#define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
2004
#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
2005
#define D3DOK_NOAUTOGEN                         MAKE_D3DSTATUS(2159)
2006
 
2007
/* D3D9Ex only -- */
2008
#if !defined(D3D_DISABLE_9EX)
2009
 
2010
 
2011
#define D3DERR_DEVICEREMOVED                    MAKE_D3DHRESULT(2160)
2012
#define S_NOT_RESIDENT                          MAKE_D3DSTATUS(2165)
2013
#define S_RESIDENT_IN_SHARED_MEMORY             MAKE_D3DSTATUS(2166)
2014
#define S_PRESENT_MODE_CHANGED                  MAKE_D3DSTATUS(2167)
2015
#define S_PRESENT_OCCLUDED                      MAKE_D3DSTATUS(2168)
2016
#define D3DERR_DEVICEHUNG                       MAKE_D3DHRESULT(2164)
2017
#define D3DERR_UNSUPPORTEDOVERLAY               MAKE_D3DHRESULT(2171)
2018
#define D3DERR_UNSUPPORTEDOVERLAYFORMAT         MAKE_D3DHRESULT(2172)
2019
#define D3DERR_CANNOTPROTECTCONTENT             MAKE_D3DHRESULT(2173)
2020
#define D3DERR_UNSUPPORTEDCRYPTO                MAKE_D3DHRESULT(2174)
2021
#define D3DERR_PRESENT_STATISTICS_DISJOINT      MAKE_D3DHRESULT(2180)
2022
 
2023
 
2024
/*********************
2025
/* D3D9Ex interfaces
2026
/*********************/
2027
 
2028
HRESULT WINAPI Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex**);
2029
 
2030
 
2031
 
2032
 
2033
#undef INTERFACE
2034
#define INTERFACE IDirect3D9Ex
2035
 
2036
DECLARE_INTERFACE_(IDirect3D9Ex, IDirect3D9)
2037
{
2038
    /*** IUnknown methods ***/
2039
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2040
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2041
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2042
 
2043
    /*** IDirect3D9 methods ***/
2044
    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
2045
    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
2046
    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter,D3DFORMAT Format) PURE;
2047
    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode) PURE;
2048
    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter,D3DDISPLAYMODE* pMode) PURE;
2049
    STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed) PURE;
2050
    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat) PURE;
2051
    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels) PURE;
2052
    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat) PURE;
2053
    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat) PURE;
2054
    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps) PURE;
2055
    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
2056
    STDMETHOD(CreateDevice)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
2057
    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter,CONST D3DDISPLAYMODEFILTER* pFilter ) PURE;
2058
    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter,CONST D3DDISPLAYMODEFILTER* pFilter,UINT Mode,D3DDISPLAYMODEEX* pMode) PURE;
2059
    STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) PURE;
2060
    STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX* pFullscreenDisplayMode,IDirect3DDevice9Ex** ppReturnedDeviceInterface) PURE;
2061
    STDMETHOD(GetAdapterLUID)(THIS_ UINT Adapter,LUID * pLUID) PURE;
2062
};
2063
 
2064
typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX;
2065
 
2066
#if !defined(__cplusplus) || defined(CINTERFACE)
2067
#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2068
#define IDirect3D9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
2069
#define IDirect3D9Ex_Release(p) (p)->lpVtbl->Release(p)
2070
#define IDirect3D9Ex_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
2071
#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
2072
#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
2073
#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
2074
#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
2075
#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
2076
#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
2077
#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
2078
#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
2079
#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
2080
#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
2081
#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
2082
#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
2083
#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->lpVtbl->GetAdapterModeCountEx(p,a,b)
2084
#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d)
2085
#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c)
2086
#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g)
2087
#define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->lpVtbl->GetAdapterLUID(p,a,b)
2088
#else
2089
#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2090
#define IDirect3D9Ex_AddRef(p) (p)->AddRef()
2091
#define IDirect3D9Ex_Release(p) (p)->Release()
2092
#define IDirect3D9Ex_GetAdapterCount(p) (p)->GetAdapterCount()
2093
#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
2094
#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
2095
#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
2096
#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
2097
#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
2098
#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
2099
#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
2100
#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
2101
#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
2102
#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
2103
#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
2104
#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
2105
#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->GetAdapterModeCountEx(a,b)
2106
#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->EnumAdapterModesEx(a,b,c,d)
2107
#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->GetAdapterDisplayModeEx(a,b,c)
2108
#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->CreateDeviceEx(a,b,c,d,e,f,g)
2109
#define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->GetAdapterLUID(a,b)
2110
#endif
2111
 
2112
 
2113
 
2114
 
2115
 
2116
 
2117
 
2118
 
2119
 
2120
 
2121
 
2122
 
2123
 
2124
 
2125
 
2126
 
2127
 
2128
 
2129
 
2130
 
2131
 
2132
 
2133
 
2134
 
2135
#undef INTERFACE
2136
#define INTERFACE IDirect3DDevice9Ex
2137
 
2138
DECLARE_INTERFACE_(IDirect3DDevice9Ex, IDirect3DDevice9)
2139
{
2140
    /*** IUnknown methods ***/
2141
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2142
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2143
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2144
 
2145
    /*** IDirect3DDevice9 methods ***/
2146
    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
2147
    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
2148
    STDMETHOD(EvictManagedResources)(THIS) PURE;
2149
    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
2150
    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
2151
    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain,D3DDISPLAYMODE* pMode) PURE;
2152
    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
2153
    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap) PURE;
2154
    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y,DWORD Flags) PURE;
2155
    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
2156
    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain9** pSwapChain) PURE;
2157
    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain,IDirect3DSwapChain9** pSwapChain) PURE;
2158
    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
2159
    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
2160
    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion) PURE;
2161
    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) PURE;
2162
    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus) PURE;
2163
    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
2164
    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain,DWORD Flags,CONST D3DGAMMARAMP* pRamp) PURE;
2165
    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain,D3DGAMMARAMP* pRamp) PURE;
2166
    STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle) PURE;
2167
    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) PURE;
2168
    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle) PURE;
2169
    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle) PURE;
2170
    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle) PURE;
2171
    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
2172
    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
2173
    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,CONST POINT* pDestPoint) PURE;
2174
    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture,IDirect3DBaseTexture9* pDestinationTexture) PURE;
2175
    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface) PURE;
2176
    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain,IDirect3DSurface9* pDestSurface) PURE;
2177
    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter) PURE;
2178
    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface,CONST RECT* pRect,D3DCOLOR color) PURE;
2179
    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) PURE;
2180
    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget) PURE;
2181
    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) PURE;
2182
    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
2183
    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
2184
    STDMETHOD(BeginScene)(THIS) PURE;
2185
    STDMETHOD(EndScene)(THIS) PURE;
2186
    STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE;
2187
    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) PURE;
2188
    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) PURE;
2189
    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*) PURE;
2190
    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
2191
    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
2192
    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
2193
    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
2194
    STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3DLIGHT9*) PURE;
2195
    STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT9*) PURE;
2196
    STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE;
2197
    STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL* pEnable) PURE;
2198
    STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float* pPlane) PURE;
2199
    STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float* pPlane) PURE;
2200
    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE;
2201
    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD* pValue) PURE;
2202
    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB) PURE;
2203
    STDMETHOD(BeginStateBlock)(THIS) PURE;
2204
    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
2205
    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
2206
    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
2207
    STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture9** ppTexture) PURE;
2208
    STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture9* pTexture) PURE;
2209
    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) PURE;
2210
    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
2211
    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue) PURE;
2212
    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value) PURE;
2213
    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
2214
    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY* pEntries) PURE;
2215
    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
2216
    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
2217
    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
2218
    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
2219
    STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
2220
    STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
2221
    STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
2222
    STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
2223
    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
2224
    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE;
2225
    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE;
2226
    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
2227
    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount,CONST void* pIndexData,D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE;
2228
    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags) PURE;
2229
    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl) PURE;
2230
    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
2231
    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
2232
    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
2233
    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
2234
    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction,IDirect3DVertexShader9** ppShader) PURE;
2235
    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
2236
    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
2237
    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) PURE;
2238
    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister,float* pConstantData,UINT Vector4fCount) PURE;
2239
    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) PURE;
2240
    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister,int* pConstantData,UINT Vector4iCount) PURE;
2241
    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount) PURE;
2242
    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister,BOOL* pConstantData,UINT BoolCount) PURE;
2243
    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) PURE;
2244
    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* pOffsetInBytes,UINT* pStride) PURE;
2245
    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber,UINT Setting) PURE;
2246
    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber,UINT* pSetting) PURE;
2247
    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
2248
    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
2249
    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction,IDirect3DPixelShader9** ppShader) PURE;
2250
    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
2251
    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
2252
    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) PURE;
2253
    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister,float* pConstantData,UINT Vector4fCount) PURE;
2254
    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) PURE;
2255
    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister,int* pConstantData,UINT Vector4iCount) PURE;
2256
    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount) PURE;
2257
    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister,BOOL* pConstantData,UINT BoolCount) PURE;
2258
    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
2259
    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
2260
    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
2261
    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type,IDirect3DQuery9** ppQuery) PURE;
2262
    STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width,UINT height,float* rows,float* columns) PURE;
2263
    STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9* pSrc,IDirect3DSurface9* pDst,IDirect3DVertexBuffer9* pSrcRectDescs,UINT NumRects,IDirect3DVertexBuffer9* pDstRectDescs,D3DCOMPOSERECTSOP Operation,int Xoffset,int Yoffset) PURE;
2264
    STDMETHOD(PresentEx)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion,DWORD dwFlags) PURE;
2265
    STDMETHOD(GetGPUThreadPriority)(THIS_ INT* pPriority) PURE;
2266
    STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
2267
    STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
2268
    STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9** pResourceArray,UINT32 NumResources) PURE;
2269
    STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE;
2270
    STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT* pMaxLatency) PURE;
2271
    STDMETHOD(CheckDeviceState)(THIS_ HWND hDestinationWindow) PURE;
2272
    STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) PURE;
2273
    STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) PURE;
2274
    STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) PURE;
2275
    STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
2276
    STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) PURE;
2277
};
2278
 
2279
typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;
2280
 
2281
#if !defined(__cplusplus) || defined(CINTERFACE)
2282
#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2283
#define IDirect3DDevice9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
2284
#define IDirect3DDevice9Ex_Release(p) (p)->lpVtbl->Release(p)
2285
#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
2286
#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
2287
#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
2288
#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
2289
#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
2290
#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
2291
#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
2292
#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
2293
#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
2294
#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
2295
#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
2296
#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
2297
#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
2298
#define IDirect3DDevice9Ex_Reset(p,a) (p)->lpVtbl->Reset(p,a)
2299
#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
2300
#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
2301
#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
2302
#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
2303
#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
2304
#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
2305
#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
2306
#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
2307
#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
2308
#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
2309
#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
2310
#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
2311
#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
2312
#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
2313
#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
2314
#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
2315
#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
2316
#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
2317
#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
2318
#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
2319
#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
2320
#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
2321
#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
2322
#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
2323
#define IDirect3DDevice9Ex_BeginScene(p) (p)->lpVtbl->BeginScene(p)
2324
#define IDirect3DDevice9Ex_EndScene(p) (p)->lpVtbl->EndScene(p)
2325
#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
2326
#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
2327
#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
2328
#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
2329
#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
2330
#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
2331
#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
2332
#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
2333
#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
2334
#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
2335
#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
2336
#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
2337
#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
2338
#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
2339
#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
2340
#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
2341
#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
2342
#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
2343
#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
2344
#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
2345
#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
2346
#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
2347
#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
2348
#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
2349
#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
2350
#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
2351
#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
2352
#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
2353
#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
2354
#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
2355
#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
2356
#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
2357
#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
2358
#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
2359
#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
2360
#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
2361
#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
2362
#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
2363
#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
2364
#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
2365
#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
2366
#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
2367
#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
2368
#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
2369
#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
2370
#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
2371
#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
2372
#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
2373
#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
2374
#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
2375
#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
2376
#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
2377
#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
2378
#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
2379
#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
2380
#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
2381
#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
2382
#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
2383
#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
2384
#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
2385
#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
2386
#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
2387
#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
2388
#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
2389
#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
2390
#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
2391
#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
2392
#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
2393
#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
2394
#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
2395
#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
2396
#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
2397
#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
2398
#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
2399
#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
2400
#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
2401
#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d)
2402
#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h)
2403
#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->lpVtbl->PresentEx(p,a,b,c,d,e)
2404
#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->lpVtbl->GetGPUThreadPriority(p,a)
2405
#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->lpVtbl->SetGPUThreadPriority(p,a)
2406
#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->lpVtbl->WaitForVBlank(p,a)
2407
#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->lpVtbl->CheckResourceResidency(p,a,b)
2408
#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->lpVtbl->SetMaximumFrameLatency(p,a)
2409
#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->lpVtbl->GetMaximumFrameLatency(p,a)
2410
#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->lpVtbl->CheckDeviceState(p,a)
2411
#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)
2412
#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)
2413
#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)
2414
#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->lpVtbl->ResetEx(p,a,b)
2415
#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetDisplayModeEx(p,a,b,c)
2416
#else
2417
#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2418
#define IDirect3DDevice9Ex_AddRef(p) (p)->AddRef()
2419
#define IDirect3DDevice9Ex_Release(p) (p)->Release()
2420
#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
2421
#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
2422
#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->EvictManagedResources()
2423
#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->GetDirect3D(a)
2424
#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
2425
#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
2426
#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
2427
#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
2428
#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
2429
#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->ShowCursor(a)
2430
#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
2431
#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
2432
#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
2433
#define IDirect3DDevice9Ex_Reset(p,a) (p)->Reset(a)
2434
#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
2435
#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
2436
#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
2437
#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
2438
#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
2439
#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
2440
#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
2441
#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
2442
#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
2443
#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
2444
#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
2445
#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
2446
#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
2447
#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
2448
#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
2449
#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
2450
#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
2451
#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
2452
#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
2453
#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
2454
#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
2455
#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
2456
#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
2457
#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
2458
#define IDirect3DDevice9Ex_BeginScene(p) (p)->BeginScene()
2459
#define IDirect3DDevice9Ex_EndScene(p) (p)->EndScene()
2460
#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
2461
#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->SetTransform(a,b)
2462
#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->GetTransform(a,b)
2463
#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
2464
#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->SetViewport(a)
2465
#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->GetViewport(a)
2466
#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->SetMaterial(a)
2467
#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->GetMaterial(a)
2468
#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->SetLight(a,b)
2469
#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->GetLight(a,b)
2470
#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->LightEnable(a,b)
2471
#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
2472
#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
2473
#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
2474
#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
2475
#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
2476
#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
2477
#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->BeginStateBlock()
2478
#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->EndStateBlock(a)
2479
#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->SetClipStatus(a)
2480
#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->GetClipStatus(a)
2481
#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->GetTexture(a,b)
2482
#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->SetTexture(a,b)
2483
#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
2484
#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
2485
#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
2486
#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
2487
#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->ValidateDevice(a)
2488
#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
2489
#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
2490
#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
2491
#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
2492
#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->SetScissorRect(a)
2493
#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->GetScissorRect(a)
2494
#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
2495
#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
2496
#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
2497
#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->GetNPatchMode()
2498
#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
2499
#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
2500
#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
2501
#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
2502
#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
2503
#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
2504
#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
2505
#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
2506
#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->SetFVF(a)
2507
#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->GetFVF(a)
2508
#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
2509
#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->SetVertexShader(a)
2510
#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->GetVertexShader(a)
2511
#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
2512
#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
2513
#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
2514
#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
2515
#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
2516
#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
2517
#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
2518
#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
2519
#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
2520
#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
2521
#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->SetIndices(a)
2522
#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->GetIndices(a)
2523
#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
2524
#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->SetPixelShader(a)
2525
#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->GetPixelShader(a)
2526
#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
2527
#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
2528
#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
2529
#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
2530
#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
2531
#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
2532
#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
2533
#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
2534
#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->DeletePatch(a)
2535
#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
2536
#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->SetConvolutionMonoKernel(a,b,c,d)
2537
#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->ComposeRects(a,b,c,d,e,f,g,h)
2538
#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->PresentEx(a,b,c,d,e)
2539
#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->GetGPUThreadPriority(a)
2540
#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->SetGPUThreadPriority(a)
2541
#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->WaitForVBlank(a)
2542
#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->CheckResourceResidency(a,b)
2543
#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->SetMaximumFrameLatency(a)
2544
#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->GetMaximumFrameLatency(a)
2545
#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->CheckDeviceState(a)
2546
#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i)
2547
#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g) (p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g)
2548
#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i)
2549
#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->ResetEx(a,b)
2550
#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->GetDisplayModeEx(a,b,c)
2551
#endif
2552
 
2553
 
2554
 
2555
#undef INTERFACE
2556
#define INTERFACE IDirect3DSwapChain9Ex
2557
 
2558
DECLARE_INTERFACE_(IDirect3DSwapChain9Ex, IDirect3DSwapChain9)
2559
{
2560
    /*** IUnknown methods ***/
2561
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2562
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2563
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2564
 
2565
    /*** IDirect3DSwapChain9 methods ***/
2566
    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion,DWORD dwFlags) PURE;
2567
    STDMETHOD(GetFrontBufferData)(THIS_ IDirect3DSurface9* pDestSurface) PURE;
2568
    STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) PURE;
2569
    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
2570
    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
2571
    STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
2572
    STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
2573
    STDMETHOD(GetLastPresentCount)(THIS_ UINT* pLastPresentCount) PURE;
2574
    STDMETHOD(GetPresentStats)(THIS_ D3DPRESENTSTATS* pPresentationStatistics) PURE;
2575
    STDMETHOD(GetDisplayModeEx)(THIS_ D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) PURE;
2576
};
2577
 
2578
typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
2579
 
2580
#if !defined(__cplusplus) || defined(CINTERFACE)
2581
#define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2582
#define IDirect3DSwapChain9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
2583
#define IDirect3DSwapChain9Ex_Release(p) (p)->lpVtbl->Release(p)
2584
#define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
2585
#define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
2586
#define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
2587
#define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
2588
#define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
2589
#define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
2590
#define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
2591
#define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->lpVtbl->GetLastPresentCount(p,a)
2592
#define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->lpVtbl->GetPresentStats(p,a)
2593
#define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->lpVtbl->GetDisplayModeEx(p,a,b)
2594
#else
2595
#define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2596
#define IDirect3DSwapChain9Ex_AddRef(p) (p)->AddRef()
2597
#define IDirect3DSwapChain9Ex_Release(p) (p)->Release()
2598
#define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
2599
#define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
2600
#define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
2601
#define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
2602
#define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
2603
#define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->GetDevice(a)
2604
#define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
2605
#define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->GetLastPresentCount(a)
2606
#define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->GetPresentStats(a)
2607
#define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->GetDisplayModeEx(a,b)
2608
#endif
2609
 
2610
#endif // !D3D_DISABLE_9EX
2611
/* -- D3D9Ex only */
2612
 
2613
 
2614
 
2615
#undef INTERFACE
2616
#define INTERFACE IDirect3D9ExOverlayExtension
2617
 
2618
DECLARE_INTERFACE_(IDirect3D9ExOverlayExtension, IUnknown)
2619
{
2620
    /*** IUnknown methods ***/
2621
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2622
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2623
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2624
 
2625
    /*** IDirect3D9ExOverlayExtension methods ***/
2626
    STDMETHOD(CheckDeviceOverlayType)(THIS_ UINT Adapter,D3DDEVTYPE DevType,UINT OverlayWidth,UINT OverlayHeight,D3DFORMAT OverlayFormat,D3DDISPLAYMODEEX* pDisplayMode,D3DDISPLAYROTATION DisplayRotation,D3DOVERLAYCAPS* pOverlayCaps) PURE;
2627
};
2628
 
2629
typedef struct IDirect3D9ExOverlayExtension *LPDIRECT3D9EXOVERLAYEXTENSION, *PDIRECT3D9EXOVERLAYEXTENSION;
2630
 
2631
#if !defined(__cplusplus) || defined(CINTERFACE)
2632
#define IDirect3D9ExOverlayExtension_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2633
#define IDirect3D9ExOverlayExtension_AddRef(p) (p)->lpVtbl->AddRef(p)
2634
#define IDirect3D9ExOverlayExtension_Release(p) (p)->lpVtbl->Release(p)
2635
#define IDirect3D9ExOverlayExtension_CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h)
2636
#else
2637
#define IDirect3D9ExOverlayExtension_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2638
#define IDirect3D9ExOverlayExtension_AddRef(p) (p)->AddRef()
2639
#define IDirect3D9ExOverlayExtension_Release(p) (p)->Release()
2640
#define IDirect3D9ExOverlayExtension_CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h) (p)->CheckDeviceOverlayType(a,b,c,d,e,f,g,h)
2641
#endif
2642
 
2643
 
2644
 
2645
#undef INTERFACE
2646
#define INTERFACE IDirect3DDevice9Video
2647
 
2648
DECLARE_INTERFACE_(IDirect3DDevice9Video, IUnknown)
2649
{
2650
    /*** IUnknown methods ***/
2651
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2652
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2653
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2654
 
2655
    /*** IDirect3DDevice9Video methods ***/
2656
    STDMETHOD(GetContentProtectionCaps)(THIS_ CONST GUID* pCryptoType,CONST GUID* pDecodeProfile,D3DCONTENTPROTECTIONCAPS* pCaps) PURE;
2657
    STDMETHOD(CreateAuthenticatedChannel)(THIS_ D3DAUTHENTICATEDCHANNELTYPE ChannelType,IDirect3DAuthenticatedChannel9** ppAuthenticatedChannel,HANDLE* pChannelHandle) PURE;
2658
    STDMETHOD(CreateCryptoSession)(THIS_ CONST GUID* pCryptoType,CONST GUID* pDecodeProfile,IDirect3DCryptoSession9** ppCryptoSession,HANDLE* pCryptoHandle) PURE;
2659
};
2660
 
2661
typedef struct IDirect3DDevice9Video *LPDIRECT3DDEVICE9VIDEO, *PDIRECT3DDEVICE9VIDEO;
2662
 
2663
#if !defined(__cplusplus) || defined(CINTERFACE)
2664
#define IDirect3DDevice9Video_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2665
#define IDirect3DDevice9Video_AddRef(p) (p)->lpVtbl->AddRef(p)
2666
#define IDirect3DDevice9Video_Release(p) (p)->lpVtbl->Release(p)
2667
#define IDirect3DDevice9Video_GetContentProtectionCaps(p,a,b,c) (p)->lpVtbl->GetContentProtectionCaps(p,a,b,c)
2668
#define IDirect3DDevice9Video_CreateAuthenticatedChannel(p,a,b,c) (p)->lpVtbl->CreateAuthenticatedChannel(p,a,b,c)
2669
#define IDirect3DDevice9Video_CreateCryptoSession(p,a,b,c,d) (p)->lpVtbl->CreateCryptoSession(p,a,b,c,d)
2670
#else
2671
#define IDirect3DDevice9Video_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2672
#define IDirect3DDevice9Video_AddRef(p) (p)->AddRef()
2673
#define IDirect3DDevice9Video_Release(p) (p)->Release()
2674
#define IDirect3DDevice9Video_GetContentProtectionCaps(p,a,b,c) (p)->GetContentProtectionCaps(a,b,c)
2675
#define IDirect3DDevice9Video_CreateAuthenticatedChannel(p,a,b,c) (p)->CreateAuthenticatedChannel(a,b,c)
2676
#define IDirect3DDevice9Video_CreateCryptoSession(p,a,b,c,d) (p)->CreateCryptoSession(a,b,c,d)
2677
#endif
2678
 
2679
 
2680
 
2681
 
2682
#undef INTERFACE
2683
#define INTERFACE IDirect3DAuthenticatedChannel9
2684
 
2685
DECLARE_INTERFACE_(IDirect3DAuthenticatedChannel9, IUnknown)
2686
{
2687
    /*** IUnknown methods ***/
2688
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2689
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2690
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2691
 
2692
    /*** IDirect3DAuthenticatedChannel9 methods ***/
2693
    STDMETHOD(GetCertificateSize)(THIS_ UINT* pCertificateSize) PURE;
2694
    STDMETHOD(GetCertificate)(THIS_ UINT CertifacteSize,BYTE* ppCertificate) PURE;
2695
    STDMETHOD(NegotiateKeyExchange)(THIS_ UINT DataSize,VOID* pData) PURE;
2696
    STDMETHOD(Query)(THIS_ UINT InputSize,CONST VOID* pInput,UINT OutputSize,VOID* pOutput) PURE;
2697
    STDMETHOD(Configure)(THIS_ UINT InputSize,CONST VOID* pInput,D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT* pOutput) PURE;
2698
};
2699
 
2700
typedef struct IDirect3DAuthenticatedChannel9 *LPDIRECT3DAUTHENTICATEDCHANNEL9, *PDIRECT3DAUTHENTICATEDCHANNEL9;
2701
 
2702
#if !defined(__cplusplus) || defined(CINTERFACE)
2703
#define IDirect3DAuthenticatedChannel9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2704
#define IDirect3DAuthenticatedChannel9_AddRef(p) (p)->lpVtbl->AddRef(p)
2705
#define IDirect3DAuthenticatedChannel9_Release(p) (p)->lpVtbl->Release(p)
2706
#define IDirect3DAuthenticatedChannel9_GetCertificateSize(p,a) (p)->lpVtbl->GetCertificateSize(p,a)
2707
#define IDirect3DAuthenticatedChannel9_GetCertificate(p,a,b) (p)->lpVtbl->GetCertificate(p,a,b)
2708
#define IDirect3DAuthenticatedChannel9_NegotiateKeyExchange(p,a,b) (p)->lpVtbl->NegotiateKeyExchange(p,a,b)
2709
#define IDirect3DAuthenticatedChannel9_Query(p,a,b,c,d) (p)->lpVtbl->Query(p,a,b,c,d)
2710
#define IDirect3DAuthenticatedChannel9_Configure(p,a,b,c) (p)->lpVtbl->Configure(p,a,b,c)
2711
#else
2712
#define IDirect3DAuthenticatedChannel9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2713
#define IDirect3DAuthenticatedChannel9_AddRef(p) (p)->AddRef()
2714
#define IDirect3DAuthenticatedChannel9_Release(p) (p)->Release()
2715
#define IDirect3DAuthenticatedChannel9_GetCertificateSize(p,a) (p)->GetCertificateSize(a)
2716
#define IDirect3DAuthenticatedChannel9_GetCertificate(p,a,b) (p)->GetCertificate(a,b)
2717
#define IDirect3DAuthenticatedChannel9_NegotiateKeyExchange(p,a,b) (p)->NegotiateKeyExchange(a,b)
2718
#define IDirect3DAuthenticatedChannel9_Query(p,a,b,c,d) (p)->Query(a,b,c,d)
2719
#define IDirect3DAuthenticatedChannel9_Configure(p,a,b,c) (p)->Configure(a,b,c)
2720
#endif
2721
 
2722
 
2723
 
2724
#undef INTERFACE
2725
#define INTERFACE IDirect3DCryptoSession9
2726
 
2727
DECLARE_INTERFACE_(IDirect3DCryptoSession9, IUnknown)
2728
{
2729
    /*** IUnknown methods ***/
2730
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
2731
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2732
    STDMETHOD_(ULONG,Release)(THIS) PURE;
2733
 
2734
    /*** IDirect3DCryptoSession9 methods ***/
2735
    STDMETHOD(GetCertificateSize)(THIS_ UINT* pCertificateSize) PURE;
2736
    STDMETHOD(GetCertificate)(THIS_ UINT CertifacteSize,BYTE* ppCertificate) PURE;
2737
    STDMETHOD(NegotiateKeyExchange)(THIS_ UINT DataSize,VOID* pData) PURE;
2738
    STDMETHOD(EncryptionBlt)(THIS_ IDirect3DSurface9* pSrcSurface,IDirect3DSurface9* pDstSurface,UINT DstSurfaceSize,VOID* pIV) PURE;
2739
    STDMETHOD(DecryptionBlt)(THIS_ IDirect3DSurface9* pSrcSurface,IDirect3DSurface9* pDstSurface,UINT SrcSurfaceSize,D3DENCRYPTED_BLOCK_INFO* pEncryptedBlockInfo,VOID* pContentKey,VOID* pIV) PURE;
2740
    STDMETHOD(GetSurfacePitch)(THIS_ IDirect3DSurface9* pSrcSurface,UINT* pSurfacePitch) PURE;
2741
    STDMETHOD(StartSessionKeyRefresh)(THIS_ VOID* pRandomNumber,UINT RandomNumberSize) PURE;
2742
    STDMETHOD(FinishSessionKeyRefresh)(THIS) PURE;
2743
    STDMETHOD(GetEncryptionBltKey)(THIS_ VOID* pReadbackKey,UINT KeySize) PURE;
2744
};
2745
 
2746
typedef struct IDirect3DCryptoSession9 *LPDIRECT3DCRYPTOSESSION9, *PDIRECT3DCRYPTOSESSION9;
2747
 
2748
#if !defined(__cplusplus) || defined(CINTERFACE)
2749
#define IDirect3DCryptoSession9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2750
#define IDirect3DCryptoSession9_AddRef(p) (p)->lpVtbl->AddRef(p)
2751
#define IDirect3DCryptoSession9_Release(p) (p)->lpVtbl->Release(p)
2752
#define IDirect3DCryptoSession9_GetCertificateSize(p,a) (p)->lpVtbl->GetCertificateSize(p,a)
2753
#define IDirect3DCryptoSession9_GetCertificate(p,a,b) (p)->lpVtbl->GetCertificate(p,a,b)
2754
#define IDirect3DCryptoSession9_NegotiateKeyExchange(p,a,b) (p)->lpVtbl->NegotiateKeyExchange(p,a,b)
2755
#define IDirect3DCryptoSession9_EncryptionBlt(p,a,b,c,d) (p)->lpVtbl->EncryptionBlt(p,a,b,c,d)
2756
#define IDirect3DCryptoSession9_DecryptionBlt(p,a,b,c,d,e,f) (p)->lpVtbl->DecryptionBlt(p,a,b,c,d,e,f)
2757
#define IDirect3DCryptoSession9_GetSurfacePitch(p,a,b) (p)->lpVtbl->GetSurfacePitch(p,a,b)
2758
#define IDirect3DCryptoSession9_StartSessionKeyRefresh(p,a,b) (p)->lpVtbl->StartSessionKeyRefresh(p,a,b)
2759
#define IDirect3DCryptoSession9_FinishSessionKeyRefresh(p) (p)->lpVtbl->FinishSessionKeyRefresh(p)
2760
#define IDirect3DCryptoSession9_GetEncryptionBltKey(p,a,b) (p)->lpVtbl->GetEncryptionBltKey(p,a,b)
2761
#else
2762
#define IDirect3DCryptoSession9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2763
#define IDirect3DCryptoSession9_AddRef(p) (p)->AddRef()
2764
#define IDirect3DCryptoSession9_Release(p) (p)->Release()
2765
#define IDirect3DCryptoSession9_GetCertificateSize(p,a) (p)->GetCertificateSize(a)
2766
#define IDirect3DCryptoSession9_GetCertificate(p,a,b) (p)->GetCertificate(a,b)
2767
#define IDirect3DCryptoSession9_NegotiateKeyExchange(p,a,b) (p)->NegotiateKeyExchange(a,b)
2768
#define IDirect3DCryptoSession9_EncryptionBlt(p,a,b,c,d) (p)->EncryptionBlt(a,b,c,d)
2769
#define IDirect3DCryptoSession9_DecryptionBlt(p,a,b,c,d,e,f) (p)->DecryptionBlt(a,b,c,d,e,f)
2770
#define IDirect3DCryptoSession9_GetSurfacePitch(p,a,b) (p)->GetSurfacePitch(a,b)
2771
#define IDirect3DCryptoSession9_StartSessionKeyRefresh(p,a,b) (p)->StartSessionKeyRefresh(a,b)
2772
#define IDirect3DCryptoSession9_FinishSessionKeyRefresh(p) (p)->FinishSessionKeyRefresh()
2773
#define IDirect3DCryptoSession9_GetEncryptionBltKey(p,a,b) (p)->GetEncryptionBltKey(a,b)
2774
#endif
2775
 
2776
 
2777
#ifdef __cplusplus
2778
};
2779
#endif
2780
 
2781
#endif /* (DIRECT3D_VERSION >= 0x0900) */
2782
#endif /* _D3D_H_ */
2783