ReactOS  0.4.14-dev-77-gd9e7c48
d3d9.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2003 Jason Edmeades
3  * Raphael Junqueira
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 #ifndef _D3D9_H_
21 #define _D3D9_H_
22 
23 #ifndef DIRECT3D_VERSION
24 #define DIRECT3D_VERSION 0x0900
25 #endif
26 
27 #include <stdlib.h>
28 
29 #define COM_NO_WINDOWS_H
30 #include <objbase.h>
31 
32 #ifndef __WINESRC__
33 # include <windows.h>
34 #endif
35 
36 #include <d3d9types.h>
37 #include <d3d9caps.h>
38 
39 /*****************************************************************************
40  * Behavior Flags for IDirect3D8::CreateDevice
41  */
42 #define D3DCREATE_FPU_PRESERVE 0x00000002L
43 #define D3DCREATE_MULTITHREADED 0x00000004L
44 #define D3DCREATE_PUREDEVICE 0x00000010L
45 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L
46 #define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L
47 #define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
48 #define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L
49 #define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200L
50 #define D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX 0x00000400L
51 #define D3DCREATE_NOWINDOWCHANGES 0x00000800L
52 #define D3DCREATE_DISABLE_PSGP_THREADING 0x00002000L
53 #define D3DCREATE_ENABLE_PRESENTSTATS 0x00004000L
54 #define D3DCREATE_DISABLE_PRINTSCREEN 0x00008000L
55 #define D3DCREATE_SCREENSAVER 0x10000000L
56 
57 /*****************************************************************************
58  * Flags for SetPrivateData
59  */
60 #define D3DSPD_IUNKNOWN 0x00000001L
61 
62 
63 /*****************************************************************************
64  * #defines and error codes
65  */
66 #define D3D_SDK_VERSION 32
67 #define D3DADAPTER_DEFAULT 0
68 #define D3DENUM_NO_WHQL_LEVEL 0x00000002L
69 #define D3DPRESENT_DONOTWAIT 1L
70 #define D3DPRESENT_LINEAR_CONTENT 2L
71 #define D3DPRESENT_BACK_BUFFERS_MAX 3L
72 #define D3DSGR_NO_CALIBRATION 0x00000000L
73 #define D3DSGR_CALIBRATE 0x00000001L
74 
75 #define _FACD3D 0x876
76 #define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
77 #define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )
78 
79 /*****************************************************************************
80  * Direct3D Errors
81  */
82 #define D3D_OK S_OK
83 #define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
84 #define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
85 #define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
86 #define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
87 #define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
88 #define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
89 #define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
90 #define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
91 #define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
92 #define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
93 #define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
94 #define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
95 #define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
96 #define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
97 #define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
98 #define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
99 #define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
100 #define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
101 #define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
102 #define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
103 #define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
104 #define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
105 #define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
106 
107 #define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
108 #define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
109 #define S_NOT_RESIDENT MAKE_D3DSTATUS(2165)
110 #define S_RESIDENT_IN_SHARED_MEMORY MAKE_D3DSTATUS(2166)
111 #define S_PRESENT_MODE_CHANGED MAKE_D3DSTATUS(2167)
112 #define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
113 #define D3DERR_UNSUPPORTEDOVERLAY MAKE_D3DHRESULT(2171)
114 #define D3DERR_UNSUPPORTEDOVERLAYFORMAT MAKE_D3DHRESULT(2172)
115 #define D3DERR_CANNOTPROTECTCONTENT MAKE_D3DHRESULT(2173)
116 #define D3DERR_UNSUPPORTEDCRYPTO MAKE_D3DHRESULT(2174)
117 #define D3DERR_PRESENT_STATISTICS_DISJOINT MAKE_D3DHRESULT(2180)
118 
119 
120 /*****************************************************************************
121  * Predeclare the interfaces
122  */
123 DEFINE_GUID(IID_IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
124 typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
125 
126 DEFINE_GUID(IID_IDirect3D9Ex, 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
127 typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX;
128 
129 DEFINE_GUID(IID_IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
130 typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9;
131 
132 DEFINE_GUID(IID_IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
133 typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;
134 
135 DEFINE_GUID(IID_IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
136 typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
137 
138 DEFINE_GUID(IID_IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
139 typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
140 
141 DEFINE_GUID(IID_IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
142 typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
143 
144 DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
145 typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
146 
147 DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
148 typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
149 
150 DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
151 typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
152 
153 DEFINE_GUID(IID_IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
154 typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
155 
156 DEFINE_GUID(IID_IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
157 typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
158 
159 DEFINE_GUID(IID_IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
160 typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
161 
162 DEFINE_GUID(IID_IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
163 typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
164 
165 DEFINE_GUID(IID_IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
166 typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
167 
168 DEFINE_GUID(IID_IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
169 typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9;
170 
171 DEFINE_GUID(IID_IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
172 typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9;
173 
174 DEFINE_GUID(IID_IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
175 typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9;
176 
177 DEFINE_GUID(IID_IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
178 typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9;
179 
180 DEFINE_GUID(IID_IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
181 typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
182 
183 /*****************************************************************************
184  * IDirect3D9 interface
185  */
186 #undef INTERFACE
187 #define INTERFACE IDirect3D9
189 {
190  /*** IUnknown methods ***/
194  /*** IDirect3D9 methods ***/
195  STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
196  STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
197  STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
198  STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
199  STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
200  STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
201  STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
203  STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
204  STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
208  STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
209 };
210 #undef INTERFACE
211 
212 #ifdef __CRT_UUID_DECL
213 __CRT_UUID_DECL(IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
214 #endif
215 
216 #if !defined(__cplusplus) || defined(CINTERFACE)
217 /*** IUnknown methods ***/
218 #define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
219 #define IDirect3D9_AddRef(p) (p)->lpVtbl->AddRef(p)
220 #define IDirect3D9_Release(p) (p)->lpVtbl->Release(p)
221 /*** IDirect3D9 methods ***/
222 #define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
223 #define IDirect3D9_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
224 #define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
225 #define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
226 #define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
227 #define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
228 #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
229 #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
230 #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
231 #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
232 #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
233 #define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
234 #define IDirect3D9_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
235 #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
236 #else
237 /*** IUnknown methods ***/
238 #define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
239 #define IDirect3D9_AddRef(p) (p)->AddRef()
240 #define IDirect3D9_Release(p) (p)->Release()
241 /*** IDirect3D9 methods ***/
242 #define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
243 #define IDirect3D9_GetAdapterCount(p) (p)->GetAdapterCount()
244 #define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
245 #define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
246 #define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
247 #define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
248 #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
249 #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
250 #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
251 #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
252 #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
253 #define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
254 #define IDirect3D9_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
255 #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
256 #endif
257 
258 /*****************************************************************************
259  * IDirect3D9Ex interface
260  */
261 #define INTERFACE IDirect3D9Ex
262 DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
263 {
264  /*** IUnknown methods ***/
268  /*** IDirect3D9 methods ***/
269 
270  /* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that
271  * the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's
272  * d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9.
273  * This is probably because even in MS header IDirect3D9Ex inherits from IDirect3D9, which makes the
274  * C++ interface compatible, and nobody uses the C interface in Windows world.
275  */
276  STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
277 
278  STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
279  STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
280  STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
281  STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
282  STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
283  STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
285  STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
286  STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
290  STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
291  /*** IDirect3D9Ex methods ***/
292  STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter) PURE;
293  STDMETHOD(EnumAdapterModesEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter,
294  UINT mode_idx, D3DDISPLAYMODEEX *mode) PURE;
295  STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
296  STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
297  STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
298 };
299 #undef INTERFACE
300 
301 #ifdef __CRT_UUID_DECL
302 __CRT_UUID_DECL(IDirect3D9Ex, 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
303 #endif
304 
305 #if !defined(__cplusplus) || defined(CINTERFACE)
306 /*** IUnknown methods ***/
307 #define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
308 #define IDirect3D9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
309 #define IDirect3D9Ex_Release(p) (p)->lpVtbl->Release(p)
310 /*** IDirect3D9 methods ***/
311 #define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
312 #define IDirect3D9Ex_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
313 #define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
314 #define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
315 #define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
316 #define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
317 #define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
318 #define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
319 #define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
320 #define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
321 #define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
322 #define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
323 #define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
324 #define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
325 /*** IDirect3D9Ex methods ***/
326 #define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->lpVtbl->GetAdapterModeCountEx(p,a,b)
327 #define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d)
328 #define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c)
329 #define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g)
330 #define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->lpVtbl->GetAdapterLUID(p,a,b)
331 #else
332 /*** IUnknown methods ***/
333 #define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
334 #define IDirect3D9Ex_AddRef(p) (p)->AddRef()
335 #define IDirect3D9Ex_Release(p) (p)->Release()
336 /*** IDirect3D9 methods ***/
337 #define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
338 #define IDirect3D9Ex_GetAdapterCount(p) (p)->GetAdapterCount()
339 #define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
340 #define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
341 #define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
342 #define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
343 #define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
344 #define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
345 #define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
346 #define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
347 #define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
348 #define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
349 #define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
350 #define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
351 #endif
352 
353 /*****************************************************************************
354  * IDirect3DVolume9 interface
355  */
356 #define INTERFACE IDirect3DVolume9
357 DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
358 {
359  /*** IUnknown methods ***/
363  /*** IDirect3DVolume9 methods ***/
364  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
365  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
366  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
367  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
368  STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
369  STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
370  STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
371  STDMETHOD(UnlockBox)(THIS) PURE;
372 };
373 #undef INTERFACE
374 
375 #ifdef __CRT_UUID_DECL
376 __CRT_UUID_DECL(IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
377 #endif
378 
379 #if !defined(__cplusplus) || defined(CINTERFACE)
380 /*** IUnknown methods ***/
381 #define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
382 #define IDirect3DVolume9_AddRef(p) (p)->lpVtbl->AddRef(p)
383 #define IDirect3DVolume9_Release(p) (p)->lpVtbl->Release(p)
384 /*** IDirect3DVolume9 methods ***/
385 #define IDirect3DVolume9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
386 #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
387 #define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
388 #define IDirect3DVolume9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
389 #define IDirect3DVolume9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
390 #define IDirect3DVolume9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
391 #define IDirect3DVolume9_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
392 #define IDirect3DVolume9_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
393 #else
394 /*** IUnknown methods ***/
395 #define IDirect3DVolume9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
396 #define IDirect3DVolume9_AddRef(p) (p)->AddRef()
397 #define IDirect3DVolume9_Release(p) (p)->Release()
398 /*** IDirect3DVolume9 methods ***/
399 #define IDirect3DVolume9_GetDevice(p,a) (p)->GetDevice(a)
400 #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
401 #define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
402 #define IDirect3DVolume9_FreePrivateData(p,a) (p)->FreePrivateData(a)
403 #define IDirect3DVolume9_GetContainer(p,a,b) (p)->GetContainer(a,b)
404 #define IDirect3DVolume9_GetDesc(p,a) (p)->GetDesc(a)
405 #define IDirect3DVolume9_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
406 #define IDirect3DVolume9_UnlockBox(p) (p)->UnlockBox()
407 #endif
408 
409 /*****************************************************************************
410  * IDirect3DSwapChain9 interface
411  */
412 #define INTERFACE IDirect3DSwapChain9
413 DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
414 {
415  /*** IUnknown methods ***/
419  /*** IDirect3DSwapChain9 methods ***/
420  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
421  const RGNDATA *dirty_region, DWORD flags) PURE;
422  STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
423  STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
424  STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
425  STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE *pMode) PURE;
426  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **ppDevice) PURE;
427  STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters) PURE;
428 };
429 #undef INTERFACE
430 
431 #ifdef __CRT_UUID_DECL
432 __CRT_UUID_DECL(IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
433 #endif
434 
435 #if !defined(__cplusplus) || defined(CINTERFACE)
436 /*** IUnknown methods ***/
437 #define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
438 #define IDirect3DSwapChain9_AddRef(p) (p)->lpVtbl->AddRef(p)
439 #define IDirect3DSwapChain9_Release(p) (p)->lpVtbl->Release(p)
440 /*** IDirect3DSwapChain9 methods ***/
441 #define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
442 #define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
443 #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
444 #define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
445 #define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
446 #define IDirect3DSwapChain9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
447 #define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
448 #else
449 /*** IUnknown methods ***/
450 #define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
451 #define IDirect3DSwapChain9_AddRef(p) (p)->AddRef()
452 #define IDirect3DSwapChain9_Release(p) (p)->Release()
453 /*** IDirect3DSwapChain9 methods ***/
454 #define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
455 #define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
456 #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
457 #define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
458 #define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
459 #define IDirect3DSwapChain9_GetDevice(p,a) (p)->GetDevice(a)
460 #define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
461 #endif
462 
463 /*****************************************************************************
464  * IDirect3DSwapChain9Ex interface
465  */
466 #define INTERFACE IDirect3DSwapChain9Ex
467 DECLARE_INTERFACE_(IDirect3DSwapChain9Ex,IDirect3DSwapChain9)
468 {
469  /*** IUnknown methods ***/
473  /*** IDirect3DSwapChain9 methods ***/
474  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
475  const RGNDATA *dirty_region, DWORD flags) PURE;
476  STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
477  STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
478  STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
479  STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE *pMode) PURE;
480  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **ppDevice) PURE;
481  STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters) PURE;
482  /*** IDirect3DSwapChain9Ex methods ***/
483  STDMETHOD(GetLastPresentCount)(THIS_ UINT *pLastPresentCount) PURE;
484  STDMETHOD(GetPresentStats)(THIS_ D3DPRESENTSTATS *pPresentationStatistics) PURE;
485  STDMETHOD(GetDisplayModeEx)(THIS_ D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE;
486 };
487 #undef INTERFACE
488 
489 #ifdef __CRT_UUID_DECL
490 __CRT_UUID_DECL(IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
491 #endif
492 
493 #if !defined(__cplusplus) || defined(CINTERFACE)
494 /*** IUnknown methods ***/
495 #define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
496 #define IDirect3DSwapChain9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
497 #define IDirect3DSwapChain9Ex_Release(p) (p)->lpVtbl->Release(p)
498 /*** IDirect3DSwapChain9 methods ***/
499 #define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
500 #define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
501 #define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
502 #define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
503 #define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
504 #define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
505 #define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
506 /*** IDirect3DSwapChain9Ex methods ***/
507 #define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->lpVtbl->GetLastPresentCount(p,a)
508 #define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->lpVtbl->GetPresentStats(p,a)
509 #define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->lpVtbl->GetDisplayModeEx(p,a,b)
510 #else
511 /*** IUnknown methods ***/
512 #define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
513 #define IDirect3DSwapChain9Ex_AddRef(p) (p)->AddRef()
514 #define IDirect3DSwapChain9Ex_Release(p) (p)->Release()
515 /*** IDirect3DSwapChain9 methods ***/
516 #define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
517 #define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
518 #define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
519 #define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
520 #define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
521 #define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->GetDevice(a)
522 #define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
523 /*** IDirect3DSwapChain9Ex methods ***/
524 #define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->GetLastPresentCount(a)
525 #define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->GetPresentStats(a)
526 #define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->GetDisplayModeEx(a,b)
527 #endif
528 
529 /*****************************************************************************
530  * IDirect3DResource9 interface
531  */
532 #define INTERFACE IDirect3DResource9
533 DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
534 {
535  /*** IUnknown methods ***/
539  /*** IDirect3DResource9 methods ***/
540  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
541  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
542  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
543  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
544  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
545  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
546  STDMETHOD_(void, PreLoad)(THIS) PURE;
548 };
549 #undef INTERFACE
550 
551 #ifdef __CRT_UUID_DECL
552 __CRT_UUID_DECL(IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
553 #endif
554 
555 #if !defined(__cplusplus) || defined(CINTERFACE)
556 /*** IUnknown methods ***/
557 #define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
558 #define IDirect3DResource9_AddRef(p) (p)->lpVtbl->AddRef(p)
559 #define IDirect3DResource9_Release(p) (p)->lpVtbl->Release(p)
560 /*** IDirect3DResource9 methods ***/
561 #define IDirect3DResource9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
562 #define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
563 #define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
564 #define IDirect3DResource9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
565 #define IDirect3DResource9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
566 #define IDirect3DResource9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
567 #define IDirect3DResource9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
568 #define IDirect3DResource9_GetType(p) (p)->lpVtbl->GetType(p)
569 #else
570 /*** IUnknown methods ***/
571 #define IDirect3DResource9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
572 #define IDirect3DResource9_AddRef(p) (p)->AddRef()
573 #define IDirect3DResource9_Release(p) (p)->Release()
574 /*** IDirect3DResource9 methods ***/
575 #define IDirect3DResource9_GetDevice(p,a) (p)->GetDevice(a)
576 #define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
577 #define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
578 #define IDirect3DResource9_FreePrivateData(p,a) (p)->FreePrivateData(a)
579 #define IDirect3DResource9_SetPriority(p,a) (p)->SetPriority(a)
580 #define IDirect3DResource9_GetPriority(p) (p)->GetPriority()
581 #define IDirect3DResource9_PreLoad(p) (p)->PreLoad()
582 #define IDirect3DResource9_GetType(p) (p)->GetType()
583 #endif
584 
585 /*****************************************************************************
586  * IDirect3DSurface9 interface
587  */
588 #define INTERFACE IDirect3DSurface9
589 DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
590 {
591  /*** IUnknown methods ***/
595  /*** IDirect3DResource9 methods ***/
596  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
597  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
598  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
599  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
600  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
601  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
602  STDMETHOD_(void, PreLoad)(THIS) PURE;
604  /*** IDirect3DSurface9 methods ***/
605  STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
606  STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
607  STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
608  STDMETHOD(UnlockRect)(THIS) PURE;
609  STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
611 };
612 #undef INTERFACE
613 
614 #ifdef __CRT_UUID_DECL
615 __CRT_UUID_DECL(IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
616 #endif
617 
618 #if !defined(__cplusplus) || defined(CINTERFACE)
619 /*** IUnknown methods ***/
620 #define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
621 #define IDirect3DSurface9_AddRef(p) (p)->lpVtbl->AddRef(p)
622 #define IDirect3DSurface9_Release(p) (p)->lpVtbl->Release(p)
623 /*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
624 #define IDirect3DSurface9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
625 #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
626 #define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
627 #define IDirect3DSurface9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
628 #define IDirect3DSurface9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
629 #define IDirect3DSurface9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
630 #define IDirect3DSurface9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
631 #define IDirect3DSurface9_GetType(p) (p)->lpVtbl->GetType(p)
632 /*** IDirect3DSurface9 methods ***/
633 #define IDirect3DSurface9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
634 #define IDirect3DSurface9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
635 #define IDirect3DSurface9_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
636 #define IDirect3DSurface9_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
637 #define IDirect3DSurface9_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
638 #define IDirect3DSurface9_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
639 #else
640 /*** IUnknown methods ***/
641 #define IDirect3DSurface9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
642 #define IDirect3DSurface9_AddRef(p) (p)->AddRef()
643 #define IDirect3DSurface9_Release(p) (p)->Release()
644 /*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
645 #define IDirect3DSurface9_GetDevice(p,a) (p)->GetDevice(a)
646 #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
647 #define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
648 #define IDirect3DSurface9_FreePrivateData(p,a) (p)->FreePrivateData(a)
649 #define IDirect3DSurface9_SetPriority(p,a) (p)->SetPriority(a)
650 #define IDirect3DSurface9_GetPriority(p) (p)->GetPriority()
651 #define IDirect3DSurface9_PreLoad(p) (p)->PreLoad()
652 #define IDirect3DSurface9_GetType(p) (p)->GetType()
653 /*** IDirect3DSurface9 methods ***/
654 #define IDirect3DSurface9_GetContainer(p,a,b) (p)->GetContainer(a,b)
655 #define IDirect3DSurface9_GetDesc(p,a) (p)->GetDesc(a)
656 #define IDirect3DSurface9_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
657 #define IDirect3DSurface9_UnlockRect(p) (p)->UnlockRect()
658 #define IDirect3DSurface9_GetDC(p,a) (p)->GetDC(a)
659 #define IDirect3DSurface9_ReleaseDC(p,a) (p)->ReleaseDC(a)
660 #endif
661 
662 /*****************************************************************************
663  * IDirect3DVertexBuffer9 interface
664  */
665 #define INTERFACE IDirect3DVertexBuffer9
666 DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
667 {
668  /*** IUnknown methods ***/
672  /*** IDirect3DResource9 methods ***/
673  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
674  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
675  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
676  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
677  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
678  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
679  STDMETHOD_(void, PreLoad)(THIS) PURE;
681  /*** IDirect3DVertexBuffer9 methods ***/
682  STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
684  STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE;
685 };
686 #undef INTERFACE
687 
688 #ifdef __CRT_UUID_DECL
689 __CRT_UUID_DECL(IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
690 #endif
691 
692 #if !defined(__cplusplus) || defined(CINTERFACE)
693 /*** IUnknown methods ***/
694 #define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
695 #define IDirect3DVertexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
696 #define IDirect3DVertexBuffer9_Release(p) (p)->lpVtbl->Release(p)
697 /*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
698 #define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
699 #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
700 #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
701 #define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
702 #define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
703 #define IDirect3DVertexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
704 #define IDirect3DVertexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
705 #define IDirect3DVertexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
706 /*** IDirect3DVertexBuffer9 methods ***/
707 #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
708 #define IDirect3DVertexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
709 #define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
710 #else
711 /*** IUnknown methods ***/
712 #define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
713 #define IDirect3DVertexBuffer9_AddRef(p) (p)->AddRef()
714 #define IDirect3DVertexBuffer9_Release(p) (p)->Release()
715 /*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
716 #define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
717 #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
718 #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
719 #define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
720 #define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
721 #define IDirect3DVertexBuffer9_GetPriority(p) (p)->GetPriority()
722 #define IDirect3DVertexBuffer9_PreLoad(p) (p)->PreLoad()
723 #define IDirect3DVertexBuffer9_GetType(p) (p)->GetType()
724 /*** IDirect3DVertexBuffer9 methods ***/
725 #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
726 #define IDirect3DVertexBuffer9_Unlock(p) (p)->Unlock()
727 #define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
728 #endif
729 
730 /*****************************************************************************
731  * IDirect3DIndexBuffer9 interface
732  */
733 #define INTERFACE IDirect3DIndexBuffer9
734 DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
735 {
736  /*** IUnknown methods ***/
740  /*** IDirect3DResource9 methods ***/
741  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
742  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
743  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
744  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
745  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
746  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
747  STDMETHOD_(void, PreLoad)(THIS) PURE;
749  /*** IDirect3DIndexBuffer9 methods ***/
750  STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
752  STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE;
753 };
754 #undef INTERFACE
755 
756 #ifdef __CRT_UUID_DECL
757 __CRT_UUID_DECL(IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
758 #endif
759 
760 #if !defined(__cplusplus) || defined(CINTERFACE)
761 /*** IUnknown methods ***/
762 #define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
763 #define IDirect3DIndexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
764 #define IDirect3DIndexBuffer9_Release(p) (p)->lpVtbl->Release(p)
765 /*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
766 #define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
767 #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
768 #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
769 #define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
770 #define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
771 #define IDirect3DIndexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
772 #define IDirect3DIndexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
773 #define IDirect3DIndexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
774 /*** IDirect3DIndexBuffer9 methods ***/
775 #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
776 #define IDirect3DIndexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
777 #define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
778 #else
779 /*** IUnknown methods ***/
780 #define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
781 #define IDirect3DIndexBuffer9_AddRef(p) (p)->AddRef()
782 #define IDirect3DIndexBuffer9_Release(p) (p)->Release()
783 /*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
784 #define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
785 #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
786 #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
787 #define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
788 #define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
789 #define IDirect3DIndexBuffer9_GetPriority(p) (p)->GetPriority()
790 #define IDirect3DIndexBuffer9_PreLoad(p) (p)->PreLoad()
791 #define IDirect3DIndexBuffer9_GetType(p) (p)->GetType()
792 /*** IDirect3DIndexBuffer9 methods ***/
793 #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
794 #define IDirect3DIndexBuffer9_Unlock(p) (p)->Unlock()
795 #define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
796 #endif
797 
798 /*****************************************************************************
799  * IDirect3DBaseTexture9 interface
800  */
801 #define INTERFACE IDirect3DBaseTexture9
802 DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
803 {
804  /*** IUnknown methods ***/
808  /*** IDirect3DResource9 methods ***/
809  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
810  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
811  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
812  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
813  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
814  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
815  STDMETHOD_(void, PreLoad)(THIS) PURE;
817  /*** IDirect3DBaseTexture9 methods ***/
818  STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
819  STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
820  STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
821  STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
822  STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
823  STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
824 };
825 #undef INTERFACE
826 
827 #ifdef __CRT_UUID_DECL
828 __CRT_UUID_DECL(IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
829 #endif
830 
831 #if !defined(__cplusplus) || defined(CINTERFACE)
832 /*** IUnknown methods ***/
833 #define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
834 #define IDirect3DBaseTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
835 #define IDirect3DBaseTexture9_Release(p) (p)->lpVtbl->Release(p)
836 /*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
837 #define IDirect3DBaseTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
838 #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
839 #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
840 #define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
841 #define IDirect3DBaseTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
842 #define IDirect3DBaseTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
843 #define IDirect3DBaseTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
844 #define IDirect3DBaseTexture9_GetType(p) (p)->lpVtbl->GetType(p)
845 /*** IDirect3DBaseTexture9 methods ***/
846 #define IDirect3DBaseTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
847 #define IDirect3DBaseTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
848 #define IDirect3DBaseTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
849 #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
850 #define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
851 #define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
852 #else
853 /*** IUnknown methods ***/
854 #define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
855 #define IDirect3DBaseTexture9_AddRef(p) (p)->AddRef()
856 #define IDirect3DBaseTexture9_Release(p) (p)->Release()
857 /*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
858 #define IDirect3DBaseTexture9_GetDevice(p,a) (p)->GetDevice(a)
859 #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
860 #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
861 #define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
862 #define IDirect3DBaseTexture9_SetPriority(p,a) (p)->SetPriority(a)
863 #define IDirect3DBaseTexture9_GetPriority(p) (p)->GetPriority()
864 #define IDirect3DBaseTexture9_PreLoad(p) (p)->PreLoad()
865 #define IDirect3DBaseTexture9_GetType(p) (p)->GetType()
866 /*** IDirect3DBaseTexture9 methods ***/
867 #define IDirect3DBaseTexture9_SetLOD(p,a) (p)->SetLOD(a)
868 #define IDirect3DBaseTexture9_GetLOD(p) (p)->GetLOD()
869 #define IDirect3DBaseTexture9_GetLevelCount(p) (p)->GetLevelCount()
870 #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
871 #define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
872 #define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
873 #endif
874 
875 /*****************************************************************************
876  * IDirect3DCubeTexture9 interface
877  */
878 #define INTERFACE IDirect3DCubeTexture9
879 DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
880 {
881  /*** IUnknown methods ***/
885  /*** IDirect3DResource9 methods ***/
886  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
887  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
888  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
889  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
890  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
891  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
892  STDMETHOD_(void, PreLoad)(THIS) PURE;
894  /*** IDirect3DBaseTexture9 methods ***/
895  STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
896  STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
897  STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
898  STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
899  STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
900  STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
901  /*** IDirect3DCubeTexture9 methods ***/
902  STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
903  STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
905  D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
906  STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
907  STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
908 };
909 #undef INTERFACE
910 
911 #ifdef __CRT_UUID_DECL
912 __CRT_UUID_DECL(IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
913 #endif
914 
915 #if !defined(__cplusplus) || defined(CINTERFACE)
916 /*** IUnknown methods ***/
917 #define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
918 #define IDirect3DCubeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
919 #define IDirect3DCubeTexture9_Release(p) (p)->lpVtbl->Release(p)
920 /*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
921 #define IDirect3DCubeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
922 #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
923 #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
924 #define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
925 #define IDirect3DCubeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
926 #define IDirect3DCubeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
927 #define IDirect3DCubeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
928 #define IDirect3DCubeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
929 /*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
930 #define IDirect3DCubeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
931 #define IDirect3DCubeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
932 #define IDirect3DCubeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
933 #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
934 #define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
935 #define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
936 /*** IDirect3DCubeTexture9 methods ***/
937 #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
938 #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
939 #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
940 #define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
941 #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
942 #else
943 /*** IUnknown methods ***/
944 #define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
945 #define IDirect3DCubeTexture9_AddRef(p) (p)->AddRef()
946 #define IDirect3DCubeTexture9_Release(p) (p)->Release()
947 /*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
948 #define IDirect3DCubeTexture9_GetDevice(p,a) (p)->GetDevice(a)
949 #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
950 #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
951 #define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
952 #define IDirect3DCubeTexture9_SetPriority(p,a) (p)->SetPriority(a)
953 #define IDirect3DCubeTexture9_GetPriority(p) (p)->GetPriority()
954 #define IDirect3DCubeTexture9_PreLoad(p) (p)->PreLoad()
955 #define IDirect3DCubeTexture9_GetType(p) (p)->GetType()
956 /*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
957 #define IDirect3DCubeTexture9_SetLOD(p,a) (p)->SetLOD(a)
958 #define IDirect3DCubeTexture9_GetLOD(p) (p)->GetLOD()
959 #define IDirect3DCubeTexture9_GetLevelCount(p) (p)->GetLevelCount()
960 #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
961 #define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
962 #define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
963 /*** IDirect3DCubeTexture9 methods ***/
964 #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
965 #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
966 #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
967 #define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
968 #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
969 #endif
970 
971 /*****************************************************************************
972  * IDirect3DTexture9 interface
973  */
974 #define INTERFACE IDirect3DTexture9
975 DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
976 {
977  /*** IUnknown methods ***/
981  /*** IDirect3DResource9 methods ***/
982  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
983  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
984  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
985  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
986  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
987  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
988  STDMETHOD_(void, PreLoad)(THIS) PURE;
990  /*** IDirect3DBaseTexture9 methods ***/
991  STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
992  STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
993  STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
994  STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
995  STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
996  STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
997  /*** IDirect3DTexture9 methods ***/
998  STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
999  STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
1000  STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
1001  STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
1002  STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
1003 };
1004 #undef INTERFACE
1005 
1006 #ifdef __CRT_UUID_DECL
1007 __CRT_UUID_DECL(IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
1008 #endif
1009 
1010 #if !defined(__cplusplus) || defined(CINTERFACE)
1011 /*** IUnknown methods ***/
1012 #define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1013 #define IDirect3DTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1014 #define IDirect3DTexture9_Release(p) (p)->lpVtbl->Release(p)
1015 /*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
1016 #define IDirect3DTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1017 #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1018 #define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1019 #define IDirect3DTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1020 #define IDirect3DTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1021 #define IDirect3DTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1022 #define IDirect3DTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1023 #define IDirect3DTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1024 /*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
1025 #define IDirect3DTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1026 #define IDirect3DTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1027 #define IDirect3DTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1028 #define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1029 #define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1030 #define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1031 /*** IDirect3DTexture9 methods ***/
1032 #define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
1033 #define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
1034 #define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
1035 #define IDirect3DTexture9_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
1036 #define IDirect3DTexture9_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
1037 #else
1038 /*** IUnknown methods ***/
1039 #define IDirect3DTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1040 #define IDirect3DTexture9_AddRef(p) (p)->AddRef()
1041 #define IDirect3DTexture9_Release(p) (p)->Release()
1042 /*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
1043 #define IDirect3DTexture9_GetDevice(p,a) (p)->GetDevice(a)
1044 #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1045 #define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1046 #define IDirect3DTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1047 #define IDirect3DTexture9_SetPriority(p,a) (p)->SetPriority(a)
1048 #define IDirect3DTexture9_GetPriority(p) (p)->GetPriority()
1049 #define IDirect3DTexture9_PreLoad(p) (p)->PreLoad()
1050 #define IDirect3DTexture9_GetType(p) (p)->GetType()
1051 /*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
1052 #define IDirect3DTexture9_SetLOD(p,a) (p)->SetLOD(a)
1053 #define IDirect3DTexture9_GetLOD(p) (p)->GetLOD()
1054 #define IDirect3DTexture9_GetLevelCount(p) (p)->GetLevelCount()
1055 #define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1056 #define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1057 #define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1058 /*** IDirect3DTexture9 methods ***/
1059 #define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
1060 #define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
1061 #define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
1062 #define IDirect3DTexture9_UnlockRect(p,a) (p)->UnlockRect(a)
1063 #define IDirect3DTexture9_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
1064 #endif
1065 
1066 /*****************************************************************************
1067  * IDirect3DVolumeTexture9 interface
1068  */
1069 #define INTERFACE IDirect3DVolumeTexture9
1070 DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
1071 {
1072  /*** IUnknown methods ***/
1076  /*** IDirect3DResource9 methods ***/
1077  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1078  STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
1079  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
1080  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
1081  STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
1082  STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
1083  STDMETHOD_(void, PreLoad)(THIS) PURE;
1085  /*** IDirect3DBaseTexture9 methods ***/
1086  STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
1087  STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
1088  STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
1089  STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
1090  STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
1091  STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
1092  /*** IDirect3DVolumeTexture9 methods ***/
1093  STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
1094  STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
1095  STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
1096  STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
1097  STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
1098 };
1099 #undef INTERFACE
1100 
1101 #ifdef __CRT_UUID_DECL
1102 __CRT_UUID_DECL(IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
1103 #endif
1104 
1105 #if !defined(__cplusplus) || defined(CINTERFACE)
1106 /*** IUnknown methods ***/
1107 #define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1108 #define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
1109 #define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
1110 /*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
1111 #define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1112 #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
1113 #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
1114 #define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
1115 #define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
1116 #define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
1117 #define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
1118 #define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
1119 /*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
1120 #define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
1121 #define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
1122 #define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
1123 #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
1124 #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
1125 #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
1126 /*** IDirect3DVolumeTexture9 methods ***/
1127 #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
1128 #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
1129 #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
1130 #define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
1131 #define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
1132 #else
1133 /*** IUnknown methods ***/
1134 #define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1135 #define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
1136 #define IDirect3DVolumeTexture9_Release(p) (p)->Release()
1137 /*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
1138 #define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
1139 #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
1140 #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
1141 #define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
1142 #define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
1143 #define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
1144 #define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
1145 #define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
1146 /*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
1147 #define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
1148 #define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
1149 #define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
1150 #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
1151 #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
1152 #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
1153 /*** IDirect3DVolumeTexture9 methods ***/
1154 #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
1155 #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
1156 #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
1157 #define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
1158 #define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
1159 #endif
1160 
1161 /*****************************************************************************
1162  * IDirect3DVertexDeclaration9 interface
1163  */
1164 #define INTERFACE IDirect3DVertexDeclaration9
1165 DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
1166 {
1167  /*** IUnknown methods ***/
1171  /*** IDirect3DVertexDeclaration9 methods ***/
1172  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1173  STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE;
1174 };
1175 #undef INTERFACE
1176 
1177 #ifdef __CRT_UUID_DECL
1178 __CRT_UUID_DECL(IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
1179 #endif
1180 
1181 #if !defined(__cplusplus) || defined(CINTERFACE)
1182 /*** IUnknown methods ***/
1183 #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1184 #define IDirect3DVertexDeclaration9_AddRef(p) (p)->lpVtbl->AddRef(p)
1185 #define IDirect3DVertexDeclaration9_Release(p) (p)->lpVtbl->Release(p)
1186 /*** IDirect3DVertexShader9 methods ***/
1187 #define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1188 #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->lpVtbl->GetDeclaration(p,a,b)
1189 #else
1190 /*** IUnknown methods ***/
1191 #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1192 #define IDirect3DVertexDeclaration9_AddRef(p) (p)->AddRef()
1193 #define IDirect3DVertexDeclaration9_Release(p) (p)->Release()
1194 /*** IDirect3DVertexShader9 methods ***/
1195 #define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->GetDevice(a)
1196 #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->GetDeclaration(a,b)
1197 #endif
1198 
1199 /*****************************************************************************
1200  * IDirect3DVertexShader9 interface
1201  */
1202 #define INTERFACE IDirect3DVertexShader9
1203 DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
1204 {
1205  /*** IUnknown methods ***/
1209  /*** IDirect3DVertexShader9 methods ***/
1210  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1211  STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
1212 };
1213 #undef INTERFACE
1214 
1215 #ifdef __CRT_UUID_DECL
1216 __CRT_UUID_DECL(IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
1217 #endif
1218 
1219 #if !defined(__cplusplus) || defined(CINTERFACE)
1220 /*** IUnknown methods ***/
1221 #define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1222 #define IDirect3DVertexShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
1223 #define IDirect3DVertexShader9_Release(p) (p)->lpVtbl->Release(p)
1224 /*** IDirect3DVertexShader9 methods ***/
1225 #define IDirect3DVertexShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1226 #define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
1227 #else
1228 /*** IUnknown methods ***/
1229 #define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1230 #define IDirect3DVertexShader9_AddRef(p) (p)->AddRef()
1231 #define IDirect3DVertexShader9_Release(p) (p)->Release()
1232 /*** IDirect3DVertexShader9 methods ***/
1233 #define IDirect3DVertexShader9_GetDevice(p,a) (p)->GetDevice(a)
1234 #define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
1235 #endif
1236 
1237 /*****************************************************************************
1238  * IDirect3DPixelShader9 interface
1239  */
1240 #define INTERFACE IDirect3DPixelShader9
1241 DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
1242 {
1243  /*** IUnknown methods ***/
1247  /*** IDirect3DPixelShader9 methods ***/
1248  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1249  STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
1250 };
1251 #undef INTERFACE
1252 
1253 #ifdef __CRT_UUID_DECL
1254 __CRT_UUID_DECL(IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
1255 #endif
1256 
1257 #if !defined(__cplusplus) || defined(CINTERFACE)
1258 /*** IUnknown methods ***/
1259 #define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1260 #define IDirect3DPixelShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
1261 #define IDirect3DPixelShader9_Release(p) (p)->lpVtbl->Release(p)
1262 /*** IDirect3DPixelShader9 methods ***/
1263 #define IDirect3DPixelShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1264 #define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
1265 #else
1266 /*** IUnknown methods ***/
1267 #define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1268 #define IDirect3DPixelShader9_AddRef(p) (p)->AddRef()
1269 #define IDirect3DPixelShader9_Release(p) (p)->Release()
1270 /*** IDirect3DPixelShader9 methods ***/
1271 #define IDirect3DPixelShader9_GetDevice(p,a) (p)->GetDevice(a)
1272 #define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
1273 #endif
1274 
1275 /*****************************************************************************
1276  * IDirect3DStateBlock9 interface
1277  */
1278 #define INTERFACE IDirect3DStateBlock9
1279 DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
1280 {
1281  /*** IUnknown methods ***/
1285  /*** IDirect3DStateBlock9 methods ***/
1286  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1287  STDMETHOD(Capture)(THIS) PURE;
1288  STDMETHOD(Apply)(THIS) PURE;
1289 };
1290 #undef INTERFACE
1291 
1292 #ifdef __CRT_UUID_DECL
1293 __CRT_UUID_DECL(IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
1294 #endif
1295 
1296 #if !defined(__cplusplus) || defined(CINTERFACE)
1297 /*** IUnknown methods ***/
1298 #define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1299 #define IDirect3DStateBlock9_AddRef(p) (p)->lpVtbl->AddRef(p)
1300 #define IDirect3DStateBlock9_Release(p) (p)->lpVtbl->Release(p)
1301 /*** IDirect3DStateBlock9 methods ***/
1302 #define IDirect3DStateBlock9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1303 #define IDirect3DStateBlock9_Capture(p) (p)->lpVtbl->Capture(p)
1304 #define IDirect3DStateBlock9_Apply(p) (p)->lpVtbl->Apply(p)
1305 #else
1306 /*** IUnknown methods ***/
1307 #define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1308 #define IDirect3DStateBlock9_AddRef(p) (p)->AddRef()
1309 #define IDirect3DStateBlock9_Release(p) (p)->Release()
1310 /*** IDirect3DStateBlock9 methods ***/
1311 #define IDirect3DStateBlock9_GetDevice(p,a) (p)->GetDevice(a)
1312 #define IDirect3DStateBlock9_Capture(p) (p)->Capture()
1313 #define IDirect3DStateBlock9_Apply(p) (p)->Apply()
1314 #endif
1315 
1316 /*****************************************************************************
1317  * IDirect3DQuery9 interface
1318  */
1319 #define INTERFACE IDirect3DQuery9
1321 {
1322  /*** IUnknown methods ***/
1326  /*** IDirect3DQuery9 methods ***/
1327  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
1329  STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
1330  STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
1331  STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
1332 };
1333 #undef INTERFACE
1334 
1335 #ifdef __CRT_UUID_DECL
1336 __CRT_UUID_DECL(IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
1337 #endif
1338 
1339 #if !defined(__cplusplus) || defined(CINTERFACE)
1340 /*** IUnknown methods ***/
1341 #define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1342 #define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
1343 #define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
1344 /*** IDirect3DQuery9 ***/
1345 #define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
1346 #define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
1347 #define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
1348 #define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
1349 #define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
1350 #else
1351 /*** IUnknown methods ***/
1352 #define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1353 #define IDirect3DQuery9_AddRef(p) (p)->AddRef()
1354 #define IDirect3DQuery9_Release(p) (p)->Release()
1355 /*** IDirect3DQuery9 ***/
1356 #define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
1357 #define IDirect3DQuery9_GetType(p) (p)->GetType()
1358 #define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
1359 #define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
1360 #define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
1361 #endif
1362 
1363 /*****************************************************************************
1364  * IDirect3DDevice9 interface
1365  */
1366 #define INTERFACE IDirect3DDevice9
1367 DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
1368 {
1369  /*** IUnknown methods ***/
1373  /*** IDirect3DDevice9 methods ***/
1374  STDMETHOD(TestCooperativeLevel)(THIS) PURE;
1375  STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
1376  STDMETHOD(EvictManagedResources)(THIS) PURE;
1377  STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
1379  STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
1380  STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
1381  STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
1382  STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
1384  STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
1385  STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
1386  STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
1387  STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
1388  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
1389  HWND dst_window_override, const RGNDATA *dirty_region) PURE;
1390  STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
1391  STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
1392  STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
1393  STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
1394  STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
1395  STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
1396  STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
1397  STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
1398  STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
1399  STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
1400  STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1401  STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1402  STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
1403  IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
1404  STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
1405  STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
1406  STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
1407  STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
1408  IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
1409  STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
1410  STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1411  STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
1412  STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
1413  STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
1414  STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
1415  STDMETHOD(BeginScene)(THIS) PURE;
1416  STDMETHOD(EndScene)(THIS) PURE;
1417  STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
1418  D3DCOLOR color, float z, DWORD stencil) PURE;
1421  STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
1422  STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
1423  STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
1424  STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
1425  STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
1426  STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
1427  STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
1428  STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
1429  STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
1430  STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
1431  STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
1433  STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
1434  STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
1435  STDMETHOD(BeginStateBlock)(THIS) PURE;
1436  STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
1437  STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
1438  STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
1439  STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
1440  STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
1441  STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
1442  STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
1443  STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
1444  STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
1445  STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
1446  STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
1447  STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
1448  STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
1449  STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
1450  STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
1451  STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
1452  STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
1453  STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
1454  STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
1455  STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
1456  STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
1457  STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
1458  STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
1459  UINT primitive_count, const void *data, UINT stride) PURE;
1460  STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
1461  UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
1462  STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
1463  STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
1464  IDirect3DVertexDeclaration9 **declaration) PURE;
1465  STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
1466  STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
1467  STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
1468  STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
1469  STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_code, IDirect3DVertexShader9 **shader) PURE;
1470  STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
1471  STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
1472  STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
1473  STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
1474  STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
1475  STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
1476  STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
1477  STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
1478  STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
1479  STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
1480  STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
1481  STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
1482  STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
1483  STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
1484  STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
1485  STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
1486  STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
1487  STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
1488  STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
1489  STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
1490  STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
1491  STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
1492  STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
1493  STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
1494  STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
1495  STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
1496  STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
1497 };
1498 #undef INTERFACE
1499 
1500 #ifdef __CRT_UUID_DECL
1501 __CRT_UUID_DECL(IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
1502 #endif
1503 
1504 #if !defined(__cplusplus) || defined(CINTERFACE)
1505 /*** IUnknown methods ***/
1506 #define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1507 #define IDirect3DDevice9_AddRef(p) (p)->lpVtbl->AddRef(p)
1508 #define IDirect3DDevice9_Release(p) (p)->lpVtbl->Release(p)
1509 /*** IDirect3DDevice9 methods ***/
1510 #define IDirect3DDevice9_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
1511 #define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
1512 #define IDirect3DDevice9_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
1513 #define IDirect3DDevice9_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
1514 #define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
1515 #define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
1516 #define IDirect3DDevice9_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
1517 #define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
1518 #define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
1519 #define IDirect3DDevice9_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
1520 #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
1521 #define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
1522 #define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
1523 #define IDirect3DDevice9_Reset(p,a) (p)->lpVtbl->Reset(p,a)
1524 #define IDirect3DDevice9_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
1525 #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
1526 #define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
1527 #define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
1528 #define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
1529 #define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
1530 #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
1531 #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)
1532 #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
1533 #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
1534 #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
1535 #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
1536 #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
1537 #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
1538 #define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
1539 #define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
1540 #define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
1541 #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
1542 #define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
1543 #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
1544 #define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
1545 #define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
1546 #define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
1547 #define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
1548 #define IDirect3DDevice9_BeginScene(p) (p)->lpVtbl->BeginScene(p)
1549 #define IDirect3DDevice9_EndScene(p) (p)->lpVtbl->EndScene(p)
1550 #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
1551 #define IDirect3DDevice9_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
1552 #define IDirect3DDevice9_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
1553 #define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
1554 #define IDirect3DDevice9_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
1555 #define IDirect3DDevice9_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
1556 #define IDirect3DDevice9_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1557 #define IDirect3DDevice9_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1558 #define IDirect3DDevice9_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
1559 #define IDirect3DDevice9_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
1560 #define IDirect3DDevice9_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
1561 #define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
1562 #define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
1563 #define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
1564 #define IDirect3DDevice9_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
1565 #define IDirect3DDevice9_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
1566 #define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
1567 #define IDirect3DDevice9_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
1568 #define IDirect3DDevice9_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
1569 #define IDirect3DDevice9_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
1570 #define IDirect3DDevice9_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
1571 #define IDirect3DDevice9_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
1572 #define IDirect3DDevice9_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
1573 #define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
1574 #define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
1575 #define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
1576 #define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
1577 #define IDirect3DDevice9_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
1578 #define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
1579 #define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
1580 #define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
1581 #define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
1582 #define IDirect3DDevice9_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
1583 #define IDirect3DDevice9_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
1584 #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
1585 #define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
1586 #define IDirect3DDevice9_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
1587 #define IDirect3DDevice9_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
1588 #define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
1589 #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
1590 #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
1591 #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
1592 #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
1593 #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
1594 #define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
1595 #define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
1596 #define IDirect3DDevice9_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
1597 #define IDirect3DDevice9_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
1598 #define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
1599 #define IDirect3DDevice9_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
1600 #define IDirect3DDevice9_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
1601 #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
1602 #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
1603 #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
1604 #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
1605 #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
1606 #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
1607 #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
1608 #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
1609 #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
1610 #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
1611 #define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
1612 #define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
1613 #define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
1614 #define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
1615 #define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
1616 #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
1617 #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
1618 #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
1619 #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
1620 #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
1621 #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
1622 #define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
1623 #define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
1624 #define IDirect3DDevice9_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
1625 #define IDirect3DDevice9_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
1626 #else
1627 /*** IUnknown methods ***/
1628 #define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1629 #define IDirect3DDevice9_AddRef(p) (p)->AddRef()
1630 #define IDirect3DDevice9_Release(p) (p)->Release()
1631 /*** IDirect3DDevice9 methods ***/
1632 #define IDirect3DDevice9_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
1633 #define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
1634 #define IDirect3DDevice9_EvictManagedResources(p) (p)->EvictManagedResources()
1635 #define IDirect3DDevice9_GetDirect3D(p,a) (p)->GetDirect3D(a)
1636 #define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
1637 #define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
1638 #define IDirect3DDevice9_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
1639 #define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
1640 #define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
1641 #define IDirect3DDevice9_ShowCursor(p,a) (p)->ShowCursor(a)
1642 #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
1643 #define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
1644 #define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
1645 #define IDirect3DDevice9_Reset(p,a) (p)->Reset(a)
1646 #define IDirect3DDevice9_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
1647 #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
1648 #define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
1649 #define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
1650 #define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
1651 #define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
1652 #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
1653 #define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
1654 #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
1655 #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
1656 #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
1657 #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
1658 #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
1659 #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
1660 #define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
1661 #define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
1662 #define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
1663 #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
1664 #define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
1665 #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
1666 #define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
1667 #define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
1668 #define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
1669 #define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
1670 #define IDirect3DDevice9_BeginScene(p) (p)->BeginScene()
1671 #define IDirect3DDevice9_EndScene(p) (p)->EndScene()
1672 #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
1673 #define IDirect3DDevice9_SetTransform(p,a,b) (p)->SetTransform(a,b)
1674 #define IDirect3DDevice9_GetTransform(p,a,b) (p)->GetTransform(a,b)
1675 #define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
1676 #define IDirect3DDevice9_SetViewport(p,a) (p)->SetViewport(a)
1677 #define IDirect3DDevice9_GetViewport(p,a) (p)->GetViewport(a)
1678 #define IDirect3DDevice9_SetMaterial(p,a) (p)->SetMaterial(a)
1679 #define IDirect3DDevice9_GetMaterial(p,a) (p)->GetMaterial(a)
1680 #define IDirect3DDevice9_SetLight(p,a,b) (p)->SetLight(a,b)
1681 #define IDirect3DDevice9_GetLight(p,a,b) (p)->GetLight(a,b)
1682 #define IDirect3DDevice9_LightEnable(p,a,b) (p)->LightEnable(a,b)
1683 #define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
1684 #define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
1685 #define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
1686 #define IDirect3DDevice9_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
1687 #define IDirect3DDevice9_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
1688 #define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
1689 #define IDirect3DDevice9_BeginStateBlock(p) (p)->BeginStateBlock()
1690 #define IDirect3DDevice9_EndStateBlock(p,a) (p)->EndStateBlock(a)
1691 #define IDirect3DDevice9_SetClipStatus(p,a) (p)->SetClipStatus(a)
1692 #define IDirect3DDevice9_GetClipStatus(p,a) (p)->GetClipStatus(a)
1693 #define IDirect3DDevice9_GetTexture(p,a,b) (p)->GetTexture(a,b)
1694 #define IDirect3DDevice9_SetTexture(p,a,b) (p)->SetTexture(a,b)
1695 #define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
1696 #define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
1697 #define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
1698 #define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
1699 #define IDirect3DDevice9_ValidateDevice(p,a) (p)->ValidateDevice(a)
1700 #define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
1701 #define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
1702 #define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
1703 #define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
1704 #define IDirect3DDevice9_SetScissorRect(p,a) (p)->SetScissorRect(a)
1705 #define IDirect3DDevice9_GetScissorRect(p,a) (p)->GetScissorRect(a)
1706 #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
1707 #define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
1708 #define IDirect3DDevice9_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
1709 #define IDirect3DDevice9_GetNPatchMode(p) (p)->GetNPatchMode()
1710 #define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
1711 #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
1712 #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
1713 #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
1714 #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
1715 #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
1716 #define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
1717 #define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
1718 #define IDirect3DDevice9_SetFVF(p,a) (p)->SetFVF(a)
1719 #define IDirect3DDevice9_GetFVF(p,a) (p)->GetFVF(a)
1720 #define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
1721 #define IDirect3DDevice9_SetVertexShader(p,a) (p)->SetVertexShader(a)
1722 #define IDirect3DDevice9_GetVertexShader(p,a) (p)->GetVertexShader(a)
1723 #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
1724 #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
1725 #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
1726 #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
1727 #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
1728 #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
1729 #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
1730 #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
1731 #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
1732 #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
1733 #define IDirect3DDevice9_SetIndices(p,a) (p)->SetIndices(a)
1734 #define IDirect3DDevice9_GetIndices(p,a) (p)->GetIndices(a)
1735 #define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
1736 #define IDirect3DDevice9_SetPixelShader(p,a) (p)->SetPixelShader(a)
1737 #define IDirect3DDevice9_GetPixelShader(p,a) (p)->GetPixelShader(a)
1738 #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
1739 #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
1740 #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
1741 #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
1742 #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
1743 #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
1744 #define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
1745 #define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
1746 #define IDirect3DDevice9_DeletePatch(p,a) (p)->DeletePatch(a)
1747 #define IDirect3DDevice9_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
1748 #endif
1749 
1750 
1751 /*****************************************************************************
1752  * IDirect3DDevice9Ex interface
1753  */
1754 #define INTERFACE IDirect3DDevice9Ex
1755 DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
1756 {
1757  /*** IUnknown methods ***/
1761  /*** IDirect3DDevice9 methods ***/
1762  STDMETHOD(TestCooperativeLevel)(THIS) PURE;
1763  STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
1764  STDMETHOD(EvictManagedResources)(THIS) PURE;
1765  STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
1767  STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
1768  STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
1769  STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
1770  STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
1772  STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
1773  STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
1774  STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
1775  STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
1776  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
1777  HWND dst_window_override, const RGNDATA *dirty_region) PURE;
1778  STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
1779  STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
1780  STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
1781  STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
1782  STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
1783  STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
1784  STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
1785  STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
1786  STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
1787  STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
1788  STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1789  STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1790  STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
1791  IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
1792  STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
1793  STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
1794  STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
1795  STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
1796  IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
1797  STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
1798  STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
1799  STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
1800  STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
1801  STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
1802  STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
1803  STDMETHOD(BeginScene)(THIS) PURE;
1804  STDMETHOD(EndScene)(THIS) PURE;
1805  STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
1806  D3DCOLOR color, float z, DWORD stencil) PURE;
1809  STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
1810  STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
1811  STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
1812  STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
1813  STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
1814  STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
1815  STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
1816  STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
1817  STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
1818  STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
1819  STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
1821  STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
1822  STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
1823  STDMETHOD(BeginStateBlock)(THIS) PURE;
1824  STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
1825  STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
1826  STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
1827  STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
1828  STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
1829  STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
1830  STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
1831  STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
1832  STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
1833  STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
1834  STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
1835  STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
1836  STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
1837  STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
1838  STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
1839  STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
1840  STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
1841  STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
1842  STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
1843  STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
1844  STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
1845  STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
1846  STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
1847  UINT primitive_count, const void *data, UINT stride) PURE;
1848  STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
1849  UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
1850  STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
1851  STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
1852  IDirect3DVertexDeclaration9 **declaration) PURE;
1853  STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
1854  STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
1855  STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
1856  STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
1857  STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_core, IDirect3DVertexShader9 **shader) PURE;
1858  STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
1859  STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
1860  STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
1861  STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
1862  STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
1863  STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
1864  STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
1865  STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
1866  STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
1867  STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
1868  STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
1869  STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
1870  STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
1871  STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
1872  STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
1873  STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
1874  STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
1875  STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
1876  STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
1877  STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
1878  STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
1879  STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const BOOL *data, UINT count) PURE;
1880  STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
1881  STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
1882  STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
1883  STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
1884  STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
1885  /* IDirect3DDevice9Ex methods */
1886  STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE;
1887  STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
1888  IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
1889  D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
1890  STDMETHOD(PresentEx)(THIS_ const RECT *src_rect, const RECT *dst_rect,
1891  HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags) PURE;
1892  STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE;
1893  STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
1894  STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
1895  STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE;
1896  STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE;
1897  STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *pMaxLatenxy) PURE;
1898  STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE;
1899  STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Lockable, IDirect3DSurface9 ** ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
1900  STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
1901  STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
1902  D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard,
1903  IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
1904  STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
1905  STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE;
1906 };
1907 #undef INTERFACE
1908 
1909 #ifdef __CRT_UUID_DECL
1910 __CRT_UUID_DECL(IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
1911 #endif
1912 
1913 #if !defined(__cplusplus) || defined(CINTERFACE)
1914 /*** IUnknown methods ***/
1915 #define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1916 #define IDirect3DDevice9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
1917 #define IDirect3DDevice9Ex_Release(p) (p)->lpVtbl->Release(p)
1918 /*** IDirect3DDevice9 methods ***/
1919 #define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
1920 #define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
1921 #define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
1922 #define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
1923 #define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
1924 #define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
1925 #define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
1926 #define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
1927 #define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
1928 #define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
1929 #define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
1930 #define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
1931 #define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
1932 #define IDirect3DDevice9Ex_Reset(p,a) (p)->lpVtbl->Reset(p,a)
1933 #define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
1934 #define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
1935 #define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
1936 #define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
1937 #define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
1938 #define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
1939 #define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
1940 #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)
1941 #define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
1942 #define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
1943 #define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
1944 #define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
1945 #define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
1946 #define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
1947 #define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
1948 #define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
1949 #define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
1950 #define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
1951 #define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
1952 #define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
1953 #define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
1954 #define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
1955 #define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
1956 #define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
1957 #define IDirect3DDevice9Ex_BeginScene(p) (p)->lpVtbl->BeginScene(p)
1958 #define IDirect3DDevice9Ex_EndScene(p) (p)->lpVtbl->EndScene(p)
1959 #define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
1960 #define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
1961 #define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
1962 #define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
1963 #define IDirect3DDevice9Ex_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
1964 #define IDirect3DDevice9Ex_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
1965 #define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
1966 #define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
1967 #define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
1968 #define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
1969 #define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
1970 #define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
1971 #define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
1972 #define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
1973 #define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
1974 #define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
1975 #define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
1976 #define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
1977 #define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
1978 #define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
1979 #define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
1980 #define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
1981 #define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
1982 #define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
1983 #define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
1984 #define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
1985 #define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
1986 #define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
1987 #define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
1988 #define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
1989 #define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
1990 #define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
1991 #define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
1992 #define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
1993 #define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
1994 #define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
1995 #define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
1996 #define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
1997 #define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
1998 #define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
1999 #define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
2000 #define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
2001 #define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
2002 #define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
2003 #define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
2004 #define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
2005 #define IDirect3DDevice9Ex_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
2006 #define IDirect3DDevice9Ex_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
2007 #define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
2008 #define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
2009 #define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
2010 #define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
2011 #define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
2012 #define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
2013 #define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
2014 #define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
2015 #define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
2016 #define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
2017 #define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
2018 #define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
2019 #define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
2020 #define IDirect3DDevice9Ex_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
2021 #define IDirect3DDevice9Ex_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
2022 #define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
2023 #define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
2024 #define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
2025 #define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
2026 #define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
2027 #define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
2028 #define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
2029 #define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
2030 #define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
2031 #define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
2032 #define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
2033 #define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
2034 #define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
2035 /* IDirect3DDevice9Ex */
2036 #define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d)
2037 #define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h)
2038 #define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->lpVtbl->PresentEx(p,a,b,c,d,e)
2039 #define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->lpVtbl->GetGPUThreadPriority(p,a)
2040 #define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->lpVtbl->SetGPUThreadPriority(p,a)
2041 #define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->lpVtbl->WaitForVBlank(p,a)
2042 #define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->lpVtbl->CheckResourceResidency(p,a,b)
2043 #define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->lpVtbl->SetMaximumFrameLatency(p,a)
2044 #define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->lpVtbl->GetMaximumFrameLatency(p,a)
2045 #define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->lpVtbl->CheckDeviceState(p,a)
2046 #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)
2047 #define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)
2048 #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)
2049 #define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->lpVtbl->ResetEx(p,a,b)
2050 #define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetDisplayModeEx(p,a,b,c)
2051 #else
2052 /*** IUnknown methods ***/
2053 #define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2054 #define IDirect3DDevice9Ex_AddRef(p) (p)->AddRef()
2055 #define IDirect3DDevice9Ex_Release(p) (p)->Release()
2056 /*** IDirect3DDevice9 methods ***/
2057 #define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
2058 #define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
2059 #define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->EvictManagedResources()
2060 #define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->GetDirect3D(a)
2061 #define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
2062 #define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
2063 #define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
2064 #define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
2065 #define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
2066 #define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->ShowCursor(a)
2067 #define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
2068 #define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
2069 #define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
2070 #define IDirect3DDevice9Ex_Reset(p,a) (p)->Reset(a)
2071 #define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
2072 #define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
2073 #define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
2074 #define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
2075 #define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
2076 #define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
2077 #define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
2078 #define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
2079 #define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
2080 #define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
2081 #define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
2082 #define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
2083 #define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
2084 #define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
2085 #define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
2086 #define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
2087 #define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
2088 #define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
2089 #define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
2090 #define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
2091 #define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
2092 #define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
2093 #define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
2094 #define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
2095 #define IDirect3DDevice9Ex_BeginScene(p) (p)->BeginScene()
2096 #define IDirect3DDevice9Ex_EndScene(p) (p)->EndScene()
2097 #define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
2098 #define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->SetTransform(a,b)
2099 #define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->GetTransform(a,b)
2100 #define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
2101 #define IDirect3DDevice9Ex_SetViewport(p,a) (p)->SetViewport(a)
2102 #define IDirect3DDevice9Ex_GetViewport(p,a) (p)->GetViewport(a)
2103 #define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->SetMaterial(a)
2104 #define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->GetMaterial(a)
2105 #define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->SetLight(a,b)
2106 #define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->GetLight(a,b)
2107 #define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->LightEnable(a,b)
2108 #define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
2109 #define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
2110 #define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
2111 #define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
2112 #define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
2113 #define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
2114 #define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->BeginStateBlock()
2115 #define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->EndStateBlock(a)
2116 #define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->SetClipStatus(a)
2117 #define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->GetClipStatus(a)
2118 #define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->GetTexture(a,b)
2119 #define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->SetTexture(a,b)
2120 #define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
2121 #define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
2122 #define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
2123 #define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
2124 #define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->ValidateDevice(a)
2125 #define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
2126 #define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
2127 #define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
2128 #define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
2129 #define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->SetScissorRect(a)
2130 #define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->GetScissorRect(a)
2131 #define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
2132 #define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
2133 #define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
2134 #define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->GetNPatchMode()
2135 #define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
2136 #define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
2137 #define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
2138 #define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
2139 #define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
2140 #define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
2141 #define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
2142 #define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
2143 #define IDirect3DDevice9Ex_SetFVF(p,a) (p)->SetFVF(a)
2144 #define IDirect3DDevice9Ex_GetFVF(p,a) (p)->GetFVF(a)
2145 #define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
2146 #define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->SetVertexShader(a)
2147 #define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->GetVertexShader(a)
2148 #define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
2149 #define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
2150 #define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
2151 #define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
2152 #define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
2153 #define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
2154 #define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
2155 #define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
2156 #define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
2157 #define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
2158 #define IDirect3DDevice9Ex_SetIndices(p,a) (p)->SetIndices(a)
2159 #define IDirect3DDevice9Ex_GetIndices(p,a) (p)->GetIndices(a)
2160 #define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
2161 #define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->SetPixelShader(a)
2162 #define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->GetPixelShader(a)
2163 #define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
2164 #define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
2165 #define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
2166 #define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
2167 #define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
2168 #define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
2169 #define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
2170 #define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
2171 #define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->DeletePatch(a)
2172 #define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
2173 /* IDirect3DDevice9Ex */
2174 #define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->SetConvolutionMonoKernel(a,b,c,d)
2175 #define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->ComposeRects(a,b,c,d,e,f,g,h)
2176 #define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->PresentEx(a,b,c,d,e)
2177 #define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->GetGPUThreadPriority(a)
2178 #define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->SetGPUThreadPriority(a)
2179 #define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->WaitForVBlank(a)
2180 #define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->CheckResourceResidency(a,b)
2181 #define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->SetMaximumFrameLatency(a)
2182 #define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->GetMaximumFrameLatency(a)
2183 #define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->CheckDeviceState(a)
2184 #define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i)
2185 #define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g)
2186 #define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i)
2187 #define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->ResetEx(a,b)
2188 #define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->GetDisplayModeEx(a,b,c)
2189 #endif
2190 
2191 #ifdef __cplusplus
2192 extern "C" {
2193 #endif /* defined(__cplusplus) */
2194 
2196 int WINAPI D3DPERF_EndEvent(void);
2202 
2203 /* Define the main entrypoint as well */
2204 IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
2205 HRESULT WINAPI Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex**);
2206 
2207 #ifdef __cplusplus
2208 } /* extern "C" */
2209 #endif /* defined(__cplusplus) */
2210 
2211 
2212 #endif /* _D3D9_H_ */
struct IDirect3DSwapChain9Ex * LPDIRECT3DSWAPCHAIN9EX
Definition: d3d9.h:148
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
GLint level
Definition: gl.h:1546
struct IDirect3DCubeTexture9 * LPDIRECT3DCUBETEXTURE9
Definition: d3d9.h:163
GLint GLint GLsizei width
Definition: gl.h:1546
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
Definition: exfuncs.h:656
UINT WINAPI GetPaletteEntries(HPALETTE hpal, UINT iStartIndex, UINT cEntries, LPPALETTEENTRY ppe)
Definition: palette.c:64
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
#define REFIID
Definition: guiddef.h:118
void WINAPI D3DPERF_SetOptions(DWORD options)
Definition: d3d9_main.c:125
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum plane
Definition: glfuncs.h:270
struct IDirect3DDevice9Ex * LPDIRECT3DDEVICE9EX
Definition: d3d9.h:133
struct IDirect3DDevice9 * LPDIRECT3DDEVICE9
Definition: d3d9.h:130
#define THIS_
Definition: basetyps.h:65
Type
Definition: Type.h:6
#define Y(I)
Definition: scsiwmi.h:51
_In_ ULONG Mode
Definition: hubbusif.h:303
_In_ BOOLEAN Release
Definition: classpnp.h:929
struct IDirect3D9Ex * LPDIRECT3D9EX
Definition: d3d9.h:127
DECLARE_INTERFACE_(IDirect3D9, IUnknown)
Definition: d3d9.h:188
#define THIS
Definition: basetyps.h:66
HDC WINAPI GetDC(_In_opt_ HWND)
HRESULT WINAPI Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex **)
Definition: d3d9_main.c:57
REFIID riid
Definition: precomp.h:44
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
Definition: d3d9.c:57
GLuint GLenum matrix
Definition: glext.h:9407
HMONITOR GetAdapterMonitor(LPCSTR lpszDeviceName)
Definition: adapter.c:393
DeviceType
Definition: mmdrv.h:41
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:382
GLuint GLuint GLsizei count
Definition: gl.h:1545
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
struct IDirect3DQuery9 * PDIRECT3DQUERY9
Definition: d3d9.h:181
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
static HDC
Definition: imagelist.c:92
_In_ KPRIORITY Priority
Definition: kefuncs.h:516
enum _D3DPOOL D3DPOOL
struct IDirect3DDevice9Ex * PDIRECT3DDEVICE9EX
Definition: d3d9.h:133
void ShowCursor(void)
Definition: hardware.c:556
void DrawPrimitive(IN HDC hDC, IN const RECT &RPrimitive, IN OutPrimitive PrimitiveID)
Definition: primitives.cpp:80
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:55
struct IDirect3DVolumeTexture9 * PDIRECT3DVOLUMETEXTURE9
Definition: d3d9.h:166
int vertex_count
Definition: d3drm.c:2807
static const BYTE ramp[17]
Definition: dib.c:2709
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
struct IDirect3D9 * LPDIRECT3D9
Definition: d3d9.h:124
WORD face[3]
Definition: mesh.c:4747
int32_t INT
Definition: typedefs.h:56
DWORD WINAPI D3DPERF_GetStatus(void)
Definition: d3d9_main.c:115
void WINAPI D3DPERF_SetRegion(D3DCOLOR color, const WCHAR *name)
Definition: d3d9_main.c:150
& rect
Definition: startmenu.cpp:1413
struct IDirect3DTexture9 * LPDIRECT3DTEXTURE9
Definition: d3d9.h:160
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
#define STDMETHOD(m)
Definition: basetyps.h:62
GLint GLfloat GLint stencil
Definition: glext.h:6260
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
Definition: glfuncs.h:170
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
const GUID * guid
unsigned int UINT32
struct IDirect3DVertexShader9 * LPDIRECT3DVERTEXSHADER9
Definition: d3d9.h:172
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint color
Definition: glext.h:6243
int WINAPI D3DPERF_BeginEvent(D3DCOLOR color, const WCHAR *name)
Definition: d3d9_main.c:96
static struct resource resources[16]
struct IDirect3DVolume9 * PDIRECT3DVOLUME9
Definition: d3d9.h:142
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
int WINAPI D3DPERF_EndEvent(void)
Definition: d3d9_main.c:106
HRESULT CheckDepthStencilMatch(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat)
Definition: format.c:539
struct IDirect3DPixelShader9 * LPDIRECT3DPIXELSHADER9
Definition: d3d9.h:175
GLdouble GLdouble z
Definition: glext.h:5874
BOOL WINAPI D3DPERF_QueryRepeatFrame(void)
Definition: d3d9_main.c:133
enum _D3DCUBEMAP_FACES D3DCUBEMAP_FACES
struct IDirect3D9 * PDIRECT3D9
Definition: d3d9.h:124
enum _D3DFORMAT D3DFORMAT
enum _D3DSTATEBLOCKTYPE D3DSTATEBLOCKTYPE
_In_ HANDLE Handle
Definition: extypes.h:390
GLuint shader
Definition: glext.h:6030
struct IDirect3DStateBlock9 * LPDIRECT3DSTATEBLOCK9
Definition: d3d9.h:178
GLsizei stride
Definition: glext.h:5848
struct IDirect3DVolumeTexture9 * LPDIRECT3DVOLUMETEXTURE9
Definition: d3d9.h:166
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
D3DRENDERSTATETYPE
Definition: d3dtypes.h:874
struct IDirect3DSwapChain9 * LPDIRECT3DSWAPCHAIN9
Definition: d3d9.h:145
#define WINAPI
Definition: msvc.h:8
enum _D3DDEVTYPE D3DDEVTYPE
static const UCHAR Index[8]
Definition: usbohci.c:18
Definition: bufpool.h:50
unsigned long DWORD
Definition: ntddk_ex.h:95
DEFINE_GUID(IID_IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C)
struct IDirect3DVertexBuffer9 * LPDIRECT3DVERTEXBUFFER9
Definition: d3d9.h:139
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLbitfield flags
Definition: glext.h:7161
struct IDirect3D9Ex * PDIRECT3D9EX
Definition: d3d9.h:127
INT GetType(BOOL bLocal, LPOSVERSIONINFOEX osvi, LPSERVER_INFO_102 pBuf102)
Definition: gettype.c:129
#define index(s, c)
Definition: various.h:29
HDC hdc
Definition: main.c:9
struct IDirect3DSwapChain9 * PDIRECT3DSWAPCHAIN9
Definition: d3d9.h:145
enum _D3DSAMPLERSTATETYPE D3DSAMPLERSTATETYPE
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
static int state
Definition: maze.c:121
D3DDISPLAYROTATION
Definition: d3d9types.h:1554
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
struct IDirect3DBaseTexture9 * PDIRECT3DBASETEXTURE9
Definition: d3d9.h:157
REFIID LPVOID * ppvObject
Definition: precomp.h:44
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
GLenum mode
Definition: glext.h:6217
struct IDirect3DTexture9 * PDIRECT3DTEXTURE9
Definition: d3d9.h:160
struct IDirect3DSwapChain9Ex * PDIRECT3DSWAPCHAIN9EX
Definition: d3d9.h:148
HRESULT CheckDeviceFormatConversion(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat)
Definition: format.c:495
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
struct IDirect3DResource9 * LPDIRECT3DRESOURCE9
Definition: d3d9.h:136
struct IDirect3DBaseTexture9 * LPDIRECT3DBASETEXTURE9
Definition: d3d9.h:157
enum State_ State
Definition: pofuncs.h:54
enum _D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_TYPE
static BYTE * GetData(BYTE *pData, ULONG *pLength)
Definition: assembly.c:113
void WINAPI D3DPERF_SetMarker(D3DCOLOR color, const WCHAR *name)
Definition: d3d9_main.c:142
UINT WINAPI SetPaletteEntries(_In_ HPALETTE hpal, _In_ UINT iStart, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY *pPalEntries)
#define PURE
Definition: basetyps.h:64
HRESULT CheckDeviceFormat(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat)
Definition: format.c:326
unsigned int UINT
Definition: ndis.h:50
struct IDirect3DVertexDeclaration9 * LPDIRECT3DVERTEXDECLARATION9
Definition: d3d9.h:169
D3DPRIMITIVETYPE
Definition: d3dtypes.h:822
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
struct IDirect3DResource9 * PDIRECT3DRESOURCE9
Definition: d3d9.h:136
struct IDirect3DVertexBuffer9 * PDIRECT3DVERTEXBUFFER9
Definition: d3d9.h:139
enum _D3DTEXTUREFILTERTYPE D3DTEXTUREFILTERTYPE
HRESULT CheckDeviceType(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed)
Definition: format.c:224
struct IDirect3DIndexBuffer9 * PDIRECT3DINDEXBUFFER9
Definition: d3d9.h:154
Definition: name.c:36
BOOL WINAPI GetTransform(HDC, DWORD, XFORM *)
struct IDirect3DCubeTexture9 * PDIRECT3DCUBETEXTURE9
Definition: d3d9.h:163
enum _D3DTEXTURESTAGESTATETYPE D3DTEXTURESTAGESTATETYPE
unsigned int ULONG
Definition: retypes.h:1
struct IDirect3DVolume9 * LPDIRECT3DVOLUME9
Definition: d3d9.h:142
enum _D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE
struct IDirect3DQuery9 * LPDIRECT3DQUERY9
Definition: d3d9.h:181
void Clear(USHORT Window)
Definition: hardware.c:705
static const WCHAR iAdapter[]
Definition: provider.c:97
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1827
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
struct IDirect3DSurface9 * LPDIRECT3DSURFACE9
Definition: d3d9.h:151
enum _D3DCOMPOSERECTSOP D3DCOMPOSERECTSOP
enum _D3DQUERYTYPE D3DQUERYTYPE
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:54
enum _D3DRESOURCETYPE D3DRESOURCETYPE
struct IDirect3DSurface9 * PDIRECT3DSURFACE9
Definition: d3d9.h:151
#define X(b, s)
struct IDirect3DIndexBuffer9 * LPDIRECT3DINDEXBUFFER9
Definition: d3d9.h:154
Definition: palette.c:467
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char * Format
Definition: acpixf.h:1206