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 */ 33 DEFINE_GUID(IID_IDirect3D, 0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 34 DEFINE_GUID(IID_IDirect3D2, 0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a); 35 DEFINE_GUID(IID_IDirect3D3, 0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e); 36 DEFINE_GUID(IID_IDirect3D7, 0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 37 38 DEFINE_GUID(IID_IDirect3DRampDevice, 0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 39 DEFINE_GUID(IID_IDirect3DRGBDevice, 0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 40 DEFINE_GUID(IID_IDirect3DHALDevice, 0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 41 DEFINE_GUID(IID_IDirect3DMMXDevice, 0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); 42 DEFINE_GUID(IID_IDirect3DRefDevice, 0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29); 43 DEFINE_GUID(IID_IDirect3DTnLHalDevice, 0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 44 DEFINE_GUID(IID_IDirect3DNullDevice, 0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8); 45 46 DEFINE_GUID(IID_IDirect3DDevice, 0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 47 DEFINE_GUID(IID_IDirect3DDevice2, 0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 48 DEFINE_GUID(IID_IDirect3DDevice3, 0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74); 49 DEFINE_GUID(IID_IDirect3DDevice7, 0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 50 51 DEFINE_GUID(IID_IDirect3DTexture, 0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); 52 DEFINE_GUID(IID_IDirect3DTexture2, 0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 53 54 DEFINE_GUID(IID_IDirect3DLight, 0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 55 56 DEFINE_GUID(IID_IDirect3DMaterial, 0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 57 DEFINE_GUID(IID_IDirect3DMaterial2, 0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 58 DEFINE_GUID(IID_IDirect3DMaterial3, 0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12); 59 60 DEFINE_GUID(IID_IDirect3DExecuteBuffer, 0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 61 62 DEFINE_GUID(IID_IDirect3DViewport, 0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); 63 DEFINE_GUID(IID_IDirect3DViewport2, 0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29); 64 DEFINE_GUID(IID_IDirect3DViewport3, 0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74); 65 66 DEFINE_GUID(IID_IDirect3DVertexBuffer, 0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8); 67 DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8); 68 69 70 typedef struct IDirect3D *LPDIRECT3D; 71 typedef struct IDirect3D2 *LPDIRECT3D2; 72 typedef struct IDirect3D3 *LPDIRECT3D3; 73 typedef struct IDirect3D7 *LPDIRECT3D7; 74 75 typedef struct IDirect3DLight *LPDIRECT3DLIGHT; 76 77 typedef struct IDirect3DDevice *LPDIRECT3DDEVICE; 78 typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2; 79 typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3; 80 typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7; 81 82 typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT; 83 typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2; 84 typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3; 85 86 typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL; 87 typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2; 88 typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3; 89 90 typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE; 91 typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2; 92 93 typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER; 94 95 typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER; 96 typedef 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 ******************************************************************** */ 200 typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE; 201 202 203 /***************************************************************************** 204 * IDirect3D interface 205 */ 206 #undef INTERFACE 207 #define INTERFACE IDirect3D 208 DECLARE_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 255 DECLARE_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 303 DECLARE_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 360 DECLARE_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 406 DECLARE_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 444 DECLARE_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 491 DECLARE_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 529 DECLARE_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 567 DECLARE_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 611 DECLARE_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 649 DECLARE_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 717 DECLARE_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 793 DECLARE_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 883 DECLARE_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 933 DECLARE_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 1023 DECLARE_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 1143 DECLARE_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 1296 DECLARE_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 1471 DECLARE_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 1516 DECLARE_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