1 /*==========================================================================; 2 * 3 * Copyright (C) Microsoft Corporation. All Rights Reserved. 4 * 5 * File: d3d8.h 6 * Content: Direct3D include file 7 * 8 ****************************************************************************/ 9 10 #ifndef _D3D8_H_ 11 #define _D3D8_H_ 12 13 #ifndef DIRECT3D_VERSION 14 #define DIRECT3D_VERSION 0x0800 15 #endif //DIRECT3D_VERSION 16 17 // include this file content only if compiling for DX8 interfaces 18 #if(DIRECT3D_VERSION >= 0x0800) 19 20 21 /* This identifier is passed to Direct3DCreate8 in order to ensure that an 22 * application was built against the correct header files. This number is 23 * incremented whenever a header (or other) change would require applications 24 * to be rebuilt. If the version doesn't match, Direct3DCreate8 will fail. 25 * (The number itself has no meaning.)*/ 26 27 #define D3D_SDK_VERSION 220 28 29 30 #include <stdlib.h> 31 32 #define COM_NO_WINDOWS_H 33 #include <objbase.h> 34 35 #include <windows.h> 36 37 #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) 38 #define HMONITOR_DECLARED 39 DECLARE_HANDLE(HMONITOR); 40 #endif 41 42 #define D3DAPI WINAPI 43 44 /* 45 * Interface IID's 46 */ 47 #if defined( _WIN32 ) && !defined( _NO_COM) 48 49 /* IID_IDirect3D8 */ 50 /* {1DD9E8DA-1C77-4d40-B0CF-98FEFDFF9512} */ 51 DEFINE_GUID(IID_IDirect3D8, 0x1dd9e8da, 0x1c77, 0x4d40, 0xb0, 0xcf, 0x98, 0xfe, 0xfd, 0xff, 0x95, 0x12); 52 53 /* IID_IDirect3DDevice8 */ 54 /* {7385E5DF-8FE8-41D5-86B6-D7B48547B6CF} */ 55 DEFINE_GUID(IID_IDirect3DDevice8, 0x7385e5df, 0x8fe8, 0x41d5, 0x86, 0xb6, 0xd7, 0xb4, 0x85, 0x47, 0xb6, 0xcf); 56 57 /* IID_IDirect3DResource8 */ 58 /* {1B36BB7B-09B7-410a-B445-7D1430D7B33F} */ 59 DEFINE_GUID(IID_IDirect3DResource8, 0x1b36bb7b, 0x9b7, 0x410a, 0xb4, 0x45, 0x7d, 0x14, 0x30, 0xd7, 0xb3, 0x3f); 60 61 /* IID_IDirect3DBaseTexture8 */ 62 /* {B4211CFA-51B9-4a9f-AB78-DB99B2BB678E} */ 63 DEFINE_GUID(IID_IDirect3DBaseTexture8, 0xb4211cfa, 0x51b9, 0x4a9f, 0xab, 0x78, 0xdb, 0x99, 0xb2, 0xbb, 0x67, 0x8e); 64 65 /* IID_IDirect3DTexture8 */ 66 /* {E4CDD575-2866-4f01-B12E-7EECE1EC9358} */ 67 DEFINE_GUID(IID_IDirect3DTexture8, 0xe4cdd575, 0x2866, 0x4f01, 0xb1, 0x2e, 0x7e, 0xec, 0xe1, 0xec, 0x93, 0x58); 68 69 /* IID_IDirect3DCubeTexture8 */ 70 /* {3EE5B968-2ACA-4c34-8BB5-7E0C3D19B750} */ 71 DEFINE_GUID(IID_IDirect3DCubeTexture8, 0x3ee5b968, 0x2aca, 0x4c34, 0x8b, 0xb5, 0x7e, 0x0c, 0x3d, 0x19, 0xb7, 0x50); 72 73 /* IID_IDirect3DVolumeTexture8 */ 74 /* {4B8AAAFA-140F-42ba-9131-597EAFAA2EAD} */ 75 DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4b8aaafa, 0x140f, 0x42ba, 0x91, 0x31, 0x59, 0x7e, 0xaf, 0xaa, 0x2e, 0xad); 76 77 /* IID_IDirect3DVertexBuffer8 */ 78 /* {8AEEEAC7-05F9-44d4-B591-000B0DF1CB95} */ 79 DEFINE_GUID(IID_IDirect3DVertexBuffer8, 0x8aeeeac7, 0x05f9, 0x44d4, 0xb5, 0x91, 0x00, 0x0b, 0x0d, 0xf1, 0xcb, 0x95); 80 81 /* IID_IDirect3DIndexBuffer8 */ 82 /* {0E689C9A-053D-44a0-9D92-DB0E3D750F86} */ 83 DEFINE_GUID(IID_IDirect3DIndexBuffer8, 0x0e689c9a, 0x053d, 0x44a0, 0x9d, 0x92, 0xdb, 0x0e, 0x3d, 0x75, 0x0f, 0x86); 84 85 /* IID_IDirect3DSurface8 */ 86 /* {B96EEBCA-B326-4ea5-882F-2FF5BAE021DD} */ 87 DEFINE_GUID(IID_IDirect3DSurface8, 0xb96eebca, 0xb326, 0x4ea5, 0x88, 0x2f, 0x2f, 0xf5, 0xba, 0xe0, 0x21, 0xdd); 88 89 /* IID_IDirect3DVolume8 */ 90 /* {BD7349F5-14F1-42e4-9C79-972380DB40C0} */ 91 DEFINE_GUID(IID_IDirect3DVolume8, 0xbd7349f5, 0x14f1, 0x42e4, 0x9c, 0x79, 0x97, 0x23, 0x80, 0xdb, 0x40, 0xc0); 92 93 /* IID_IDirect3DSwapChain8 */ 94 /* {928C088B-76B9-4C6B-A536-A590853876CD} */ 95 DEFINE_GUID(IID_IDirect3DSwapChain8, 0x928c088b, 0x76b9, 0x4c6b, 0xa5, 0x36, 0xa5, 0x90, 0x85, 0x38, 0x76, 0xcd); 96 97 #endif 98 99 #ifdef __cplusplus 100 101 interface IDirect3D8; 102 interface IDirect3DDevice8; 103 104 interface IDirect3DResource8; 105 interface IDirect3DBaseTexture8; 106 interface IDirect3DTexture8; 107 interface IDirect3DVolumeTexture8; 108 interface IDirect3DCubeTexture8; 109 110 interface IDirect3DVertexBuffer8; 111 interface IDirect3DIndexBuffer8; 112 113 interface IDirect3DSurface8; 114 interface IDirect3DVolume8; 115 116 interface IDirect3DSwapChain8; 117 118 #endif 119 120 121 typedef interface IDirect3D8 IDirect3D8; 122 typedef interface IDirect3DDevice8 IDirect3DDevice8; 123 typedef interface IDirect3DResource8 IDirect3DResource8; 124 typedef interface IDirect3DBaseTexture8 IDirect3DBaseTexture8; 125 typedef interface IDirect3DTexture8 IDirect3DTexture8; 126 typedef interface IDirect3DVolumeTexture8 IDirect3DVolumeTexture8; 127 typedef interface IDirect3DCubeTexture8 IDirect3DCubeTexture8; 128 typedef interface IDirect3DVertexBuffer8 IDirect3DVertexBuffer8; 129 typedef interface IDirect3DIndexBuffer8 IDirect3DIndexBuffer8; 130 typedef interface IDirect3DSurface8 IDirect3DSurface8; 131 typedef interface IDirect3DVolume8 IDirect3DVolume8; 132 typedef interface IDirect3DSwapChain8 IDirect3DSwapChain8; 133 134 #include "d3d8types.h" 135 #include "d3d8caps.h" 136 137 138 #ifdef __cplusplus 139 extern "C" { 140 #endif 141 142 /* 143 * DLL Function for creating a Direct3D8 object. This object supports 144 * enumeration and allows the creation of Direct3DDevice8 objects. 145 * Pass the value of the constant D3D_SDK_VERSION to this function, so 146 * that the run-time can validate that your application was compiled 147 * against the right headers. 148 */ 149 150 IDirect3D8 * WINAPI Direct3DCreate8(UINT SDKVersion); 151 152 153 /* 154 * Direct3D interfaces 155 */ 156 157 158 159 160 161 162 #undef INTERFACE 163 #define INTERFACE IDirect3D8 164 165 DECLARE_INTERFACE_(IDirect3D8, IUnknown) 166 { 167 /*** IUnknown methods ***/ 168 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 169 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 170 STDMETHOD_(ULONG,Release)(THIS) PURE; 171 172 /*** IDirect3D8 methods ***/ 173 STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE; 174 STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE; 175 STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER8* pIdentifier) PURE; 176 STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter) PURE; 177 STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter,UINT Mode,D3DDISPLAYMODE* pMode) PURE; 178 STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter,D3DDISPLAYMODE* pMode) PURE; 179 STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter,D3DDEVTYPE CheckType,D3DFORMAT DisplayFormat,D3DFORMAT BackBufferFormat,BOOL Windowed) PURE; 180 STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat) PURE; 181 STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType) PURE; 182 STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat) PURE; 183 STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS8* pCaps) PURE; 184 STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE; 185 STDMETHOD(CreateDevice)(THIS_ UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice8** ppReturnedDeviceInterface) PURE; 186 }; 187 188 typedef struct IDirect3D8 *LPDIRECT3D8, *PDIRECT3D8; 189 190 #if !defined(__cplusplus) || defined(CINTERFACE) 191 #define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 192 #define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p) 193 #define IDirect3D8_Release(p) (p)->lpVtbl->Release(p) 194 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a) 195 #define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p) 196 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c) 197 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a) 198 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c) 199 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b) 200 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e) 201 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f) 202 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e) 203 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e) 204 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c) 205 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a) 206 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f) 207 #else 208 #define IDirect3D8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 209 #define IDirect3D8_AddRef(p) (p)->AddRef() 210 #define IDirect3D8_Release(p) (p)->Release() 211 #define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a) 212 #define IDirect3D8_GetAdapterCount(p) (p)->GetAdapterCount() 213 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c) 214 #define IDirect3D8_GetAdapterModeCount(p,a) (p)->GetAdapterModeCount(a) 215 #define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->EnumAdapterModes(a,b,c) 216 #define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b) 217 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e) 218 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f) 219 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->CheckDeviceMultiSampleType(a,b,c,d,e) 220 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e) 221 #define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c) 222 #define IDirect3D8_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a) 223 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f) 224 #endif 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 #undef INTERFACE 245 #define INTERFACE IDirect3DDevice8 246 247 DECLARE_INTERFACE_(IDirect3DDevice8, IUnknown) 248 { 249 /*** IUnknown methods ***/ 250 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 251 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 252 STDMETHOD_(ULONG,Release)(THIS) PURE; 253 254 /*** IDirect3DDevice8 methods ***/ 255 STDMETHOD(TestCooperativeLevel)(THIS) PURE; 256 STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE; 257 STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD Bytes) PURE; 258 STDMETHOD(GetDirect3D)(THIS_ IDirect3D8** ppD3D8) PURE; 259 STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS8* pCaps) PURE; 260 STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE; 261 STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE; 262 STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot,UINT YHotSpot,IDirect3DSurface8* pCursorBitmap) PURE; 263 STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y,DWORD Flags) PURE; 264 STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE; 265 STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain8** pSwapChain) PURE; 266 STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE; 267 STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion) PURE; 268 STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8** ppBackBuffer) PURE; 269 STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE; 270 STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD Flags,CONST D3DGAMMARAMP* pRamp) PURE; 271 STDMETHOD_(void, GetGammaRamp)(THIS_ D3DGAMMARAMP* pRamp) PURE; 272 STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8** ppTexture) PURE; 273 STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8** ppVolumeTexture) PURE; 274 STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture8** ppCubeTexture) PURE; 275 STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer8** ppVertexBuffer) PURE; 276 STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer8** ppIndexBuffer) PURE; 277 STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,IDirect3DSurface8** ppSurface) PURE; 278 STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8** ppSurface) PURE; 279 STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8** ppSurface) PURE; 280 STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8* pSourceSurface,CONST RECT* pSourceRectsArray,UINT cRects,IDirect3DSurface8* pDestinationSurface,CONST POINT* pDestPointsArray) PURE; 281 STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8* pSourceTexture,IDirect3DBaseTexture8* pDestinationTexture) PURE; 282 STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8* pDestSurface) PURE; 283 STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8* pRenderTarget,IDirect3DSurface8* pNewZStencil) PURE; 284 STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8** ppRenderTarget) PURE; 285 STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8** ppZStencilSurface) PURE; 286 STDMETHOD(BeginScene)(THIS) PURE; 287 STDMETHOD(EndScene)(THIS) PURE; 288 STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE; 289 STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) PURE; 290 STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) PURE; 291 STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*) PURE; 292 STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8* pViewport) PURE; 293 STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8* pViewport) PURE; 294 STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8* pMaterial) PURE; 295 STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8* pMaterial) PURE; 296 STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3DLIGHT8*) PURE; 297 STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT8*) PURE; 298 STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE; 299 STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL* pEnable) PURE; 300 STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float* pPlane) PURE; 301 STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float* pPlane) PURE; 302 STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE; 303 STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD* pValue) PURE; 304 STDMETHOD(BeginStateBlock)(THIS) PURE; 305 STDMETHOD(EndStateBlock)(THIS_ DWORD* pToken) PURE; 306 STDMETHOD(ApplyStateBlock)(THIS_ DWORD Token) PURE; 307 STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token) PURE; 308 STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token) PURE; 309 STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,DWORD* pToken) PURE; 310 STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8* pClipStatus) PURE; 311 STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8* pClipStatus) PURE; 312 STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8** ppTexture) PURE; 313 STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8* pTexture) PURE; 314 STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) PURE; 315 STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE; 316 STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE; 317 STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void* pDevInfoStruct,DWORD DevInfoStructSize) PURE; 318 STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY* pEntries) PURE; 319 STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE; 320 STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE; 321 STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE; 322 STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE; 323 STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE; 324 STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE; 325 STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertexIndices,UINT PrimitiveCount,CONST void* pIndexData,D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE; 326 STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8* pDestBuffer,DWORD Flags) PURE; 327 STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pDeclaration,CONST DWORD* pFunction,DWORD* pHandle,DWORD Usage) PURE; 328 STDMETHOD(SetVertexShader)(THIS_ DWORD Handle) PURE; 329 STDMETHOD(GetVertexShader)(THIS_ DWORD* pHandle) PURE; 330 STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle) PURE; 331 STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD Register,CONST void* pConstantData,DWORD ConstantCount) PURE; 332 STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void* pConstantData,DWORD ConstantCount) PURE; 333 STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData) PURE; 334 STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData) PURE; 335 STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8* pStreamData,UINT Stride) PURE; 336 STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8** ppStreamData,UINT* pStride) PURE; 337 STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8* pIndexData,UINT BaseVertexIndex) PURE; 338 STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8** ppIndexData,UINT* pBaseVertexIndex) PURE; 339 STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction,DWORD* pHandle) PURE; 340 STDMETHOD(SetPixelShader)(THIS_ DWORD Handle) PURE; 341 STDMETHOD(GetPixelShader)(THIS_ DWORD* pHandle) PURE; 342 STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle) PURE; 343 STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD Register,CONST void* pConstantData,DWORD ConstantCount) PURE; 344 STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void* pConstantData,DWORD ConstantCount) PURE; 345 STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData) PURE; 346 STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE; 347 STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE; 348 STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE; 349 }; 350 351 typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8, *PDIRECT3DDEVICE8; 352 353 #if !defined(__cplusplus) || defined(CINTERFACE) 354 #define IDirect3DDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 355 #define IDirect3DDevice8_AddRef(p) (p)->lpVtbl->AddRef(p) 356 #define IDirect3DDevice8_Release(p) (p)->lpVtbl->Release(p) 357 #define IDirect3DDevice8_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) 358 #define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p) 359 #define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->lpVtbl->ResourceManagerDiscardBytes(p,a) 360 #define IDirect3DDevice8_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) 361 #define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a) 362 #define IDirect3DDevice8_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a) 363 #define IDirect3DDevice8_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a) 364 #define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c) 365 #define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c) 366 #define IDirect3DDevice8_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a) 367 #define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b) 368 #define IDirect3DDevice8_Reset(p,a) (p)->lpVtbl->Reset(p,a) 369 #define IDirect3DDevice8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d) 370 #define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c) 371 #define IDirect3DDevice8_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a) 372 #define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b) 373 #define IDirect3DDevice8_GetGammaRamp(p,a) (p)->lpVtbl->GetGammaRamp(p,a) 374 #define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g) 375 #define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h) 376 #define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f) 377 #define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e) 378 #define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e) 379 #define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f) 380 #define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e) 381 #define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->lpVtbl->CreateImageSurface(p,a,b,c,d) 382 #define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->lpVtbl->CopyRects(p,a,b,c,d,e) 383 #define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b) 384 #define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->lpVtbl->GetFrontBuffer(p,a) 385 #define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) 386 #define IDirect3DDevice8_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a) 387 #define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a) 388 #define IDirect3DDevice8_BeginScene(p) (p)->lpVtbl->BeginScene(p) 389 #define IDirect3DDevice8_EndScene(p) (p)->lpVtbl->EndScene(p) 390 #define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f) 391 #define IDirect3DDevice8_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) 392 #define IDirect3DDevice8_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) 393 #define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) 394 #define IDirect3DDevice8_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) 395 #define IDirect3DDevice8_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) 396 #define IDirect3DDevice8_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) 397 #define IDirect3DDevice8_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) 398 #define IDirect3DDevice8_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b) 399 #define IDirect3DDevice8_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b) 400 #define IDirect3DDevice8_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b) 401 #define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b) 402 #define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b) 403 #define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b) 404 #define IDirect3DDevice8_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) 405 #define IDirect3DDevice8_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) 406 #define IDirect3DDevice8_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p) 407 #define IDirect3DDevice8_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a) 408 #define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a) 409 #define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a) 410 #define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a) 411 #define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b) 412 #define IDirect3DDevice8_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) 413 #define IDirect3DDevice8_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) 414 #define IDirect3DDevice8_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) 415 #define IDirect3DDevice8_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) 416 #define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) 417 #define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) 418 #define IDirect3DDevice8_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) 419 #define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c) 420 #define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b) 421 #define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b) 422 #define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a) 423 #define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a) 424 #define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c) 425 #define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e) 426 #define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d) 427 #define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) 428 #define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e) 429 #define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->lpVtbl->CreateVertexShader(p,a,b,c,d) 430 #define IDirect3DDevice8_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a) 431 #define IDirect3DDevice8_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a) 432 #define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->lpVtbl->DeleteVertexShader(p,a) 433 #define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c) 434 #define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c) 435 #define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c) 436 #define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c) 437 #define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->lpVtbl->SetStreamSource(p,a,b,c) 438 #define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->lpVtbl->GetStreamSource(p,a,b,c) 439 #define IDirect3DDevice8_SetIndices(p,a,b) (p)->lpVtbl->SetIndices(p,a,b) 440 #define IDirect3DDevice8_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b) 441 #define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b) 442 #define IDirect3DDevice8_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a) 443 #define IDirect3DDevice8_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a) 444 #define IDirect3DDevice8_DeletePixelShader(p,a) (p)->lpVtbl->DeletePixelShader(p,a) 445 #define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c) 446 #define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c) 447 #define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c) 448 #define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c) 449 #define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c) 450 #define IDirect3DDevice8_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a) 451 #else 452 #define IDirect3DDevice8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 453 #define IDirect3DDevice8_AddRef(p) (p)->AddRef() 454 #define IDirect3DDevice8_Release(p) (p)->Release() 455 #define IDirect3DDevice8_TestCooperativeLevel(p) (p)->TestCooperativeLevel() 456 #define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem() 457 #define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->ResourceManagerDiscardBytes(a) 458 #define IDirect3DDevice8_GetDirect3D(p,a) (p)->GetDirect3D(a) 459 #define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a) 460 #define IDirect3DDevice8_GetDisplayMode(p,a) (p)->GetDisplayMode(a) 461 #define IDirect3DDevice8_GetCreationParameters(p,a) (p)->GetCreationParameters(a) 462 #define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c) 463 #define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c) 464 #define IDirect3DDevice8_ShowCursor(p,a) (p)->ShowCursor(a) 465 #define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b) 466 #define IDirect3DDevice8_Reset(p,a) (p)->Reset(a) 467 #define IDirect3DDevice8_Present(p,a,b,c,d) (p)->Present(a,b,c,d) 468 #define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c) 469 #define IDirect3DDevice8_GetRasterStatus(p,a) (p)->GetRasterStatus(a) 470 #define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->SetGammaRamp(a,b) 471 #define IDirect3DDevice8_GetGammaRamp(p,a) (p)->GetGammaRamp(a) 472 #define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->CreateTexture(a,b,c,d,e,f,g) 473 #define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h) 474 #define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->CreateCubeTexture(a,b,c,d,e,f) 475 #define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->CreateVertexBuffer(a,b,c,d,e) 476 #define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->CreateIndexBuffer(a,b,c,d,e) 477 #define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->CreateRenderTarget(a,b,c,d,e,f) 478 #define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->CreateDepthStencilSurface(a,b,c,d,e) 479 #define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->CreateImageSurface(a,b,c,d) 480 #define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->CopyRects(a,b,c,d,e) 481 #define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b) 482 #define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->GetFrontBuffer(a) 483 #define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) 484 #define IDirect3DDevice8_GetRenderTarget(p,a) (p)->GetRenderTarget(a) 485 #define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a) 486 #define IDirect3DDevice8_BeginScene(p) (p)->BeginScene() 487 #define IDirect3DDevice8_EndScene(p) (p)->EndScene() 488 #define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f) 489 #define IDirect3DDevice8_SetTransform(p,a,b) (p)->SetTransform(a,b) 490 #define IDirect3DDevice8_GetTransform(p,a,b) (p)->GetTransform(a,b) 491 #define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) 492 #define IDirect3DDevice8_SetViewport(p,a) (p)->SetViewport(a) 493 #define IDirect3DDevice8_GetViewport(p,a) (p)->GetViewport(a) 494 #define IDirect3DDevice8_SetMaterial(p,a) (p)->SetMaterial(a) 495 #define IDirect3DDevice8_GetMaterial(p,a) (p)->GetMaterial(a) 496 #define IDirect3DDevice8_SetLight(p,a,b) (p)->SetLight(a,b) 497 #define IDirect3DDevice8_GetLight(p,a,b) (p)->GetLight(a,b) 498 #define IDirect3DDevice8_LightEnable(p,a,b) (p)->LightEnable(a,b) 499 #define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b) 500 #define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b) 501 #define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b) 502 #define IDirect3DDevice8_SetRenderState(p,a,b) (p)->SetRenderState(a,b) 503 #define IDirect3DDevice8_GetRenderState(p,a,b) (p)->GetRenderState(a,b) 504 #define IDirect3DDevice8_BeginStateBlock(p) (p)->BeginStateBlock() 505 #define IDirect3DDevice8_EndStateBlock(p,a) (p)->EndStateBlock(a) 506 #define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a) 507 #define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a) 508 #define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a) 509 #define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b) 510 #define IDirect3DDevice8_SetClipStatus(p,a) (p)->SetClipStatus(a) 511 #define IDirect3DDevice8_GetClipStatus(p,a) (p)->GetClipStatus(a) 512 #define IDirect3DDevice8_GetTexture(p,a,b) (p)->GetTexture(a,b) 513 #define IDirect3DDevice8_SetTexture(p,a,b) (p)->SetTexture(a,b) 514 #define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) 515 #define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) 516 #define IDirect3DDevice8_ValidateDevice(p,a) (p)->ValidateDevice(a) 517 #define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c) 518 #define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b) 519 #define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b) 520 #define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a) 521 #define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a) 522 #define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c) 523 #define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->DrawIndexedPrimitive(a,b,c,d,e) 524 #define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d) 525 #define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h) 526 #define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->ProcessVertices(a,b,c,d,e) 527 #define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->CreateVertexShader(a,b,c,d) 528 #define IDirect3DDevice8_SetVertexShader(p,a) (p)->SetVertexShader(a) 529 #define IDirect3DDevice8_GetVertexShader(p,a) (p)->GetVertexShader(a) 530 #define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->DeleteVertexShader(a) 531 #define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->SetVertexShaderConstant(a,b,c) 532 #define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->GetVertexShaderConstant(a,b,c) 533 #define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->GetVertexShaderDeclaration(a,b,c) 534 #define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->GetVertexShaderFunction(a,b,c) 535 #define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->SetStreamSource(a,b,c) 536 #define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->GetStreamSource(a,b,c) 537 #define IDirect3DDevice8_SetIndices(p,a,b) (p)->SetIndices(a,b) 538 #define IDirect3DDevice8_GetIndices(p,a,b) (p)->GetIndices(a,b) 539 #define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b) 540 #define IDirect3DDevice8_SetPixelShader(p,a) (p)->SetPixelShader(a) 541 #define IDirect3DDevice8_GetPixelShader(p,a) (p)->GetPixelShader(a) 542 #define IDirect3DDevice8_DeletePixelShader(p,a) (p)->DeletePixelShader(a) 543 #define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->SetPixelShaderConstant(a,b,c) 544 #define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->GetPixelShaderConstant(a,b,c) 545 #define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->GetPixelShaderFunction(a,b,c) 546 #define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c) 547 #define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c) 548 #define IDirect3DDevice8_DeletePatch(p,a) (p)->DeletePatch(a) 549 #endif 550 551 552 553 #undef INTERFACE 554 #define INTERFACE IDirect3DSwapChain8 555 556 DECLARE_INTERFACE_(IDirect3DSwapChain8, IUnknown) 557 { 558 /*** IUnknown methods ***/ 559 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 560 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 561 STDMETHOD_(ULONG,Release)(THIS) PURE; 562 563 /*** IDirect3DSwapChain8 methods ***/ 564 STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion) PURE; 565 STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8** ppBackBuffer) PURE; 566 }; 567 568 typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8; 569 570 #if !defined(__cplusplus) || defined(CINTERFACE) 571 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 572 #define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p) 573 #define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p) 574 #define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d) 575 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c) 576 #else 577 #define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 578 #define IDirect3DSwapChain8_AddRef(p) (p)->AddRef() 579 #define IDirect3DSwapChain8_Release(p) (p)->Release() 580 #define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->Present(a,b,c,d) 581 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c) 582 #endif 583 584 585 586 #undef INTERFACE 587 #define INTERFACE IDirect3DResource8 588 589 DECLARE_INTERFACE_(IDirect3DResource8, IUnknown) 590 { 591 /*** IUnknown methods ***/ 592 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 593 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 594 STDMETHOD_(ULONG,Release)(THIS) PURE; 595 596 /*** IDirect3DResource8 methods ***/ 597 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 598 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 599 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 600 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 601 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 602 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 603 STDMETHOD_(void, PreLoad)(THIS) PURE; 604 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 605 }; 606 607 typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8; 608 609 #if !defined(__cplusplus) || defined(CINTERFACE) 610 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 611 #define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p) 612 #define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p) 613 #define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 614 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 615 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 616 #define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 617 #define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 618 #define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 619 #define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 620 #define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p) 621 #else 622 #define IDirect3DResource8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 623 #define IDirect3DResource8_AddRef(p) (p)->AddRef() 624 #define IDirect3DResource8_Release(p) (p)->Release() 625 #define IDirect3DResource8_GetDevice(p,a) (p)->GetDevice(a) 626 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 627 #define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 628 #define IDirect3DResource8_FreePrivateData(p,a) (p)->FreePrivateData(a) 629 #define IDirect3DResource8_SetPriority(p,a) (p)->SetPriority(a) 630 #define IDirect3DResource8_GetPriority(p) (p)->GetPriority() 631 #define IDirect3DResource8_PreLoad(p) (p)->PreLoad() 632 #define IDirect3DResource8_GetType(p) (p)->GetType() 633 #endif 634 635 636 637 638 #undef INTERFACE 639 #define INTERFACE IDirect3DBaseTexture8 640 641 DECLARE_INTERFACE_(IDirect3DBaseTexture8, IDirect3DResource8) 642 { 643 /*** IUnknown methods ***/ 644 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 645 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 646 STDMETHOD_(ULONG,Release)(THIS) PURE; 647 648 /*** IDirect3DResource8 methods ***/ 649 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 650 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 651 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 652 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 653 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 654 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 655 STDMETHOD_(void, PreLoad)(THIS) PURE; 656 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 657 STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; 658 STDMETHOD_(DWORD, GetLOD)(THIS) PURE; 659 STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; 660 }; 661 662 typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8; 663 664 #if !defined(__cplusplus) || defined(CINTERFACE) 665 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 666 #define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) 667 #define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p) 668 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 669 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 670 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 671 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 672 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 673 #define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 674 #define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 675 #define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p) 676 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) 677 #define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) 678 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) 679 #else 680 #define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 681 #define IDirect3DBaseTexture8_AddRef(p) (p)->AddRef() 682 #define IDirect3DBaseTexture8_Release(p) (p)->Release() 683 #define IDirect3DBaseTexture8_GetDevice(p,a) (p)->GetDevice(a) 684 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 685 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 686 #define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) 687 #define IDirect3DBaseTexture8_SetPriority(p,a) (p)->SetPriority(a) 688 #define IDirect3DBaseTexture8_GetPriority(p) (p)->GetPriority() 689 #define IDirect3DBaseTexture8_PreLoad(p) (p)->PreLoad() 690 #define IDirect3DBaseTexture8_GetType(p) (p)->GetType() 691 #define IDirect3DBaseTexture8_SetLOD(p,a) (p)->SetLOD(a) 692 #define IDirect3DBaseTexture8_GetLOD(p) (p)->GetLOD() 693 #define IDirect3DBaseTexture8_GetLevelCount(p) (p)->GetLevelCount() 694 #endif 695 696 697 698 699 700 #undef INTERFACE 701 #define INTERFACE IDirect3DTexture8 702 703 DECLARE_INTERFACE_(IDirect3DTexture8, IDirect3DBaseTexture8) 704 { 705 /*** IUnknown methods ***/ 706 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 707 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 708 STDMETHOD_(ULONG,Release)(THIS) PURE; 709 710 /*** IDirect3DBaseTexture8 methods ***/ 711 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 712 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 713 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 714 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 715 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 716 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 717 STDMETHOD_(void, PreLoad)(THIS) PURE; 718 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 719 STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; 720 STDMETHOD_(DWORD, GetLOD)(THIS) PURE; 721 STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; 722 STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC *pDesc) PURE; 723 STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface8** ppSurfaceLevel) PURE; 724 STDMETHOD(LockRect)(THIS_ UINT Level,D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE; 725 STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE; 726 STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE; 727 }; 728 729 typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8; 730 731 #if !defined(__cplusplus) || defined(CINTERFACE) 732 #define IDirect3DTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 733 #define IDirect3DTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) 734 #define IDirect3DTexture8_Release(p) (p)->lpVtbl->Release(p) 735 #define IDirect3DTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 736 #define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 737 #define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 738 #define IDirect3DTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 739 #define IDirect3DTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 740 #define IDirect3DTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 741 #define IDirect3DTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 742 #define IDirect3DTexture8_GetType(p) (p)->lpVtbl->GetType(p) 743 #define IDirect3DTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) 744 #define IDirect3DTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) 745 #define IDirect3DTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) 746 #define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) 747 #define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b) 748 #define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d) 749 #define IDirect3DTexture8_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a) 750 #define IDirect3DTexture8_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a) 751 #else 752 #define IDirect3DTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 753 #define IDirect3DTexture8_AddRef(p) (p)->AddRef() 754 #define IDirect3DTexture8_Release(p) (p)->Release() 755 #define IDirect3DTexture8_GetDevice(p,a) (p)->GetDevice(a) 756 #define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 757 #define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 758 #define IDirect3DTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) 759 #define IDirect3DTexture8_SetPriority(p,a) (p)->SetPriority(a) 760 #define IDirect3DTexture8_GetPriority(p) (p)->GetPriority() 761 #define IDirect3DTexture8_PreLoad(p) (p)->PreLoad() 762 #define IDirect3DTexture8_GetType(p) (p)->GetType() 763 #define IDirect3DTexture8_SetLOD(p,a) (p)->SetLOD(a) 764 #define IDirect3DTexture8_GetLOD(p) (p)->GetLOD() 765 #define IDirect3DTexture8_GetLevelCount(p) (p)->GetLevelCount() 766 #define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) 767 #define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b) 768 #define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d) 769 #define IDirect3DTexture8_UnlockRect(p,a) (p)->UnlockRect(a) 770 #define IDirect3DTexture8_AddDirtyRect(p,a) (p)->AddDirtyRect(a) 771 #endif 772 773 774 775 776 777 #undef INTERFACE 778 #define INTERFACE IDirect3DVolumeTexture8 779 780 DECLARE_INTERFACE_(IDirect3DVolumeTexture8, IDirect3DBaseTexture8) 781 { 782 /*** IUnknown methods ***/ 783 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 784 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 785 STDMETHOD_(ULONG,Release)(THIS) PURE; 786 787 /*** IDirect3DBaseTexture8 methods ***/ 788 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 789 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 790 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 791 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 792 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 793 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 794 STDMETHOD_(void, PreLoad)(THIS) PURE; 795 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 796 STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; 797 STDMETHOD_(DWORD, GetLOD)(THIS) PURE; 798 STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; 799 STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC *pDesc) PURE; 800 STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume8** ppVolumeLevel) PURE; 801 STDMETHOD(LockBox)(THIS_ UINT Level,D3DLOCKED_BOX* pLockedVolume,CONST D3DBOX* pBox,DWORD Flags) PURE; 802 STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE; 803 STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE; 804 }; 805 806 typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8; 807 808 #if !defined(__cplusplus) || defined(CINTERFACE) 809 #define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 810 #define IDirect3DVolumeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) 811 #define IDirect3DVolumeTexture8_Release(p) (p)->lpVtbl->Release(p) 812 #define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 813 #define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 814 #define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 815 #define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 816 #define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 817 #define IDirect3DVolumeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 818 #define IDirect3DVolumeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 819 #define IDirect3DVolumeTexture8_GetType(p) (p)->lpVtbl->GetType(p) 820 #define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) 821 #define IDirect3DVolumeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) 822 #define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) 823 #define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) 824 #define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b) 825 #define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d) 826 #define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a) 827 #define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a) 828 #else 829 #define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 830 #define IDirect3DVolumeTexture8_AddRef(p) (p)->AddRef() 831 #define IDirect3DVolumeTexture8_Release(p) (p)->Release() 832 #define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->GetDevice(a) 833 #define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 834 #define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 835 #define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) 836 #define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->SetPriority(a) 837 #define IDirect3DVolumeTexture8_GetPriority(p) (p)->GetPriority() 838 #define IDirect3DVolumeTexture8_PreLoad(p) (p)->PreLoad() 839 #define IDirect3DVolumeTexture8_GetType(p) (p)->GetType() 840 #define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->SetLOD(a) 841 #define IDirect3DVolumeTexture8_GetLOD(p) (p)->GetLOD() 842 #define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->GetLevelCount() 843 #define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) 844 #define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b) 845 #define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d) 846 #define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->UnlockBox(a) 847 #define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->AddDirtyBox(a) 848 #endif 849 850 851 852 853 854 #undef INTERFACE 855 #define INTERFACE IDirect3DCubeTexture8 856 857 DECLARE_INTERFACE_(IDirect3DCubeTexture8, IDirect3DBaseTexture8) 858 { 859 /*** IUnknown methods ***/ 860 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 861 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 862 STDMETHOD_(ULONG,Release)(THIS) PURE; 863 864 /*** IDirect3DBaseTexture8 methods ***/ 865 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 866 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 867 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 868 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 869 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 870 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 871 STDMETHOD_(void, PreLoad)(THIS) PURE; 872 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 873 STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; 874 STDMETHOD_(DWORD, GetLOD)(THIS) PURE; 875 STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; 876 STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC *pDesc) PURE; 877 STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8** ppCubeMapSurface) PURE; 878 STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE; 879 STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE; 880 STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType,CONST RECT* pDirtyRect) PURE; 881 }; 882 883 typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8; 884 885 #if !defined(__cplusplus) || defined(CINTERFACE) 886 #define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 887 #define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) 888 #define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p) 889 #define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 890 #define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 891 #define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 892 #define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 893 #define IDirect3DCubeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 894 #define IDirect3DCubeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 895 #define IDirect3DCubeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 896 #define IDirect3DCubeTexture8_GetType(p) (p)->lpVtbl->GetType(p) 897 #define IDirect3DCubeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) 898 #define IDirect3DCubeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) 899 #define IDirect3DCubeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) 900 #define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) 901 #define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c) 902 #define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e) 903 #define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b) 904 #define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b) 905 #else 906 #define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 907 #define IDirect3DCubeTexture8_AddRef(p) (p)->AddRef() 908 #define IDirect3DCubeTexture8_Release(p) (p)->Release() 909 #define IDirect3DCubeTexture8_GetDevice(p,a) (p)->GetDevice(a) 910 #define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 911 #define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 912 #define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) 913 #define IDirect3DCubeTexture8_SetPriority(p,a) (p)->SetPriority(a) 914 #define IDirect3DCubeTexture8_GetPriority(p) (p)->GetPriority() 915 #define IDirect3DCubeTexture8_PreLoad(p) (p)->PreLoad() 916 #define IDirect3DCubeTexture8_GetType(p) (p)->GetType() 917 #define IDirect3DCubeTexture8_SetLOD(p,a) (p)->SetLOD(a) 918 #define IDirect3DCubeTexture8_GetLOD(p) (p)->GetLOD() 919 #define IDirect3DCubeTexture8_GetLevelCount(p) (p)->GetLevelCount() 920 #define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) 921 #define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c) 922 #define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e) 923 #define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->UnlockRect(a,b) 924 #define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b) 925 #endif 926 927 928 929 930 #undef INTERFACE 931 #define INTERFACE IDirect3DVertexBuffer8 932 933 DECLARE_INTERFACE_(IDirect3DVertexBuffer8, IDirect3DResource8) 934 { 935 /*** IUnknown methods ***/ 936 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 937 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 938 STDMETHOD_(ULONG,Release)(THIS) PURE; 939 940 /*** IDirect3DResource8 methods ***/ 941 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 942 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 943 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 944 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 945 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 946 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 947 STDMETHOD_(void, PreLoad)(THIS) PURE; 948 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 949 STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,BYTE** ppbData,DWORD Flags) PURE; 950 STDMETHOD(Unlock)(THIS) PURE; 951 STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC *pDesc) PURE; 952 }; 953 954 typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8; 955 956 #if !defined(__cplusplus) || defined(CINTERFACE) 957 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 958 #define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) 959 #define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p) 960 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 961 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 962 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 963 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 964 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 965 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 966 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 967 #define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p) 968 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 969 #define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p) 970 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) 971 #else 972 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 973 #define IDirect3DVertexBuffer8_AddRef(p) (p)->AddRef() 974 #define IDirect3DVertexBuffer8_Release(p) (p)->Release() 975 #define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->GetDevice(a) 976 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 977 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 978 #define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a) 979 #define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->SetPriority(a) 980 #define IDirect3DVertexBuffer8_GetPriority(p) (p)->GetPriority() 981 #define IDirect3DVertexBuffer8_PreLoad(p) (p)->PreLoad() 982 #define IDirect3DVertexBuffer8_GetType(p) (p)->GetType() 983 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 984 #define IDirect3DVertexBuffer8_Unlock(p) (p)->Unlock() 985 #define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->GetDesc(a) 986 #endif 987 988 989 990 991 #undef INTERFACE 992 #define INTERFACE IDirect3DIndexBuffer8 993 994 DECLARE_INTERFACE_(IDirect3DIndexBuffer8, IDirect3DResource8) 995 { 996 /*** IUnknown methods ***/ 997 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 998 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 999 STDMETHOD_(ULONG,Release)(THIS) PURE; 1000 1001 /*** IDirect3DResource8 methods ***/ 1002 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 1003 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 1004 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 1005 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 1006 STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; 1007 STDMETHOD_(DWORD, GetPriority)(THIS) PURE; 1008 STDMETHOD_(void, PreLoad)(THIS) PURE; 1009 STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; 1010 STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,BYTE** ppbData,DWORD Flags) PURE; 1011 STDMETHOD(Unlock)(THIS) PURE; 1012 STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC *pDesc) PURE; 1013 }; 1014 1015 typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8; 1016 1017 #if !defined(__cplusplus) || defined(CINTERFACE) 1018 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1019 #define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) 1020 #define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p) 1021 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 1022 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 1023 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 1024 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 1025 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 1026 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p) 1027 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p) 1028 #define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p) 1029 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 1030 #define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p) 1031 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) 1032 #else 1033 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1034 #define IDirect3DIndexBuffer8_AddRef(p) (p)->AddRef() 1035 #define IDirect3DIndexBuffer8_Release(p) (p)->Release() 1036 #define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->GetDevice(a) 1037 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 1038 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 1039 #define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a) 1040 #define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->SetPriority(a) 1041 #define IDirect3DIndexBuffer8_GetPriority(p) (p)->GetPriority() 1042 #define IDirect3DIndexBuffer8_PreLoad(p) (p)->PreLoad() 1043 #define IDirect3DIndexBuffer8_GetType(p) (p)->GetType() 1044 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 1045 #define IDirect3DIndexBuffer8_Unlock(p) (p)->Unlock() 1046 #define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->GetDesc(a) 1047 #endif 1048 1049 1050 1051 1052 #undef INTERFACE 1053 #define INTERFACE IDirect3DSurface8 1054 1055 DECLARE_INTERFACE_(IDirect3DSurface8, IUnknown) 1056 { 1057 /*** IUnknown methods ***/ 1058 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 1059 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1060 STDMETHOD_(ULONG,Release)(THIS) PURE; 1061 1062 /*** IDirect3DSurface8 methods ***/ 1063 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 1064 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 1065 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 1066 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 1067 STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer) PURE; 1068 STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC *pDesc) PURE; 1069 STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) PURE; 1070 STDMETHOD(UnlockRect)(THIS) PURE; 1071 }; 1072 1073 typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8; 1074 1075 #if !defined(__cplusplus) || defined(CINTERFACE) 1076 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1077 #define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p) 1078 #define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p) 1079 #define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 1080 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 1081 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 1082 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 1083 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) 1084 #define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) 1085 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c) 1086 #define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p) 1087 #else 1088 #define IDirect3DSurface8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1089 #define IDirect3DSurface8_AddRef(p) (p)->AddRef() 1090 #define IDirect3DSurface8_Release(p) (p)->Release() 1091 #define IDirect3DSurface8_GetDevice(p,a) (p)->GetDevice(a) 1092 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 1093 #define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 1094 #define IDirect3DSurface8_FreePrivateData(p,a) (p)->FreePrivateData(a) 1095 #define IDirect3DSurface8_GetContainer(p,a,b) (p)->GetContainer(a,b) 1096 #define IDirect3DSurface8_GetDesc(p,a) (p)->GetDesc(a) 1097 #define IDirect3DSurface8_LockRect(p,a,b,c) (p)->LockRect(a,b,c) 1098 #define IDirect3DSurface8_UnlockRect(p) (p)->UnlockRect() 1099 #endif 1100 1101 1102 1103 1104 #undef INTERFACE 1105 #define INTERFACE IDirect3DVolume8 1106 1107 DECLARE_INTERFACE_(IDirect3DVolume8, IUnknown) 1108 { 1109 /*** IUnknown methods ***/ 1110 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE; 1111 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1112 STDMETHOD_(ULONG,Release)(THIS) PURE; 1113 1114 /*** IDirect3DVolume8 methods ***/ 1115 STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE; 1116 STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE; 1117 STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE; 1118 STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; 1119 STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer) PURE; 1120 STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC *pDesc) PURE; 1121 STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX* pBox,DWORD Flags) PURE; 1122 STDMETHOD(UnlockBox)(THIS) PURE; 1123 }; 1124 1125 typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8; 1126 1127 #if !defined(__cplusplus) || defined(CINTERFACE) 1128 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1129 #define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p) 1130 #define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p) 1131 #define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) 1132 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 1133 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 1134 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 1135 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) 1136 #define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) 1137 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c) 1138 #define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p) 1139 #else 1140 #define IDirect3DVolume8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1141 #define IDirect3DVolume8_AddRef(p) (p)->AddRef() 1142 #define IDirect3DVolume8_Release(p) (p)->Release() 1143 #define IDirect3DVolume8_GetDevice(p,a) (p)->GetDevice(a) 1144 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 1145 #define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 1146 #define IDirect3DVolume8_FreePrivateData(p,a) (p)->FreePrivateData(a) 1147 #define IDirect3DVolume8_GetContainer(p,a,b) (p)->GetContainer(a,b) 1148 #define IDirect3DVolume8_GetDesc(p,a) (p)->GetDesc(a) 1149 #define IDirect3DVolume8_LockBox(p,a,b,c) (p)->LockBox(a,b,c) 1150 #define IDirect3DVolume8_UnlockBox(p) (p)->UnlockBox() 1151 #endif 1152 1153 /**************************************************************************** 1154 * Flags for SetPrivateData method on all D3D8 interfaces 1155 * 1156 * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData 1157 * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this 1158 * pointer and Release when the private data is destroyed. The data will be 1159 * destroyed when another SetPrivateData with the same GUID is set, when 1160 * FreePrivateData is called, or when the D3D8 object is freed. 1161 ****************************************************************************/ 1162 #define D3DSPD_IUNKNOWN 0x00000001L 1163 1164 /**************************************************************************** 1165 * 1166 * Parameter for IDirect3D8 Enum and GetCaps8 functions to get the info for 1167 * the current mode only. 1168 * 1169 ****************************************************************************/ 1170 1171 #define D3DCURRENT_DISPLAY_MODE 0x00EFFFFFL 1172 1173 /**************************************************************************** 1174 * 1175 * Flags for IDirect3D8::CreateDevice's BehaviorFlags 1176 * 1177 ****************************************************************************/ 1178 1179 #define D3DCREATE_FPU_PRESERVE 0x00000002L 1180 #define D3DCREATE_MULTITHREADED 0x00000004L 1181 1182 #define D3DCREATE_PUREDEVICE 0x00000010L 1183 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L 1184 #define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L 1185 #define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L 1186 1187 #define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L 1188 1189 1190 /**************************************************************************** 1191 * 1192 * Parameter for IDirect3D8::CreateDevice's iAdapter 1193 * 1194 ****************************************************************************/ 1195 1196 #define D3DADAPTER_DEFAULT 0 1197 1198 /**************************************************************************** 1199 * 1200 * Flags for IDirect3D8::EnumAdapters 1201 * 1202 ****************************************************************************/ 1203 1204 #define D3DENUM_NO_WHQL_LEVEL 0x00000002L 1205 1206 /**************************************************************************** 1207 * 1208 * Maximum number of back-buffers supported in DX8 1209 * 1210 ****************************************************************************/ 1211 1212 #define D3DPRESENT_BACK_BUFFERS_MAX 3L 1213 1214 /**************************************************************************** 1215 * 1216 * Flags for IDirect3DDevice8::SetGammaRamp 1217 * 1218 ****************************************************************************/ 1219 1220 #define D3DSGR_NO_CALIBRATION 0x00000000L 1221 #define D3DSGR_CALIBRATE 0x00000001L 1222 1223 /**************************************************************************** 1224 * 1225 * Flags for IDirect3DDevice8::SetCursorPosition 1226 * 1227 ****************************************************************************/ 1228 1229 #define D3DCURSOR_IMMEDIATE_UPDATE 0x00000001L 1230 1231 /**************************************************************************** 1232 * 1233 * Flags for DrawPrimitive/DrawIndexedPrimitive 1234 * Also valid for Begin/BeginIndexed 1235 * Also valid for VertexBuffer::CreateVertexBuffer 1236 ****************************************************************************/ 1237 1238 1239 /* 1240 * DirectDraw error codes 1241 */ 1242 #define _FACD3D 0x876 1243 #define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code ) 1244 1245 /* 1246 * Direct3D Errors 1247 */ 1248 #define D3D_OK S_OK 1249 1250 #define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072) 1251 #define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073) 1252 #define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074) 1253 #define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075) 1254 #define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076) 1255 #define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077) 1256 #define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078) 1257 #define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079) 1258 #define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081) 1259 #define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082) 1260 #define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086) 1261 #define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087) 1262 1263 #define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150) 1264 #define D3DERR_MOREDATA MAKE_D3DHRESULT(2151) 1265 #define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152) 1266 #define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153) 1267 #define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154) 1268 #define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380) 1269 #define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155) 1270 #define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156) 1271 #define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157) 1272 1273 #ifdef __cplusplus 1274 }; 1275 #endif 1276 1277 #endif /* (DIRECT3D_VERSION >= 0x0800) */ 1278 #endif /* _D3D_H_ */ 1279 1280