ReactOS  0.4.13-dev-241-g63286c6
d3d8.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002 Jason Edmeades
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef __WINE_D3D8_H
20 #define __WINE_D3D8_H
21 
22 #ifndef DIRECT3D_VERSION
23 #define DIRECT3D_VERSION 0x0800
24 #endif
25 
26 #include <stdlib.h>
27 
28 #define COM_NO_WINDOWS_H
29 #include <objbase.h>
30 
31 #ifndef __WINESRC__
32 # include <windows.h>
33 #endif
34 
35 #include <d3d8types.h>
36 #include <d3d8caps.h>
37 
38 /*****************************************************************************
39  * Behavior Flags for IDirect3D8::CreateDevice
40  */
41 #define D3DCREATE_FPU_PRESERVE 0x00000002L
42 #define D3DCREATE_MULTITHREADED 0x00000004L
43 #define D3DCREATE_PUREDEVICE 0x00000010L
44 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L
45 #define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L
46 #define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
47 
48 /*****************************************************************************
49  * Flags for SetPrivateData
50  */
51 #define D3DSPD_IUNKNOWN 0x00000001L
52 
53 /*****************************************************************************
54  * #defines and error codes
55  */
56 #define D3D_SDK_VERSION 220
57 #define D3DADAPTER_DEFAULT 0
58 #define D3DENUM_NO_WHQL_LEVEL 2
59 
60 #define _FACD3D 0x876
61 #define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
62 
63 /*
64  * Direct3D Errors
65  */
66 #define D3D_OK S_OK
67 #define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
68 #define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
69 #define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
70 #define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
71 #define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
72 #define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
73 #define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
74 #define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
75 #define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
76 #define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
77 #define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
78 #define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
79 
80 #define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
81 #define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
82 #define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
83 #define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
84 #define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
85 #define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
86 #define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
87 #define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
88 #define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
89 
90 /*****************************************************************************
91  * Predeclare the interfaces
92  */
93 DEFINE_GUID(IID_IDirect3D8, 0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);
94 typedef struct IDirect3D8 *LPDIRECT3D8;
95 
96 DEFINE_GUID(IID_IDirect3DDevice8, 0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF);
97 typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8;
98 
99 DEFINE_GUID(IID_IDirect3DResource8, 0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F);
100 typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8;
101 
102 DEFINE_GUID(IID_IDirect3DVertexBuffer8, 0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95);
103 typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8;
104 
105 DEFINE_GUID(IID_IDirect3DVolume8, 0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0);
106 typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
107 
108 DEFINE_GUID(IID_IDirect3DSwapChain8, 0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD);
109 typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
110 
111 DEFINE_GUID(IID_IDirect3DSurface8, 0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD);
112 typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
113 
114 DEFINE_GUID(IID_IDirect3DIndexBuffer8, 0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86);
115 typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
116 
117 DEFINE_GUID(IID_IDirect3DBaseTexture8, 0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E);
118 typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
119 
120 DEFINE_GUID(IID_IDirect3DTexture8, 0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58);
121 typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
122 
123 DEFINE_GUID(IID_IDirect3DCubeTexture8, 0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50);
124 typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
125 
126 DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD);
127 typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
128 
129 /*****************************************************************************
130  * IDirect3D8 interface
131  */
132 #undef INTERFACE
133 #define INTERFACE IDirect3D8
135 {
136  /*** IUnknown methods ***/
140  /*** IDirect3D8 methods ***/
141  STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
142  STDMETHOD_(UINT,GetAdapterCount )(THIS) PURE;
143  STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
144  STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT Adapter) PURE;
145  STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, UINT Mode, D3DDISPLAYMODE * pMode) PURE;
146  STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE * pMode) PURE;
147  STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter, D3DDEVTYPE CheckType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed) PURE;
149  STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType) PURE;
150  STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
153  STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType,HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
154 };
155 #undef INTERFACE
156 
157 #if !defined(__cplusplus) || defined(CINTERFACE)
158 /*** IUnknown methods ***/
159 #define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
160 #define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p)
161 #define IDirect3D8_Release(p) (p)->lpVtbl->Release(p)
162 /*** IDirect3D8 methods ***/
163 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
164 #define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
165 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
166 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a)
167 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
168 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
169 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
170 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
171 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
172 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
173 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
174 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
175 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
176 #else
177 /*** IUnknown methods ***/
178 #define IDirect3D8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
179 #define IDirect3D8_AddRef(p) (p)->AddRef()
180 #define IDirect3D8_Release(p) (p)->Release()
181 /*** IDirect3D8 methods ***/
182 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
183 #define IDirect3D8_GetAdapterCount(p) (p)->GetAdapterCount()
184 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
185 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->GetAdapterModeCount(a)
186 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->EnumAdapterModes(a,b,c)
187 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
188 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
189 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
190 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
191 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
192 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
193 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
194 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
195 #endif
196 
197 /*****************************************************************************
198  * IDirect3DVolume8 interface
199  */
200 #define INTERFACE IDirect3DVolume8
201 DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
202 {
203  /*** IUnknown methods ***/
207  /*** IDirect3DVolume8 methods ***/
208  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
209  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
210  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData, DWORD * pSizeOfData) PURE;
211  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
212  STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
213  STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
214  STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
215  STDMETHOD(UnlockBox)(THIS) PURE;
216 };
217 #undef INTERFACE
218 
219 #if !defined(__cplusplus) || defined(CINTERFACE)
220 /*** IUnknown methods ***/
221 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
222 #define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p)
223 #define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p)
224 /*** IDirect3DVolume8 methods ***/
225 #define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
226 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
227 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
228 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
229 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
230 #define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
231 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
232 #define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
233 #else
234 /*** IUnknown methods ***/
235 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
236 #define IDirect3DVolume8_AddRef(p) (p)->AddRef()
237 #define IDirect3DVolume8_Release(p) (p)->Release()
238 /*** IDirect3DVolume8 methods ***/
239 #define IDirect3DVolume8_GetDevice(p,a) (p)->GetDevice(a)
240 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
241 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
242 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->FreePrivateData(a)
243 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->GetContainer(a,b)
244 #define IDirect3DVolume8_GetDesc(p,a) (p)->GetDesc(a)
245 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
246 #define IDirect3DVolume8_UnlockBox(p) (p)->UnlockBox()
247 #endif
248 
249 /*****************************************************************************
250  * IDirect3DSwapChain8 interface
251  */
252 #define INTERFACE IDirect3DSwapChain8
253 DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
254 {
255  /*** IUnknown methods ***/
259  /*** IDirect3DSwapChain8 methods ***/
260  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
261  const RGNDATA *dirty_region) PURE;
262  STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
263 };
264 #undef INTERFACE
265 
266 #if !defined(__cplusplus) || defined(CINTERFACE)
267 /*** IUnknown methods ***/
268 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
269 #define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p)
270 #define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p)
271 /*** IDirect3DSwapChain8 methods ***/
272 #define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
273 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
274 #else
275 /*** IUnknown methods ***/
276 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
277 #define IDirect3DSwapChain8_AddRef(p) (p)->AddRef()
278 #define IDirect3DSwapChain8_Release(p) (p)->Release()
279 /*** IDirect3DSwapChain8 methods ***/
280 #define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
281 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
282 #endif
283 
284 /*****************************************************************************
285  * IDirect3DSurface8 interface
286  */
287 #define INTERFACE IDirect3DSurface8
288 DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
289 {
290  /*** IUnknown methods ***/
294  /*** IDirect3DSurface8 methods ***/
295  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
296  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
297  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData,DWORD * pSizeOfData) PURE;
298  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
299  STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
300  STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
301  STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
302  STDMETHOD(UnlockRect)(THIS) PURE;
303 };
304 #undef INTERFACE
305 
306 #if !defined(__cplusplus) || defined(CINTERFACE)
307 /*** IUnknown methods ***/
308 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
309 #define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p)
310 #define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p)
311 /*** IDirect3DSurface8 methods ***/
312 #define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
313 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
314 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
315 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
316 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
317 #define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
318 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
319 #define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
320 #else
321 /*** IUnknown methods ***/
322 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
323 #define IDirect3DSurface8_AddRef(p) (p)->AddRef()
324 #define IDirect3DSurface8_Release(p) (p)->Release()
325 /*** IDirect3DSurface8 methods ***/
326 #define IDirect3DSurface8_GetDevice(p,a) (p)->GetDevice(a)
327 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
328 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
329 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->FreePrivateData(a)
330 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->GetContainer(a,b)
331 #define IDirect3DSurface8_GetDesc(p,a) (p)->GetDesc(a)
332 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
333 #define IDirect3DSurface8_UnlockRect(p) (p)->UnlockRect()
334 #endif
335 
336 /*****************************************************************************
337  * IDirect3DResource8 interface
338  */
339 #define INTERFACE IDirect3DResource8
340 DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
341 {
342  /*** IUnknown methods ***/
346  /*** IDirect3DResource8 methods ***/
347  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
348  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
349  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
350  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
351  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
352  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
353  STDMETHOD_(void,PreLoad)(THIS) PURE;
355 };
356 #undef INTERFACE
357 
358 #if !defined(__cplusplus) || defined(CINTERFACE)
359 /*** IUnknown methods ***/
360 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
361 #define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p)
362 #define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p)
363 /*** IDirect3DResource8 methods ***/
364 #define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
365 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
366 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
367 #define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
368 #define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
369 #define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
370 #define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
371 #define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p)
372 #else
373 /*** IUnknown methods ***/
374 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
375 #define IDirect3DResource8_AddRef(p) (p)->AddRef()
376 #define IDirect3DResource8_Release(p) (p)->Release()
377 /*** IDirect3DResource8 methods ***/
378 #define IDirect3DResource8_GetDevice(p,a) (p)->GetDevice(a)
379 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
380 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
381 #define IDirect3DResource8_FreePrivateData(p,a) (p)->FreePrivateData(a)
382 #define IDirect3DResource8_SetPriority(p,a) (p)->SetPriority(a)
383 #define IDirect3DResource8_GetPriority(p) (p)->GetPriority()
384 #define IDirect3DResource8_PreLoad(p) (p)->PreLoad()
385 #define IDirect3DResource8_GetType(p) (p)->GetType()
386 #endif
387 
388 /*****************************************************************************
389  * IDirect3DVertexBuffer8 interface
390  */
391 #define INTERFACE IDirect3DVertexBuffer8
392 DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
393 {
394  /*** IUnknown methods ***/
398  /*** IDirect3DResource8 methods ***/
399  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
400  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
401  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
402  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
403  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
404  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
405  STDMETHOD_(void,PreLoad)(THIS) PURE;
407  /*** IDirect3DVertexBuffer8 methods ***/
408  STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
410  STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC * pDesc) PURE;
411 };
412 #undef INTERFACE
413 
414 #if !defined(__cplusplus) || defined(CINTERFACE)
415 /*** IUnknown methods ***/
416 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
417 #define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
418 #define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p)
419 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
420 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
421 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
422 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
423 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
424 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
425 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
426 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
427 #define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
428 /*** IDirect3DVertexBuffer8 methods ***/
429 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
430 #define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
431 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
432 #else
433 /*** IUnknown methods ***/
434 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
435 #define IDirect3DVertexBuffer8_AddRef(p) (p)->AddRef()
436 #define IDirect3DVertexBuffer8_Release(p) (p)->Release()
437 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
438 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
439 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
440 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
441 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
442 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
443 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->GetPriority()
444 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->PreLoad()
445 #define IDirect3DVertexBuffer8_GetType(p) (p)->GetType()
446 /*** IDirect3DVertexBuffer8 methods ***/
447 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
448 #define IDirect3DVertexBuffer8_Unlock(p) (p)->Unlock()
449 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
450 #endif
451 
452 /*****************************************************************************
453  * IDirect3DIndexBuffer8 interface
454  */
455 #define INTERFACE IDirect3DIndexBuffer8
456 DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
457 {
458  /*** IUnknown methods ***/
462  /*** IDirect3DResource8 methods ***/
463  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
464  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
465  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
466  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
467  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
468  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
469  STDMETHOD_(void,PreLoad)(THIS) PURE;
471  /*** IDirect3DIndexBuffer8 methods ***/
472  STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
474  STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
475 };
476 #undef INTERFACE
477 
478 #if !defined(__cplusplus) || defined(CINTERFACE)
479 /*** IUnknown methods ***/
480 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
481 #define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
482 #define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p)
483 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
484 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
485 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
486 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
487 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
488 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
489 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
490 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
491 #define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
492 /*** IDirect3DIndexBuffer8 methods ***/
493 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
494 #define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
495 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
496 #else
497 /*** IUnknown methods ***/
498 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
499 #define IDirect3DIndexBuffer8_AddRef(p) (p)->AddRef()
500 #define IDirect3DIndexBuffer8_Release(p) (p)->Release()
501 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
502 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
503 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
504 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
505 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
506 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
507 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->GetPriority()
508 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->PreLoad()
509 #define IDirect3DIndexBuffer8_GetType(p) (p)->GetType()
510 /*** IDirect3DIndexBuffer8 methods ***/
511 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
512 #define IDirect3DIndexBuffer8_Unlock(p) (p)->Unlock()
513 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
514 #endif
515 
516 /*****************************************************************************
517  * IDirect3DBaseTexture8 interface
518  */
519 #define INTERFACE IDirect3DBaseTexture8
520 DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
521 {
522  /*** IUnknown methods ***/
526  /*** IDirect3DResource8 methods ***/
527  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
528  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
529  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
530  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
531  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
532  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
533  STDMETHOD_(void,PreLoad)(THIS) PURE;
535  /*** IDirect3DBaseTexture8 methods ***/
536  STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
537  STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
538  STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
539 };
540 #undef INTERFACE
541 
542 #if !defined(__cplusplus) || defined(CINTERFACE)
543 /*** IUnknown methods ***/
544 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
545 #define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
546 #define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p)
547 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
548 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
549 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
550 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
551 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
552 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
553 #define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
554 #define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
555 #define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p)
556 /*** IDirect3DBaseTexture8 methods ***/
557 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
558 #define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
559 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
560 #else
561 /*** IUnknown methods ***/
562 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
563 #define IDirect3DBaseTexture8_AddRef(p) (p)->AddRef()
564 #define IDirect3DBaseTexture8_Release(p) (p)->Release()
565 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
566 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->GetDevice(a)
567 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
568 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
569 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
570 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->SetPriority(a)
571 #define IDirect3DBaseTexture8_GetPriority(p) (p)->GetPriority()
572 #define IDirect3DBaseTexture8_PreLoad(p) (p)->PreLoad()
573 #define IDirect3DBaseTexture8_GetType(p) (p)->GetType()
574 /*** IDirect3DBaseTexture8 methods ***/
575 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->SetLOD(a)
576 #define IDirect3DBaseTexture8_GetLOD(p) (p)->GetLOD()
577 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->GetLevelCount()
578 #endif
579 
580 /*****************************************************************************
581  * IDirect3DCubeTexture8 interface
582  */
583 #define INTERFACE IDirect3DCubeTexture8
584 DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
585 {
586  /*** IUnknown methods ***/
590  /*** IDirect3DResource8 methods ***/
591  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
592  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
593  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
594  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
595  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
596  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
597  STDMETHOD_(void,PreLoad)(THIS) PURE;
599  /*** IDirect3DBaseTexture8 methods ***/
600  STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
601  STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
602  STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
603  /*** IDirect3DCubeTexture8 methods ***/
604  STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
605  STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
606  STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect,
607  const RECT *rect, DWORD flags) PURE;
608  STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE;
609  STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
610 };
611 #undef INTERFACE
612 
613 #if !defined(__cplusplus) || defined(CINTERFACE)
614 /*** IUnknown methods ***/
615 #define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
616 #define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
617 #define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p)
618 /*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
619 #define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
620 #define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
621 #define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
622 #define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
623 #define IDirect3DCubeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
624 #define IDirect3DCubeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
625 #define IDirect3DCubeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
626 #define IDirect3DCubeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
627 /*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
628 #define IDirect3DCubeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
629 #define IDirect3DCubeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
630 #define IDirect3DCubeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
631 /*** IDirect3DCubeTexture8 methods ***/
632 #define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
633 #define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
634 #define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
635 #define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
636 #define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
637 #else
638 /*** IUnknown methods ***/
639 #define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
640 #define IDirect3DCubeTexture8_AddRef(p) (p)->AddRef()
641 #define IDirect3DCubeTexture8_Release(p) (p)->Release()
642 /*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
643 #define IDirect3DCubeTexture8_GetDevice(p,a) (p)->GetDevice(a)
644 #define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
645 #define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
646 #define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
647 #define IDirect3DCubeTexture8_SetPriority(p,a) (p)->SetPriority(a)
648 #define IDirect3DCubeTexture8_GetPriority(p) (p)->GetPriority()
649 #define IDirect3DCubeTexture8_PreLoad(p) (p)->PreLoad()
650 #define IDirect3DCubeTexture8_GetType(p) (p)->GetType()
651 /*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
652 #define IDirect3DCubeTexture8_SetLOD(p,a) (p)->SetLOD(a)
653 #define IDirect3DCubeTexture8_GetLOD(p) (p)->GetLOD()
654 #define IDirect3DCubeTexture8_GetLevelCount(p) (p)->GetLevelCount()
655 /*** IDirect3DCubeTexture8 methods ***/
656 #define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
657 #define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
658 #define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
659 #define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
660 #define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
661 #endif
662 
663 /*****************************************************************************
664  * IDirect3DTexture8 interface
665  */
666 #define INTERFACE IDirect3DTexture8
667 DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
668 {
669  /*** IUnknown methods ***/
673  /*** IDirect3DResource8 methods ***/
674  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
675  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
676  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
677  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
678  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
679  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
680  STDMETHOD_(void,PreLoad)(THIS) PURE;
682  /*** IDirect3DBaseTexture8 methods ***/
683  STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
684  STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
685  STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
686  /*** IDirect3DTexture8 methods ***/
687  STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
688  STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
689  STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
690  STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
691  STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
692 };
693 #undef INTERFACE
694 
695 #if !defined(__cplusplus) || defined(CINTERFACE)
696 /*** IUnknown methods ***/
697 #define IDirect3DTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
698 #define IDirect3DTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
699 #define IDirect3DTexture8_Release(p) (p)->lpVtbl->Release(p)
700 /*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
701 #define IDirect3DTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
702 #define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
703 #define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
704 #define IDirect3DTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
705 #define IDirect3DTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
706 #define IDirect3DTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
707 #define IDirect3DTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
708 #define IDirect3DTexture8_GetType(p) (p)->lpVtbl->GetType(p)
709 /*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
710 #define IDirect3DTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
711 #define IDirect3DTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
712 #define IDirect3DTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
713 /*** IDirect3DTexture8 methods ***/
714 #define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
715 #define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
716 #define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
717 #define IDirect3DTexture8_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
718 #define IDirect3DTexture8_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
719 #else
720 /*** IUnknown methods ***/
721 #define IDirect3DTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
722 #define IDirect3DTexture8_AddRef(p) (p)->AddRef()
723 #define IDirect3DTexture8_Release(p) (p)->Release()
724 /*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
725 #define IDirect3DTexture8_GetDevice(p,a) (p)->GetDevice(a)
726 #define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
727 #define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
728 #define IDirect3DTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
729 #define IDirect3DTexture8_SetPriority(p,a) (p)->SetPriority(a)
730 #define IDirect3DTexture8_GetPriority(p) (p)->GetPriority()
731 #define IDirect3DTexture8_PreLoad(p) (p)->PreLoad()
732 #define IDirect3DTexture8_GetType(p) (p)->GetType()
733 /*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
734 #define IDirect3DTexture8_SetLOD(p,a) (p)->SetLOD(a)
735 #define IDirect3DTexture8_GetLOD(p) (p)->GetLOD()
736 #define IDirect3DTexture8_GetLevelCount(p) (p)->GetLevelCount()
737 /*** IDirect3DTexture8 methods ***/
738 #define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
739 #define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
740 #define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
741 #define IDirect3DTexture8_UnlockRect(p,a) (p)->UnlockRect(a)
742 #define IDirect3DTexture8_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
743 #endif
744 
745 /*****************************************************************************
746  * IDirect3DVolumeTexture8 interface
747  */
748 #define INTERFACE IDirect3DVolumeTexture8
749 DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
750 {
751  /*** IUnknown methods ***/
755  /*** IDirect3DResource8 methods ***/
756  STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
757  STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
758  STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
759  STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
760  STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
761  STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
762  STDMETHOD_(void,PreLoad)(THIS) PURE;
764  /*** IDirect3DBaseTexture8 methods ***/
765  STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
766  STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
767  STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
768  /*** IDirect3DVolumeTexture8 methods ***/
769  STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC * pDesc) PURE;
770  STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
771  STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
772  STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
773  STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
774 };
775 #undef INTERFACE
776 
777 #if !defined(__cplusplus) || defined(CINTERFACE)
778 /*** IUnknown methods ***/
779 #define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
780 #define IDirect3DVolumeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
781 #define IDirect3DVolumeTexture8_Release(p) (p)->lpVtbl->Release(p)
782 /*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
783 #define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
784 #define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
785 #define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
786 #define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
787 #define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
788 #define IDirect3DVolumeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
789 #define IDirect3DVolumeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
790 #define IDirect3DVolumeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
791 /*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
792 #define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
793 #define IDirect3DVolumeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
794 #define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
795 /*** IDirect3DVolumeTexture8 methods ***/
796 #define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
797 #define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
798 #define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
799 #define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
800 #define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
801 #else
802 /*** IUnknown methods ***/
803 #define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
804 #define IDirect3DVolumeTexture8_AddRef(p) (p)->AddRef()
805 #define IDirect3DVolumeTexture8_Release(p) (p)->Release()
806 /*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
807 #define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->GetDevice(a)
808 #define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
809 #define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
810 #define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
811 #define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->SetPriority(a)
812 #define IDirect3DVolumeTexture8_GetPriority(p) (p)->GetPriority()
813 #define IDirect3DVolumeTexture8_PreLoad(p) (p)->PreLoad()
814 #define IDirect3DVolumeTexture8_GetType(p) (p)->GetType()
815 /*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
816 #define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->SetLOD(a)
817 #define IDirect3DVolumeTexture8_GetLOD(p) (p)->GetLOD()
818 #define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->GetLevelCount()
819 /*** IDirect3DVolumeTexture8 methods ***/
820 #define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
821 #define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
822 #define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
823 #define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->UnlockBox(a)
824 #define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
825 #endif
826 
827 /*****************************************************************************
828  * IDirect3DDevice8 interface
829  */
830 #define INTERFACE IDirect3DDevice8
831 DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
832 {
833  /*** IUnknown methods ***/
837  /*** IDirect3DDevice8 methods ***/
838  STDMETHOD(TestCooperativeLevel)(THIS) PURE;
839  STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE;
840  STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD Bytes) PURE;
841  STDMETHOD(GetDirect3D)(THIS_ IDirect3D8 ** ppD3D8) PURE;
843  STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE * pMode) PURE;
844  STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS * pParameters) PURE;
845  STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface8 * pCursorBitmap) PURE;
846  STDMETHOD_(void,SetCursorPosition)(THIS_ UINT XScreenSpace, UINT YScreenSpace,DWORD Flags) PURE;
848  STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
849  STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
850  STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
851  const RGNDATA *dirty_region) PURE;
852  STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
853  STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
854  STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD flags, const D3DGAMMARAMP *ramp) PURE;
855  STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
856  STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8 ** ppTexture) PURE;
857  STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
858  STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture8 ** ppCubeTexture) PURE;
859  STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer8 ** ppVertexBuffer) PURE;
860  STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer8 ** ppIndexBuffer) PURE;
861  STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,IDirect3DSurface8 ** ppSurface) PURE;
862  STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
863  STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8 ** ppSurface) PURE;
864  STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 *src_surface, const RECT *src_rects,
865  UINT rect_count, IDirect3DSurface8 *dst_surface, const POINT *dst_points) PURE;
866  STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
867  STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
868  STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
869  STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8 ** ppRenderTarget) PURE;
870  STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
871  STDMETHOD(BeginScene)(THIS) PURE;
872  STDMETHOD(EndScene)(THIS) PURE;
873  STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags, D3DCOLOR color,
874  float z, DWORD stencil) PURE;
877  STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
878  STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT8 *viewport) PURE;
879  STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
880  STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL8 *material) PURE;
881  STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
882  STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT8 *light) PURE;
883  STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT8 * pLight) PURE;
884  STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE;
885  STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL * pEnable) PURE;
886  STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
887  STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float * pPlane) PURE;
889  STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD * pValue) PURE;
890  STDMETHOD(BeginStateBlock)(THIS) PURE;
891  STDMETHOD(EndStateBlock)(THIS_ DWORD * pToken) PURE;
892  STDMETHOD(ApplyStateBlock)(THIS_ DWORD Token) PURE;
893  STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token) PURE;
894  STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token) PURE;
895  STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,DWORD * pToken) PURE;
896  STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS8 *clip_status) PURE;
897  STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
898  STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
899  STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 * pTexture) PURE;
900  STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD * pValue) PURE;
901  STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
902  STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
903  STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void * pDevInfoStruct,DWORD DevInfoStructSize) PURE;
904  STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
905  STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY * pEntries) PURE;
906  STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
907  STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT * PaletteNumber) PURE;
908  STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE;
909  STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE;
910  STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT primitive_count,
911  const void *data, UINT stride) PURE;
912  STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx,
913  UINT vertex_count, UINT primitive_count, const void *index_data, D3DFORMAT index_format,
914  const void *data, UINT stride) PURE;
915  STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD Flags) PURE;
916  STDMETHOD(CreateVertexShader)(THIS_ const DWORD *declaration, const DWORD *byte_code,
918  STDMETHOD(SetVertexShader)(THIS_ DWORD Handle) PURE;
919  STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
920  STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle) PURE;
921  STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
922  STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
923  STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
924  STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
925  STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 * pStreamData,UINT Stride) PURE;
926  STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
927  STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT BaseVertexIndex) PURE;
928  STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
929  STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, DWORD *shader) PURE;
930  STDMETHOD(SetPixelShader)(THIS_ DWORD Handle) PURE;
931  STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
932  STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle) PURE;
933  STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
934  STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
935  STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
936  STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count,
937  const D3DRECTPATCH_INFO *patch_info) PURE;
938  STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count,
939  const D3DTRIPATCH_INFO *patch_info) PURE;
940  STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
941 };
942 #undef INTERFACE
943 
944 #if !defined(__cplusplus) || defined(CINTERFACE)
945 /*** IUnknown methods ***/
946 #define IDirect3DDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
947 #define IDirect3DDevice8_AddRef(p) (p)->lpVtbl->AddRef(p)
948 #define IDirect3DDevice8_Release(p) (p)->lpVtbl->Release(p)
949 /*** IDirect3DDevice8 methods ***/
950 #define IDirect3DDevice8_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
951 #define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
952 #define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->lpVtbl->ResourceManagerDiscardBytes(p,a)
953 #define IDirect3DDevice8_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
954 #define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
955 #define IDirect3DDevice8_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
956 #define IDirect3DDevice8_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
957 #define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
958 #define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
959 #define IDirect3DDevice8_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
960 #define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
961 #define IDirect3DDevice8_Reset(p,a) (p)->lpVtbl->Reset(p,a)
962 #define IDirect3DDevice8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
963 #define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
964 #define IDirect3DDevice8_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
965 #define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
966 #define IDirect3DDevice8_GetGammaRamp(p,a) (p)->lpVtbl->GetGammaRamp(p,a)
967 #define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g)
968 #define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h)
969 #define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f)
970 #define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e)
971 #define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e)
972 #define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f)
973 #define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e)
974 #define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->lpVtbl->CreateImageSurface(p,a,b,c,d)
975 #define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->lpVtbl->CopyRects(p,a,b,c,d,e)
976 #define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
977 #define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->lpVtbl->GetFrontBuffer(p,a)
978 #define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
979 #define IDirect3DDevice8_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
980 #define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
981 #define IDirect3DDevice8_BeginScene(p) (p)->lpVtbl->BeginScene(p)
982 #define IDirect3DDevice8_EndScene(p) (p)->lpVtbl->EndScene(p)
983 #define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
984 #define IDirect3DDevice8_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
985 #define IDirect3DDevice8_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
986 #define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
987 #define IDirect3DDevice8_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
988 #define IDirect3DDevice8_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
989 #define IDirect3DDevice8_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
990 #define IDirect3DDevice8_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
991 #define IDirect3DDevice8_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
992 #define IDirect3DDevice8_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
993 #define IDirect3DDevice8_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
994 #define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
995 #define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
996 #define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
997 #define IDirect3DDevice8_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
998 #define IDirect3DDevice8_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
999 #define IDirect3DDevice8_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
1000 #define IDirect3DDevice8_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
1001 #define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a)
1002 #define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a)
1003 #define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a)
1004 #define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
1005 #define IDirect3DDevice8_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
1006 #define IDirect3DDevice8_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
1007 #define IDirect3DDevice8_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
1008 #define IDirect3DDevice8_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
1009 #define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
1010 #define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
1011 #define IDirect3DDevice8_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
1012 #define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c)
1013 #define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
1014 #define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
1015 #define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
1016 #define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
1017 #define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
1018 #define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
1019 #define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
1020 #define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
1021 #define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->lpVtbl->processVertices(p,a,b,c,d,e)
1022 #define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
1023 #define IDirect3DDevice8_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
1024 #define IDirect3DDevice8_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
1025 #define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->lpVtbl->DeleteVertexShader(p,a)
1026 #define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c)
1027 #define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c)
1028 #define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c)
1029 #define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c)
1030 #define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->lpVtbl->SetStreamSource(p,a,b,c)
1031 #define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->lpVtbl->GetStreamSource(p,a,b,c)
1032 #define IDirect3DDevice8_SetIndices(p,a,b) (p)->lpVtbl->SetIndices(p,a,b)
1033 #define IDirect3DDevice8_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b)
1034 #define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
1035 #define IDirect3DDevice8_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
1036 #define IDirect3DDevice8_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
1037 #define IDirect3DDevice8_DeletePixelShader(p,a) (p)->lpVtbl->DeletePixelShader(p,a)
1038 #define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c)
1039 #define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c)
1040 #define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c)
1041 #define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
1042 #define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
1043 #define IDirect3DDevice8_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
1044 #else
1045 /*** IUnknown methods ***/
1046 #define IDirect3DDevice8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1047 #define IDirect3DDevice8_AddRef(p) (p)->AddRef()
1048 #define IDirect3DDevice8_Release(p) (p)->Release()
1049 /*** IDirect3DDevice8 methods ***/
1050 #define IDirect3DDevice8_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
1051 #define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
1052 #define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->ResourceManagerDiscardBytes(a)
1053 #define IDirect3DDevice8_GetDirect3D(p,a) (p)->GetDirect3D(a)
1054 #define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
1055 #define IDirect3DDevice8_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
1056 #define IDirect3DDevice8_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
1057 #define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
1058 #define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
1059 #define IDirect3DDevice8_ShowCursor(p,a) (p)->ShowCursor(a)
1060 #define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
1061 #define IDirect3DDevice8_Reset(p,a) (p)->Reset(a)
1062 #define IDirect3DDevice8_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
1063 #define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
1064 #define IDirect3DDevice8_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
1065 #define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->SetGammaRamp(a,b)
1066 #define IDirect3DDevice8_GetGammaRamp(p,a) (p)->GetGammaRamp(a)
1067 #define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->CreateTexture(a,b,c,d,e,f,g)
1068 #define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h)
1069 #define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->CreateCubeTexture(a,b,c,d,e,f)
1070 #define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->CreateVertexBuffer(a,b,c,d,e)
1071 #define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->CreateIndexBuffer(a,b,c,d,e)
1072 #define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->CreateRenderTarget(a,b,c,d,e,f)
1073 #define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->CreateDepthStencilSurface(a,b,c,d,e)
1074 #define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->CreateImageSurface(a,b,c,d)
1075 #define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->CopyRects(a,b,c,d,e)
1076 #define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
1077 #define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->GetFrontBuffer(a)
1078 #define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
1079 #define IDirect3DDevice8_GetRenderTarget(p,a) (p)->GetRenderTarget(a)
1080 #define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
1081 #define IDirect3DDevice8_BeginScene(p) (p)->BeginScene()
1082 #define IDirect3DDevice8_EndScene(p) (p)->EndScene()
1083 #define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
1084 #define IDirect3DDevice8_SetTransform(p,a,b) (p)->SetTransform(a,b)
1085 #define IDirect3DDevice8_GetTransform(p,a,b) (p)->GetTransform(a,b)
1086 #define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
1087 #define IDirect3DDevice8_SetViewport(p,a) (p)->SetViewport(a)
1088 #define IDirect3DDevice8_GetViewport(p,a) (p)->GetViewport(a)
1089 #define IDirect3DDevice8_SetMaterial(p,a) (p)->SetMaterial(a)
1090 #define IDirect3DDevice8_GetMaterial(p,a) (p)->GetMaterial(a)
1091 #define IDirect3DDevice8_SetLight(p,a,b) (p)->SetLight(a,b)
1092 #define IDirect3DDevice8_GetLight(p,a,b) (p)->GetLight(a,b)
1093 #define IDirect3DDevice8_LightEnable(p,a,b) (p)->LightEnable(a,b)
1094 #define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
1095 #define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
1096 #define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
1097 #define IDirect3DDevice8_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
1098 #define IDirect3DDevice8_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
1099 #define IDirect3DDevice8_BeginStateBlock(p) (p)->BeginStateBlock()
1100 #define IDirect3DDevice8_EndStateBlock(p,a) (p)->EndStateBlock(a)
1101 #define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a)
1102 #define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a)
1103 #define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a)
1104 #define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
1105 #define IDirect3DDevice8_SetClipStatus(p,a) (p)->SetClipStatus(a)
1106 #define IDirect3DDevice8_GetClipStatus(p,a) (p)->GetClipStatus(a)
1107 #define IDirect3DDevice8_GetTexture(p,a,b) (p)->GetTexture(a,b)
1108 #define IDirect3DDevice8_SetTexture(p,a,b) (p)->SetTexture(a,b)
1109 #define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
1110 #define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
1111 #define IDirect3DDevice8_ValidateDevice(p,a) (p)->ValidateDevice(a)
1112 #define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c)
1113 #define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
1114 #define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
1115 #define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
1116 #define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
1117 #define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
1118 #define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->DrawIndexedPrimitive(a,b,c,d,e)
1119 #define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
1120 #define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
1121 #define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->processVertices(a,b,c,d,e)
1122 #define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->CreateVertexShader(a,b,c,d)
1123 #define IDirect3DDevice8_SetVertexShader(p,a) (p)->SetVertexShader(a)
1124 #define IDirect3DDevice8_GetVertexShader(p,a) (p)->GetVertexShader(a)
1125 #define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->DeleteVertexShader(a)
1126 #define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->SetVertexShaderConstant(a,b,c)
1127 #define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->GetVertexShaderConstant(a,b,c)
1128 #define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->GetVertexShaderDeclaration(a,b,c)
1129 #define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->GetVertexShaderFunction(a,b,c)
1130 #define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->SetStreamSource(a,b,c)
1131 #define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->GetStreamSource(a,b,c)
1132 #define IDirect3DDevice8_SetIndices(p,a,b) (p)->SetIndices(a,b)
1133 #define IDirect3DDevice8_GetIndices(p,a,b) (p)->GetIndices(a,b)
1134 #define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
1135 #define IDirect3DDevice8_SetPixelShader(p,a) (p)->SetPixelShader(a)
1136 #define IDirect3DDevice8_GetPixelShader(p,a) (p)->GetPixelShader(a)
1137 #define IDirect3DDevice8_DeletePixelShader(p,a) (p)->DeletePixelShader(a)
1138 #define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->SetPixelShaderConstant(a,b,c)
1139 #define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->GetPixelShaderConstant(a,b,c)
1140 #define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->GetPixelShaderFunction(a,b,c)
1141 #define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
1142 #define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
1143 #define IDirect3DDevice8_DeletePatch(p,a) (p)->DeletePatch(a)
1144 #endif
1145 
1146 #ifdef __cplusplus
1147 extern "C" {
1148 #endif /* defined(__cplusplus) */
1149 
1150 /* Define the main entrypoint as well */
1151 IDirect3D8* WINAPI Direct3DCreate8(UINT SDKVersion);
1152 
1153 #ifdef __cplusplus
1154 } /* extern "C" */
1155 #endif /* defined(__cplusplus) */
1156 
1157 #endif /* __WINE_D3D8_H */
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2327
GLint level
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:113
struct IDirect3DVolume8 * LPDIRECT3DVOLUME8
Definition: d3d8.h:106
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
#define THIS_
Definition: basetyps.h:65
Type
Definition: Type.h:6
Definition: scsiwmi.h:51
_In_ ULONG Mode
Definition: hubbusif.h:303
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
struct IDirect3DDevice8 * LPDIRECT3DDEVICE8
Definition: d3d8.h:97
struct IDirect3DIndexBuffer8 * LPDIRECT3DINDEXBUFFER8
Definition: d3d8.h:115
REFIID riid
Definition: precomp.h:44
GLuint GLenum matrix
Definition: glext.h:9407
struct IDirect3DVolumeTexture8 * PDIRECT3DVOLUMETEXTURE8
Definition: d3d8.h:127
HMONITOR GetAdapterMonitor(LPCSTR lpszDeviceName)
Definition: adapter.c:393
DeviceType
Definition: mmdrv.h:41
IDirect3D8 *WINAPI Direct3DCreate8(UINT SDKVersion)
Definition: d3d8.c:30
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:382
GLuint GLuint GLsizei count
Definition: gl.h:1545
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID _Out_ PHANDLE Token
enum _D3DPOOL D3DPOOL
_In_ UINT Bytes
Definition: mmcopy.h:9
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
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
WORD face[3]
Definition: mesh.c:4747
struct IDirect3DSurface8 * LPDIRECT3DSURFACE8
Definition: d3d8.h:112
static LRESULT GetInfo(const CodecInfo *pi, ICINFO *icinfo, DWORD dwSize)
Definition: msrle32.c:1168
& rect
Definition: startmenu.cpp:1413
#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
struct IDirect3DBaseTexture8 * PDIRECT3DBASETEXTURE8
Definition: d3d8.h:118
unsigned int BOOL
Definition: ntddk_ex.h:94
struct IDirect3DVolume8 * PDIRECT3DVOLUME8
Definition: d3d8.h:106
GLuint color
Definition: glext.h:6243
struct IDirect3DResource8 * LPDIRECT3DRESOURCE8
Definition: d3d8.h:100
HRESULT CheckDepthStencilMatch(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat)
Definition: format.c:539
struct IDirect3DBaseTexture8 * LPDIRECT3DBASETEXTURE8
Definition: d3d8.h:118
GLdouble GLdouble z
Definition: glext.h:5874
enum _D3DCUBEMAP_FACES D3DCUBEMAP_FACES
enum _D3DFORMAT D3DFORMAT
struct IDirect3DVertexBuffer8 * PDIRECT3DVERTEXBUFFER8
Definition: d3d8.h:103
struct IDirect3DSurface8 * PDIRECT3DSURFACE8
Definition: d3d8.h:112
enum _D3DSTATEBLOCKTYPE D3DSTATEBLOCKTYPE
_In_ HANDLE Handle
Definition: extypes.h:390
GLuint shader
Definition: glext.h:6030
GLsizei stride
Definition: glext.h:5848
LONG HRESULT
Definition: typedefs.h:77
D3DRENDERSTATETYPE
Definition: d3dtypes.h:874
#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
_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
INT GetType(BOOL bLocal, LPOSVERSIONINFOEX osvi, LPSERVER_INFO_102 pBuf102)
Definition: gettype.c:129
#define index(s, c)
Definition: various.h:29
struct IDirect3DTexture8 * PDIRECT3DTEXTURE8
Definition: d3d8.h:121
struct IDirect3DCubeTexture8 * PDIRECT3DCUBETEXTURE8
Definition: d3d8.h:124
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
static int state
Definition: maze.c:121
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
unsigned char BYTE
Definition: mem.h:68
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
struct IDirect3DVolumeTexture8 * LPDIRECT3DVOLUMETEXTURE8
Definition: d3d8.h:127
DEFINE_GUID(IID_IDirect3D8, 0x1DD9E8DA, 0x1C77, 0x4D40, 0xB0, 0xCF, 0x98, 0xFE, 0xFD, 0xFF, 0x95, 0x12)
enum State_ State
Definition: pofuncs.h:54
struct IDirect3D8 * LPDIRECT3D8
Definition: d3d8.h:94
DECLARE_INTERFACE_(IDirect3D8, IUnknown)
Definition: d3d8.h:134
enum _D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_TYPE
struct IDirect3DTexture8 * LPDIRECT3DTEXTURE8
Definition: d3d8.h:121
struct IDirect3DResource8 * PDIRECT3DRESOURCE8
Definition: d3d8.h:100
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 IDirect3DSwapChain8 * LPDIRECT3DSWAPCHAIN8
Definition: d3d8.h:109
D3DPRIMITIVETYPE
Definition: d3dtypes.h:822
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
struct IDirect3DSwapChain8 * PDIRECT3DSWAPCHAIN8
Definition: d3d8.h:109
HRESULT CheckDeviceType(LPD3D9_DRIVERCAPS pDriverCaps, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed)
Definition: format.c:224
BOOL WINAPI GetTransform(HDC, DWORD, XFORM *)
struct IDirect3DIndexBuffer8 * PDIRECT3DINDEXBUFFER8
Definition: d3d8.h:115
enum _D3DTEXTURESTAGESTATETYPE D3DTEXTURESTAGESTATETYPE
unsigned int ULONG
Definition: retypes.h:1
enum _D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE
void Clear(USHORT Window)
Definition: hardware.c:705
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1827
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
enum _D3DRESOURCETYPE D3DRESOURCETYPE
struct IDirect3DVertexBuffer8 * LPDIRECT3DVERTEXBUFFER8
Definition: d3d8.h:103
struct IDirect3DCubeTexture8 * LPDIRECT3DCUBETEXTURE8
Definition: d3d8.h:124
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:1194