DirectX 5 Redocumentation
A redocumentation of DirectX 5, brought to you by a bunch of Infomaniacs.
d3d.h
Go to the documentation of this file.
1/*==========================================================================;
2 *
3 * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
4 *
5 * File: d3d.h
6 * Content: Direct3D include file
7 *
8 ***************************************************************************/
9
10#ifndef _D3D_H_
11#define _D3D_H_
12
13#include <stdlib.h>
14
15#ifdef _WIN32
16#define COM_NO_WINDOWS_H
17#include <objbase.h>
18#else
19#include "d3dcom.h"
20#endif
21
22#ifdef _WIN32
23#define D3DAPI WINAPI
24#else
25#define D3DAPI
26#endif
27
31#if defined( _WIN32 ) && !defined( _NO_COM)
32DEFINE_GUID( IID_IDirect3D, 0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56 );
33DEFINE_GUID( IID_IDirect3D2, 0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a);
34
35DEFINE_GUID( IID_IDirect3DRampDevice, 0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56 );
36DEFINE_GUID( IID_IDirect3DRGBDevice, 0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56 );
37DEFINE_GUID( IID_IDirect3DHALDevice, 0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E );
38DEFINE_GUID( IID_IDirect3DMMXDevice, 0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29 );
39
40DEFINE_GUID( IID_IDirect3DDevice, 0x64108800,0x957d,0X11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29 );
41DEFINE_GUID( IID_IDirect3DDevice2, 0x93281501, 0x8cf8, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
42DEFINE_GUID( IID_IDirect3DTexture, 0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56 );
43DEFINE_GUID( IID_IDirect3DTexture2, 0x93281502, 0x8cf8, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
44DEFINE_GUID( IID_IDirect3DLight, 0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E );
45DEFINE_GUID( IID_IDirect3DMaterial, 0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E );
46DEFINE_GUID( IID_IDirect3DMaterial2, 0x93281503, 0x8cf8, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
47DEFINE_GUID( IID_IDirect3DExecuteBuffer,0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E );
48DEFINE_GUID( IID_IDirect3DViewport, 0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E );
49DEFINE_GUID( IID_IDirect3DViewport2, 0x93281500, 0x8cf8, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
50#endif
51
55#ifdef __cplusplus
56
57/* 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined */
58struct IDirect3D;
59struct IDirect3D2;
60struct IDirect3DDevice;
61struct IDirect3DDevice2;
62struct IDirect3DExecuteBuffer;
63struct IDirect3DLight;
64struct IDirect3DMaterial;
65struct IDirect3DMaterial2;
66struct IDirect3DTexture;
67struct IDirect3DTexture2;
68struct IDirect3DViewport;
69struct IDirect3DViewport2;
70typedef struct IDirect3D *LPDIRECT3D;
71typedef struct IDirect3D2 *LPDIRECT3D2;
72typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
73typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
74typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
75typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
76typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
77typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
78typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
79typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
80typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
81typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
82
83#else
84
85typedef struct IDirect3D *LPDIRECT3D;
86typedef struct IDirect3D2 *LPDIRECT3D2;
87typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
88typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
89typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
90typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
91typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
92typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
93typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
94typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
95typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
96typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
97
98#endif
99
100#include "d3dtypes.h"
101#include "d3dcaps.h"
102
103#ifdef __cplusplus
104extern "C" {
105#endif
106
110#undef INTERFACE
111#define INTERFACE IDirect3D
113{
115 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
116 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
117 STDMETHOD_(ULONG, Release) (THIS) PURE;
119 STDMETHOD(Initialize) (THIS_ REFIID) PURE;
120 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID) PURE;
121 STDMETHOD(CreateLight) (THIS_ LPDIRECT3DLIGHT*, IUnknown*) PURE;
122 STDMETHOD(CreateMaterial) (THIS_ LPDIRECT3DMATERIAL*, IUnknown*) PURE;
123 STDMETHOD(CreateViewport) (THIS_ LPDIRECT3DVIEWPORT*, IUnknown*) PURE;
124 STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT) PURE;
125};
126
127#if !defined(__cplusplus) || defined(CINTERFACE)
128#define IDirect3D_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
129#define IDirect3D_AddRef(p) (p)->lpVtbl->AddRef(p)
130#define IDirect3D_Release(p) (p)->lpVtbl->Release(p)
131#define IDirect3D_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
132#define IDirect3D_EnumDevices(p, a, b) (p)->lpVtbl->EnumDevices(p, a, b)
133#define IDirect3D_CreateLight(p, a, b) (p)->lpVtbl->CreateLight(p, a, b)
134#define IDirect3D_CreateMaterial(p, a, b) (p)->lpVtbl->CreateMaterial(p, a, b)
135#define IDirect3D_CreateViewport(p, a, b) (p)->lpVtbl->CreateViewport(p, a, b)
136#define IDirect3D_FindDevice(p, a, b) (p)->lpVtbl->FindDevice(p, a, b)
137#else
138#define IDirect3D_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
139#define IDirect3D_AddRef(p) (p)->AddRef()
140#define IDirect3D_Release(p) (p)->Release()
141#define IDirect3D_Initialize(p, a) (p)->Initialize(a)
142#define IDirect3D_EnumDevices(p, a, b) (p)->EnumDevices(a, b)
143#define IDirect3D_CreateLight(p, a, b) (p)->CreateLight(a, b)
144#define IDirect3D_CreateMaterial(p, a, b) (p)->CreateMaterial(a, b)
145#define IDirect3D_CreateViewport(p, a, b) (p)->CreateViewport(a, b)
146#define IDirect3D_FindDevice(p, a, b) (p)->FindDevice(a, b)
147#endif
148
149/*
150 * IDirect3D2
151 */
152#undef INTERFACE
153#define INTERFACE IDirect3D2
155{
156 /*** IUnknown methods ***/
157 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
158 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
159 STDMETHOD_(ULONG, Release) (THIS) PURE;
160 /*** IDirect3D methods ***/
161 STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID) PURE;
162 STDMETHOD(CreateLight) (THIS_ LPDIRECT3DLIGHT*, IUnknown*) PURE;
163 STDMETHOD(CreateMaterial) (THIS_ LPDIRECT3DMATERIAL2*, IUnknown*) PURE;
164 STDMETHOD(CreateViewport) (THIS_ LPDIRECT3DVIEWPORT2*, IUnknown*) PURE;
165 STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT) PURE;
166
167 STDMETHOD(CreateDevice)(THIS_ REFCLSID, LPDIRECTDRAWSURFACE, LPDIRECT3DDEVICE2 *) PURE;
168
169};
170
171#if !defined(__cplusplus) || defined(CINTERFACE)
172#define IDirect3D2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
173#define IDirect3D2_AddRef(p) (p)->lpVtbl->AddRef(p)
174#define IDirect3D2_Release(p) (p)->lpVtbl->Release(p)
175#define IDirect3D2_EnumDevices(p, a, b) (p)->lpVtbl->EnumDevices(p, a, b)
176#define IDirect3D2_CreateLight(p, a, b) (p)->lpVtbl->CreateLight(p, a, b)
177#define IDirect3D2_CreateMaterial(p, a, b) (p)->lpVtbl->CreateMaterial(p, a, b)
178#define IDirect3D2_CreateViewport(p, a, b) (p)->lpVtbl->CreateViewport(p, a, b)
179#define IDirect3D2_FindDevice(p, a, b) (p)->lpVtbl->FindDevice(p, a, b)
180#define IDirect3D2_CreateDevice(p, a, b, c) (p)->lpVtbl->CreateDevice(p, a, b, c)
181#else
182#define IDirect3D2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
183#define IDirect3D2_AddRef(p) (p)->AddRef()
184#define IDirect3D2_Release(p) (p)->Release()
185#define IDirect3D2_EnumDevices(p, a, b) (p)->EnumDevices(a, b)
186#define IDirect3D2_CreateLight(p, a, b) (p)->CreateLight(a, b)
187#define IDirect3D2_CreateMaterial(p, a, b) (p)->CreateMaterial(a, b)
188#define IDirect3D2_CreateViewport(p, a, b) (p)->CreateViewport(a, b)
189#define IDirect3D2_FindDevice(p, a, b) (p)->FindDevice(a, b)
190#define IDirect3D2_CreateDevice(p, a, b, c) (p)->CreateDevice(a, b, c)
191#endif
192
193/*
194 * IDirect3DDevice
195 */
196#undef INTERFACE
197#define INTERFACE IDirect3DDevice
199{
200 /*** IUnknown methods ***/
201 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
202 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
203 STDMETHOD_(ULONG, Release) (THIS) PURE;
204 /*** IDirect3DDevice methods ***/
205 STDMETHOD(Initialize) (THIS_ LPDIRECT3D, LPGUID, LPD3DDEVICEDESC) PURE;
206 STDMETHOD(GetCaps) (THIS_ LPD3DDEVICEDESC, LPD3DDEVICEDESC) PURE;
207 STDMETHOD(SwapTextureHandles) (THIS_ LPDIRECT3DTEXTURE, LPDIRECT3DTEXTURE) PURE;
208 STDMETHOD(CreateExecuteBuffer) (THIS_ LPD3DEXECUTEBUFFERDESC, LPDIRECT3DEXECUTEBUFFER*, IUnknown*) PURE;
209 STDMETHOD(GetStats) (THIS_ LPD3DSTATS) PURE;
210 STDMETHOD(Execute) (THIS_ LPDIRECT3DEXECUTEBUFFER, LPDIRECT3DVIEWPORT, DWORD) PURE;
211 STDMETHOD(AddViewport) (THIS_ LPDIRECT3DVIEWPORT) PURE;
212 STDMETHOD(DeleteViewport) (THIS_ LPDIRECT3DVIEWPORT) PURE;
213 STDMETHOD(NextViewport) (THIS_ LPDIRECT3DVIEWPORT, LPDIRECT3DVIEWPORT*, DWORD) PURE;
214 STDMETHOD(Pick) (THIS_ LPDIRECT3DEXECUTEBUFFER, LPDIRECT3DVIEWPORT, DWORD, LPD3DRECT) PURE;
215 STDMETHOD(GetPickRecords)(THIS_ LPDWORD, LPD3DPICKRECORD) PURE;
216 STDMETHOD(EnumTextureFormats) (THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK, LPVOID) PURE;
217 STDMETHOD(CreateMatrix) (THIS_ LPD3DMATRIXHANDLE) PURE;
218 STDMETHOD(SetMatrix) (THIS_ D3DMATRIXHANDLE, const LPD3DMATRIX) PURE;
219 STDMETHOD(GetMatrix) (THIS_ D3DMATRIXHANDLE, LPD3DMATRIX) PURE;
220 STDMETHOD(DeleteMatrix) (THIS_ D3DMATRIXHANDLE) PURE;
221 STDMETHOD_(HRESULT, BeginScene) (THIS) PURE;
222 STDMETHOD_(HRESULT, EndScene) (THIS) PURE;
223 STDMETHOD(GetDirect3D) (THIS_ LPDIRECT3D*) PURE;
224};
225
226#if !defined(__cplusplus) || defined(CINTERFACE)
227#define IDirect3DDevice_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
228#define IDirect3DDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
229#define IDirect3DDevice_Release(p) (p)->lpVtbl->Release(p)
230#define IDirect3DDevice_Initialize(p, a, b, c) (p)->lpVtbl->Initialize(p, a, b, c)
231#define IDirect3DDevice_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b)
232#define IDirect3DDevice_SwapTextureHandles(p, a, b) (p)->lpVtbl->SwapTextureHandles(p, a, b)
233#define IDirect3DDevice_CreateExecuteBuffer(p, a, b, c) (p)->lpVtbl->CreateExecuteBuffer(p, a, b, c)
234#define IDirect3DDevice_GetStats(p, a) (p)->lpVtbl->GetStats(p, a)
235#define IDirect3DDevice_Execute(p, a, b, c) (p)->lpVtbl->Execute(p, a, b, c)
236#define IDirect3DDevice_AddViewport(p, a) (p)->lpVtbl->AddViewport(p, a)
237#define IDirect3DDevice_DeleteViewport(p, a) (p)->lpVtbl->DeleteViewport(p, a)
238#define IDirect3DDevice_NextViewport(p, a, b) (p)->lpVtbl->NextViewport(p, a, b)
239#define IDirect3DDevice_Pick(p, a, b, c, d) (p)->lpVtbl->Pick(p, a, b, c, d)
240#define IDirect3DDevice_GetPickRecords(p, a, b) (p)->lpVtbl->GetPickRecords(p, a, b)
241#define IDirect3DDevice_EnumTextureFormats(p, a, b) (p)->lpVtbl->EnumTextureFormats(p, a, b)
242#define IDirect3DDevice_CreateMatrix(p, a) (p)->lpVtbl->CreateMatrix(p, a)
243#define IDirect3DDevice_SetMatrix(p, a, b) (p)->lpVtbl->SetMatrix(p, a, b)
244#define IDirect3DDevice_GetMatrix(p, a, b) (p)->lpVtbl->GetMatrix(p, a, b)
245#define IDirect3DDevice_DeleteMatrix(p, a) (p)->lpVtbl->DeleteMatrix(p, a)
246#define IDirect3DDevice_BeginScene(p) (p)->lpVtbl->BeginScene(p)
247#define IDirect3DDevice_EndScene(p) (p)->lpVtbl->EndScene(p)
248#define IDirect3DDevice_GetDirect3D(p, a) (p)->lpVtbl->GetDirect3D(p, a)
249#else
250#define IDirect3DDevice_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
251#define IDirect3DDevice_AddRef(p) (p)->AddRef()
252#define IDirect3DDevice_Release(p) (p)->Release()
253#define IDirect3DDevice_Initialize(p, a, b, c) (p)->Initialize(a, b, c)
254#define IDirect3DDevice_GetCaps(p, a, b) (p)->GetCaps(a, b)
255#define IDirect3DDevice_SwapTextureHandles(p, a, b) (p)->SwapTextureHandles(a, b)
256#define IDirect3DDevice_CreateExecuteBuffer(p, a, b, c) (p)->CreateExecuteBuffer(a, b, c)
257#define IDirect3DDevice_GetStats(p, a) (p)->GetStats(a)
258#define IDirect3DDevice_Execute(p, a, b, c) (p)->Execute(a, b, c)
259#define IDirect3DDevice_AddViewport(p, a) (p)->AddViewport(a)
260#define IDirect3DDevice_DeleteViewport(p, a) (p)->DeleteViewport(a)
261#define IDirect3DDevice_NextViewport(p, a, b) (p)->NextViewport(a, b)
262#define IDirect3DDevice_Pick(p, a, b, c, d) (p)->Pick(a, b, c, d)
263#define IDirect3DDevice_GetPickRecords(p, a, b) (p)->GetPickRecords(a, b)
264#define IDirect3DDevice_EnumTextureFormats(p, a, b) (p)->EnumTextureFormats(a, b)
265#define IDirect3DDevice_CreateMatrix(p, a) (p)->CreateMatrix(a)
266#define IDirect3DDevice_SetMatrix(p, a, b) (p)->SetMatrix(a, b)
267#define IDirect3DDevice_GetMatrix(p, a, b) (p)->GetMatrix(a, b)
268#define IDirect3DDevice_DeleteMatrix(p, a) (p)->DeleteMatrix(a)
269#define IDirect3DDevice_BeginScene(p) (p)->BeginScene()
270#define IDirect3DDevice_EndScene(p) (p)->EndScene()
271#define IDirect3DDevice_GetDirect3D(p, a) (p)->GetDirect3D(a)
272#endif
273
274/*
275 * IDirect3DDevice2
276 */
277#undef INTERFACE
278#define INTERFACE IDirect3DDevice2
279DECLARE_INTERFACE_(IDirect3DDevice2, IUnknown)
280{
281 /*** IUnknown methods ***/
282 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
283 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
284 STDMETHOD_(ULONG, Release) (THIS) PURE;
285 /*** IDirect3DDevice2 methods ***/
286 STDMETHOD(GetCaps) (THIS_ LPD3DDEVICEDESC, LPD3DDEVICEDESC) PURE;
287 STDMETHOD(SwapTextureHandles) (THIS_ LPDIRECT3DTEXTURE2, LPDIRECT3DTEXTURE2) PURE;
288 STDMETHOD(GetStats) (THIS_ LPD3DSTATS) PURE;
289 STDMETHOD(AddViewport) (THIS_ LPDIRECT3DVIEWPORT2) PURE;
290 STDMETHOD(DeleteViewport) (THIS_ LPDIRECT3DVIEWPORT2) PURE;
291 STDMETHOD(NextViewport) (THIS_ LPDIRECT3DVIEWPORT2, LPDIRECT3DVIEWPORT2*, DWORD) PURE;
292 STDMETHOD(EnumTextureFormats) (THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK, LPVOID) PURE;
293 STDMETHOD_(HRESULT, BeginScene) (THIS) PURE;
294 STDMETHOD_(HRESULT, EndScene) (THIS) PURE;
295 STDMETHOD(GetDirect3D) (THIS_ LPDIRECT3D2*) PURE;
296
297 /*** DrawPrimitive API ***/
298 STDMETHOD(SetCurrentViewport) (THIS_ LPDIRECT3DVIEWPORT2) PURE;
299 STDMETHOD(GetCurrentViewport) (THIS_ LPDIRECT3DVIEWPORT2 *) PURE;
300
301 STDMETHOD(SetRenderTarget) (THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
302 STDMETHOD(GetRenderTarget) (THIS_ LPDIRECTDRAWSURFACE *) PURE;
303
304 STDMETHOD(Begin) (THIS_ D3DPRIMITIVETYPE, D3DVERTEXTYPE, DWORD) PURE;
305 STDMETHOD(BeginIndexed) (THIS_ D3DPRIMITIVETYPE, D3DVERTEXTYPE, LPVOID, DWORD, DWORD) PURE;
306 STDMETHOD(Vertex) (THIS_ LPVOID) PURE;
307 STDMETHOD(Index) (THIS_ WORD) PURE;
308 STDMETHOD(End) (THIS_ DWORD) PURE;
309
310 STDMETHOD(GetRenderState) (THIS_ D3DRENDERSTATETYPE, LPDWORD) PURE;
311 STDMETHOD(SetRenderState) (THIS_ D3DRENDERSTATETYPE, DWORD) PURE;
312 STDMETHOD(GetLightState) (THIS_ D3DLIGHTSTATETYPE, LPDWORD) PURE;
313 STDMETHOD(SetLightState) (THIS_ D3DLIGHTSTATETYPE, DWORD) PURE;
314 STDMETHOD(SetTransform) (THIS_ D3DTRANSFORMSTATETYPE, LPD3DMATRIX) PURE;
315 STDMETHOD(GetTransform) (THIS_ D3DTRANSFORMSTATETYPE, LPD3DMATRIX) PURE;
316 STDMETHOD(MultiplyTransform) (THIS_ D3DTRANSFORMSTATETYPE, LPD3DMATRIX) PURE;
317
318 STDMETHOD(DrawPrimitive) (THIS_ D3DPRIMITIVETYPE, D3DVERTEXTYPE, LPVOID, DWORD, DWORD) PURE;
319 STDMETHOD(DrawIndexedPrimitive) (THIS_ D3DPRIMITIVETYPE, D3DVERTEXTYPE, LPVOID, DWORD, LPWORD, DWORD, DWORD) PURE;
320
321 STDMETHOD(SetClipStatus) (THIS_ LPD3DCLIPSTATUS) PURE;
322 STDMETHOD(GetClipStatus) (THIS_ LPD3DCLIPSTATUS) PURE;
323};
324
325#if !defined(__cplusplus) || defined(CINTERFACE)
326#define IDirect3DDevice2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
327#define IDirect3DDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
328#define IDirect3DDevice2_Release(p) (p)->lpVtbl->Release(p)
329#define IDirect3DDevice2_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b)
330#define IDirect3DDevice2_SwapTextureHandles(p, a, b) (p)->lpVtbl->SwapTextureHandles(p, a, b)
331#define IDirect3DDevice2_GetStats(p, a) (p)->lpVtbl->CreateViewport(p, a)
332#define IDirect3DDevice2_AddViewport(p, a) (p)->lpVtbl->AddViewport(p, a)
333#define IDirect3DDevice2_DeleteViewport(p, a) (p)->lpVtbl->DeleteViewport(p, a)
334#define IDirect3DDevice2_NextViewport(p, a, b) (p)->lpVtbl->NextViewport(p, a, b)
335#define IDirect3DDevice2_EnumTextureFormats(p, a, b) (p)->lpVtbl->EnumTextureFormats(p, a, b)
336#define IDirect3DDevice2_BeginScene(p) (p)->lpVtbl->BeginScene(p)
337#define IDirect3DDevice2_EndScene(p) (p)->lpVtbl->EndScene(p)
338#define IDirect3DDevice2_GetDirect3D(p, a) (p)->lpVtbl->GetDirect3D(p, a)
339
340#define IDirect3DDevice2_SetCurrentViewport(p, a) (p)->lpVtbl->SetCurrentViewport(p, a)
341#define IDirect3DDevice2_GetCurrentViewport(p, a) (p)->lpVtbl->GetCurrentViewport(p, a)
342
343#define IDirect3DDevice2_SetRenderTarget(p, a, b) (p)->lpVtbl->SetRenderTarget(p, a, b)
344#define IDirect3DDevice2_GetRenderTarget(p, a) (p)->lpVtbl->GetRenderTarget(p, a)
345
346#define IDirect3DDevice2_Begin(p, a, b, c) (p)->lpVtbl->Begin(p, a, b, c)
347#define IDirect3DDevice2_BeginIndexed(p, a, b, c, d, e) (p)->lpVtbl->Begin(p, a, b, c, d, e)
348#define IDirect3DDevice2_Vertex(p, a) (p)->lpVtbl->Vertex(p, a)
349#define IDirect3DDevice2_Index(p, a) (p)->lpVtbl->Index(p, a)
350#define IDirect3DDevice2_End(p, a) (p)->lpVtbl->End(p, a)
351
352#define IDirect3DDevice2_GetRenderState(p, a, b) (p)->lpVtbl->GetRenderState(p, a, b)
353#define IDirect3DDevice2_SetRenderState(p, a, b) (p)->lpVtbl->SetRenderState(p, a, b)
354#define IDirect3DDevice2_GetLightState(p, a, b) (p)->lpVtbl->GetLightState(p, a, b)
355#define IDirect3DDevice2_SetLightState(p, a, b) (p)->lpVtbl->SetLightState(p, a, b)
356#define IDirect3DDevice2_SetTransform(p, a, b) (p)->lpVtbl->SetTransform(p, a, b)
357#define IDirect3DDevice2_GetTransform(p, a, b) (p)->lpVtbl->GetTransform(p, a, b)
358#define IDirect3DDevice2_MultiplyTransform(p, a, b) (p)->lpVtbl->MultiplyTransform(p, a, b)
359
360#define IDirect3DDevice2_DrawPrimitive(p, a, b, c, d, e) (p)->lpVtbl->DrawPrimitive(p, a, b, c, d, e)
361#define IDirect3DDevice2_DrawIndexedPrimitive(p, a, b, c, d, e, f, g) \
362 (p)->lpVtbl->DrawIndexedPrimitive(p, a, b, c, d, e, f, g)
363#define IDirect3DDevice2_SetClipStatus(p, a) (p)->lpVtbl->SetClipStatus(p, a)
364#define IDirect3DDevice2_GetClipStatus(p, a) (p)->lpVtbl->GetClipStatus(p, a)
365#else
366#define IDirect3DDevice2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
367#define IDirect3DDevice2_AddRef(p) (p)->AddRef()
368#define IDirect3DDevice2_Release(p) (p)->Release()
369#define IDirect3DDevice2_GetCaps(p, a, b) (p)->GetCaps(a, b)
370#define IDirect3DDevice2_SwapTextureHandles(p, a, b) (p)->SwapTextureHandles(a, b)
371#define IDirect3DDevice2_GetStats(p, a) (p)->CreateViewport(a)
372#define IDirect3DDevice2_AddViewport(p, a) (p)->AddViewport(a)
373#define IDirect3DDevice2_DeleteViewport(p, a) (p)->DeleteViewport(a)
374#define IDirect3DDevice2_NextViewport(p, a, b) (p)->NextViewport(a, b)
375#define IDirect3DDevice2_EnumTextureFormats(p, a, b) (p)->EnumTextureFormats(a, b)
376#define IDirect3DDevice2_BeginScene(p) (p)->BeginScene()
377#define IDirect3DDevice2_EndScene(p) (p)->EndScene()
378#define IDirect3DDevice2_GetDirect3D(p, a) (p)->GetDirect3D(a)
379
380#define IDirect3DDevice2_SetCurrentViewport(p, a) (p)->SetCurrentViewport(a)
381#define IDirect3DDevice2_GetCurrentViewport(p, a) (p)->GetCurrentViewport(a)
382
383#define IDirect3DDevice2_SetRenderTarget(p, a, b) (p)->SetRenderTarget(a, b)
384#define IDirect3DDevice2_GetRenderTarget(p, a) (p)->GetRenderTarget(a)
385
386#define IDirect3DDevice2_Begin(p, a, b, c) (p)->Begin(a, b, c)
387#define IDirect3DDevice2_BeginIndexed(p, a, b, c, d, e) (p)->Begin(a, b, c, d, e)
388#define IDirect3DDevice2_Vertex(p, a) (p)->Vertex(a)
389#define IDirect3DDevice2_Index(p, a) (p)->Index(a)
390#define IDirect3DDevice2_End(p, a) (p)->End(a)
391
392#define IDirect3DDevice2_GetRenderState(p, a, b) (p)->GetRenderState(a, b)
393#define IDirect3DDevice2_SetRenderState(p, a, b) (p)->SetRenderState(a, b)
394#define IDirect3DDevice2_GetLightState(p, a, b) (p)->GetLightState(a, b)
395#define IDirect3DDevice2_SetLightState(p, a, b) (p)->SetLightState(a, b)
396#define IDirect3DDevice2_SetTransform(p, a, b) (p)->SetTransform(a, b)
397#define IDirect3DDevice2_GetTransform(p, a, b) (p)->GetTransform(a, b)
398#define IDirect3DDevice2_MultiplyTransform(p, a, b) (p)->MultiplyTransform(a, b)
399
400#define IDirect3DDevice2_DrawPrimitive(p, a, b, c, d, e) (p)->DrawPrimitive(a, b, c, d, e)
401#define IDirect3DDevice2_DrawIndexedPrimitive(p, a, b, c, d, e, f, g) \
402 (p)->DrawIndexedPrimitive(a, b, c, d, e, f, g)
403#define IDirect3DDevice2_SetClipStatus(p, a) (p)->SetClipStatus(a)
404#define IDirect3DDevice2_GetClipStatus(p, a) (p)->GetClipStatus(a)
405
406#endif
407
408/*
409 * IDirect3DExecuteBuffer
410 */
411#undef INTERFACE
412#define INTERFACE IDirect3DExecuteBuffer
413DECLARE_INTERFACE_(IDirect3DExecuteBuffer, IUnknown)
414{
415 /*** IUnknown methods ***/
416 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
417 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
418 STDMETHOD_(ULONG, Release) (THIS) PURE;
419 /*** IDirect3DExecuteBuffer methods ***/
420 STDMETHOD(Initialize) (THIS_ LPDIRECT3DDEVICE, LPD3DEXECUTEBUFFERDESC) PURE;
421 STDMETHOD(Lock) (THIS_ LPD3DEXECUTEBUFFERDESC) PURE;
422 STDMETHOD_(HRESULT, Unlock) (THIS) PURE;
423 STDMETHOD(SetExecuteData) (THIS_ LPD3DEXECUTEDATA) PURE;
424 STDMETHOD(GetExecuteData) (THIS_ LPD3DEXECUTEDATA) PURE;
425 STDMETHOD(Validate) (THIS_ LPDWORD, LPD3DVALIDATECALLBACK, LPVOID, DWORD) PURE;
426 STDMETHOD(Optimize) (THIS_ DWORD) PURE;
427};
428
429#if !defined(__cplusplus) || defined(CINTERFACE)
430#define IDirect3DExecuteBuffer_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
431#define IDirect3DExecuteBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
432#define IDirect3DExecuteBuffer_Release(p) (p)->lpVtbl->Release(p)
433#define IDirect3DExecuteBuffer_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b)
434#define IDirect3DExecuteBuffer_Lock(p, a) (p)->lpVtbl->Lock(p, a)
435#define IDirect3DExecuteBuffer_Unlock(p) (p)->lpVtbl->Unlock(p)
436#define IDirect3DExecuteBuffer_SetExecuteData(p, a) (p)->lpVtbl->SetExecuteData(p, a)
437#define IDirect3DExecuteBuffer_GetExecuteData(p, a) (p)->lpVtbl->GetExecuteData(p, a)
438#define IDirect3DExecuteBuffer_Validate(p, a, b, c, d) (p)->lpVtbl->Validate(p, a, b, c, d)
439#define IDirect3DExecuteBuffer_Optimize(p, a) (p)->lpVtbl->Optimize(p, a)
440#else
441#define IDirect3DExecuteBuffer_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
442#define IDirect3DExecuteBuffer_AddRef(p) (p)->AddRef()
443#define IDirect3DExecuteBuffer_Release(p) (p)->Release()
444#define IDirect3DExecuteBuffer_Initialize(p, a, b) (p)->Initialize(a, b)
445#define IDirect3DExecuteBuffer_Lock(p, a) (p)->Lock(a)
446#define IDirect3DExecuteBuffer_Unlock(p) (p)->Unlock()
447#define IDirect3DExecuteBuffer_SetExecuteData(p, a) (p)->SetExecuteData(a)
448#define IDirect3DExecuteBuffer_GetExecuteData(p, a) (p)->GetExecuteData(a)
449#define IDirect3DExecuteBuffer_Validate(p, a, b, c, d) (p)->Validate(a, b, c, d)
450#define IDirect3DExecuteBuffer_Optimize(p, a) (p)->Optimize(a)
451#endif
452
453/*
454 * IDirect3DLight
455 */
456#undef INTERFACE
457#define INTERFACE IDirect3DLight
459{
460 /*** IUnknown methods ***/
461 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
462 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
463 STDMETHOD_(ULONG, Release) (THIS) PURE;
464 /*** IDirect3DLight methods ***/
465 STDMETHOD(Initialize) (THIS_ LPDIRECT3D) PURE;
466 STDMETHOD(SetLight) (THIS_ LPD3DLIGHT) PURE;
467 STDMETHOD(GetLight) (THIS_ LPD3DLIGHT) PURE;
468};
469
470#if !defined(__cplusplus) || defined(CINTERFACE)
471#define IDirect3DLight_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
472#define IDirect3DLight_AddRef(p) (p)->lpVtbl->AddRef(p)
473#define IDirect3DLight_Release(p) (p)->lpVtbl->Release(p)
474#define IDirect3DLight_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
475#define IDirect3DLight_SetLight(p, a) (p)->lpVtbl->SetLight(p, a)
476#define IDirect3DLight_GetLight(p, a) (p)->lpVtbl->GetLight(p, a)
477#else
478#define IDirect3DLight_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
479#define IDirect3DLight_AddRef(p) (p)->AddRef()
480#define IDirect3DLight_Release(p) (p)->Release()
481#define IDirect3DLight_Initialize(p, a) (p)->Initialize(a)
482#define IDirect3DLight_SetLight(p, a) (p)->SetLight(a)
483#define IDirect3DLight_GetLight(p, a) (p)->GetLight(a)
484#endif
485
486/*
487 * IDirect3DMaterial
488 */
489#undef INTERFACE
490#define INTERFACE IDirect3DMaterial
491DECLARE_INTERFACE_(IDirect3DMaterial, IUnknown)
492{
493 /*** IUnknown methods ***/
494 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
495 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
496 STDMETHOD_(ULONG, Release) (THIS) PURE;
497 /*** IDirect3DMaterial methods ***/
498 STDMETHOD(Initialize) (THIS_ LPDIRECT3D) PURE;
499 STDMETHOD(SetMaterial) (THIS_ LPD3DMATERIAL) PURE;
500 STDMETHOD(GetMaterial) (THIS_ LPD3DMATERIAL) PURE;
501 STDMETHOD(GetHandle) (THIS_ LPDIRECT3DDEVICE, LPD3DMATERIALHANDLE) PURE;
502 STDMETHOD_(HRESULT, Reserve) (THIS) PURE;
503 STDMETHOD_(HRESULT, Unreserve) (THIS) PURE;
504};
505
506#if !defined(__cplusplus) || defined(CINTERFACE)
507#define IDirect3DMaterial_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
508#define IDirect3DMaterial_AddRef(p) (p)->lpVtbl->AddRef(p)
509#define IDirect3DMaterial_Release(p) (p)->lpVtbl->Release(p)
510#define IDirect3DMaterial_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
511#define IDirect3DMaterial_SetMaterial(p, a) (p)->lpVtbl->SetMaterial(p, a)
512#define IDirect3DMaterial_GetMaterial(p, a) (p)->lpVtbl->GetMaterial(p, a)
513#define IDirect3DMaterial_GetHandle(p, a, b) (p)->lpVtbl->GetHandle(p, a, b)
514#define IDirect3DMaterial_Reserve(p) (p)->lpVtbl->Reserve(p)
515#define IDirect3DMaterial_Unreserve(p) (p)->lpVtbl->Unreserve(p)
516#else
517#define IDirect3DMaterial_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
518#define IDirect3DMaterial_AddRef(p) (p)->AddRef()
519#define IDirect3DMaterial_Release(p) (p)->Release()
520#define IDirect3DMaterial_Initialize(p, a) (p)->Initialize(a)
521#define IDirect3DMaterial_SetMaterial(p, a) (p)->SetMaterial(a)
522#define IDirect3DMaterial_GetMaterial(p, a) (p)->GetMaterial(a)
523#define IDirect3DMaterial_GetHandle(p, a, b) (p)->GetHandle(a, b)
524#define IDirect3DMaterial_Reserve(p) (p)->Reserve()
525#define IDirect3DMaterial_Unreserve(p) (p)->Unreserve()
526#endif
527
528/*
529 * IDirect3DMaterial2
530 */
531#undef INTERFACE
532#define INTERFACE IDirect3DMaterial2
533DECLARE_INTERFACE_(IDirect3DMaterial2, IUnknown)
534{
535 /*** IUnknown methods ***/
536 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
537 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
538 STDMETHOD_(ULONG, Release) (THIS) PURE;
539 /*** IDirect3DMaterial2 methods ***/
540 STDMETHOD(SetMaterial) (THIS_ LPD3DMATERIAL) PURE;
541 STDMETHOD(GetMaterial) (THIS_ LPD3DMATERIAL) PURE;
542 STDMETHOD(GetHandle) (THIS_ LPDIRECT3DDEVICE2, LPD3DMATERIALHANDLE) PURE;
543};
544
545#if !defined(__cplusplus) || defined(CINTERFACE)
546#define IDirect3DMaterial2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
547#define IDirect3DMaterial2_AddRef(p) (p)->lpVtbl->AddRef(p)
548#define IDirect3DMaterial2_Release(p) (p)->lpVtbl->Release(p)
549#define IDirect3DMaterial2_SetMaterial(p, a) (p)->lpVtbl->SetMaterial(p, a)
550#define IDirect3DMaterial2_GetMaterial(p, a) (p)->lpVtbl->GetMaterial(p, a)
551#define IDirect3DMaterial2_GetHandle(p, a, b) (p)->lpVtbl->GetHandle(p, a, b)
552#else
553#define IDirect3DMaterial2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
554#define IDirect3DMaterial2_AddRef(p) (p)->AddRef()
555#define IDirect3DMaterial2_Release(p) (p)->Release()
556#define IDirect3DMaterial2_SetMaterial(p, a) (p)->SetMaterial(a)
557#define IDirect3DMaterial2_GetMaterial(p, a) (p)->GetMaterial(a)
558#define IDirect3DMaterial2_GetHandle(p, a, b) (p)->GetHandle(a, b)
559#endif
560
561/*
562 * IDirect3DTexture
563 */
564#undef INTERFACE
565#define INTERFACE IDirect3DTexture
566DECLARE_INTERFACE_(IDirect3DTexture, IUnknown)
567{
568 /*** IUnknown methods ***/
569 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
570 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
571 STDMETHOD_(ULONG, Release) (THIS) PURE;
572 /*** IDirect3DTexture methods ***/
573 STDMETHOD(Initialize) (THIS_ LPDIRECT3DDEVICE, LPDIRECTDRAWSURFACE) PURE;
574 STDMETHOD(GetHandle) (THIS_ LPDIRECT3DDEVICE, LPD3DTEXTUREHANDLE) PURE;
575 STDMETHOD(PaletteChanged) (THIS_ DWORD, DWORD) PURE;
576 STDMETHOD(Load) (THIS_ LPDIRECT3DTEXTURE) PURE;
577 STDMETHOD_(HRESULT, Unload) (THIS) PURE;
578};
579
580#if !defined(__cplusplus) || defined(CINTERFACE)
581#define IDirect3DTexture_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
582#define IDirect3DTexture_AddRef(p) (p)->lpVtbl->AddRef(p)
583#define IDirect3DTexture_Release(p) (p)->lpVtbl->Release(p)
584#define IDirect3DTexture_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b)
585#define IDirect3DTexture_GetHandle(p, a, b) (p)->lpVtbl->GetHandle(p, a, b)
586#define IDirect3DTexture_PaletteChanged(p, a, b) (p)->lpVtbl->PaletteChanged(p, a, b)
587#define IDirect3DTexture_Load(p, a) (p)->lpVtbl->Load(p, a)
588#define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p)
589#else
590#define IDirect3DTexture_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
591#define IDirect3DTexture_AddRef(p) (p)->AddRef()
592#define IDirect3DTexture_Release(p) (p)->Release()
593#define IDirect3DTexture_Initialize(p, a, b) (p)->Initialize(a, b)
594#define IDirect3DTexture_GetHandle(p, a, b) (p)->GetHandle(a, b)
595#define IDirect3DTexture_PaletteChanged(p, a, b) (p)->PaletteChanged(a, b)
596#define IDirect3DTexture_Load(p, a) (p)->Load(a)
597#define IDirect3DTexture_Unload(p) (p)->Unload()
598#endif
599
600/*
601 * IDirect3DTexture2
602 */
603#undef INTERFACE
604#define INTERFACE IDirect3DTexture2
605DECLARE_INTERFACE_(IDirect3DTexture2, IUnknown)
606{
607 /*** IUnknown methods ***/
608 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
609 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
610 STDMETHOD_(ULONG, Release) (THIS) PURE;
611 /*** IDirect3DTexture2 methods ***/
612 STDMETHOD(GetHandle) (THIS_ LPDIRECT3DDEVICE2, LPD3DTEXTUREHANDLE) PURE;
613 STDMETHOD(PaletteChanged) (THIS_ DWORD, DWORD) PURE;
614 STDMETHOD(Load) (THIS_ LPDIRECT3DTEXTURE2) PURE;
615};
616
617#if !defined(__cplusplus) || defined(CINTERFACE)
618#define IDirect3DTexture2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
619#define IDirect3DTexture2_AddRef(p) (p)->lpVtbl->AddRef(p)
620#define IDirect3DTexture2_Release(p) (p)->lpVtbl->Release(p)
621#define IDirect3DTexture2_GetHandle(p, a, b) (p)->lpVtbl->GetHandle(p, a, b)
622#define IDirect3DTexture2_PaletteChanged(p, a, b) (p)->lpVtbl->PaletteChanged(p, a, b)
623#define IDirect3DTexture2_Load(p, a) (p)->lpVtbl->Load(p, a)
624#else
625#define IDirect3DTexture2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
626#define IDirect3DTexture2_AddRef(p) (p)->AddRef()
627#define IDirect3DTexture2_Release(p) (p)->Release()
628#define IDirect3DTexture2_GetHandle(p, a, b) (p)->GetHandle(a, b)
629#define IDirect3DTexture2_PaletteChanged(p, a, b) (p)->PaletteChanged(a, b)
630#define IDirect3DTexture2_Load(p, a) (p)->Load(a)
631#endif
632
633/*
634 * IDirect3DViewport
635 */
636#undef INTERFACE
637#define INTERFACE IDirect3DViewport
638DECLARE_INTERFACE_(IDirect3DViewport, IUnknown)
639{
640 /*** IUnknown methods ***/
641 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
642 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
643 STDMETHOD_(ULONG, Release) (THIS) PURE;
644 /*** IDirect3DViewport methods ***/
645 STDMETHOD(Initialize) (THIS_ LPDIRECT3D) PURE;
646 STDMETHOD(GetViewport) (THIS_ LPD3DVIEWPORT) PURE;
647 STDMETHOD(SetViewport) (THIS_ LPD3DVIEWPORT) PURE;
648 STDMETHOD(TransformVertices) (THIS_ DWORD, LPD3DTRANSFORMDATA, DWORD, LPDWORD) PURE;
649 STDMETHOD(LightElements) (THIS_ DWORD, LPD3DLIGHTDATA) PURE;
650 STDMETHOD(SetBackground) (THIS_ D3DMATERIALHANDLE) PURE;
651 STDMETHOD(GetBackground) (THIS_ LPD3DMATERIALHANDLE, LPBOOL) PURE;
652 STDMETHOD(SetBackgroundDepth) (THIS_ LPDIRECTDRAWSURFACE) PURE;
653 STDMETHOD(GetBackgroundDepth) (THIS_ LPDIRECTDRAWSURFACE*, LPBOOL) PURE;
654 STDMETHOD(Clear) (THIS_ DWORD, LPD3DRECT, DWORD) PURE;
655 STDMETHOD(AddLight) (THIS_ LPDIRECT3DLIGHT) PURE;
656 STDMETHOD(DeleteLight) (THIS_ LPDIRECT3DLIGHT) PURE;
657 STDMETHOD(NextLight) (THIS_ LPDIRECT3DLIGHT, LPDIRECT3DLIGHT*, DWORD) PURE;
658};
659
660#if !defined(__cplusplus) || defined(CINTERFACE)
661#define IDirect3DViewport_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
662#define IDirect3DViewport_AddRef(p) (p)->lpVtbl->AddRef(p)
663#define IDirect3DViewport_Release(p) (p)->lpVtbl->Release(p)
664#define IDirect3DViewport_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
665#define IDirect3DViewport_GetViewport(p, a) (p)->lpVtbl->GetViewport(p, a)
666#define IDirect3DViewport_SetViewport(p, a) (p)->lpVtbl->SetViewport(p, a)
667#define IDirect3DViewport_TransformVertices(p, a, b, c, d) (p)->lpVtbl->TransformVertices(p, a, b, c, d)
668#define IDirect3DViewport_LightElements(p, a, b) (p)->lpVtbl->LightElements(p, a, b)
669#define IDirect3DViewport_SetBackground(p, a) (p)->lpVtbl->SetBackground(p, a)
670#define IDirect3DViewport_GetBackground(p, a, b) (p)->lpVtbl->GetBackground(p, a, b)
671#define IDirect3DViewport_SetBackgroundDepth(p, a) (p)->lpVtbl->SetBackgroundDepth(p, a)
672#define IDirect3DViewport_GetBackgroundDepth(p, a, b) (p)->lpVtbl->GetBackgroundDepth(p, a, b)
673#define IDirect3DViewport_Clear(p, a, b, c) (p)->lpVtbl->Clear(p, a, b, c)
674#define IDirect3DViewport_AddLight(p, a) (p)->lpVtbl->AddLight(p, a)
675#define IDirect3DViewport_DeleteLight(p, a) (p)->lpVtbl->DeleteLight(p, a)
676#define IDirect3DViewport_NextLight(p, a, b, c) (p)->lpVtbl->NextLight(p, a, b, c)
677#else
678#define IDirect3DViewport_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
679#define IDirect3DViewport_AddRef(p) (p)->AddRef()
680#define IDirect3DViewport_Release(p) (p)->Release()
681#define IDirect3DViewport_Initialize(p, a) (p)->Initialize(a)
682#define IDirect3DViewport_GetViewport(p, a) (p)->GetViewport(a)
683#define IDirect3DViewport_SetViewport(p, a) (p)->SetViewport(a)
684#define IDirect3DViewport_TransformVertices(p, a, b, c, d) (p)->TransformVertices(a, b, c, d)
685#define IDirect3DViewport_LightElements(p, a, b) (p)->LightElements(a, b)
686#define IDirect3DViewport_SetBackground(p, a) (p)->SetBackground(a)
687#define IDirect3DViewport_GetBackground(p, a, b) (p)->GetBackground(a, b)
688#define IDirect3DViewport_SetBackgroundDepth(p, a) (p)->SetBackgroundDepth(a)
689#define IDirect3DViewport_GetBackgroundDepth(p, a, b) (p)->GetBackgroundDepth(a, b)
690#define IDirect3DViewport_Clear(p, a, b, c) (p)->Clear(a, b, c)
691#define IDirect3DViewport_AddLight(p, a) (p)->AddLight(a)
692#define IDirect3DViewport_DeleteLight(p, a) (p)->DeleteLight(a)
693#define IDirect3DViewport_NextLight(p, a, b, c) (p)->NextLight(a, b, c)
694#endif
695
696/*
697 * IDirect3DViewport2
698 */
699#undef INTERFACE
700#define INTERFACE IDirect3DViewport2
701DECLARE_INTERFACE_(IDirect3DViewport2, IDirect3DViewport)
702{
703 /*** IUnknown methods ***/
704 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
705 STDMETHOD_(ULONG, AddRef) (THIS) PURE;
706 STDMETHOD_(ULONG, Release) (THIS) PURE;
707 /*** IDirect3DViewport methods ***/
708 STDMETHOD(Initialize) (THIS_ LPDIRECT3D) PURE;
709 STDMETHOD(GetViewport) (THIS_ LPD3DVIEWPORT) PURE;
710 STDMETHOD(SetViewport) (THIS_ LPD3DVIEWPORT) PURE;
711 STDMETHOD(TransformVertices) (THIS_ DWORD, LPD3DTRANSFORMDATA, DWORD, LPDWORD) PURE;
712 STDMETHOD(LightElements) (THIS_ DWORD, LPD3DLIGHTDATA) PURE;
713 STDMETHOD(SetBackground) (THIS_ D3DMATERIALHANDLE) PURE;
714 STDMETHOD(GetBackground) (THIS_ LPD3DMATERIALHANDLE, LPBOOL) PURE;
715 STDMETHOD(SetBackgroundDepth) (THIS_ LPDIRECTDRAWSURFACE) PURE;
716 STDMETHOD(GetBackgroundDepth) (THIS_ LPDIRECTDRAWSURFACE*, LPBOOL) PURE;
717 STDMETHOD(Clear) (THIS_ DWORD, LPD3DRECT, DWORD) PURE;
718 STDMETHOD(AddLight) (THIS_ LPDIRECT3DLIGHT) PURE;
719 STDMETHOD(DeleteLight) (THIS_ LPDIRECT3DLIGHT) PURE;
720 STDMETHOD(NextLight) (THIS_ LPDIRECT3DLIGHT, LPDIRECT3DLIGHT*, DWORD) PURE;
721 /*** IDirect3DViewport2 methods ***/
722 STDMETHOD(GetViewport2) (THIS_ LPD3DVIEWPORT2) PURE;
723 STDMETHOD(SetViewport2) (THIS_ LPD3DVIEWPORT2) PURE;
724};
725
726#if !defined(__cplusplus) || defined(CINTERFACE)
727#define IDirect3DViewport2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
728#define IDirect3DViewport2_AddRef(p) (p)->lpVtbl->AddRef(p)
729#define IDirect3DViewport2_Release(p) (p)->lpVtbl->Release(p)
730#define IDirect3DViewport2_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
731#define IDirect3DViewport2_GetViewport(p, a) (p)->lpVtbl->GetViewport(p, a)
732#define IDirect3DViewport2_SetViewport(p, a) (p)->lpVtbl->SetViewport(p, a)
733#define IDirect3DViewport2_TransformVertices(p, a, b, c, d) (p)->lpVtbl->TransformVertices(p, a, b, c, d)
734#define IDirect3DViewport2_LightElements(p, a, b) (p)->lpVtbl->LightElements(p, a, b)
735#define IDirect3DViewport2_SetBackground(p, a) (p)->lpVtbl->SetBackground(p, a)
736#define IDirect3DViewport2_GetBackground(p, a, b) (p)->lpVtbl->GetBackground(p, a, b)
737#define IDirect3DViewport2_SetBackgroundDepth(p, a) (p)->lpVtbl->SetBackgroundDepth(p, a)
738#define IDirect3DViewport2_GetBackgroundDepth(p, a, b) (p)->lpVtbl->GetBackgroundDepth(p, a, b)
739#define IDirect3DViewport2_Clear(p, a, b, c) (p)->lpVtbl->Clear(p, a, b, c)
740#define IDirect3DViewport2_AddLight(p, a) (p)->lpVtbl->AddLight(p, a)
741#define IDirect3DViewport2_DeleteLight(p, a) (p)->lpVtbl->DeleteLight(p, a)
742#define IDirect3DViewport2_NextLight(p, a, b, c) (p)->lpVtbl->NextLight(p, a, b, c)
743#define IDirect3DViewport2_GetViewport2(p, a) (p)->lpVtbl->GetViewport2(p, a)
744#define IDirect3DViewport2_SetViewport2(p, a) (p)->lpVtbl->SetViewport2(p, a)
745#else
746#define IDirect3DViewport2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
747#define IDirect3DViewport2_AddRef(p) (p)->AddRef()
748#define IDirect3DViewport2_Release(p) (p)->Release()
749#define IDirect3DViewport2_Initialize(p, a) (p)->Initialize(a)
750#define IDirect3DViewport2_GetViewport(p, a) (p)->GetViewport(a)
751#define IDirect3DViewport2_SetViewport(p, a) (p)->SetViewport(a)
752#define IDirect3DViewport2_TransformVertices(p, a, b, c, d) (p)->TransformVertices(a, b, c, d)
753#define IDirect3DViewport2_LightElements(p, a, b) (p)->LightElements(a, b)
754#define IDirect3DViewport2_SetBackground(p, a) (p)->SetBackground(a)
755#define IDirect3DViewport2_GetBackground(p, a, b) (p)->GetBackground(a, b)
756#define IDirect3DViewport2_SetBackgroundDepth(p, a) (p)->SetBackgroundDepth(a)
757#define IDirect3DViewport2_GetBackgroundDepth(p, a, b) (p)->GetBackgroundDepth(a, b)
758#define IDirect3DViewport2_Clear(p, a, b, c) (p)->Clear(a, b, c)
759#define IDirect3DViewport2_AddLight(p, a) (p)->AddLight(a)
760#define IDirect3DViewport2_DeleteLight(p, a) (p)->DeleteLight(a)
761#define IDirect3DViewport2_NextLight(p, a, b, c) (p)->NextLight(a, b, c)
762#define IDirect3DViewport2_GetViewport2(p, a) (p)->GetViewport2(a)
763#define IDirect3DViewport2_SetViewport2(p, a) (p)->SetViewport2(a)
764#endif
765
766
767/****************************************************************************
768 *
769 * Flags for IDirect3DDevice::NextViewport
770 *
771 ****************************************************************************/
772
776#define D3DNEXT_NEXT 0x00000001l
777
781#define D3DNEXT_HEAD 0x00000002l
782
786#define D3DNEXT_TAIL 0x00000004l
787
788
789/****************************************************************************
790 *
791 * Flags for DrawPrimitive/DrawIndexedPrimitive
792 * Also valid for Begin/BeginIndexed
793 *
794 ****************************************************************************/
795
800#define D3DDP_WAIT 0x00000001l
801
802
806#define D3DDP_DONOTCLIP 0x00000004l
807
811#define D3DDP_DONOTUPDATEEXTENTS 0x00000008l
812
817#define D3D_OK DD_OK
818#define D3DERR_BADMAJORVERSION MAKE_DDHRESULT(700)
819#define D3DERR_BADMINORVERSION MAKE_DDHRESULT(701)
820
824#define D3DERR_INVALID_DEVICE MAKE_DDHRESULT(705)
825#define D3DERR_INITFAILED MAKE_DDHRESULT(706)
826
831#define D3DERR_DEVICEAGGREGATED MAKE_DDHRESULT(707)
832
833#define D3DERR_EXECUTE_CREATE_FAILED MAKE_DDHRESULT(710)
834#define D3DERR_EXECUTE_DESTROY_FAILED MAKE_DDHRESULT(711)
835#define D3DERR_EXECUTE_LOCK_FAILED MAKE_DDHRESULT(712)
836#define D3DERR_EXECUTE_UNLOCK_FAILED MAKE_DDHRESULT(713)
837#define D3DERR_EXECUTE_LOCKED MAKE_DDHRESULT(714)
838#define D3DERR_EXECUTE_NOT_LOCKED MAKE_DDHRESULT(715)
839
840#define D3DERR_EXECUTE_FAILED MAKE_DDHRESULT(716)
841#define D3DERR_EXECUTE_CLIPPED_FAILED MAKE_DDHRESULT(717)
842
843#define D3DERR_TEXTURE_NO_SUPPORT MAKE_DDHRESULT(720)
844#define D3DERR_TEXTURE_CREATE_FAILED MAKE_DDHRESULT(721)
845#define D3DERR_TEXTURE_DESTROY_FAILED MAKE_DDHRESULT(722)
846#define D3DERR_TEXTURE_LOCK_FAILED MAKE_DDHRESULT(723)
847#define D3DERR_TEXTURE_UNLOCK_FAILED MAKE_DDHRESULT(724)
848#define D3DERR_TEXTURE_LOAD_FAILED MAKE_DDHRESULT(725)
849#define D3DERR_TEXTURE_SWAP_FAILED MAKE_DDHRESULT(726)
850#define D3DERR_TEXTURE_LOCKED MAKE_DDHRESULT(727)
851#define D3DERR_TEXTURE_NOT_LOCKED MAKE_DDHRESULT(728)
852#define D3DERR_TEXTURE_GETSURF_FAILED MAKE_DDHRESULT(729)
853
854#define D3DERR_MATRIX_CREATE_FAILED MAKE_DDHRESULT(730)
855#define D3DERR_MATRIX_DESTROY_FAILED MAKE_DDHRESULT(731)
856#define D3DERR_MATRIX_SETDATA_FAILED MAKE_DDHRESULT(732)
857#define D3DERR_MATRIX_GETDATA_FAILED MAKE_DDHRESULT(733)
858#define D3DERR_SETVIEWPORTDATA_FAILED MAKE_DDHRESULT(734)
859
860#define D3DERR_INVALIDCURRENTVIEWPORT MAKE_DDHRESULT(735)
861#define D3DERR_INVALIDPRIMITIVETYPE MAKE_DDHRESULT(736)
862#define D3DERR_INVALIDVERTEXTYPE MAKE_DDHRESULT(737)
863#define D3DERR_TEXTURE_BADSIZE MAKE_DDHRESULT(738)
864#define D3DERR_INVALIDRAMPTEXTURE MAKE_DDHRESULT(739)
865
866#define D3DERR_MATERIAL_CREATE_FAILED MAKE_DDHRESULT(740)
867#define D3DERR_MATERIAL_DESTROY_FAILED MAKE_DDHRESULT(741)
868#define D3DERR_MATERIAL_SETDATA_FAILED MAKE_DDHRESULT(742)
869#define D3DERR_MATERIAL_GETDATA_FAILED MAKE_DDHRESULT(743)
870#define D3DERR_INVALIDPALETTE MAKE_DDHRESULT(744)
871
872#define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745)
873#define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY MAKE_DDHRESULT(746)
874#define D3DERR_SURFACENOTINVIDMEM MAKE_DDHRESULT(747)
875
876#define D3DERR_LIGHT_SET_FAILED MAKE_DDHRESULT(750)
877#define D3DERR_LIGHTHASVIEWPORT MAKE_DDHRESULT(751)
878#define D3DERR_LIGHTNOTINTHISVIEWPORT MAKE_DDHRESULT(752)
879
880#define D3DERR_SCENE_IN_SCENE MAKE_DDHRESULT(760)
881#define D3DERR_SCENE_NOT_IN_SCENE MAKE_DDHRESULT(761)
882#define D3DERR_SCENE_BEGIN_FAILED MAKE_DDHRESULT(762)
883#define D3DERR_SCENE_END_FAILED MAKE_DDHRESULT(763)
884
885#define D3DERR_INBEGIN MAKE_DDHRESULT(770)
886#define D3DERR_NOTINBEGIN MAKE_DDHRESULT(771)
887#define D3DERR_NOVIEWPORTS MAKE_DDHRESULT(772)
888#define D3DERR_VIEWPORTDATANOTSET MAKE_DDHRESULT(773)
889#define D3DERR_VIEWPORTHASNODEVICE MAKE_DDHRESULT(774)
890#define D3DERR_NOCURRENTVIEWPORT MAKE_DDHRESULT(775)
891
892#ifdef __cplusplus
893};
894#endif
895
896#endif /* _D3D_H_ */
struct IDirect3DTexture2 * LPDIRECT3DTEXTURE2
Definition: d3d.h:94
struct IDirect3DMaterial * LPDIRECT3DMATERIAL
Definition: d3d.h:91
struct IDirect3D * LPDIRECT3D
Definition: d3d.h:85
struct IDirect3DDevice2 * LPDIRECT3DDEVICE2
Definition: d3d.h:88
struct IDirect3DTexture * LPDIRECT3DTEXTURE
Definition: d3d.h:93
struct IDirect3DExecuteBuffer * LPDIRECT3DEXECUTEBUFFER
Definition: d3d.h:89
struct IDirect3DLight * LPDIRECT3DLIGHT
Definition: d3d.h:90
struct IDirect3DDevice * LPDIRECT3DDEVICE
Definition: d3d.h:87
struct IDirect3DViewport2 * LPDIRECT3DVIEWPORT2
Definition: d3d.h:96
struct IDirect3DViewport * LPDIRECT3DVIEWPORT
Definition: d3d.h:95
DECLARE_INTERFACE_(IDirect3D, IUnknown)
Definition: d3d.h:112
struct IDirect3DMaterial2 * LPDIRECT3DMATERIAL2
Definition: d3d.h:92
struct IDirect3D2 * LPDIRECT3D2
Definition: d3d.h:86
struct _D3DExecuteBufferDesc * LPD3DEXECUTEBUFFERDESC
struct _D3DDeviceDesc * LPD3DDEVICEDESC
Definition: d3dcaps.h:213
struct _D3DFINDDEVICESEARCH * LPD3DFINDDEVICESEARCH
struct _D3DFINDDEVICERESULT * LPD3DFINDDEVICERESULT
LPSTR LPSTR LPVOID
Definition: d3dcaps.h:213
DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1)
DWORD * LPD3DMATERIALHANDLE
Definition: d3dtypes.h:105
struct _D3DMATERIAL * LPD3DMATERIAL
struct _D3DVIEWPORT2 * LPD3DVIEWPORT2
DWORD * LPD3DMATRIXHANDLE
Definition: d3dtypes.h:107
struct _D3DLIGHTDATA * LPD3DLIGHTDATA
enum _D3DLIGHTSTATETYPE D3DLIGHTSTATETYPE
HRESULT(WINAPI * LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset)
Definition: d3dtypes.h:100
struct _D3DCLIPSTATUS * LPD3DCLIPSTATUS
enum _D3DVERTEXTYPE D3DVERTEXTYPE
Vertex types supported by Direct3D.
struct _D3DTRANSFORMDATA * LPD3DTRANSFORMDATA
struct _D3DSTATS * LPD3DSTATS
enum _D3DPRIMITIVETYPE D3DPRIMITIVETYPE
Primitives supported by draw-primitive API.
struct _D3DLIGHT * LPD3DLIGHT
DWORD D3DMATERIALHANDLE
Definition: d3dtypes.h:105
enum _D3DRENDERSTATETYPE D3DRENDERSTATETYPE
struct _D3DMATRIX * LPD3DMATRIX
struct _D3DPICKRECORD * LPD3DPICKRECORD
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
struct _D3DVIEWPORT * LPD3DVIEWPORT
DWORD * LPD3DTEXTUREHANDLE
Definition: d3dtypes.h:106
DWORD D3DMATRIXHANDLE
Definition: d3dtypes.h:107
struct _D3DRECT * LPD3DRECT
struct _D3DEXECUTEDATA * LPD3DEXECUTEDATA
HRESULT(WINAPI * LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext)
Definition: d3dtypes.h:101
#define IUnknown
Definition: ddraw.h:28
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE
Definition: ddraw.h:74
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
long HRESULT
Definition: ddraw.h:115