1#undef INTERFACE 2/* 3 * Copyright (C) the Wine project 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 */ 19 20#ifndef __WINE_D3D_H 21#define __WINE_D3D_H 22 23#include <stdlib.h> 24 25#define COM_NO_WINDOWS_H 26#include <objbase.h> 27#include <d3dtypes.h> /* must precede d3dcaps.h */ 28#include <d3dcaps.h> 29 30/***************************************************************************** 31 * Predeclare the interfaces 32 */ 33DEFINE_GUID(IID_IDirect3D, 0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 34DEFINE_GUID(IID_IDirect3D2, 0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a); 35DEFINE_GUID(IID_IDirect3D3, 0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e); 36DEFINE_GUID(IID_IDirect3D7, 0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 37 38DEFINE_GUID(IID_IDirect3DRampDevice, 0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 39DEFINE_GUID(IID_IDirect3DRGBDevice, 0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 40DEFINE_GUID(IID_IDirect3DHALDevice, 0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 41DEFINE_GUID(IID_IDirect3DMMXDevice, 0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); 42DEFINE_GUID(IID_IDirect3DRefDevice, 0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29); 43DEFINE_GUID(IID_IDirect3DTnLHalDevice, 0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 44DEFINE_GUID(IID_IDirect3DNullDevice, 0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8); 45 46DEFINE_GUID(IID_IDirect3DDevice, 0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 47DEFINE_GUID(IID_IDirect3DDevice2, 0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 48DEFINE_GUID(IID_IDirect3DDevice3, 0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74); 49DEFINE_GUID(IID_IDirect3DDevice7, 0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 50 51DEFINE_GUID(IID_IDirect3DTexture, 0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 52DEFINE_GUID(IID_IDirect3DTexture2, 0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 53 54DEFINE_GUID(IID_IDirect3DLight, 0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 55 56DEFINE_GUID(IID_IDirect3DMaterial, 0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 57DEFINE_GUID(IID_IDirect3DMaterial2, 0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 58DEFINE_GUID(IID_IDirect3DMaterial3, 0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12); 59 60DEFINE_GUID(IID_IDirect3DExecuteBuffer, 0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 61 62DEFINE_GUID(IID_IDirect3DViewport, 0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 63DEFINE_GUID(IID_IDirect3DViewport2, 0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 64DEFINE_GUID(IID_IDirect3DViewport3, 0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74); 65 66DEFINE_GUID(IID_IDirect3DVertexBuffer, 0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8); 67DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 68 69 70typedef struct IDirect3D *LPDIRECT3D; 71typedef struct IDirect3D2 *LPDIRECT3D2; 72typedef struct IDirect3D3 *LPDIRECT3D3; 73typedef struct IDirect3D7 *LPDIRECT3D7; 74 75typedef struct IDirect3DLight *LPDIRECT3DLIGHT; 76 77typedef struct IDirect3DDevice *LPDIRECT3DDEVICE; 78typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2; 79typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3; 80typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7; 81 82typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT; 83typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2; 84typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3; 85 86typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL; 87typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2; 88typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3; 89 90typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE; 91typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2; 92 93typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER; 94 95typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER; 96typedef struct IDirect3DVertexBuffer7 *LPDIRECT3DVERTEXBUFFER7; 97 98/* ******************************************************************** 99 Error Codes 100 ******************************************************************** */ 101#define D3D_OK DD_OK 102#define D3DERR_BADMAJORVERSION MAKE_DDHRESULT(700) 103#define D3DERR_BADMINORVERSION MAKE_DDHRESULT(701) 104#define D3DERR_INVALID_DEVICE MAKE_DDHRESULT(705) 105#define D3DERR_INITFAILED MAKE_DDHRESULT(706) 106#define D3DERR_DEVICEAGGREGATED MAKE_DDHRESULT(707) 107#define D3DERR_EXECUTE_CREATE_FAILED MAKE_DDHRESULT(710) 108#define D3DERR_EXECUTE_DESTROY_FAILED MAKE_DDHRESULT(711) 109#define D3DERR_EXECUTE_LOCK_FAILED MAKE_DDHRESULT(712) 110#define D3DERR_EXECUTE_UNLOCK_FAILED MAKE_DDHRESULT(713) 111#define D3DERR_EXECUTE_LOCKED MAKE_DDHRESULT(714) 112#define D3DERR_EXECUTE_NOT_LOCKED MAKE_DDHRESULT(715) 113#define D3DERR_EXECUTE_FAILED MAKE_DDHRESULT(716) 114#define D3DERR_EXECUTE_CLIPPED_FAILED MAKE_DDHRESULT(717) 115#define D3DERR_TEXTURE_NO_SUPPORT MAKE_DDHRESULT(720) 116#define D3DERR_TEXTURE_CREATE_FAILED MAKE_DDHRESULT(721) 117#define D3DERR_TEXTURE_DESTROY_FAILED MAKE_DDHRESULT(722) 118#define D3DERR_TEXTURE_LOCK_FAILED MAKE_DDHRESULT(723) 119#define D3DERR_TEXTURE_UNLOCK_FAILED MAKE_DDHRESULT(724) 120#define D3DERR_TEXTURE_LOAD_FAILED MAKE_DDHRESULT(725) 121#define D3DERR_TEXTURE_SWAP_FAILED MAKE_DDHRESULT(726) 122#define D3DERR_TEXTURE_LOCKED MAKE_DDHRESULT(727) 123#define D3DERR_TEXTURE_NOT_LOCKED MAKE_DDHRESULT(728) 124#define D3DERR_TEXTURE_GETSURF_FAILED MAKE_DDHRESULT(729) 125#define D3DERR_MATRIX_CREATE_FAILED MAKE_DDHRESULT(730) 126#define D3DERR_MATRIX_DESTROY_FAILED MAKE_DDHRESULT(731) 127#define D3DERR_MATRIX_SETDATA_FAILED MAKE_DDHRESULT(732) 128#define D3DERR_MATRIX_GETDATA_FAILED MAKE_DDHRESULT(733) 129#define D3DERR_SETVIEWPORTDATA_FAILED MAKE_DDHRESULT(734) 130#define D3DERR_INVALIDCURRENTVIEWPORT MAKE_DDHRESULT(735) 131#define D3DERR_INVALIDPRIMITIVETYPE MAKE_DDHRESULT(736) 132#define D3DERR_INVALIDVERTEXTYPE MAKE_DDHRESULT(737) 133#define D3DERR_TEXTURE_BADSIZE MAKE_DDHRESULT(738) 134#define D3DERR_INVALIDRAMPTEXTURE MAKE_DDHRESULT(739) 135#define D3DERR_MATERIAL_CREATE_FAILED MAKE_DDHRESULT(740) 136#define D3DERR_MATERIAL_DESTROY_FAILED MAKE_DDHRESULT(741) 137#define D3DERR_MATERIAL_SETDATA_FAILED MAKE_DDHRESULT(742) 138#define D3DERR_MATERIAL_GETDATA_FAILED MAKE_DDHRESULT(743) 139#define D3DERR_INVALIDPALETTE MAKE_DDHRESULT(744) 140#define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745) 141#define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY MAKE_DDHRESULT(746) 142#define D3DERR_SURFACENOTINVIDMEM MAKE_DDHRESULT(747) 143#define D3DERR_LIGHT_SET_FAILED MAKE_DDHRESULT(750) 144#define D3DERR_LIGHTHASVIEWPORT MAKE_DDHRESULT(751) 145#define D3DERR_LIGHTNOTINTHISVIEWPORT MAKE_DDHRESULT(752) 146#define D3DERR_SCENE_IN_SCENE MAKE_DDHRESULT(760) 147#define D3DERR_SCENE_NOT_IN_SCENE MAKE_DDHRESULT(761) 148#define D3DERR_SCENE_BEGIN_FAILED MAKE_DDHRESULT(762) 149#define D3DERR_SCENE_END_FAILED MAKE_DDHRESULT(763) 150#define D3DERR_INBEGIN MAKE_DDHRESULT(770) 151#define D3DERR_NOTINBEGIN MAKE_DDHRESULT(771) 152#define D3DERR_NOVIEWPORTS MAKE_DDHRESULT(772) 153#define D3DERR_VIEWPORTDATANOTSET MAKE_DDHRESULT(773) 154#define D3DERR_VIEWPORTHASNODEVICE MAKE_DDHRESULT(774) 155#define D3DERR_NOCURRENTVIEWPORT MAKE_DDHRESULT(775) 156#define D3DERR_INVALIDVERTEXFORMAT MAKE_DDHRESULT(2048) 157#define D3DERR_COLORKEYATTACHED MAKE_DDHRESULT(2050) 158#define D3DERR_VERTEXBUFFEROPTIMIZED MAKE_DDHRESULT(2060) 159#define D3DERR_VBUF_CREATE_FAILED MAKE_DDHRESULT(2061) 160#define D3DERR_VERTEXBUFFERLOCKED MAKE_DDHRESULT(2062) 161#define D3DERR_VERTEXBUFFERUNLOCKFAILED MAKE_DDHRESULT(2063) 162#define D3DERR_ZBUFFER_NOTPRESENT MAKE_DDHRESULT(2070) 163#define D3DERR_STENCILBUFFER_NOTPRESENT MAKE_DDHRESULT(2071) 164 165#define D3DERR_WRONGTEXTUREFORMAT MAKE_DDHRESULT(2072) 166#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_DDHRESULT(2073) 167#define D3DERR_UNSUPPORTEDCOLORARG MAKE_DDHRESULT(2074) 168#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_DDHRESULT(2075) 169#define D3DERR_UNSUPPORTEDALPHAARG MAKE_DDHRESULT(2076) 170#define D3DERR_TOOMANYOPERATIONS MAKE_DDHRESULT(2077) 171#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_DDHRESULT(2078) 172#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_DDHRESULT(2079) 173#define D3DERR_CONFLICTINGRENDERSTATE MAKE_DDHRESULT(2081) 174#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_DDHRESULT(2082) 175#define D3DERR_TOOMANYPRIMITIVES MAKE_DDHRESULT(2083) 176#define D3DERR_INVALIDMATRIX MAKE_DDHRESULT(2084) 177#define D3DERR_TOOMANYVERTICES MAKE_DDHRESULT(2085) 178#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_DDHRESULT(2086) 179 180#define D3DERR_INVALIDSTATEBLOCK MAKE_DDHRESULT(2100) 181#define D3DERR_INBEGINSTATEBLOCK MAKE_DDHRESULT(2101) 182#define D3DERR_NOTINBEGINSTATEBLOCK MAKE_DDHRESULT(2102) 183 184/* ******************************************************************** 185 Enums 186 ******************************************************************** */ 187#define D3DNEXT_NEXT __MSABI_LONG(0x01) 188#define D3DNEXT_HEAD __MSABI_LONG(0x02) 189#define D3DNEXT_TAIL __MSABI_LONG(0x04) 190 191#define D3DDP_WAIT __MSABI_LONG(0x00000001) 192#define D3DDP_OUTOFORDER __MSABI_LONG(0x00000002) 193#define D3DDP_DONOTCLIP __MSABI_LONG(0x00000004) 194#define D3DDP_DONOTUPDATEEXTENTS __MSABI_LONG(0x00000008) 195#define D3DDP_DONOTLIGHT __MSABI_LONG(0x00000010) 196 197/* ******************************************************************** 198 Types and structures 199 ******************************************************************** */ 200typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE; 201 202 203/***************************************************************************** 204 * IDirect3D interface 205 */ 206#undef INTERFACE 207#define INTERFACE IDirect3D 208DECLARE_INTERFACE_(IDirect3D,IUnknown) 209{ 210 /*** IUnknown methods ***/ 211 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 212 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 213 STDMETHOD_(ULONG,Release)(THIS) PURE; 214 /*** IDirect3D methods ***/ 215 STDMETHOD(Initialize)(THIS_ REFIID riid) PURE; 216 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE; 217 STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE; 218 STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial **material, IUnknown *outer) PURE; 219 STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport **viewport, IUnknown *outer) PURE; 220 STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE; 221}; 222#undef INTERFACE 223 224#if !defined(__cplusplus) || defined(CINTERFACE) 225/*** IUnknown methods ***/ 226#define IDirect3D_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 227#define IDirect3D_AddRef(p) (p)->lpVtbl->AddRef(p) 228#define IDirect3D_Release(p) (p)->lpVtbl->Release(p) 229/*** IDirect3D methods ***/ 230#define IDirect3D_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 231#define IDirect3D_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b) 232#define IDirect3D_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b) 233#define IDirect3D_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b) 234#define IDirect3D_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b) 235#define IDirect3D_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b) 236#else 237/*** IUnknown methods ***/ 238#define IDirect3D_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 239#define IDirect3D_AddRef(p) (p)->AddRef() 240#define IDirect3D_Release(p) (p)->Release() 241/*** IDirect3D methods ***/ 242#define IDirect3D_Initialize(p,a) (p)->Initialize(a) 243#define IDirect3D_EnumDevices(p,a,b) (p)->EnumDevices(a,b) 244#define IDirect3D_CreateLight(p,a,b) (p)->CreateLight(a,b) 245#define IDirect3D_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b) 246#define IDirect3D_CreateViewport(p,a,b) (p)->CreateViewport(a,b) 247#define IDirect3D_FindDevice(p,a,b) (p)->FindDevice(a,b) 248#endif 249 250 251/***************************************************************************** 252 * IDirect3D2 interface 253 */ 254#define INTERFACE IDirect3D2 255DECLARE_INTERFACE_(IDirect3D2,IUnknown) 256{ 257 /*** IUnknown methods ***/ 258 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 259 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 260 STDMETHOD_(ULONG,Release)(THIS) PURE; 261 /*** IDirect3D2 methods ***/ 262 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE; 263 STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE; 264 STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial2 **material, IUnknown *outer) PURE; 265 STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport2 **viewport, IUnknown *outer) PURE; 266 STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE; 267 STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface *surface, 268 struct IDirect3DDevice2 **device) PURE; 269}; 270#undef INTERFACE 271 272#if !defined(__cplusplus) || defined(CINTERFACE) 273/*** IUnknown methods ***/ 274#define IDirect3D2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 275#define IDirect3D2_AddRef(p) (p)->lpVtbl->AddRef(p) 276#define IDirect3D2_Release(p) (p)->lpVtbl->Release(p) 277/*** IDirect3D2 methods ***/ 278#define IDirect3D2_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b) 279#define IDirect3D2_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b) 280#define IDirect3D2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b) 281#define IDirect3D2_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b) 282#define IDirect3D2_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b) 283#define IDirect3D2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c) 284#else 285/*** IUnknown methods ***/ 286#define IDirect3D2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 287#define IDirect3D2_AddRef(p) (p)->AddRef() 288#define IDirect3D2_Release(p) (p)->Release() 289/*** IDirect3D2 methods ***/ 290#define IDirect3D2_EnumDevices(p,a,b) (p)->EnumDevices(a,b) 291#define IDirect3D2_CreateLight(p,a,b) (p)->CreateLight(a,b) 292#define IDirect3D2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b) 293#define IDirect3D2_CreateViewport(p,a,b) (p)->CreateViewport(a,b) 294#define IDirect3D2_FindDevice(p,a,b) (p)->FindDevice(a,b) 295#define IDirect3D2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c) 296#endif 297 298 299/***************************************************************************** 300 * IDirect3D3 interface 301 */ 302#define INTERFACE IDirect3D3 303DECLARE_INTERFACE_(IDirect3D3,IUnknown) 304{ 305 /*** IUnknown methods ***/ 306 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 307 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 308 STDMETHOD_(ULONG,Release)(THIS) PURE; 309 /*** IDirect3D3 methods ***/ 310 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE; 311 STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE; 312 STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial3 **material, IUnknown *outer) PURE; 313 STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport3 **viewport, IUnknown *outer) PURE; 314 STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE; 315 STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface4 *surface, 316 struct IDirect3DDevice3 **device, IUnknown *outer) PURE; 317 STDMETHOD(CreateVertexBuffer)(THIS_ D3DVERTEXBUFFERDESC *desc, struct IDirect3DVertexBuffer **buffer, 318 DWORD flags, IUnknown *outer) PURE; 319 STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE; 320 STDMETHOD(EvictManagedTextures)(THIS) PURE; 321}; 322#undef INTERFACE 323 324#if !defined(__cplusplus) || defined(CINTERFACE) 325/*** IUnknown methods ***/ 326#define IDirect3D3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 327#define IDirect3D3_AddRef(p) (p)->lpVtbl->AddRef(p) 328#define IDirect3D3_Release(p) (p)->lpVtbl->Release(p) 329/*** IDirect3D3 methods ***/ 330#define IDirect3D3_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b) 331#define IDirect3D3_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b) 332#define IDirect3D3_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b) 333#define IDirect3D3_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b) 334#define IDirect3D3_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b) 335#define IDirect3D3_CreateDevice(p,a,b,c,d) (p)->lpVtbl->CreateDevice(p,a,b,c,d) 336#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d) 337#define IDirect3D3_EnumZBufferFormats(p,a,b,c) (p)->lpVtbl->EnumZBufferFormats(p,a,b,c) 338#define IDirect3D3_EvictManagedTextures(p) (p)->lpVtbl->EvictManagedTextures(p) 339#else 340/*** IUnknown methods ***/ 341#define IDirect3D3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 342#define IDirect3D3_AddRef(p) (p)->AddRef() 343#define IDirect3D3_Release(p) (p)->Release() 344/*** IDirect3D3 methods ***/ 345#define IDirect3D3_EnumDevices(p,a,b) (p)->EnumDevices(a,b) 346#define IDirect3D3_CreateLight(p,a,b) (p)->CreateLight(a,b) 347#define IDirect3D3_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b) 348#define IDirect3D3_CreateViewport(p,a,b) (p)->CreateViewport(a,b) 349#define IDirect3D3_FindDevice(p,a,b) (p)->FindDevice(a,b) 350#define IDirect3D3_CreateDevice(p,a,b,c,d) (p)->CreateDevice(a,b,c,d) 351#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->CreateVertexBuffer(a,b,c,d) 352#define IDirect3D3_EnumZBufferFormats(p,a,b,c) (p)->EnumZBufferFormats(a,b,c) 353#define IDirect3D3_EvictManagedTextures(p) (p)->EvictManagedTextures() 354#endif 355 356/***************************************************************************** 357 * IDirect3D7 interface 358 */ 359#define INTERFACE IDirect3D7 360DECLARE_INTERFACE_(IDirect3D7,IUnknown) 361{ 362 /*** IUnknown methods ***/ 363 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 364 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 365 STDMETHOD_(ULONG,Release)(THIS) PURE; 366 /*** IDirect3D7 methods ***/ 367 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback, LPVOID lpUserArg) PURE; 368 STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface7 *surface, 369 struct IDirect3DDevice7 **device) PURE; 370 STDMETHOD(CreateVertexBuffer)(THIS_ D3DVERTEXBUFFERDESC *desc, 371 struct IDirect3DVertexBuffer7 **buffer, DWORD flags) PURE; 372 STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE; 373 STDMETHOD(EvictManagedTextures)(THIS) PURE; 374}; 375#undef INTERFACE 376 377#if !defined(__cplusplus) || defined(CINTERFACE) 378/*** IUnknown methods ***/ 379#define IDirect3D7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 380#define IDirect3D7_AddRef(p) (p)->lpVtbl->AddRef(p) 381#define IDirect3D7_Release(p) (p)->lpVtbl->Release(p) 382/*** IDirect3D3 methods ***/ 383#define IDirect3D7_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b) 384#define IDirect3D7_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c) 385#define IDirect3D7_CreateVertexBuffer(p,a,b,c) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c) 386#define IDirect3D7_EnumZBufferFormats(p,a,b,c) (p)->lpVtbl->EnumZBufferFormats(p,a,b,c) 387#define IDirect3D7_EvictManagedTextures(p) (p)->lpVtbl->EvictManagedTextures(p) 388#else 389/*** IUnknown methods ***/ 390#define IDirect3D7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 391#define IDirect3D7_AddRef(p) (p)->AddRef() 392#define IDirect3D7_Release(p) (p)->Release() 393/*** IDirect3D3 methods ***/ 394#define IDirect3D7_EnumDevices(p,a,b) (p)->EnumDevices(a,b) 395#define IDirect3D7_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c) 396#define IDirect3D7_CreateVertexBuffer(p,a,b,c) (p)->CreateVertexBuffer(a,b,c) 397#define IDirect3D7_EnumZBufferFormats(p,a,b,c) (p)->EnumZBufferFormats(a,b,c) 398#define IDirect3D7_EvictManagedTextures(p) (p)->EvictManagedTextures() 399#endif 400 401 402/***************************************************************************** 403 * IDirect3DLight interface 404 */ 405#define INTERFACE IDirect3DLight 406DECLARE_INTERFACE_(IDirect3DLight,IUnknown) 407{ 408 /*** IUnknown methods ***/ 409 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 410 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 411 STDMETHOD_(ULONG,Release)(THIS) PURE; 412 /*** IDirect3DLight methods ***/ 413 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE; 414 STDMETHOD(SetLight)(THIS_ D3DLIGHT *data) PURE; 415 STDMETHOD(GetLight)(THIS_ D3DLIGHT *data) PURE; 416}; 417#undef INTERFACE 418 419#if !defined(__cplusplus) || defined(CINTERFACE) 420/*** IUnknown methods ***/ 421#define IDirect3DLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 422#define IDirect3DLight_AddRef(p) (p)->lpVtbl->AddRef(p) 423#define IDirect3DLight_Release(p) (p)->lpVtbl->Release(p) 424/*** IDirect3DLight methods ***/ 425#define IDirect3DLight_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 426#define IDirect3DLight_SetLight(p,a) (p)->lpVtbl->SetLight(p,a) 427#define IDirect3DLight_GetLight(p,a) (p)->lpVtbl->GetLight(p,a) 428#else 429/*** IUnknown methods ***/ 430#define IDirect3DLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 431#define IDirect3DLight_AddRef(p) (p)->AddRef() 432#define IDirect3DLight_Release(p) (p)->Release() 433/*** IDirect3DLight methods ***/ 434#define IDirect3DLight_Initialize(p,a) (p)->Initialize(a) 435#define IDirect3DLight_SetLight(p,a) (p)->SetLight(a) 436#define IDirect3DLight_GetLight(p,a) (p)->GetLight(a) 437#endif 438 439 440/***************************************************************************** 441 * IDirect3DMaterial interface 442 */ 443#define INTERFACE IDirect3DMaterial 444DECLARE_INTERFACE_(IDirect3DMaterial,IUnknown) 445{ 446 /*** IUnknown methods ***/ 447 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 448 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 449 STDMETHOD_(ULONG,Release)(THIS) PURE; 450 /*** IDirect3DMaterial methods ***/ 451 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE; 452 STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE; 453 STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE; 454 STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice *device, D3DMATERIALHANDLE *handle) PURE; 455 STDMETHOD(Reserve)(THIS) PURE; 456 STDMETHOD(Unreserve)(THIS) PURE; 457}; 458#undef INTERFACE 459 460#if !defined(__cplusplus) || defined(CINTERFACE) 461/*** IUnknown methods ***/ 462#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 463#define IDirect3DMaterial_AddRef(p) (p)->lpVtbl->AddRef(p) 464#define IDirect3DMaterial_Release(p) (p)->lpVtbl->Release(p) 465/*** IDirect3DMaterial methods ***/ 466#define IDirect3DMaterial_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 467#define IDirect3DMaterial_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) 468#define IDirect3DMaterial_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) 469#define IDirect3DMaterial_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b) 470#define IDirect3DMaterial_Reserve(p) (p)->lpVtbl->Reserve(p) 471#define IDirect3DMaterial_Unreserve(p) (p)->lpVtbl->Unreserve(p) 472#else 473/*** IUnknown methods ***/ 474#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 475#define IDirect3DMaterial_AddRef(p) (p)->AddRef() 476#define IDirect3DMaterial_Release(p) (p)->Release() 477/*** IDirect3DMaterial methods ***/ 478#define IDirect3DMaterial_Initialize(p,a) (p)->Initialize(a) 479#define IDirect3DMaterial_SetMaterial(p,a) (p)->SetMaterial(a) 480#define IDirect3DMaterial_GetMaterial(p,a) (p)->GetMaterial(a) 481#define IDirect3DMaterial_GetHandle(p,a,b) (p)->GetHandle(a,b) 482#define IDirect3DMaterial_Reserve(p) (p)->Reserve() 483#define IDirect3DMaterial_Unreserve(p) (p)->Unreserve() 484#endif 485 486 487/***************************************************************************** 488 * IDirect3DMaterial2 interface 489 */ 490#define INTERFACE IDirect3DMaterial2 491DECLARE_INTERFACE_(IDirect3DMaterial2,IUnknown) 492{ 493 /*** IUnknown methods ***/ 494 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 495 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 496 STDMETHOD_(ULONG,Release)(THIS) PURE; 497 /*** IDirect3DMaterial2 methods ***/ 498 STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE; 499 STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE; 500 STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice2 *device, D3DMATERIALHANDLE *handle) PURE; 501}; 502#undef INTERFACE 503 504#if !defined(__cplusplus) || defined(CINTERFACE) 505/*** IUnknown methods ***/ 506#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 507#define IDirect3DMaterial2_AddRef(p) (p)->lpVtbl->AddRef(p) 508#define IDirect3DMaterial2_Release(p) (p)->lpVtbl->Release(p) 509/*** IDirect3DMaterial2 methods ***/ 510#define IDirect3DMaterial2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) 511#define IDirect3DMaterial2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) 512#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b) 513#else 514/*** IUnknown methods ***/ 515#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 516#define IDirect3DMaterial2_AddRef(p) (p)->AddRef() 517#define IDirect3DMaterial2_Release(p) (p)->Release() 518/*** IDirect3DMaterial2 methods ***/ 519#define IDirect3DMaterial2_SetMaterial(p,a) (p)->SetMaterial(a) 520#define IDirect3DMaterial2_GetMaterial(p,a) (p)->GetMaterial(a) 521#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->GetHandle(a,b) 522#endif 523 524 525/***************************************************************************** 526 * IDirect3DMaterial3 interface 527 */ 528#define INTERFACE IDirect3DMaterial3 529DECLARE_INTERFACE_(IDirect3DMaterial3,IUnknown) 530{ 531 /*** IUnknown methods ***/ 532 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 533 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 534 STDMETHOD_(ULONG,Release)(THIS) PURE; 535 /*** IDirect3DMaterial3 methods ***/ 536 STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE; 537 STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE; 538 STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice3 *device, D3DMATERIALHANDLE *handle) PURE; 539}; 540#undef INTERFACE 541 542#if !defined(__cplusplus) || defined(CINTERFACE) 543/*** IUnknown methods ***/ 544#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 545#define IDirect3DMaterial3_AddRef(p) (p)->lpVtbl->AddRef(p) 546#define IDirect3DMaterial3_Release(p) (p)->lpVtbl->Release(p) 547/*** IDirect3DMaterial3 methods ***/ 548#define IDirect3DMaterial3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) 549#define IDirect3DMaterial3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) 550#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b) 551#else 552/*** IUnknown methods ***/ 553#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 554#define IDirect3DMaterial3_AddRef(p) (p)->AddRef() 555#define IDirect3DMaterial3_Release(p) (p)->Release() 556/*** IDirect3DMaterial3 methods ***/ 557#define IDirect3DMaterial3_SetMaterial(p,a) (p)->SetMaterial(a) 558#define IDirect3DMaterial3_GetMaterial(p,a) (p)->GetMaterial(a) 559#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->GetHandle(a,b) 560#endif 561 562 563/***************************************************************************** 564 * IDirect3DTexture interface 565 */ 566#define INTERFACE IDirect3DTexture 567DECLARE_INTERFACE_(IDirect3DTexture,IUnknown) 568{ 569 /*** IUnknown methods ***/ 570 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 571 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 572 STDMETHOD_(ULONG,Release)(THIS) PURE; 573 /*** IDirect3DTexture methods ***/ 574 STDMETHOD(Initialize)(THIS_ struct IDirect3DDevice *device, IDirectDrawSurface *surface) PURE; 575 STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice *device, D3DTEXTUREHANDLE *handle) PURE; 576 STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE; 577 STDMETHOD(Load)(THIS_ IDirect3DTexture *texture) PURE; 578 STDMETHOD(Unload)(THIS) PURE; 579}; 580#undef INTERFACE 581 582#if !defined(__cplusplus) || defined(CINTERFACE) 583/*** IUnknown methods ***/ 584#define IDirect3DTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 585#define IDirect3DTexture_AddRef(p) (p)->lpVtbl->AddRef(p) 586#define IDirect3DTexture_Release(p) (p)->lpVtbl->Release(p) 587/*** IDirect3DTexture methods ***/ 588#define IDirect3DTexture_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 589#define IDirect3DTexture_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b) 590#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b) 591#define IDirect3DTexture_Load(p,a) (p)->lpVtbl->Load(p,a) 592#define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p) 593#else 594/*** IUnknown methods ***/ 595#define IDirect3DTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 596#define IDirect3DTexture_AddRef(p) (p)->AddRef() 597#define IDirect3DTexture_Release(p) (p)->Release() 598/*** IDirect3DTexture methods ***/ 599#define IDirect3DTexture_Initialize(p,a,b) (p)->Initialize(a,b) 600#define IDirect3DTexture_GetHandle(p,a,b) (p)->GetHandle(a,b) 601#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b) 602#define IDirect3DTexture_Load(p,a) (p)->Load(a) 603#define IDirect3DTexture_Unload(p) (p)->Unload() 604#endif 605 606 607/***************************************************************************** 608 * IDirect3DTexture2 interface 609 */ 610#define INTERFACE IDirect3DTexture2 611DECLARE_INTERFACE_(IDirect3DTexture2,IUnknown) 612{ 613 /*** IUnknown methods ***/ 614 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 615 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 616 STDMETHOD_(ULONG,Release)(THIS) PURE; 617 /*** IDirect3DTexture2 methods ***/ 618 STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice2 *device, D3DTEXTUREHANDLE *handle) PURE; 619 STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE; 620 STDMETHOD(Load)(THIS_ IDirect3DTexture2 *texture) PURE; 621}; 622#undef INTERFACE 623 624#if !defined(__cplusplus) || defined(CINTERFACE) 625/*** IUnknown methods ***/ 626#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 627#define IDirect3DTexture2_AddRef(p) (p)->lpVtbl->AddRef(p) 628#define IDirect3DTexture2_Release(p) (p)->lpVtbl->Release(p) 629/*** IDirect3DTexture2 methods ***/ 630#define IDirect3DTexture2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b) 631#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b) 632#define IDirect3DTexture2_Load(p,a) (p)->lpVtbl->Load(p,a) 633#else 634/*** IUnknown methods ***/ 635#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 636#define IDirect3DTexture2_AddRef(p) (p)->AddRef() 637#define IDirect3DTexture2_Release(p) (p)->Release() 638/*** IDirect3DTexture2 methods ***/ 639#define IDirect3DTexture2_GetHandle(p,a,b) (p)->GetHandle(a,b) 640#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b) 641#define IDirect3DTexture2_Load(p,a) (p)->Load(a) 642#endif 643 644 645/***************************************************************************** 646 * IDirect3DViewport interface 647 */ 648#define INTERFACE IDirect3DViewport 649DECLARE_INTERFACE_(IDirect3DViewport,IUnknown) 650{ 651 /*** IUnknown methods ***/ 652 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 653 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 654 STDMETHOD_(ULONG,Release)(THIS) PURE; 655 /*** IDirect3DViewport methods ***/ 656 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE; 657 STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE; 658 STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE; 659 STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE; 660 STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE; 661 STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE; 662 STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE; 663 STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE; 664 STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE; 665 STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE; 666 STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE; 667 STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE; 668 STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE; 669}; 670#undef INTERFACE 671 672#if !defined(__cplusplus) || defined(CINTERFACE) 673/*** IUnknown methods ***/ 674#define IDirect3DViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 675#define IDirect3DViewport_AddRef(p) (p)->lpVtbl->AddRef(p) 676#define IDirect3DViewport_Release(p) (p)->lpVtbl->Release(p) 677/*** IDirect3DViewport methods ***/ 678#define IDirect3DViewport_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 679#define IDirect3DViewport_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) 680#define IDirect3DViewport_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) 681#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d) 682#define IDirect3DViewport_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b) 683#define IDirect3DViewport_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a) 684#define IDirect3DViewport_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b) 685#define IDirect3DViewport_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a) 686#define IDirect3DViewport_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b) 687#define IDirect3DViewport_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c) 688#define IDirect3DViewport_AddLight(p,a) (p)->lpVtbl->AddLight(p,a) 689#define IDirect3DViewport_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a) 690#define IDirect3DViewport_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c) 691#else 692/*** IUnknown methods ***/ 693#define IDirect3DViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 694#define IDirect3DViewport_AddRef(p) (p)->AddRef() 695#define IDirect3DViewport_Release(p) (p)->Release() 696/*** IDirect3DViewport methods ***/ 697#define IDirect3DViewport_Initialize(p,a) (p)->Initialize(a) 698#define IDirect3DViewport_GetViewport(p,a) (p)->GetViewport(a) 699#define IDirect3DViewport_SetViewport(p,a) (p)->SetViewport(a) 700#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d) 701#define IDirect3DViewport_LightElements(p,a,b) (p)->LightElements(a,b) 702#define IDirect3DViewport_SetBackground(p,a) (p)->SetBackground(a) 703#define IDirect3DViewport_GetBackground(p,a,b) (p)->GetBackground(a,b) 704#define IDirect3DViewport_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a) 705#define IDirect3DViewport_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b) 706#define IDirect3DViewport_Clear(p,a,b,c) (p)->Clear(a,b,c) 707#define IDirect3DViewport_AddLight(p,a) (p)->AddLight(a) 708#define IDirect3DViewport_DeleteLight(p,a) (p)->DeleteLight(a) 709#define IDirect3DViewport_NextLight(p,a,b,c) (p)->NextLight(a,b,c) 710#endif 711 712 713/***************************************************************************** 714 * IDirect3DViewport2 interface 715 */ 716#define INTERFACE IDirect3DViewport2 717DECLARE_INTERFACE_(IDirect3DViewport2,IDirect3DViewport) 718{ 719 /*** IUnknown methods ***/ 720 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 721 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 722 STDMETHOD_(ULONG,Release)(THIS) PURE; 723 /*** IDirect3DViewport methods ***/ 724 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE; 725 STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE; 726 STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE; 727 STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE; 728 STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE; 729 STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE; 730 STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE; 731 STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE; 732 STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE; 733 STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE; 734 STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE; 735 STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE; 736 STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE; 737 /*** IDirect3DViewport2 methods ***/ 738 STDMETHOD(GetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE; 739 STDMETHOD(SetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE; 740}; 741#undef INTERFACE 742 743#if !defined(__cplusplus) || defined(CINTERFACE) 744/*** IUnknown methods ***/ 745#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 746#define IDirect3DViewport2_AddRef(p) (p)->lpVtbl->AddRef(p) 747#define IDirect3DViewport2_Release(p) (p)->lpVtbl->Release(p) 748/*** IDirect3Viewport methods ***/ 749#define IDirect3DViewport2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 750#define IDirect3DViewport2_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) 751#define IDirect3DViewport2_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) 752#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d) 753#define IDirect3DViewport2_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b) 754#define IDirect3DViewport2_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a) 755#define IDirect3DViewport2_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b) 756#define IDirect3DViewport2_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a) 757#define IDirect3DViewport2_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b) 758#define IDirect3DViewport2_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c) 759#define IDirect3DViewport2_AddLight(p,a) (p)->lpVtbl->AddLight(p,a) 760#define IDirect3DViewport2_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a) 761#define IDirect3DViewport2_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c) 762/*** IDirect3DViewport2 methods ***/ 763#define IDirect3DViewport2_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a) 764#define IDirect3DViewport2_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a) 765#else 766/*** IUnknown methods ***/ 767#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 768#define IDirect3DViewport2_AddRef(p) (p)->AddRef() 769#define IDirect3DViewport2_Release(p) (p)->Release() 770/*** IDirect3Viewport methods ***/ 771#define IDirect3DViewport2_Initialize(p,a) (p)->Initialize(a) 772#define IDirect3DViewport2_GetViewport(p,a) (p)->GetViewport(a) 773#define IDirect3DViewport2_SetViewport(p,a) (p)->SetViewport(a) 774#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d) 775#define IDirect3DViewport2_LightElements(p,a,b) (p)->LightElements(a,b) 776#define IDirect3DViewport2_SetBackground(p,a) (p)->SetBackground(a) 777#define IDirect3DViewport2_GetBackground(p,a,b) (p)->GetBackground(a,b) 778#define IDirect3DViewport2_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a) 779#define IDirect3DViewport2_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b) 780#define IDirect3DViewport2_Clear(p,a,b,c) (p)->Clear(a,b,c) 781#define IDirect3DViewport2_AddLight(p,a) (p)->AddLight(a) 782#define IDirect3DViewport2_DeleteLight(p,a) (p)->DeleteLight(a) 783#define IDirect3DViewport2_NextLight(p,a,b,c) (p)->NextLight(a,b,c) 784/*** IDirect3DViewport2 methods ***/ 785#define IDirect3DViewport2_GetViewport2(p,a) (p)->GetViewport2(a) 786#define IDirect3DViewport2_SetViewport2(p,a) (p)->SetViewport2(a) 787#endif 788 789/***************************************************************************** 790 * IDirect3DViewport3 interface 791 */ 792#define INTERFACE IDirect3DViewport3 793DECLARE_INTERFACE_(IDirect3DViewport3,IDirect3DViewport2) 794{ 795 /*** IUnknown methods ***/ 796 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 797 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 798 STDMETHOD_(ULONG,Release)(THIS) PURE; 799 /*** IDirect3DViewport methods ***/ 800 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE; 801 STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE; 802 STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE; 803 STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE; 804 STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE; 805 STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE; 806 STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE; 807 STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE; 808 STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE; 809 STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE; 810 STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE; 811 STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE; 812 STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE; 813 /*** IDirect3DViewport2 methods ***/ 814 STDMETHOD(GetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE; 815 STDMETHOD(SetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE; 816 /*** IDirect3DViewport3 methods ***/ 817 STDMETHOD(SetBackgroundDepth2)(THIS_ IDirectDrawSurface4 *surface) PURE; 818 STDMETHOD(GetBackgroundDepth2)(THIS_ IDirectDrawSurface4 **surface, WINBOOL *valid) PURE; 819 STDMETHOD(Clear2)(THIS_ DWORD count, D3DRECT *rects, DWORD flags, DWORD color, D3DVALUE z, DWORD stencil) PURE; 820}; 821#undef INTERFACE 822 823#if !defined(__cplusplus) || defined(CINTERFACE) 824/*** IUnknown methods ***/ 825#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 826#define IDirect3DViewport3_AddRef(p) (p)->lpVtbl->AddRef(p) 827#define IDirect3DViewport3_Release(p) (p)->lpVtbl->Release(p) 828/*** IDirect3Viewport methods ***/ 829#define IDirect3DViewport3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 830#define IDirect3DViewport3_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) 831#define IDirect3DViewport3_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) 832#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d) 833#define IDirect3DViewport3_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b) 834#define IDirect3DViewport3_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a) 835#define IDirect3DViewport3_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b) 836#define IDirect3DViewport3_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a) 837#define IDirect3DViewport3_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b) 838#define IDirect3DViewport3_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c) 839#define IDirect3DViewport3_AddLight(p,a) (p)->lpVtbl->AddLight(p,a) 840#define IDirect3DViewport3_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a) 841#define IDirect3DViewport3_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c) 842/*** IDirect3DViewport2 methods ***/ 843#define IDirect3DViewport3_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a) 844#define IDirect3DViewport3_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a) 845/*** IDirect3DViewport3 methods ***/ 846#define IDirect3DViewport3_SetBackgroundDepth2(p,a) (p)->lpVtbl->SetBackgroundDepth2(p,a) 847#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->lpVtbl->GetBackgroundDepth2(p,a,b) 848#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f) (p)->lpVtbl->Clear2(p,a,b,c,d,e,f) 849#else 850/*** IUnknown methods ***/ 851#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 852#define IDirect3DViewport3_AddRef(p) (p)->AddRef() 853#define IDirect3DViewport3_Release(p) (p)->Release() 854/*** IDirect3Viewport methods ***/ 855#define IDirect3DViewport3_Initialize(p,a) (p)->Initialize(a) 856#define IDirect3DViewport3_GetViewport(p,a) (p)->GetViewport(a) 857#define IDirect3DViewport3_SetViewport(p,a) (p)->SetViewport(a) 858#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d) 859#define IDirect3DViewport3_LightElements(p,a,b) (p)->LightElements(a,b) 860#define IDirect3DViewport3_SetBackground(p,a) (p)->SetBackground(a) 861#define IDirect3DViewport3_GetBackground(p,a,b) (p)->GetBackground(a,b) 862#define IDirect3DViewport3_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a) 863#define IDirect3DViewport3_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b) 864#define IDirect3DViewport3_Clear(p,a,b,c) (p)->Clear(a,b,c) 865#define IDirect3DViewport3_AddLight(p,a) (p)->AddLight(a) 866#define IDirect3DViewport3_DeleteLight(p,a) (p)->DeleteLight(a) 867#define IDirect3DViewport3_NextLight(p,a,b,c) (p)->NextLight(a,b,c) 868/*** IDirect3DViewport2 methods ***/ 869#define IDirect3DViewport3_GetViewport2(p,a) (p)->GetViewport2(a) 870#define IDirect3DViewport3_SetViewport2(p,a) (p)->SetViewport2(a) 871/*** IDirect3DViewport3 methods ***/ 872#define IDirect3DViewport3_SetBackgroundDepth2(p,a) (p)->SetBackgroundDepth2(a) 873#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->GetBackgroundDepth2(a,b) 874#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f) (p)->Clear2(a,b,c,d,e,f) 875#endif 876 877 878 879/***************************************************************************** 880 * IDirect3DExecuteBuffer interface 881 */ 882#define INTERFACE IDirect3DExecuteBuffer 883DECLARE_INTERFACE_(IDirect3DExecuteBuffer,IUnknown) 884{ 885 /*** IUnknown methods ***/ 886 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 887 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 888 STDMETHOD_(ULONG,Release)(THIS) PURE; 889 /*** IDirect3DExecuteBuffer methods ***/ 890 STDMETHOD(Initialize)(THIS_ struct IDirect3DDevice *device, D3DEXECUTEBUFFERDESC *desc) PURE; 891 STDMETHOD(Lock)(THIS_ D3DEXECUTEBUFFERDESC *desc) PURE; 892 STDMETHOD(Unlock)(THIS) PURE; 893 STDMETHOD(SetExecuteData)(THIS_ D3DEXECUTEDATA *data) PURE; 894 STDMETHOD(GetExecuteData)(THIS_ D3DEXECUTEDATA *data) PURE; 895 STDMETHOD(Validate)(THIS_ LPDWORD lpdwOffset, LPD3DVALIDATECALLBACK lpFunc, LPVOID lpUserArg, DWORD dwReserved) PURE; 896 STDMETHOD(Optimize)(THIS_ DWORD dwDummy) PURE; 897}; 898#undef INTERFACE 899 900#if !defined(__cplusplus) || defined(CINTERFACE) 901/*** IUnknown methods ***/ 902#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 903#define IDirect3DExecuteBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 904#define IDirect3DExecuteBuffer_Release(p) (p)->lpVtbl->Release(p) 905/*** IDirect3DExecuteBuffer methods ***/ 906#define IDirect3DExecuteBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 907#define IDirect3DExecuteBuffer_Lock(p,a) (p)->lpVtbl->Lock(p,a) 908#define IDirect3DExecuteBuffer_Unlock(p) (p)->lpVtbl->Unlock(p) 909#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->lpVtbl->SetExecuteData(p,a) 910#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->lpVtbl->GetExecuteData(p,a) 911#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->lpVtbl->Validate(p,a,b,c,d) 912#define IDirect3DExecuteBuffer_Optimize(p,a) (p)->lpVtbl->Optimize(p,a) 913#else 914/*** IUnknown methods ***/ 915#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 916#define IDirect3DExecuteBuffer_AddRef(p) (p)->AddRef() 917#define IDirect3DExecuteBuffer_Release(p) (p)->Release() 918/*** IDirect3DExecuteBuffer methods ***/ 919#define IDirect3DExecuteBuffer_Initialize(p,a,b) (p)->Initialize(a,b) 920#define IDirect3DExecuteBuffer_Lock(p,a) (p)->Lock(a) 921#define IDirect3DExecuteBuffer_Unlock(p) (p)->Unlock() 922#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->SetExecuteData(a) 923#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->GetExecuteData(a) 924#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->Validate(a,b,c,d) 925#define IDirect3DExecuteBuffer_Optimize(p,a) (p)->Optimize(a) 926#endif 927 928 929/***************************************************************************** 930 * IDirect3DDevice interface 931 */ 932#define INTERFACE IDirect3DDevice 933DECLARE_INTERFACE_(IDirect3DDevice,IUnknown) 934{ 935 /*** IUnknown methods ***/ 936 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 937 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 938 STDMETHOD_(ULONG,Release)(THIS) PURE; 939 /*** IDirect3DDevice methods ***/ 940 STDMETHOD(Initialize)(THIS_ IDirect3D *d3d, GUID *guid, D3DDEVICEDESC *desc) PURE; 941 STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE; 942 STDMETHOD(SwapTextureHandles)(THIS_ IDirect3DTexture *tex1, IDirect3DTexture *tex2) PURE; 943 STDMETHOD(CreateExecuteBuffer)(THIS_ D3DEXECUTEBUFFERDESC *desc, 944 IDirect3DExecuteBuffer **buffer, IUnknown *outer) PURE; 945 STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE; 946 STDMETHOD(Execute)(THIS_ IDirect3DExecuteBuffer *buffer, IDirect3DViewport *viewport, 947 DWORD flags) PURE; 948 STDMETHOD(AddViewport)(THIS_ IDirect3DViewport *viewport) PURE; 949 STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport *viewport) PURE; 950 STDMETHOD(NextViewport)(THIS_ IDirect3DViewport *ref, 951 IDirect3DViewport **viewport, DWORD flags) PURE; 952 STDMETHOD(Pick)(THIS_ IDirect3DExecuteBuffer *buffer, IDirect3DViewport *viewport, 953 DWORD flags, D3DRECT *rect) PURE; 954 STDMETHOD(GetPickRecords)(THIS_ DWORD *count, D3DPICKRECORD *records) PURE; 955 STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE; 956 STDMETHOD(CreateMatrix)(THIS_ D3DMATRIXHANDLE *matrix) PURE; 957 STDMETHOD(SetMatrix)(THIS_ D3DMATRIXHANDLE handle, D3DMATRIX *matrix) PURE; 958 STDMETHOD(GetMatrix)(THIS_ D3DMATRIXHANDLE handle, D3DMATRIX *matrix) PURE; 959 STDMETHOD(DeleteMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle) PURE; 960 STDMETHOD(BeginScene)(THIS) PURE; 961 STDMETHOD(EndScene)(THIS) PURE; 962 STDMETHOD(GetDirect3D)(THIS_ IDirect3D **d3d) PURE; 963}; 964#undef INTERFACE 965 966#if !defined(__cplusplus) || defined(CINTERFACE) 967/*** IUnknown methods ***/ 968#define IDirect3DDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 969#define IDirect3DDevice_AddRef(p) (p)->lpVtbl->AddRef(p) 970#define IDirect3DDevice_Release(p) (p)->lpVtbl->Release(p) 971/*** IDirect3DDevice methods ***/ 972#define IDirect3DDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c) 973#define IDirect3DDevice_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b) 974#define IDirect3DDevice_SwapTextureHandles(p,a,b) (p)->lpVtbl->SwapTextureHandles(p,a,b) 975#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->lpVtbl->CreateExecuteBuffer(p,a,b,c) 976#define IDirect3DDevice_GetStats(p,a) (p)->lpVtbl->GetStats(p,a) 977#define IDirect3DDevice_Execute(p,a,b,c) (p)->lpVtbl->Execute(p,a,b,c) 978#define IDirect3DDevice_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a) 979#define IDirect3DDevice_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a) 980#define IDirect3DDevice_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c) 981#define IDirect3DDevice_Pick(p,a,b,c,d) (p)->lpVtbl->Pick(p,a,b,c,d) 982#define IDirect3DDevice_GetPickRecords(p,a,b) (p)->lpVtbl->GetPickRecords(p,a,b) 983#define IDirect3DDevice_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b) 984#define IDirect3DDevice_CreateMatrix(p,a) (p)->lpVtbl->CreateMatrix(p,a) 985#define IDirect3DDevice_SetMatrix(p,a,b) (p)->lpVtbl->SetMatrix(p,a,b) 986#define IDirect3DDevice_GetMatrix(p,a,b) (p)->lpVtbl->GetMatrix(p,a,b) 987#define IDirect3DDevice_DeleteMatrix(p,a) (p)->lpVtbl->DeleteMatrix(p,a) 988#define IDirect3DDevice_BeginScene(p) (p)->lpVtbl->BeginScene(p) 989#define IDirect3DDevice_EndScene(p) (p)->lpVtbl->EndScene(p) 990#define IDirect3DDevice_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) 991#else 992/*** IUnknown methods ***/ 993#define IDirect3DDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 994#define IDirect3DDevice_AddRef(p) (p)->AddRef() 995#define IDirect3DDevice_Release(p) (p)->Release() 996/*** IDirect3DDevice methods ***/ 997#define IDirect3DDevice_Initialize(p,a,b,c) (p)->Initialize(a,b,c) 998#define IDirect3DDevice_GetCaps(p,a,b) (p)->GetCaps(a,b) 999#define IDirect3DDevice_SwapTextureHandles(p,a,b) (p)->SwapTextureHandles(a,b) 1000#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->CreateExecuteBuffer(a,b,c) 1001#define IDirect3DDevice_GetStats(p,a) (p)->GetStats(a) 1002#define IDirect3DDevice_Execute(p,a,b,c) (p)->Execute(a,b,c) 1003#define IDirect3DDevice_AddViewport(p,a) (p)->AddViewport(a) 1004#define IDirect3DDevice_DeleteViewport(p,a) (p)->DeleteViewport(a) 1005#define IDirect3DDevice_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c) 1006#define IDirect3DDevice_Pick(p,a,b,c,d) (p)->Pick(a,b,c,d) 1007#define IDirect3DDevice_GetPickRecords(p,a,b) (p)->GetPickRecords(a,b) 1008#define IDirect3DDevice_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b) 1009#define IDirect3DDevice_CreateMatrix(p,a) (p)->CreateMatrix(a) 1010#define IDirect3DDevice_SetMatrix(p,a,b) (p)->SetMatrix(a,b) 1011#define IDirect3DDevice_GetMatrix(p,a,b) (p)->GetMatrix(a,b) 1012#define IDirect3DDevice_DeleteMatrix(p,a) (p)->DeleteMatrix(a) 1013#define IDirect3DDevice_BeginScene(p) (p)->BeginScene() 1014#define IDirect3DDevice_EndScene(p) (p)->EndScene() 1015#define IDirect3DDevice_GetDirect3D(p,a) (p)->GetDirect3D(a) 1016#endif 1017 1018 1019/***************************************************************************** 1020 * IDirect3DDevice2 interface 1021 */ 1022#define INTERFACE IDirect3DDevice2 1023DECLARE_INTERFACE_(IDirect3DDevice2,IUnknown) 1024{ 1025 /*** IUnknown methods ***/ 1026 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 1027 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1028 STDMETHOD_(ULONG,Release)(THIS) PURE; 1029 /*** IDirect3DDevice2 methods ***/ 1030 STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE; 1031 STDMETHOD(SwapTextureHandles)(THIS_ IDirect3DTexture2 *tex1, IDirect3DTexture2 *tex2) PURE; 1032 STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE; 1033 STDMETHOD(AddViewport)(THIS_ IDirect3DViewport2 *viewport) PURE; 1034 STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport2 *viewport) PURE; 1035 STDMETHOD(NextViewport)(THIS_ IDirect3DViewport2 *ref, 1036 IDirect3DViewport2 **viewport, DWORD flags) PURE; 1037 STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE; 1038 STDMETHOD(BeginScene)(THIS) PURE; 1039 STDMETHOD(EndScene)(THIS) PURE; 1040 STDMETHOD(GetDirect3D)(THIS_ IDirect3D2 **d3d) PURE; 1041 /*** DrawPrimitive API ***/ 1042 STDMETHOD(SetCurrentViewport)(THIS_ IDirect3DViewport2 *viewport) PURE; 1043 STDMETHOD(GetCurrentViewport)(THIS_ IDirect3DViewport2 **viewport) PURE; 1044 STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface *surface, DWORD flags) PURE; 1045 STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface **surface) PURE; 1046 STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dpt,D3DVERTEXTYPE dwVertexTypeDesc,DWORD dwFlags) PURE; 1047 STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE; 1048 STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE; 1049 STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE; 1050 STDMETHOD(End)(THIS_ DWORD dwFlags) PURE; 1051 STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE; 1052 STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE; 1053 STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE; 1054 STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE; 1055 STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1056 STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1057 STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1058 STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE; 1059 STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE; 1060 STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1061 STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1062}; 1063#undef INTERFACE 1064 1065#if !defined(__cplusplus) || defined(CINTERFACE) 1066/*** IUnknown methods ***/ 1067#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1068#define IDirect3DDevice2_AddRef(p) (p)->lpVtbl->AddRef(p) 1069#define IDirect3DDevice2_Release(p) (p)->lpVtbl->Release(p) 1070/*** IDirect3DDevice2 methods ***/ 1071#define IDirect3DDevice2_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b) 1072#define IDirect3DDevice2_SwapTextureHandles(p,a,b) (p)->lpVtbl->SwapTextureHandles(p,a,b) 1073#define IDirect3DDevice2_GetStats(p,a) (p)->lpVtbl->GetStats(p,a) 1074#define IDirect3DDevice2_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a) 1075#define IDirect3DDevice2_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a) 1076#define IDirect3DDevice2_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c) 1077#define IDirect3DDevice2_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b) 1078#define IDirect3DDevice2_BeginScene(p) (p)->lpVtbl->BeginScene(p) 1079#define IDirect3DDevice2_EndScene(p) (p)->lpVtbl->EndScene(p) 1080#define IDirect3DDevice2_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) 1081#define IDirect3DDevice2_SetCurrentViewport(p,a) (p)->lpVtbl->SetCurrentViewport(p,a) 1082#define IDirect3DDevice2_GetCurrentViewport(p,a) (p)->lpVtbl->GetCurrentViewport(p,a) 1083#define IDirect3DDevice2_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) 1084#define IDirect3DDevice2_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a) 1085#define IDirect3DDevice2_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c) 1086#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e) (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e) 1087#define IDirect3DDevice2_Vertex(p,a) (p)->lpVtbl->Vertex(p,a) 1088#define IDirect3DDevice2_Index(p,a) (p)->lpVtbl->Index(p,a) 1089#define IDirect3DDevice2_End(p,a) (p)->lpVtbl->End(p,a) 1090#define IDirect3DDevice2_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) 1091#define IDirect3DDevice2_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) 1092#define IDirect3DDevice2_GetLightState(p,a,b) (p)->lpVtbl->GetLightState(p,a,b) 1093#define IDirect3DDevice2_SetLightState(p,a,b) (p)->lpVtbl->SetLightState(p,a,b) 1094#define IDirect3DDevice2_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) 1095#define IDirect3DDevice2_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) 1096#define IDirect3DDevice2_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) 1097#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e) 1098#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g) 1099#define IDirect3DDevice2_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) 1100#define IDirect3DDevice2_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) 1101#else 1102/*** IUnknown methods ***/ 1103#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1104#define IDirect3DDevice2_AddRef(p) (p)->AddRef() 1105#define IDirect3DDevice2_Release(p) (p)->Release() 1106/*** IDirect3DDevice2 methods ***/ 1107#define IDirect3DDevice2_GetCaps(p,a,b) (p)->GetCaps(a,b) 1108#define IDirect3DDevice2_SwapTextureHandles(p,a,b) (p)->SwapTextureHandles(a,b) 1109#define IDirect3DDevice2_GetStats(p,a) (p)->GetStats(a) 1110#define IDirect3DDevice2_AddViewport(p,a) (p)->AddViewport(a) 1111#define IDirect3DDevice2_DeleteViewport(p,a) (p)->DeleteViewport(a) 1112#define IDirect3DDevice2_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c) 1113#define IDirect3DDevice2_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b) 1114#define IDirect3DDevice2_BeginScene(p) (p)->BeginScene() 1115#define IDirect3DDevice2_EndScene(p) (p)->EndScene() 1116#define IDirect3DDevice2_GetDirect3D(p,a) (p)->GetDirect3D(a) 1117#define IDirect3DDevice2_SetCurrentViewport(p,a) (p)->SetCurrentViewport(a) 1118#define IDirect3DDevice2_GetCurrentViewport(p,a) (p)->GetCurrentViewport(a) 1119#define IDirect3DDevice2_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) 1120#define IDirect3DDevice2_GetRenderTarget(p,a) (p)->GetRenderTarget(a) 1121#define IDirect3DDevice2_Begin(p,a,b,c) (p)->Begin(a,b,c) 1122#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e) (p)->BeginIndexed(a,b,c,d,e) 1123#define IDirect3DDevice2_Vertex(p,a) (p)->Vertex(a) 1124#define IDirect3DDevice2_Index(p,a) (p)->Index(a) 1125#define IDirect3DDevice2_End(p,a) (p)->End(a) 1126#define IDirect3DDevice2_GetRenderState(p,a,b) (p)->GetRenderState(a,b) 1127#define IDirect3DDevice2_SetRenderState(p,a,b) (p)->SetRenderState(a,b) 1128#define IDirect3DDevice2_GetLightState(p,a,b) (p)->GetLightState(a,b) 1129#define IDirect3DDevice2_SetLightState(p,a,b) (p)->SetLightState(a,b) 1130#define IDirect3DDevice2_SetTransform(p,a,b) (p)->SetTransform(a,b) 1131#define IDirect3DDevice2_GetTransform(p,a,b) (p)->GetTransform(a,b) 1132#define IDirect3DDevice2_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) 1133#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e) 1134#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g) 1135#define IDirect3DDevice2_SetClipStatus(p,a) (p)->SetClipStatus(a) 1136#define IDirect3DDevice2_GetClipStatus(p,a) (p)->GetClipStatus(a) 1137#endif 1138 1139/***************************************************************************** 1140 * IDirect3DDevice3 interface 1141 */ 1142#define INTERFACE IDirect3DDevice3 1143DECLARE_INTERFACE_(IDirect3DDevice3,IUnknown) 1144{ 1145 /*** IUnknown methods ***/ 1146 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 1147 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1148 STDMETHOD_(ULONG,Release)(THIS) PURE; 1149 /*** IDirect3DDevice3 methods ***/ 1150 STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE; 1151 STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE; 1152 STDMETHOD(AddViewport)(THIS_ IDirect3DViewport3 *viewport) PURE; 1153 STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport3 *viewport) PURE; 1154 STDMETHOD(NextViewport)(THIS_ IDirect3DViewport3 *ref, 1155 IDirect3DViewport3 **viewport, DWORD flags) PURE; 1156 STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE; 1157 STDMETHOD(BeginScene)(THIS) PURE; 1158 STDMETHOD(EndScene)(THIS) PURE; 1159 STDMETHOD(GetDirect3D)(THIS_ IDirect3D3 **d3d) PURE; 1160 /*** DrawPrimitive API ***/ 1161 STDMETHOD(SetCurrentViewport)(THIS_ IDirect3DViewport3 *viewport) PURE; 1162 STDMETHOD(GetCurrentViewport)(THIS_ IDirect3DViewport3 **viewport) PURE; 1163 STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface4 *surface, DWORD flags) PURE; 1164 STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface4 **surface) PURE; 1165 STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexTypeDesc, DWORD dwFlags) PURE; 1166 STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE; 1167 STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE; 1168 STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE; 1169 STDMETHOD(End)(THIS_ DWORD dwFlags) PURE; 1170 STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE; 1171 STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE; 1172 STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE; 1173 STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE; 1174 STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1175 STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1176 STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1177 STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE; 1178 STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE; 1179 STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1180 STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1181 STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf, 1182 D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, DWORD flags) PURE; 1183 STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf, 1184 D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, WORD *indices, DWORD index_count, 1185 DWORD flags) PURE; 1186 STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer *vb, 1187 DWORD start_vertex, DWORD vertex_count, DWORD flags) PURE; 1188 STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer *vb, 1189 WORD *indices, DWORD index_count, DWORD flags) PURE; 1190 STDMETHOD(ComputeSphereVisibility)(THIS_ D3DVECTOR *centers, D3DVALUE *radii, DWORD sphere_count, 1191 DWORD flags, DWORD *ret) PURE; 1192 STDMETHOD(GetTexture)(THIS_ DWORD stage, IDirect3DTexture2 **texture) PURE; 1193 STDMETHOD(SetTexture)(THIS_ DWORD stage, IDirect3DTexture2 *texture) PURE; 1194 STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE; 1195 STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE; 1196 STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE; 1197}; 1198#undef INTERFACE 1199 1200#if !defined(__cplusplus) || defined(CINTERFACE) 1201/*** IUnknown methods ***/ 1202#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1203#define IDirect3DDevice3_AddRef(p) (p)->lpVtbl->AddRef(p) 1204#define IDirect3DDevice3_Release(p) (p)->lpVtbl->Release(p) 1205/*** IDirect3DDevice3 methods ***/ 1206#define IDirect3DDevice3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b) 1207#define IDirect3DDevice3_GetStats(p,a) (p)->lpVtbl->GetStats(p,a) 1208#define IDirect3DDevice3_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a) 1209#define IDirect3DDevice3_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a) 1210#define IDirect3DDevice3_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c) 1211#define IDirect3DDevice3_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b) 1212#define IDirect3DDevice3_BeginScene(p) (p)->lpVtbl->BeginScene(p) 1213#define IDirect3DDevice3_EndScene(p) (p)->lpVtbl->EndScene(p) 1214#define IDirect3DDevice3_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) 1215#define IDirect3DDevice3_SetCurrentViewport(p,a) (p)->lpVtbl->SetCurrentViewport(p,a) 1216#define IDirect3DDevice3_GetCurrentViewport(p,a) (p)->lpVtbl->GetCurrentViewport(p,a) 1217#define IDirect3DDevice3_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) 1218#define IDirect3DDevice3_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a) 1219#define IDirect3DDevice3_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c) 1220#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e) (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e) 1221#define IDirect3DDevice3_Vertex(p,a) (p)->lpVtbl->Vertex(p,a) 1222#define IDirect3DDevice3_Index(p,a) (p)->lpVtbl->Index(p,a) 1223#define IDirect3DDevice3_End(p,a) (p)->lpVtbl->End(p,a) 1224#define IDirect3DDevice3_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) 1225#define IDirect3DDevice3_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) 1226#define IDirect3DDevice3_GetLightState(p,a,b) (p)->lpVtbl->GetLightState(p,a,b) 1227#define IDirect3DDevice3_SetLightState(p,a,b) (p)->lpVtbl->SetLightState(p,a,b) 1228#define IDirect3DDevice3_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) 1229#define IDirect3DDevice3_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) 1230#define IDirect3DDevice3_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) 1231#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e) 1232#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g) 1233#define IDirect3DDevice3_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) 1234#define IDirect3DDevice3_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) 1235#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e) 1236#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) 1237#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e) 1238#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e) 1239#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e) (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e) 1240#define IDirect3DDevice3_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) 1241#define IDirect3DDevice3_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) 1242#define IDirect3DDevice3_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) 1243#define IDirect3DDevice3_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) 1244#define IDirect3DDevice3_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) 1245#else 1246/*** IUnknown methods ***/ 1247#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1248#define IDirect3DDevice3_AddRef(p) (p)->AddRef() 1249#define IDirect3DDevice3_Release(p) (p)->Release() 1250/*** IDirect3DDevice3 methods ***/ 1251#define IDirect3DDevice3_GetCaps(p,a,b) (p)->GetCaps(a,b) 1252#define IDirect3DDevice3_GetStats(p,a) (p)->GetStats(a) 1253#define IDirect3DDevice3_AddViewport(p,a) (p)->AddViewport(a) 1254#define IDirect3DDevice3_DeleteViewport(p,a) (p)->DeleteViewport(a) 1255#define IDirect3DDevice3_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c) 1256#define IDirect3DDevice3_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b) 1257#define IDirect3DDevice3_BeginScene(p) (p)->BeginScene() 1258#define IDirect3DDevice3_EndScene(p) (p)->EndScene() 1259#define IDirect3DDevice3_GetDirect3D(p,a) (p)->GetDirect3D(a) 1260#define IDirect3DDevice3_SetCurrentViewport(p,a) (p)->SetCurrentViewport(a) 1261#define IDirect3DDevice3_GetCurrentViewport(p,a) (p)->GetCurrentViewport(a) 1262#define IDirect3DDevice3_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) 1263#define IDirect3DDevice3_GetRenderTarget(p,a) (p)->GetRenderTarget(a) 1264#define IDirect3DDevice3_Begin(p,a,b,c) (p)->Begin(a,b,c) 1265#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e) (p)->BeginIndexed(a,b,c,d,e) 1266#define IDirect3DDevice3_Vertex(p,a) (p)->Vertex(a) 1267#define IDirect3DDevice3_Index(p,a) (p)->Index(a) 1268#define IDirect3DDevice3_End(p,a) (p)->End(a) 1269#define IDirect3DDevice3_GetRenderState(p,a,b) (p)->GetRenderState(a,b) 1270#define IDirect3DDevice3_SetRenderState(p,a,b) (p)->SetRenderState(a,b) 1271#define IDirect3DDevice3_GetLightState(p,a,b) (p)->GetLightState(a,b) 1272#define IDirect3DDevice3_SetLightState(p,a,b) (p)->SetLightState(a,b) 1273#define IDirect3DDevice3_SetTransform(p,a,b) (p)->SetTransform(a,b) 1274#define IDirect3DDevice3_GetTransform(p,a,b) (p)->GetTransform(a,b) 1275#define IDirect3DDevice3_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) 1276#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e) 1277#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g) 1278#define IDirect3DDevice3_SetClipStatus(p,a) (p)->SetClipStatus(a) 1279#define IDirect3DDevice3_GetClipStatus(p,a) (p)->GetClipStatus(a) 1280#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->DrawPrimitiveStrided(a,b,c,d,e) 1281#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g) 1282#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e) (p)->DrawPrimitiveVB(a,b,c,d,e) 1283#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e) (p)->DrawIndexedPrimitiveVB(a,b,c,d,e) 1284#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e) (p)->ComputeSphereVisibility(a,b,c,d,e) 1285#define IDirect3DDevice3_GetTexture(p,a,b) (p)->GetTexture(a,b) 1286#define IDirect3DDevice3_SetTexture(p,a,b) (p)->SetTexture(a,b) 1287#define IDirect3DDevice3_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) 1288#define IDirect3DDevice3_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) 1289#define IDirect3DDevice3_ValidateDevice(p,a) (p)->ValidateDevice(a) 1290#endif 1291 1292/***************************************************************************** 1293 * IDirect3DDevice7 interface 1294 */ 1295#define INTERFACE IDirect3DDevice7 1296DECLARE_INTERFACE_(IDirect3DDevice7,IUnknown) 1297{ 1298 /*** IUnknown methods ***/ 1299 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 1300 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1301 STDMETHOD_(ULONG,Release)(THIS) PURE; 1302 /*** IDirect3DDevice7 methods ***/ 1303 STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC7 *desc) PURE; 1304 STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE; 1305 STDMETHOD(BeginScene)(THIS) PURE; 1306 STDMETHOD(EndScene)(THIS) PURE; 1307 STDMETHOD(GetDirect3D)(THIS_ IDirect3D7 **d3d) PURE; 1308 STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface7 *surface, DWORD flags) PURE; 1309 STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface7 **surface) PURE; 1310 STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags, D3DCOLOR color, D3DVALUE z, DWORD stencil) PURE; 1311 STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1312 STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1313 STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT7 *data) PURE; 1314 STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE; 1315 STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT7 *data) PURE; 1316 STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL7 *data) PURE; 1317 STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL7 *data) PURE; 1318 STDMETHOD(SetLight)(THIS_ DWORD idx, D3DLIGHT7 *data) PURE; 1319 STDMETHOD(GetLight)(THIS_ DWORD idx, D3DLIGHT7 *data) PURE; 1320 STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE; 1321 STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE; 1322 STDMETHOD(BeginStateBlock)(THIS) PURE; 1323 STDMETHOD(EndStateBlock)(THIS_ LPDWORD lpdwBlockHandle) PURE; 1324 STDMETHOD(PreLoad)(THIS_ IDirectDrawSurface7 *surface) PURE; 1325 STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE; 1326 STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE; 1327 STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1328 STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE; 1329 STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf, 1330 D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, DWORD flags) PURE; 1331 STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf, 1332 D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, WORD *indices, DWORD index_count, 1333 DWORD flags) PURE; 1334 STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer7 *vb, 1335 DWORD start_vertex, DWORD vertex_count, DWORD flags) PURE; 1336 STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer7 *vb, 1337 DWORD start_vertex, DWORD vertex_count, WORD *indices, DWORD index_count, DWORD flags) PURE; 1338 STDMETHOD(ComputeSphereVisibility)(THIS_ D3DVECTOR *centers, D3DVALUE *radii, DWORD sphere_count, 1339 DWORD flags, DWORD *ret) PURE; 1340 STDMETHOD(GetTexture)(THIS_ DWORD stage, IDirectDrawSurface7 **surface) PURE; 1341 STDMETHOD(SetTexture)(THIS_ DWORD stage, IDirectDrawSurface7 *surface) PURE; 1342 STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE; 1343 STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE; 1344 STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE; 1345 STDMETHOD(ApplyStateBlock)(THIS_ DWORD dwBlockHandle) PURE; 1346 STDMETHOD(CaptureStateBlock)(THIS_ DWORD dwBlockHandle) PURE; 1347 STDMETHOD(DeleteStateBlock)(THIS_ DWORD dwBlockHandle) PURE; 1348 STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE d3dsbType,LPDWORD lpdwBlockHandle) PURE; 1349 STDMETHOD(Load)(THIS_ IDirectDrawSurface7 *dst_surface, POINT *dst_point, 1350 IDirectDrawSurface7 *src_surface, RECT *src_rect, DWORD flags) PURE; 1351 STDMETHOD(LightEnable)(THIS_ DWORD dwLightIndex,WINBOOL bEnable) PURE; 1352 STDMETHOD(GetLightEnable)(THIS_ DWORD dwLightIndex,WINBOOL *pbEnable) PURE; 1353 STDMETHOD(SetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE; 1354 STDMETHOD(GetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE; 1355 STDMETHOD(GetInfo)(THIS_ DWORD dwDevInfoID,LPVOID pDevInfoStruct,DWORD dwSize) PURE; 1356}; 1357#undef INTERFACE 1358 1359#if !defined(__cplusplus) || defined(CINTERFACE) 1360/*** IUnknown methods ***/ 1361#define IDirect3DDevice7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1362#define IDirect3DDevice7_AddRef(p) (p)->lpVtbl->AddRef(p) 1363#define IDirect3DDevice7_Release(p) (p)->lpVtbl->Release(p) 1364/*** IDirect3DDevice7 methods ***/ 1365#define IDirect3DDevice7_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 1366#define IDirect3DDevice7_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b) 1367#define IDirect3DDevice7_BeginScene(p) (p)->lpVtbl->BeginScene(p) 1368#define IDirect3DDevice7_EndScene(p) (p)->lpVtbl->EndScene(p) 1369#define IDirect3DDevice7_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) 1370#define IDirect3DDevice7_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) 1371#define IDirect3DDevice7_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a) 1372#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f) 1373#define IDirect3DDevice7_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) 1374#define IDirect3DDevice7_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) 1375#define IDirect3DDevice7_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) 1376#define IDirect3DDevice7_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) 1377#define IDirect3DDevice7_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) 1378#define IDirect3DDevice7_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) 1379#define IDirect3DDevice7_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) 1380#define IDirect3DDevice7_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b) 1381#define IDirect3DDevice7_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b) 1382#define IDirect3DDevice7_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) 1383#define IDirect3DDevice7_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) 1384#define IDirect3DDevice7_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p) 1385#define IDirect3DDevice7_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a) 1386#define IDirect3DDevice7_PreLoad(p,a) (p)->lpVtbl->PreLoad(p,a) 1387#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e) 1388#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g) 1389#define IDirect3DDevice7_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) 1390#define IDirect3DDevice7_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) 1391#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e) 1392#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) 1393#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e) 1394#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g) 1395#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e) (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e) 1396#define IDirect3DDevice7_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) 1397#define IDirect3DDevice7_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) 1398#define IDirect3DDevice7_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) 1399#define IDirect3DDevice7_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) 1400#define IDirect3DDevice7_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) 1401#define IDirect3DDevice7_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a) 1402#define IDirect3DDevice7_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a) 1403#define IDirect3DDevice7_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a) 1404#define IDirect3DDevice7_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b) 1405#define IDirect3DDevice7_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e) 1406#define IDirect3DDevice7_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b) 1407#define IDirect3DDevice7_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b) 1408#define IDirect3DDevice7_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b) 1409#define IDirect3DDevice7_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b) 1410#define IDirect3DDevice7_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c) 1411#else 1412/*** IUnknown methods ***/ 1413#define IDirect3DDevice7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1414#define IDirect3DDevice7_AddRef(p) (p)->AddRef() 1415#define IDirect3DDevice7_Release(p) (p)->Release() 1416/*** IDirect3DDevice7 methods ***/ 1417#define IDirect3DDevice7_GetCaps(p,a) (p)->GetCaps(a) 1418#define IDirect3DDevice7_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b) 1419#define IDirect3DDevice7_BeginScene(p) (p)->BeginScene() 1420#define IDirect3DDevice7_EndScene(p) (p)->EndScene() 1421#define IDirect3DDevice7_GetDirect3D(p,a) (p)->GetDirect3D(a) 1422#define IDirect3DDevice7_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) 1423#define IDirect3DDevice7_GetRenderTarget(p,a) (p)->GetRenderTarget(a) 1424#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f) 1425#define IDirect3DDevice7_SetTransform(p,a,b) (p)->SetTransform(a,b) 1426#define IDirect3DDevice7_GetTransform(p,a,b) (p)->GetTransform(a,b) 1427#define IDirect3DDevice7_SetViewport(p,a) (p)->SetViewport(a) 1428#define IDirect3DDevice7_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) 1429#define IDirect3DDevice7_GetViewport(p,a) (p)->GetViewport(a) 1430#define IDirect3DDevice7_SetMaterial(p,a) (p)->SetMaterial(a) 1431#define IDirect3DDevice7_GetMaterial(p,a) (p)->GetMaterial(a) 1432#define IDirect3DDevice7_SetLight(p,a,b) (p)->SetLight(a,b) 1433#define IDirect3DDevice7_GetLight(p,a,b) (p)->GetLight(a,b) 1434#define IDirect3DDevice7_SetRenderState(p,a,b) (p)->SetRenderState(a,b) 1435#define IDirect3DDevice7_GetRenderState(p,a,b) (p)->GetRenderState(a,b) 1436#define IDirect3DDevice7_BeginStateBlock(p) (p)->BeginStateBlock() 1437#define IDirect3DDevice7_EndStateBlock(p,a) (p)->EndStateBlock(a) 1438#define IDirect3DDevice7_PreLoad(p,a) (p)->PreLoad(a) 1439#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e) 1440#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g) 1441#define IDirect3DDevice7_SetClipStatus(p,a) (p)->SetClipStatus(a) 1442#define IDirect3DDevice7_GetClipStatus(p,a) (p)->GetClipStatus(a) 1443#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->DrawPrimitiveStrided(a,b,c,d,e) 1444#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g) 1445#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e) (p)->DrawPrimitiveVB(a,b,c,d,e) 1446#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveVB(a,b,c,d,e,f,g) 1447#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e) (p)->ComputeSphereVisibility(a,b,c,d,e) 1448#define IDirect3DDevice7_GetTexture(p,a,b) (p)->GetTexture(a,b) 1449#define IDirect3DDevice7_SetTexture(p,a,b) (p)->SetTexture(a,b) 1450#define IDirect3DDevice7_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) 1451#define IDirect3DDevice7_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) 1452#define IDirect3DDevice7_ValidateDevice(p,a) (p)->ValidateDevice(a) 1453#define IDirect3DDevice7_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a) 1454#define IDirect3DDevice7_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a) 1455#define IDirect3DDevice7_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a) 1456#define IDirect3DDevice7_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b) 1457#define IDirect3DDevice7_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e) 1458#define IDirect3DDevice7_LightEnable(p,a,b) (p)->LightEnable(a,b) 1459#define IDirect3DDevice7_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b) 1460#define IDirect3DDevice7_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b) 1461#define IDirect3DDevice7_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b) 1462#define IDirect3DDevice7_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c) 1463#endif 1464 1465 1466 1467/***************************************************************************** 1468 * IDirect3DVertexBuffer interface 1469 */ 1470#define INTERFACE IDirect3DVertexBuffer 1471DECLARE_INTERFACE_(IDirect3DVertexBuffer,IUnknown) 1472{ 1473 /*** IUnknown methods ***/ 1474 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 1475 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1476 STDMETHOD_(ULONG,Release)(THIS) PURE; 1477 /*** IDirect3DVertexBuffer methods ***/ 1478 STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE; 1479 STDMETHOD(Unlock)(THIS) PURE; 1480 STDMETHOD(ProcessVertices)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count, 1481 IDirect3DVertexBuffer *src_buffer, DWORD src_idx, 1482 IDirect3DDevice3 *device, DWORD flags) PURE; 1483 STDMETHOD(GetVertexBufferDesc)(THIS_ D3DVERTEXBUFFERDESC *desc) PURE; 1484 STDMETHOD(Optimize)(THIS_ IDirect3DDevice3 *device, DWORD flags) PURE; 1485}; 1486#undef INTERFACE 1487 1488#if !defined(__cplusplus) || defined(CINTERFACE) 1489/*** IUnknown methods ***/ 1490#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1491#define IDirect3DVertexBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 1492#define IDirect3DVertexBuffer_Release(p) (p)->lpVtbl->Release(p) 1493/*** IDirect3DVertexBuffer methods ***/ 1494#define IDirect3DVertexBuffer_Lock(p,a,b,c) (p)->lpVtbl->Lock(p,a,b,c) 1495#define IDirect3DVertexBuffer_Unlock(p) (p)->lpVtbl->Unlock(p) 1496#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g) 1497#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a) (p)->lpVtbl->GetVertexBufferDesc(p,a) 1498#define IDirect3DVertexBuffer_Optimize(p,a,b) (p)->lpVtbl->Optimize(p,a,b) 1499#else 1500/*** IUnknown methods ***/ 1501#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1502#define IDirect3DVertexBuffer_AddRef(p) (p)->AddRef() 1503#define IDirect3DVertexBuffer_Release(p) (p)->Release() 1504/*** IDirect3DVertexBuffer methods ***/ 1505#define IDirect3DVertexBuffer_Lock(p,a,b,c) (p)->Lock(a,b,c) 1506#define IDirect3DVertexBuffer_Unlock(p) (p)->Unlock() 1507#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g) 1508#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a) (p)->GetVertexBufferDesc(a) 1509#define IDirect3DVertexBuffer_Optimize(p,a,b) (p)->Optimize(a,b) 1510#endif 1511 1512/***************************************************************************** 1513 * IDirect3DVertexBuffer7 interface 1514 */ 1515#define INTERFACE IDirect3DVertexBuffer7 1516DECLARE_INTERFACE_(IDirect3DVertexBuffer7,IUnknown) 1517{ 1518 /*** IUnknown methods ***/ 1519 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 1520 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 1521 STDMETHOD_(ULONG,Release)(THIS) PURE; 1522 /*** IDirect3DVertexBuffer7 methods ***/ 1523 STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE; 1524 STDMETHOD(Unlock)(THIS) PURE; 1525 STDMETHOD(ProcessVertices)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count, 1526 IDirect3DVertexBuffer7 *src_buffer, DWORD src_idx, 1527 IDirect3DDevice7 *device, DWORD flags) PURE; 1528 STDMETHOD(GetVertexBufferDesc)(THIS_ D3DVERTEXBUFFERDESC *desc) PURE; 1529 STDMETHOD(Optimize)(THIS_ IDirect3DDevice7 *device, DWORD flags) PURE; 1530 STDMETHOD(ProcessVerticesStrided)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count, 1531 D3DDRAWPRIMITIVESTRIDEDDATA *data, DWORD fvf, IDirect3DDevice7 *device, DWORD flags) PURE; 1532}; 1533#undef INTERFACE 1534 1535#if !defined(__cplusplus) || defined(CINTERFACE) 1536/*** IUnknown methods ***/ 1537#define IDirect3DVertexBuffer7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1538#define IDirect3DVertexBuffer7_AddRef(p) (p)->lpVtbl->AddRef(p) 1539#define IDirect3DVertexBuffer7_Release(p) (p)->lpVtbl->Release(p) 1540/*** IDirect3DVertexBuffer7 methods ***/ 1541#define IDirect3DVertexBuffer7_Lock(p,a,b,c) (p)->lpVtbl->Lock(p,a,b,c) 1542#define IDirect3DVertexBuffer7_Unlock(p) (p)->lpVtbl->Unlock(p) 1543#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g) 1544#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a) (p)->lpVtbl->GetVertexBufferDesc(p,a) 1545#define IDirect3DVertexBuffer7_Optimize(p,a,b) (p)->lpVtbl->Optimize(p,a,b) 1546#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVerticesStrided(p,a,b,c,d,e,f,g) 1547#else 1548/*** IUnknown methods ***/ 1549#define IDirect3DVertexBuffer7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1550#define IDirect3DVertexBuffer7_AddRef(p) (p)->AddRef() 1551#define IDirect3DVertexBuffer7_Release(p) (p)->Release() 1552/*** IDirect3DVertexBuffer7 methods ***/ 1553#define IDirect3DVertexBuffer7_Lock(p,a,b,c) (p)->Lock(a,b,c) 1554#define IDirect3DVertexBuffer7_Unlock(p) (p)->Unlock() 1555#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g) 1556#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a) (p)->GetVertexBufferDesc(a) 1557#define IDirect3DVertexBuffer7_Optimize(p,a,b) (p)->Optimize(a,b) 1558#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->ProcessVerticesStrided(a,b,c,d,e,f,g) 1559#endif 1560 1561#endif /* __WINE_D3D_H */ 1562