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 #define INTERFACE IDirect3D8
133 DECLARE_INTERFACE_(IDirect3D8,IUnknown)
134 {
135 /*** IUnknown methods ***/
136 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
137 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
138 STDMETHOD_(ULONG,Release)(THIS) PURE;
139 /*** IDirect3D8 methods ***/
140 STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
141 STDMETHOD_(UINT,GetAdapterCount )(THIS) PURE;
142 STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
143 STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT Adapter) PURE;
144 STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, UINT Mode, D3DDISPLAYMODE * pMode) PURE;
145 STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE * pMode) PURE;
146 STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter, D3DDEVTYPE CheckType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed) PURE;
147 STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
148 STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType) PURE;
149 STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
150 STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS8 * pCaps) PURE;
151 STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
152 STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType,HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
153 };
154 #undef INTERFACE
155
156 #if !defined(__cplusplus) || defined(CINTERFACE)
157 /*** IUnknown methods ***/
158 #define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
159 #define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p)
160 #define IDirect3D8_Release(p) (p)->lpVtbl->Release(p)
161 /*** IDirect3D8 methods ***/
162 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
163 #define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
164 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
165 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a)
166 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
167 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
168 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
169 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
170 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
171 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
172 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
173 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
174 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
175 #else
176 /*** IUnknown methods ***/
177 #define IDirect3D8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
178 #define IDirect3D8_AddRef(p) (p)->AddRef()
179 #define IDirect3D8_Release(p) (p)->Release()
180 /*** IDirect3D8 methods ***/
181 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
182 #define IDirect3D8_GetAdapterCount(p) (p)->GetAdapterCount()
183 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
184 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->GetAdapterModeCount(a)
185 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->EnumAdapterModes(a,b,c)
186 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
187 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
188 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
189 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
190 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
191 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
192 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
193 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
194 #endif
195
196 /*****************************************************************************
197 * IDirect3DVolume8 interface
198 */
199 #define INTERFACE IDirect3DVolume8
200 DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
201 {
202 /*** IUnknown methods ***/
203 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
204 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
205 STDMETHOD_(ULONG,Release)(THIS) PURE;
206 /*** IDirect3DVolume8 methods ***/
207 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
208 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
209 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData, DWORD * pSizeOfData) PURE;
210 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
211 STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
212 STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
213 STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD Flags) PURE;
214 STDMETHOD(UnlockBox)(THIS) PURE;
215 };
216 #undef INTERFACE
217
218 #if !defined(__cplusplus) || defined(CINTERFACE)
219 /*** IUnknown methods ***/
220 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
221 #define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p)
222 #define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p)
223 /*** IDirect3DVolume8 methods ***/
224 #define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
225 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
226 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
227 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
228 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
229 #define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
230 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
231 #define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
232 #else
233 /*** IUnknown methods ***/
234 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
235 #define IDirect3DVolume8_AddRef(p) (p)->AddRef()
236 #define IDirect3DVolume8_Release(p) (p)->Release()
237 /*** IDirect3DVolume8 methods ***/
238 #define IDirect3DVolume8_GetDevice(p,a) (p)->GetDevice(a)
239 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
240 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
241 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->FreePrivateData(a)
242 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->GetContainer(a,b)
243 #define IDirect3DVolume8_GetDesc(p,a) (p)->GetDesc(a)
244 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
245 #define IDirect3DVolume8_UnlockBox(p) (p)->UnlockBox()
246 #endif
247
248 /*****************************************************************************
249 * IDirect3DSwapChain8 interface
250 */
251 #define INTERFACE IDirect3DSwapChain8
252 DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
253 {
254 /*** IUnknown methods ***/
255 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
256 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
257 STDMETHOD_(ULONG,Release)(THIS) PURE;
258 /*** IDirect3DSwapChain8 methods ***/
259 STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
260 STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
261 };
262 #undef INTERFACE
263
264 #if !defined(__cplusplus) || defined(CINTERFACE)
265 /*** IUnknown methods ***/
266 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
267 #define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p)
268 #define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p)
269 /*** IDirect3DSwapChain8 methods ***/
270 #define IDirect3DSwapChain8_Present(p,a,b,c) (p)->lpVtbl->Present(p,a,b,c)
271 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
272 #else
273 /*** IUnknown methods ***/
274 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
275 #define IDirect3DSwapChain8_AddRef(p) (p)->AddRef()
276 #define IDirect3DSwapChain8_Release(p) (p)->Release()
277 /*** IDirect3DSwapChain8 methods ***/
278 #define IDirect3DSwapChain8_Present(p,a,b,c) (p)->Present(a,b,c)
279 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
280 #endif
281
282 /*****************************************************************************
283 * IDirect3DSurface8 interface
284 */
285 #define INTERFACE IDirect3DSurface8
286 DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
287 {
288 /*** IUnknown methods ***/
289 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
290 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
291 STDMETHOD_(ULONG,Release)(THIS) PURE;
292 /*** IDirect3DSurface8 methods ***/
293 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
294 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData,DWORD SizeOfData,DWORD Flags) PURE;
295 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData,DWORD * pSizeOfData) PURE;
296 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
297 STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
298 STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
299 STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD Flags) PURE;
300 STDMETHOD(UnlockRect)(THIS) PURE;
301 };
302 #undef INTERFACE
303
304 #if !defined(__cplusplus) || defined(CINTERFACE)
305 /*** IUnknown methods ***/
306 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
307 #define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p)
308 #define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p)
309 /*** IDirect3DSurface8 methods ***/
310 #define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
311 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
312 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
313 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
314 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
315 #define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
316 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
317 #define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
318 #else
319 /*** IUnknown methods ***/
320 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
321 #define IDirect3DSurface8_AddRef(p) (p)->AddRef()
322 #define IDirect3DSurface8_Release(p) (p)->Release()
323 /*** IDirect3DSurface8 methods ***/
324 #define IDirect3DSurface8_GetDevice(p,a) (p)->GetDevice(a)
325 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
326 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
327 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->FreePrivateData(a)
328 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->GetContainer(a,b)
329 #define IDirect3DSurface8_GetDesc(p,a) (p)->GetDesc(a)
330 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
331 #define IDirect3DSurface8_UnlockRect(p) (p)->UnlockRect()
332 #endif
333
334 /*****************************************************************************
335 * IDirect3DResource8 interface
336 */
337 #define INTERFACE IDirect3DResource8
338 DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
339 {
340 /*** IUnknown methods ***/
341 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
342 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
343 STDMETHOD_(ULONG,Release)(THIS) PURE;
344 /*** IDirect3DResource8 methods ***/
345 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
346 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
347 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
348 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
349 STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
350 STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
351 STDMETHOD_(void,PreLoad)(THIS) PURE;
352 STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
353 };
354 #undef INTERFACE
355
356 #if !defined(__cplusplus) || defined(CINTERFACE)
357 /*** IUnknown methods ***/
358 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
359 #define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p)
360 #define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p)
361 /*** IDirect3DResource8 methods ***/
362 #define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
363 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
364 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
365 #define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
366 #define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
367 #define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
368 #define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
369 #define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p)
370 #else
371 /*** IUnknown methods ***/
372 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
373 #define IDirect3DResource8_AddRef(p) (p)->AddRef()
374 #define IDirect3DResource8_Release(p) (p)->Release()
375 /*** IDirect3DResource8 methods ***/
376 #define IDirect3DResource8_GetDevice(p,a) (p)->GetDevice(a)
377 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
378 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
379 #define IDirect3DResource8_FreePrivateData(p,a) (p)->FreePrivateData(a)
380 #define IDirect3DResource8_SetPriority(p,a) (p)->SetPriority(a)
381 #define IDirect3DResource8_GetPriority(p) (p)->GetPriority()
382 #define IDirect3DResource8_PreLoad(p) (p)->PreLoad()
383 #define IDirect3DResource8_GetType(p) (p)->GetType()
384 #endif
385
386 /*****************************************************************************
387 * IDirect3DVertexBuffer8 interface
388 */
389 #define INTERFACE IDirect3DVertexBuffer8
390 DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
391 {
392 /*** IUnknown methods ***/
393 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
394 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
395 STDMETHOD_(ULONG,Release)(THIS) PURE;
396 /*** IDirect3DResource8 methods ***/
397 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
398 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
399 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
400 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
401 STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
402 STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
403 STDMETHOD_(void,PreLoad)(THIS) PURE;
404 STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
405 /*** IDirect3DVertexBuffer8 methods ***/
406 STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
407 STDMETHOD(Unlock)(THIS) PURE;
408 STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC * pDesc) PURE;
409 };
410 #undef INTERFACE
411
412 #if !defined(__cplusplus) || defined(CINTERFACE)
413 /*** IUnknown methods ***/
414 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
415 #define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
416 #define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p)
417 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
418 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
419 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
420 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
421 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
422 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
423 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
424 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
425 #define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
426 /*** IDirect3DVertexBuffer8 methods ***/
427 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
428 #define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
429 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
430 #else
431 /*** IUnknown methods ***/
432 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
433 #define IDirect3DVertexBuffer8_AddRef(p) (p)->AddRef()
434 #define IDirect3DVertexBuffer8_Release(p) (p)->Release()
435 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
436 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
437 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
438 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
439 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
440 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
441 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->GetPriority()
442 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->PreLoad()
443 #define IDirect3DVertexBuffer8_GetType(p) (p)->GetType()
444 /*** IDirect3DVertexBuffer8 methods ***/
445 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
446 #define IDirect3DVertexBuffer8_Unlock(p) (p)->Unlock()
447 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
448 #endif
449
450 /*****************************************************************************
451 * IDirect3DIndexBuffer8 interface
452 */
453 #define INTERFACE IDirect3DIndexBuffer8
454 DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
455 {
456 /*** IUnknown methods ***/
457 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
458 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
459 STDMETHOD_(ULONG,Release)(THIS) PURE;
460 /*** IDirect3DResource8 methods ***/
461 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
462 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
463 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
464 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
465 STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
466 STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
467 STDMETHOD_(void,PreLoad)(THIS) PURE;
468 STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
469 /*** IDirect3DIndexBuffer8 methods ***/
470 STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
471 STDMETHOD(Unlock)(THIS) PURE;
472 STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
473 };
474 #undef INTERFACE
475
476 #if !defined(__cplusplus) || defined(CINTERFACE)
477 /*** IUnknown methods ***/
478 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
479 #define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
480 #define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p)
481 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
482 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
483 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
484 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
485 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
486 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
487 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
488 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
489 #define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
490 /*** IDirect3DIndexBuffer8 methods ***/
491 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
492 #define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
493 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
494 #else
495 /*** IUnknown methods ***/
496 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
497 #define IDirect3DIndexBuffer8_AddRef(p) (p)->AddRef()
498 #define IDirect3DIndexBuffer8_Release(p) (p)->Release()
499 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
500 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
501 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
502 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
503 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
504 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
505 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->GetPriority()
506 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->PreLoad()
507 #define IDirect3DIndexBuffer8_GetType(p) (p)->GetType()
508 /*** IDirect3DIndexBuffer8 methods ***/
509 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
510 #define IDirect3DIndexBuffer8_Unlock(p) (p)->Unlock()
511 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
512 #endif
513
514 /*****************************************************************************
515 * IDirect3DBaseTexture8 interface
516 */
517 #define INTERFACE IDirect3DBaseTexture8
518 DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
519 {
520 /*** IUnknown methods ***/
521 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
522 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
523 STDMETHOD_(ULONG,Release)(THIS) PURE;
524 /*** IDirect3DResource8 methods ***/
525 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
526 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
527 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
528 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
529 STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
530 STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
531 STDMETHOD_(void,PreLoad)(THIS) PURE;
532 STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
533 /*** IDirect3DBaseTexture8 methods ***/
534 STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
535 STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
536 STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
537 };
538 #undef INTERFACE
539
540 #if !defined(__cplusplus) || defined(CINTERFACE)
541 /*** IUnknown methods ***/
542 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
543 #define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
544 #define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p)
545 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
546 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
547 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
548 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
549 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
550 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
551 #define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
552 #define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
553 #define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p)
554 /*** IDirect3DBaseTexture8 methods ***/
555 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
556 #define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
557 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
558 #else
559 /*** IUnknown methods ***/
560 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
561 #define IDirect3DBaseTexture8_AddRef(p) (p)->AddRef()
562 #define IDirect3DBaseTexture8_Release(p) (p)->Release()
563 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
564 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->GetDevice(a)
565 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
566 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
567 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
568 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->SetPriority(a)
569 #define IDirect3DBaseTexture8_GetPriority(p) (p)->GetPriority()
570 #define IDirect3DBaseTexture8_PreLoad(p) (p)->PreLoad()
571 #define IDirect3DBaseTexture8_GetType(p) (p)->GetType()
572 /*** IDirect3DBaseTexture8 methods ***/
573 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->SetLOD(a)
574 #define IDirect3DBaseTexture8_GetLOD(p) (p)->GetLOD()
575 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->GetLevelCount()
576 #endif
577
578 /*****************************************************************************
579 * IDirect3DCubeTexture8 interface
580 */
581 #define INTERFACE IDirect3DCubeTexture8
582 DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
583 {
584 /*** IUnknown methods ***/
585 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
586 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
587 STDMETHOD_(ULONG,Release)(THIS) PURE;
588 /*** IDirect3DResource8 methods ***/
589 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
590 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE;
591 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
592 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
593 STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
594 STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
595 STDMETHOD_(void,PreLoad)(THIS) PURE;
596 STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
597 /*** IDirect3DBaseTexture8 methods ***/
598 STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
599 STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
600 STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
601 /*** IDirect3DCubeTexture8 methods ***/
602 STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
603 STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
604 STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD Flags) PURE;
605 STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE;
606 STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType,CONST RECT * pDirtyRect) PURE;
607 };
608 #undef INTERFACE
609
610 #if !defined(__cplusplus) || defined(CINTERFACE)
611 /*** IUnknown methods ***/
612 #define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
613 #define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
614 #define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p)
615 /*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
616 #define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
617