Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/include/D3D9/d3d9types.h
4558 views
1
/*
2
* Copyright 2011 Joakim Sindholt <[email protected]>
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a
5
* copy of this software and associated documentation files (the "Software"),
6
* to deal in the Software without restriction, including without limitation
7
* on the rights to use, copy, modify, merge, publish, distribute, sub
8
* license, and/or sell copies of the Software, and to permit persons to whom
9
* the Software is furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice (including the next
12
* paragraph) shall be included in all copies or substantial portions of the
13
* Software.
14
*
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18
* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21
* USE OR OTHER DEALINGS IN THE SOFTWARE. */
22
23
#ifndef _D3D9TYPES_H_
24
#define _D3D9TYPES_H_
25
26
#ifdef _WIN32
27
#include <windows.h>
28
#else /* _WIN32 */
29
#include <stdint.h>
30
31
#ifndef NULL
32
#define NULL 0
33
#endif
34
35
/********************************************************
36
* Windows types *
37
********************************************************/
38
/* Function macros */
39
#define FAILED(x) ((HRESULT)(x) < 0)
40
#define SUCCEEDED(x) ((HRESULT)(x) >= 0)
41
42
#define MAKE_HRESULT(sev,fac,code) \
43
( \
44
((HRESULT)(sev) << 31) | \
45
((HRESULT)(fac) << 16) | \
46
(HRESULT)(code) \
47
)
48
49
/* Windows errors */
50
#define E_OUTOFMEMORY MAKE_HRESULT(1, 0x007, 14)
51
#define E_NOINTERFACE MAKE_HRESULT(1, 0x000, 0x4002)
52
#define E_POINTER MAKE_HRESULT(1, 0x000, 0x4003)
53
#define E_FAIL MAKE_HRESULT(1, 0x000, 0x4005)
54
55
#define S_OK ((HRESULT)0)
56
#define S_FALSE ((HRESULT)1)
57
58
/* WORD types */
59
typedef uint8_t BYTE;
60
typedef uint16_t WORD;
61
typedef uint32_t DWORD;
62
63
/* Renamed types */
64
typedef int BOOL;
65
#ifndef FALSE
66
#define FALSE 0
67
#define TRUE (!FALSE)
68
#endif
69
70
typedef uint32_t UINT32;
71
typedef uint64_t UINT64;
72
73
typedef unsigned short USHORT;
74
typedef unsigned int UINT;
75
typedef unsigned int ULONG;
76
typedef unsigned long long ULONGLONG;
77
78
typedef short SHORT;
79
typedef int INT;
80
typedef int LONG;
81
typedef long long LONGLONG;
82
typedef float FLOAT;
83
84
/* Windows types */
85
typedef void *HANDLE;
86
typedef int32_t HRESULT;
87
typedef HANDLE HWND;
88
typedef HANDLE HMONITOR;
89
typedef HANDLE HDC;
90
91
/* Unions */
92
typedef union {
93
struct {
94
DWORD LowPart;
95
LONG HighPart;
96
};
97
98
struct {
99
DWORD LowPart;
100
LONG HighPart;
101
} u;
102
103
LONGLONG QuadPart;
104
} LARGE_INTEGER, *LPLARGE_INTEGER;
105
106
/* Structs */
107
108
typedef struct _GUID {
109
DWORD Data1;
110
WORD Data2;
111
WORD Data3;
112
BYTE Data4[8];
113
} GUID, IID, *LPGUID, *REFGUID, *REFIID;
114
115
typedef struct _LUID {
116
DWORD LowPart;
117
LONG HighPart;
118
} LUID, *LPLUID, *PLUID;
119
120
typedef struct _PALETTEENTRY {
121
BYTE peRed;
122
BYTE peGreen;
123
BYTE peBlue;
124
BYTE peFlags;
125
} PALETTEENTRY, *LPPALETTEENTRY;
126
127
typedef struct _POINT {
128
LONG x;
129
LONG y;
130
} POINT, *LPPOINT;
131
132
typedef struct _RECT {
133
LONG left;
134
LONG top;
135
LONG right;
136
LONG bottom;
137
} RECT, *LPRECT;
138
139
typedef struct _RGNDATAHEADER {
140
DWORD dwSize;
141
DWORD iType;
142
DWORD nCount;
143
DWORD nRgnSize;
144
RECT rcBound;
145
} RGNDATAHEADER, *LPRGNDATAHEADER;
146
147
typedef struct _RGNDATA {
148
RGNDATAHEADER rdh;
149
char Buffer[1];
150
} RGNDATA, *LPRGNDATA;
151
#endif /* _WIN32 */
152
153
#ifndef MAKEFOURCC
154
#define MAKEFOURCC(a, b, c, d) \
155
( \
156
(DWORD)(BYTE)(a) | \
157
((DWORD)(BYTE)(b) << 8) | \
158
((DWORD)(BYTE)(c) << 16) | \
159
((DWORD)(BYTE)(d) << 24) \
160
)
161
#endif /* MAKEFOURCC */
162
163
164
#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
165
#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002
166
#define D3DPRESENTFLAG_DEVICECLIP 0x00000004
167
#define D3DPRESENTFLAG_VIDEO 0x00000010
168
#define D3DPRESENTFLAG_NOAUTOROTATE 0x00000020
169
#define D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040
170
#define D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080
171
#define D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100
172
#define D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200
173
#define D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400
174
#define D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
175
176
/* Windows calling convention */
177
#ifndef WINAPI
178
#if defined(__x86_64__) && !defined(__ILP32__)
179
#define WINAPI __attribute__((ms_abi))
180
#elif defined(__i386__)
181
#define WINAPI __attribute__((__stdcall__))
182
#else /* neither amd64 nor i386 */
183
#define WINAPI
184
#endif
185
#endif /* WINAPI */
186
187
/* Implementation caps */
188
#define D3DPRESENT_BACK_BUFFERS_MAX 3
189
#define D3DPRESENT_BACK_BUFFERS_MAX_EX 30
190
191
/* Functions */
192
#define MAKE_D3DHRESULT(code) MAKE_HRESULT(1, 0x876, code)
193
#define MAKE_D3DSTATUS(code) MAKE_HRESULT(0, 0x876, code)
194
195
/* SDK version */
196
#define D3D_SDK_VERSION 32
197
198
/* Adapter */
199
#define D3DADAPTER_DEFAULT 0
200
201
/********************************************************
202
* Return codes *
203
********************************************************/
204
#define D3D_OK S_OK
205
#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
206
#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
207
#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
208
#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
209
#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
210
#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
211
#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
212
#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
213
#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
214
#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
215
#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
216
#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
217
#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
218
#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
219
#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
220
#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
221
#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
222
#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
223
#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
224
#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
225
#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
226
#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
227
#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
228
#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
229
#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
230
#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
231
232
/********************************************************
233
* Bitmasks *
234
*******************************************************/
235
/* IDirect3DDevice9::Clear */
236
#define D3DCLEAR_TARGET 0x00000001
237
#define D3DCLEAR_ZBUFFER 0x00000002
238
#define D3DCLEAR_STENCIL 0x00000004
239
240
/* Usage */
241
/* http://msdn.microsoft.com/en-us/library/ee416659(VS.85).aspx */
242
#define D3DUSAGE_RENDERTARGET 0x00000001
243
#define D3DUSAGE_DEPTHSTENCIL 0x00000002
244
#define D3DUSAGE_WRITEONLY 0x00000008
245
#define D3DUSAGE_SOFTWAREPROCESSING 0x00000010
246
#define D3DUSAGE_DONOTCLIP 0x00000020
247
#define D3DUSAGE_POINTS 0x00000040
248
#define D3DUSAGE_RTPATCHES 0x00000080
249
#define D3DUSAGE_NPATCHES 0x00000100
250
#define D3DUSAGE_DYNAMIC 0x00000200
251
#define D3DUSAGE_AUTOGENMIPMAP 0x00000400
252
#ifndef D3D_DISABLE_9EX
253
#define D3DUSAGE_RESTRICTED_CONTENT 0x00000800
254
#define D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER 0x00001000
255
#define D3DUSAGE_RESTRICT_SHARED_RESOURCE 0x00002000
256
#endif
257
#define D3DUSAGE_DMAP 0x00004000
258
#define D3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000
259
#define D3DUSAGE_QUERY_SRGBREAD 0x00010000
260
#define D3DUSAGE_QUERY_FILTER 0x00020000
261
#define D3DUSAGE_QUERY_SRGBWRITE 0x00040000
262
#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000
263
#define D3DUSAGE_QUERY_VERTEXTEXTURE 0x00100000
264
#define D3DUSAGE_QUERY_WRAPANDMIP 0x00200000
265
#ifndef D3D_DISABLE_9EX
266
#define D3DUSAGE_NONSECURE 0x00800000
267
#define D3DUSAGE_TEXTAPI 0x10000000
268
#endif
269
270
/* Buffer locking */
271
/* http://msdn.microsoft.com/en-us/library/ee416503(VS.85).aspx */
272
#define D3DLOCK_READONLY 0x00000010
273
#define D3DLOCK_NOSYSLOCK 0x00000800
274
#define D3DLOCK_NOOVERWRITE 0x00001000
275
#define D3DLOCK_DISCARD 0x00002000
276
#define D3DLOCK_DONOTWAIT 0x00004000
277
#define D3DLOCK_NO_DIRTY_UPDATE 0x00008000
278
279
/* FVF */
280
/* http://msdn.microsoft.com/en-us/library/ee416490(VS.85).aspx */
281
/* http://msdn.microsoft.com/en-us/library/ms791638.aspx */
282
#define D3DFVF_XYZ 0x00000002
283
#define D3DFVF_XYZRHW 0x00000004
284
#define D3DFVF_XYZB1 0x00000006
285
#define D3DFVF_XYZB2 0x00000008
286
#define D3DFVF_XYZB3 0x0000000A
287
#define D3DFVF_XYZB4 0x0000000C
288
#define D3DFVF_XYZB5 0x0000000E
289
#define D3DFVF_XYZW 0x00004002
290
#define D3DFVF_POSITION_MASK 0x0000400E
291
292
#define D3DFVF_NORMAL 0x00000010
293
#define D3DFVF_PSIZE 0x00000020
294
#define D3DFVF_DIFFUSE 0x00000040
295
#define D3DFVF_SPECULAR 0x00000080
296
297
#define D3DFVF_TEX0 0x00000000
298
#define D3DFVF_TEX1 0x00000100
299
#define D3DFVF_TEX2 0x00000200
300
#define D3DFVF_TEX3 0x00000300
301
#define D3DFVF_TEX4 0x00000400
302
#define D3DFVF_TEX5 0x00000500
303
#define D3DFVF_TEX6 0x00000600
304
#define D3DFVF_TEX7 0x00000700
305
#define D3DFVF_TEX8 0x00000800
306
#define D3DFVF_TEXCOUNT_MASK 0x00000F00
307
#define D3DFVF_TEXCOUNT_SHIFT 8
308
#define D3DFVF_TEXTUREFORMAT1 0x00000003
309
#define D3DFVF_TEXTUREFORMAT2 0x00000000
310
#define D3DFVF_TEXTUREFORMAT3 0x00000001
311
#define D3DFVF_TEXTUREFORMAT4 0x00000002
312
313
#define D3DFVF_POSITION_MASK 0x0000400E
314
#define D3DFVF_TEXCOUNT_MASK 0x00000F00
315
#define D3DFVF_TEXCOUNT_SHIFT 8
316
317
#define D3DFVF_LASTBETA_UBYTE4 0x00001000
318
#define D3DFVF_LASTBETA_D3DCOLOR 0x00008000
319
320
#define D3DFVF_RESERVED0 0x00000001
321
#define D3DFVF_RESERVED2 0x00006000
322
323
#define D3DTA_SELECTMASK 0x0000000f
324
#define D3DTA_DIFFUSE 0x00000000
325
#define D3DTA_CURRENT 0x00000001
326
#define D3DTA_TEXTURE 0x00000002
327
#define D3DTA_TFACTOR 0x00000003
328
#define D3DTA_SPECULAR 0x00000004
329
#define D3DTA_TEMP 0x00000005
330
#define D3DTA_CONSTANT 0x00000006
331
#define D3DTA_COMPLEMENT 0x00000010
332
#define D3DTA_ALPHAREPLICATE 0x00000020
333
334
#define D3DSPD_IUNKNOWN 0x00000001
335
336
#define D3DPRESENT_DONOTWAIT 0x00000001
337
#define D3DPRESENT_LINEAR_CONTENT 0x00000002
338
#define D3DPRESENT_RATE_DEFAULT 0
339
340
#define D3DCREATE_FPU_PRESERVE 0x00000002
341
#define D3DCREATE_MULTITHREADED 0x00000004
342
#define D3DCREATE_PUREDEVICE 0x00000010
343
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020
344
#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040
345
#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080
346
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100
347
#define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200
348
349
#define D3DSTREAMSOURCE_INDEXEDDATA (1 << 30)
350
#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
351
352
/* D3DRS_COLORWRITEENABLE */
353
#define D3DCOLORWRITEENABLE_RED (1L << 0)
354
#define D3DCOLORWRITEENABLE_GREEN (1L << 1)
355
#define D3DCOLORWRITEENABLE_BLUE (1L << 2)
356
#define D3DCOLORWRITEENABLE_ALPHA (1L << 3)
357
358
359
/********************************************************
360
* Function macros *
361
*******************************************************/
362
363
/* Colors */
364
#define D3DCOLOR_ARGB(a,r,g,b) \
365
((D3DCOLOR)( \
366
(((a) & 0xFF) << 24) | \
367
(((r) & 0xFF) << 16) | \
368
(((g) & 0xFF) << 8) | \
369
((b) & 0xFF) \
370
))
371
372
#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
373
#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xFF,r,g,b)
374
#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)
375
#define D3DCOLOR_XYUV(y,u,v) D3DCOLOR_ARGB(0xFF,y,u,v)
376
377
#define D3DCOLOR_COLORVALUE(r,g,b,a) \
378
D3DCOLOR_RGBA( \
379
(DWORD)((r) * 255.0f), \
380
(DWORD)((g) * 255.0f), \
381
(DWORD)((b) * 255.0f), \
382
(DWORD)((a) * 255.0f) \
383
)
384
385
/* Shaders */
386
#define D3DDECL_END() { 0xFF, 0, D3DDECLTYPE_UNUSED, 0, 0, 0 }
387
388
/*****************************************************************************
389
* Typedefs *
390
*****************************************************************************/
391
typedef DWORD D3DCOLOR;
392
393
/*****************************************************************************
394
* Enums *
395
*****************************************************************************/
396
typedef enum D3DDISPLAYROTATION {
397
D3DDISPLAYROTATION_IDENTITY = 1,
398
D3DDISPLAYROTATION_90 = 2,
399
D3DDISPLAYROTATION_180 = 3,
400
D3DDISPLAYROTATION_270 = 4
401
} D3DDISPLAYROTATION;
402
403
typedef enum D3DSCANLINEORDERING {
404
D3DSCANLINEORDERING_UNKNOWN = 0,
405
D3DSCANLINEORDERING_PROGRESSIVE = 1,
406
D3DSCANLINEORDERING_INTERLACED = 2
407
} D3DSCANLINEORDERING;
408
409
typedef enum _D3DAUTHENTICATEDCHANNELTYPE {
410
D3DAUTHENTICATEDCHANNEL_D3D9 = 1,
411
D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2,
412
D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3
413
} D3DAUTHENTICATEDCHANNELTYPE;
414
415
typedef enum _D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE {
416
PROCESSIDTYPE_UNKNOWN = 0,
417
PROCESSIDTYPE_DWM = 1,
418
PROCESSIDTYPE_HANDLE = 2
419
} D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE;
420
421
typedef enum _D3DBACKBUFFER_TYPE {
422
D3DBACKBUFFER_TYPE_MONO = 0,
423
D3DBACKBUFFER_TYPE_LEFT = 1,
424
D3DBACKBUFFER_TYPE_RIGHT = 2
425
} D3DBACKBUFFER_TYPE;
426
427
typedef enum _D3DBASISTYPE {
428
D3DBASIS_BEZIER = 0,
429
D3DBASIS_BSPLINE = 1,
430
D3DBASIS_CATMULL_ROM = 2
431
} D3DBASISTYPE;
432
433
typedef enum _D3DBLEND {
434
D3DBLEND_ZERO = 1,
435
D3DBLEND_ONE = 2,
436
D3DBLEND_SRCCOLOR = 3,
437
D3DBLEND_INVSRCCOLOR = 4,
438
D3DBLEND_SRCALPHA = 5,
439
D3DBLEND_INVSRCALPHA = 6,
440
D3DBLEND_DESTALPHA = 7,
441
D3DBLEND_INVDESTALPHA = 8,
442
D3DBLEND_DESTCOLOR = 9,
443
D3DBLEND_INVDESTCOLOR = 10,
444
D3DBLEND_SRCALPHASAT = 11,
445
D3DBLEND_BOTHSRCALPHA = 12,
446
D3DBLEND_BOTHINVSRCALPHA = 13,
447
D3DBLEND_BLENDFACTOR = 14,
448
D3DBLEND_INVBLENDFACTOR = 15,
449
D3DBLEND_SRCCOLOR2 = 16,
450
D3DBLEND_INVSRCCOLOR2 = 17
451
} D3DBLEND;
452
453
typedef enum _D3DBLENDOP {
454
D3DBLENDOP_ADD = 1,
455
D3DBLENDOP_SUBTRACT = 2,
456
D3DBLENDOP_REVSUBTRACT = 3,
457
D3DBLENDOP_MIN = 4,
458
D3DBLENDOP_MAX = 5
459
} D3DBLENDOP;
460
461
typedef enum _D3DBUSTYPE {
462
D3DBUSTYPE_OTHER = 0x00000000,
463
D3DBUSTYPE_PCI = 0x00000001,
464
D3DBUSTYPE_PCIX = 0x00000002,
465
D3DBUSTYPE_PCIEXPRESS = 0x00000003,
466
D3DBUSTYPE_AGP = 0x00000004,
467
D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000,
468
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000,
469
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000,
470
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000,
471
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000,
472
D3DBUSIMPL_MODIFIER_NON_STANDARD = 0x80000000
473
} D3DBUSTYPE;
474
475
typedef enum _D3DCMPFUNC {
476
D3DCMP_NEVER_ZERO = 0, //Needed to avoid warnings
477
D3DCMP_NEVER = 1,
478
D3DCMP_LESS = 2,
479
D3DCMP_EQUAL = 3,
480
D3DCMP_LESSEQUAL = 4,
481
D3DCMP_GREATER = 5,
482
D3DCMP_NOTEQUAL = 6,
483
D3DCMP_GREATEREQUAL = 7,
484
D3DCMP_ALWAYS = 8
485
} D3DCMPFUNC;
486
487
typedef enum _D3DCOMPOSERECTSOP{
488
D3DCOMPOSERECTS_COPY = 1,
489
D3DCOMPOSERECTS_OR = 2,
490
D3DCOMPOSERECTS_AND = 3,
491
D3DCOMPOSERECTS_NEG = 4
492
} D3DCOMPOSERECTSOP;
493
494
typedef enum _D3DCUBEMAP_FACES {
495
D3DCUBEMAP_FACE_POSITIVE_X = 0,
496
D3DCUBEMAP_FACE_NEGATIVE_X = 1,
497
D3DCUBEMAP_FACE_POSITIVE_Y = 2,
498
D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
499
D3DCUBEMAP_FACE_POSITIVE_Z = 4,
500
D3DCUBEMAP_FACE_NEGATIVE_Z = 5
501
} D3DCUBEMAP_FACES;
502
503
typedef enum _D3DCULL {
504
D3DCULL_NONE = 1,
505
D3DCULL_CW = 2,
506
D3DCULL_CCW = 3
507
} D3DCULL;
508
509
typedef enum _D3DDEBUGMONITORTOKENS {
510
D3DDMT_ENABLE = 0,
511
D3DDMT_DISABLE = 1
512
} D3DDEBUGMONITORTOKENS;
513
514
typedef enum _D3DDECLMETHOD {
515
D3DDECLMETHOD_DEFAULT = 0,
516
D3DDECLMETHOD_PARTIALU = 1,
517
D3DDECLMETHOD_PARTIALV = 2,
518
D3DDECLMETHOD_CROSSUV = 3,
519
D3DDECLMETHOD_UV = 4,
520
D3DDECLMETHOD_LOOKUP = 5,
521
D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
522
} D3DDECLMETHOD;
523
524
typedef enum _D3DDECLTYPE {
525
D3DDECLTYPE_FLOAT1 = 0,
526
D3DDECLTYPE_FLOAT2 = 1,
527
D3DDECLTYPE_FLOAT3 = 2,
528
D3DDECLTYPE_FLOAT4 = 3,
529
D3DDECLTYPE_D3DCOLOR = 4,
530
D3DDECLTYPE_UBYTE4 = 5,
531
D3DDECLTYPE_SHORT2 = 6,
532
D3DDECLTYPE_SHORT4 = 7,
533
D3DDECLTYPE_UBYTE4N = 8,
534
D3DDECLTYPE_SHORT2N = 9,
535
D3DDECLTYPE_SHORT4N = 10,
536
D3DDECLTYPE_USHORT2N = 11,
537
D3DDECLTYPE_USHORT4N = 12,
538
D3DDECLTYPE_UDEC3 = 13,
539
D3DDECLTYPE_DEC3N = 14,
540
D3DDECLTYPE_FLOAT16_2 = 15,
541
D3DDECLTYPE_FLOAT16_4 = 16,
542
D3DDECLTYPE_UNUSED = 17
543
} D3DDECLTYPE;
544
545
typedef enum _D3DDECLUSAGE {
546
D3DDECLUSAGE_POSITION = 0,
547
D3DDECLUSAGE_BLENDWEIGHT = 1,
548
D3DDECLUSAGE_BLENDINDICES = 2,
549
D3DDECLUSAGE_NORMAL = 3,
550
D3DDECLUSAGE_PSIZE = 4,
551
D3DDECLUSAGE_TEXCOORD = 5,
552
D3DDECLUSAGE_TANGENT = 6,
553
D3DDECLUSAGE_BINORMAL = 7,
554
D3DDECLUSAGE_TESSFACTOR = 8,
555
D3DDECLUSAGE_POSITIONT = 9,
556
D3DDECLUSAGE_COLOR = 10,
557
D3DDECLUSAGE_FOG = 11,
558
D3DDECLUSAGE_DEPTH = 12,
559
D3DDECLUSAGE_SAMPLE = 13
560
} D3DDECLUSAGE;
561
562
typedef enum _D3DDEGREETYPE {
563
D3DDEGREE_LINEAR = 1,
564
D3DDEGREE_QUADRATIC = 2,
565
D3DDEGREE_CUBIC = 3,
566
D3DDEGREE_QUINTIC = 5
567
} D3DDEGREETYPE;
568
569
typedef enum _D3DDEVTYPE {
570
D3DDEVTYPE_HAL = 1,
571
D3DDEVTYPE_REF = 2,
572
D3DDEVTYPE_SW = 3,
573
D3DDEVTYPE_NULLREF = 4
574
} D3DDEVTYPE;
575
576
typedef enum _D3DFILLMODE {
577
D3DFILL_SOLID_ZERO = 0,
578
D3DFILL_POINT = 1,
579
D3DFILL_WIREFRAME = 2,
580
D3DFILL_SOLID = 3
581
} D3DFILLMODE;
582
583
typedef enum _D3DFOGMODE {
584
D3DFOG_NONE = 0,
585
D3DFOG_EXP = 1,
586
D3DFOG_EXP2 = 2,
587
D3DFOG_LINEAR = 3
588
} D3DFOGMODE;
589
590
typedef enum _D3DFORMAT {
591
D3DFMT_UNKNOWN = 0,
592
D3DFMT_R8G8B8 = 20,
593
D3DFMT_A8R8G8B8 = 21,
594
D3DFMT_X8R8G8B8 = 22,
595
D3DFMT_R5G6B5 = 23,
596
D3DFMT_X1R5G5B5 = 24,
597
D3DFMT_A1R5G5B5 = 25,
598
D3DFMT_A4R4G4B4 = 26,
599
D3DFMT_R3G3B2 = 27,
600
D3DFMT_A8 = 28,
601
D3DFMT_A8R3G3B2 = 29,
602
D3DFMT_X4R4G4B4 = 30,
603
D3DFMT_A2B10G10R10 = 31,
604
D3DFMT_A8B8G8R8 = 32,
605
D3DFMT_X8B8G8R8 = 33,
606
D3DFMT_G16R16 = 34,
607
D3DFMT_A2R10G10B10 = 35,
608
D3DFMT_A16B16G16R16 = 36,
609
D3DFMT_A8P8 = 40,
610
D3DFMT_P8 = 41,
611
D3DFMT_L8 = 50,
612
D3DFMT_A8L8 = 51,
613
D3DFMT_A4L4 = 52,
614
D3DFMT_V8U8 = 60,
615
D3DFMT_L6V5U5 = 61,
616
D3DFMT_X8L8V8U8 = 62,
617
D3DFMT_Q8W8V8U8 = 63,
618
D3DFMT_V16U16 = 64,
619
D3DFMT_A2W10V10U10 = 67,
620
D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
621
D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
622
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
623
D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
624
D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
625
D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
626
D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
627
D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
628
D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
629
D3DFMT_D16_LOCKABLE = 70,
630
D3DFMT_D32 = 71,
631
D3DFMT_D15S1 = 73,
632
D3DFMT_D24S8 = 75,
633
D3DFMT_D24X8 = 77,
634
D3DFMT_D24X4S4 = 79,
635
D3DFMT_D16 = 80,
636
D3DFMT_D32F_LOCKABLE = 82,
637
D3DFMT_D24FS8 = 83,
638
D3DFMT_D32_LOCKABLE = 84,
639
D3DFMT_S8_LOCKABLE = 85,
640
D3DFMT_L16 = 81,
641
D3DFMT_VERTEXDATA = 100,
642
D3DFMT_INDEX16 = 101,
643
D3DFMT_INDEX32 = 102,
644
D3DFMT_Q16W16V16U16 = 110,
645
D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'),
646
D3DFMT_R16F = 111,
647
D3DFMT_G16R16F = 112,
648
D3DFMT_A16B16G16R16F = 113,
649
D3DFMT_R32F = 114,
650
D3DFMT_G32R32F = 115,
651
D3DFMT_A32B32G32R32F = 116,
652
D3DFMT_CxV8U8 = 117,
653
D3DFMT_A1 = 118,
654
D3DFMT_A2B10G10R10_XR_BIAS = 119,
655
D3DFMT_BINARYBUFFER = 199,
656
D3DFMT_ATI1 = MAKEFOURCC('A', 'T', 'I', '1'),
657
D3DFMT_ATI2 = MAKEFOURCC('A', 'T', 'I', '2'),
658
D3DFMT_ATOC = MAKEFOURCC('A', 'T', 'O', 'C'),
659
D3DFMT_DF16 = MAKEFOURCC('D', 'F', '1', '6'),
660
D3DFMT_DF24 = MAKEFOURCC('D', 'F', '2', '4'),
661
D3DFMT_INTZ = MAKEFOURCC('I', 'N', 'T', 'Z'),
662
D3DFMT_NULL = MAKEFOURCC('N', 'U', 'L', 'L'),
663
D3DFMT_NVDB = MAKEFOURCC('N', 'V', 'D', 'B'),
664
D3DFMT_NV11 = MAKEFOURCC('N', 'V', '1', '1'),
665
D3DFMT_NV12 = MAKEFOURCC('N', 'V', '1', '2'),
666
D3DFMT_RESZ = MAKEFOURCC('R', 'E', 'S', 'Z'),
667
D3DFMT_Y210 = MAKEFOURCC('Y', '2', '1', '0'),
668
D3DFMT_Y216 = MAKEFOURCC('Y', '2', '1', '6'),
669
D3DFMT_Y410 = MAKEFOURCC('Y', '4', '1', '0')
670
} D3DFORMAT;
671
672
typedef enum _D3DLIGHTTYPE {
673
D3DLIGHT_POINT = 1,
674
D3DLIGHT_SPOT = 2,
675
D3DLIGHT_DIRECTIONAL = 3
676
} D3DLIGHTTYPE;
677
678
typedef enum _D3DMATERIALCOLORSOURCE {
679
D3DMCS_MATERIAL = 0,
680
D3DMCS_COLOR1 = 1,
681
D3DMCS_COLOR2 = 2
682
} D3DMATERIALCOLORSOURCE;
683
684
typedef enum _D3DMULTISAMPLE_TYPE {
685
D3DMULTISAMPLE_NONE = 0,
686
D3DMULTISAMPLE_NONMASKABLE = 1,
687
D3DMULTISAMPLE_2_SAMPLES = 2,
688
D3DMULTISAMPLE_3_SAMPLES = 3,
689
D3DMULTISAMPLE_4_SAMPLES = 4,
690
D3DMULTISAMPLE_5_SAMPLES = 5,
691
D3DMULTISAMPLE_6_SAMPLES = 6,
692
D3DMULTISAMPLE_7_SAMPLES = 7,
693
D3DMULTISAMPLE_8_SAMPLES = 8,
694
D3DMULTISAMPLE_9_SAMPLES = 9,
695
D3DMULTISAMPLE_10_SAMPLES = 10,
696
D3DMULTISAMPLE_11_SAMPLES = 11,
697
D3DMULTISAMPLE_12_SAMPLES = 12,
698
D3DMULTISAMPLE_13_SAMPLES = 13,
699
D3DMULTISAMPLE_14_SAMPLES = 14,
700
D3DMULTISAMPLE_15_SAMPLES = 15,
701
D3DMULTISAMPLE_16_SAMPLES = 16
702
} D3DMULTISAMPLE_TYPE;
703
704
typedef enum _D3DPATCHEDGESTYLE {
705
D3DPATCHEDGE_DISCRETE = 0,
706
D3DPATCHEDGE_CONTINUOUS = 1
707
} D3DPATCHEDGESTYLE;
708
709
typedef enum _D3DPOOL {
710
D3DPOOL_DEFAULT = 0,
711
D3DPOOL_MANAGED = 1,
712
D3DPOOL_SYSTEMMEM = 2,
713
D3DPOOL_SCRATCH = 3
714
} D3DPOOL;
715
716
typedef enum _D3DPRIMITIVETYPE {
717
D3DPT_POINTLIST = 1,
718
D3DPT_LINELIST = 2,
719
D3DPT_LINESTRIP = 3,
720
D3DPT_TRIANGLELIST = 4,
721
D3DPT_TRIANGLESTRIP = 5,
722
D3DPT_TRIANGLEFAN = 6
723
} D3DPRIMITIVETYPE;
724
725
typedef enum _D3DQUERYTYPE {
726
D3DQUERYTYPE_VCACHE = 4,
727
D3DQUERYTYPE_RESOURCEMANAGER = 5,
728
D3DQUERYTYPE_VERTEXSTATS = 6,
729
D3DQUERYTYPE_EVENT = 8,
730
D3DQUERYTYPE_OCCLUSION = 9,
731
D3DQUERYTYPE_TIMESTAMP = 10,
732
D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
733
D3DQUERYTYPE_TIMESTAMPFREQ = 12,
734
D3DQUERYTYPE_PIPELINETIMINGS = 13,
735
D3DQUERYTYPE_INTERFACETIMINGS = 14,
736
D3DQUERYTYPE_VERTEXTIMINGS = 15,
737
D3DQUERYTYPE_PIXELTIMINGS = 16,
738
D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
739
D3DQUERYTYPE_CACHEUTILIZATION = 18,
740
D3DQUERYTYPE_MEMORYPRESSURE = 19
741
} D3DQUERYTYPE;
742
743
#define D3DISSUE_BEGIN (1 << 1)
744
#define D3DISSUE_END (1 << 0)
745
#define D3DGETDATA_FLUSH (1 << 0)
746
747
748
typedef enum _D3DRENDERSTATETYPE {
749
D3DRS_ZENABLE = 7,
750
D3DRS_FILLMODE = 8,
751
D3DRS_SHADEMODE = 9,
752
D3DRS_ZWRITEENABLE = 14,
753
D3DRS_ALPHATESTENABLE = 15,
754
D3DRS_LASTPIXEL = 16,
755
D3DRS_SRCBLEND = 19,
756
D3DRS_DESTBLEND = 20,
757
D3DRS_CULLMODE = 22,
758
D3DRS_ZFUNC = 23,
759
D3DRS_ALPHAREF = 24,
760
D3DRS_ALPHAFUNC = 25,
761
D3DRS_DITHERENABLE = 26,
762
D3DRS_ALPHABLENDENABLE = 27,
763
D3DRS_FOGENABLE = 28,
764
D3DRS_SPECULARENABLE = 29,
765
D3DRS_FOGCOLOR = 34,
766
D3DRS_FOGTABLEMODE = 35,
767
D3DRS_FOGSTART = 36,
768
D3DRS_FOGEND = 37,
769
D3DRS_FOGDENSITY = 38,
770
D3DRS_RANGEFOGENABLE = 48,
771
D3DRS_STENCILENABLE = 52,
772
D3DRS_STENCILFAIL = 53,
773
D3DRS_STENCILZFAIL = 54,
774
D3DRS_STENCILPASS = 55,
775
D3DRS_STENCILFUNC = 56,
776
D3DRS_STENCILREF = 57,
777
D3DRS_STENCILMASK = 58,
778
D3DRS_STENCILWRITEMASK = 59,
779
D3DRS_TEXTUREFACTOR = 60,
780
D3DRS_WRAP0 = 128,
781
D3DRS_WRAP1 = 129,
782
D3DRS_WRAP2 = 130,
783
D3DRS_WRAP3 = 131,
784
D3DRS_WRAP4 = 132,
785
D3DRS_WRAP5 = 133,
786
D3DRS_WRAP6 = 134,
787
D3DRS_WRAP7 = 135,
788
D3DRS_CLIPPING = 136,
789
D3DRS_LIGHTING = 137,
790
D3DRS_AMBIENT = 139,
791
D3DRS_FOGVERTEXMODE = 140,
792
D3DRS_COLORVERTEX = 141,
793
D3DRS_LOCALVIEWER = 142,
794
D3DRS_NORMALIZENORMALS = 143,
795
D3DRS_DIFFUSEMATERIALSOURCE = 145,
796
D3DRS_SPECULARMATERIALSOURCE = 146,
797
D3DRS_AMBIENTMATERIALSOURCE = 147,
798
D3DRS_EMISSIVEMATERIALSOURCE = 148,
799
D3DRS_VERTEXBLEND = 151,
800
D3DRS_CLIPPLANEENABLE = 152,
801
D3DRS_POINTSIZE = 154,
802
D3DRS_POINTSIZE_MIN = 155,
803
D3DRS_POINTSPRITEENABLE = 156,
804
D3DRS_POINTSCALEENABLE = 157,
805
D3DRS_POINTSCALE_A = 158,
806
D3DRS_POINTSCALE_B = 159,
807
D3DRS_POINTSCALE_C = 160,
808
D3DRS_MULTISAMPLEANTIALIAS = 161,
809
D3DRS_MULTISAMPLEMASK = 162,
810
D3DRS_PATCHEDGESTYLE = 163,
811
D3DRS_DEBUGMONITORTOKEN = 165,
812
D3DRS_POINTSIZE_MAX = 166,
813
D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
814
D3DRS_COLORWRITEENABLE = 168,
815
D3DRS_TWEENFACTOR = 170,
816
D3DRS_BLENDOP = 171,
817
D3DRS_POSITIONDEGREE = 172,
818
D3DRS_NORMALDEGREE = 173,
819
D3DRS_SCISSORTESTENABLE = 174,
820
D3DRS_SLOPESCALEDEPTHBIAS = 175,
821
D3DRS_ANTIALIASEDLINEENABLE = 176,
822
D3DRS_MINTESSELLATIONLEVEL = 178,
823
D3DRS_MAXTESSELLATIONLEVEL = 179,
824
D3DRS_ADAPTIVETESS_X = 180,
825
D3DRS_ADAPTIVETESS_Y = 181,
826
D3DRS_ADAPTIVETESS_Z = 182,
827
D3DRS_ADAPTIVETESS_W = 183,
828
D3DRS_ENABLEADAPTIVETESSELLATION = 184,
829
D3DRS_TWOSIDEDSTENCILMODE = 185,
830
D3DRS_CCW_STENCILFAIL = 186,
831
D3DRS_CCW_STENCILZFAIL = 187,
832
D3DRS_CCW_STENCILPASS = 188,
833
D3DRS_CCW_STENCILFUNC = 189,
834
D3DRS_COLORWRITEENABLE1 = 190,
835
D3DRS_COLORWRITEENABLE2 = 191,
836
D3DRS_COLORWRITEENABLE3 = 192,
837
D3DRS_BLENDFACTOR = 193,
838
D3DRS_SRGBWRITEENABLE = 194,
839
D3DRS_DEPTHBIAS = 195,
840
D3DRS_WRAP8 = 198,
841
D3DRS_WRAP9 = 199,
842
D3DRS_WRAP10 = 200,
843
D3DRS_WRAP11 = 201,
844
D3DRS_WRAP12 = 202,
845
D3DRS_WRAP13 = 203,
846
D3DRS_WRAP14 = 204,
847
D3DRS_WRAP15 = 205,
848
D3DRS_SEPARATEALPHABLENDENABLE = 206,
849
D3DRS_SRCBLENDALPHA = 207,
850
D3DRS_DESTBLENDALPHA = 208,
851
D3DRS_BLENDOPALPHA = 209
852
} D3DRENDERSTATETYPE;
853
854
typedef enum _D3DRESOURCETYPE {
855
D3DRTYPE_SURFACE = 1,
856
D3DRTYPE_VOLUME = 2,
857
D3DRTYPE_TEXTURE = 3,
858
D3DRTYPE_VOLUMETEXTURE = 4,
859
D3DRTYPE_CUBETEXTURE = 5,
860
D3DRTYPE_VERTEXBUFFER = 6,
861
D3DRTYPE_INDEXBUFFER = 7
862
} D3DRESOURCETYPE;
863
#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
864
865
typedef enum _D3DSAMPLERSTATETYPE {
866
D3DSAMP_ADDRESSU = 1,
867
D3DSAMP_ADDRESSV = 2,
868
D3DSAMP_ADDRESSW = 3,
869
D3DSAMP_BORDERCOLOR = 4,
870
D3DSAMP_MAGFILTER = 5,
871
D3DSAMP_MINFILTER = 6,
872
D3DSAMP_MIPFILTER = 7,
873
D3DSAMP_MIPMAPLODBIAS = 8,
874
D3DSAMP_MAXMIPLEVEL = 9,
875
D3DSAMP_MAXANISOTROPY = 10,
876
D3DSAMP_SRGBTEXTURE = 11,
877
D3DSAMP_ELEMENTINDEX = 12,
878
D3DSAMP_DMAPOFFSET = 13
879
} D3DSAMPLERSTATETYPE;
880
881
typedef enum _D3DSAMPLER_TEXTURE_TYPE {
882
D3DSTT_UNKNOWN = 0<<27,
883
D3DSTT_1D = 1<<27,
884
D3DSTT_2D = 2<<27,
885
D3DSTT_CUBE = 3<<27,
886
D3DSTT_VOLUME = 4<<27
887
} D3DSAMPLER_TEXTURE_TYPE;
888
889
typedef enum _D3DSHADEMODE {
890
D3DSHADE_FLAT = 1,
891
D3DSHADE_GOURAUD = 2,
892
D3DSHADE_PHONG = 3
893
} D3DSHADEMODE;
894
895
typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
896
D3DSHADER_ADDRMODE_ABSOLUTE = 0<<13,
897
D3DSHADER_ADDRMODE_RELATIVE = 1<<13
898
} D3DSHADER_ADDRESSMODE_TYPE;
899
900
typedef enum _D3DSHADER_COMPARISON {
901
D3DSPC_RESERVED0 = 0,
902
D3DSPC_GT = 1,
903
D3DSPC_EQ = 2,
904
D3DSPC_GE = 3,
905
D3DSPC_LT = 4,
906
D3DSPC_NE = 5,
907
D3DSPC_LE = 6,
908
D3DSPC_RESERVED1 = 7
909
} D3DSHADER_COMPARISON;
910
911
#define D3DDP_MAXTEXCOORD 8
912
913
#define D3DSI_OPCODE_MASK 0x0000FFFF
914
#define D3DSI_INSTLENGTH_MASK 0x0F000000
915
#define D3DSI_INSTLENGTH_SHIFT 24
916
917
typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
918
D3DSIO_NOP = 0,
919
D3DSIO_MOV = 1,
920
D3DSIO_ADD = 2,
921
D3DSIO_SUB = 3,
922
D3DSIO_MAD = 4,
923
D3DSIO_MUL = 5,
924
D3DSIO_RCP = 6,
925
D3DSIO_RSQ = 7,
926
D3DSIO_DP3 = 8,
927
D3DSIO_DP4 = 9,
928
D3DSIO_MIN = 10,
929
D3DSIO_MAX = 11,
930
D3DSIO_SLT = 12,
931
D3DSIO_SGE = 13,
932
D3DSIO_EXP = 14,
933
D3DSIO_LOG = 15,
934
D3DSIO_LIT = 16,
935
D3DSIO_DST = 17,
936
D3DSIO_LRP = 18,
937
D3DSIO_FRC = 19,
938
D3DSIO_M4x4 = 20,
939
D3DSIO_M4x3 = 21,
940
D3DSIO_M3x4 = 22,
941
D3DSIO_M3x3 = 23,
942
D3DSIO_M3x2 = 24,
943
D3DSIO_CALL = 25,
944
D3DSIO_CALLNZ = 26,
945
D3DSIO_LOOP = 27,
946
D3DSIO_RET = 28,
947
D3DSIO_ENDLOOP = 29,
948
D3DSIO_LABEL = 30,
949
D3DSIO_DCL = 31,
950
D3DSIO_POW = 32,
951
D3DSIO_CRS = 33,
952
D3DSIO_SGN = 34,
953
D3DSIO_ABS = 35,
954
D3DSIO_NRM = 36,
955
D3DSIO_SINCOS = 37,
956
D3DSIO_REP = 38,
957
D3DSIO_ENDREP = 39,
958
D3DSIO_IF = 40,
959
D3DSIO_IFC = 41,
960
D3DSIO_ELSE = 42,
961
D3DSIO_ENDIF = 43,
962
D3DSIO_BREAK = 44,
963
D3DSIO_BREAKC = 45,
964
D3DSIO_MOVA = 46,
965
D3DSIO_DEFB = 47,
966
D3DSIO_DEFI = 48,
967
D3DSIO_TEXCOORD = 64,
968
D3DSIO_TEXKILL = 65,
969
D3DSIO_TEX = 66,
970
D3DSIO_TEXBEM = 67,
971
D3DSIO_TEXBEML = 68,
972
D3DSIO_TEXREG2AR = 69,
973
D3DSIO_TEXREG2GB = 70,
974
D3DSIO_TEXM3x2PAD = 71,
975
D3DSIO_TEXM3x2TEX = 72,
976
D3DSIO_TEXM3x3PAD = 73,
977
D3DSIO_TEXM3x3TEX = 74,
978
D3DSIO_RESERVED0 = 75,
979
D3DSIO_TEXM3x3SPEC = 76,
980
D3DSIO_TEXM3x3VSPEC = 77,
981
D3DSIO_EXPP = 78,
982
D3DSIO_LOGP = 79,
983
D3DSIO_CND = 80,
984
D3DSIO_DEF = 81,
985
D3DSIO_TEXREG2RGB = 82,
986
D3DSIO_TEXDP3TEX = 83,
987
D3DSIO_TEXM3x2DEPTH = 84,
988
D3DSIO_TEXDP3 = 85,
989
D3DSIO_TEXM3x3 = 86,
990
D3DSIO_TEXDEPTH = 87,
991
D3DSIO_CMP = 88,
992
D3DSIO_BEM = 89,
993
D3DSIO_DP2ADD = 90,
994
D3DSIO_DSX = 91,
995
D3DSIO_DSY = 92,
996
D3DSIO_TEXLDD = 93,
997
D3DSIO_SETP = 94,
998
D3DSIO_TEXLDL = 95,
999
D3DSIO_BREAKP = 96,
1000
D3DSIO_PHASE = 0xFFFD,
1001
D3DSIO_COMMENT = 0xFFFE,
1002
D3DSIO_END = 0xFFFF
1003
} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
1004
1005
#define D3DSI_COISSUE 0x40000000
1006
1007
#define D3DSP_DCL_USAGE_SHIFT 0
1008
#define D3DSP_DCL_USAGE_MASK 0x0000000f
1009
1010
#define D3DSP_DCL_USAGEINDEX_SHIFT 16
1011
#define D3DSP_DCL_USAGEINDEX_MASK 0x000f0000
1012
1013
#define D3DSP_TEXTURETYPE_SHIFT 27
1014
#define D3DSP_TEXTURETYPE_MASK 0x78000000
1015
1016
#define D3DSP_REGNUM_MASK 0x000007FF
1017
1018
#define D3DSP_WRITEMASK_0 0x00010000
1019
#define D3DSP_WRITEMASK_1 0x00020000
1020
#define D3DSP_WRITEMASK_2 0x00040000
1021
#define D3DSP_WRITEMASK_3 0x00080000
1022
#define D3DSP_WRITEMASK_ALL 0x000F0000
1023
1024
#define D3DSP_DSTMOD_SHIFT 20
1025
#define D3DSP_DSTMOD_MASK (0xF << D3DSP_DSTMOD_SHIFT)
1026
1027
typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
1028
D3DSPDM_NONE = 0 << D3DSP_DSTMOD_SHIFT,
1029
D3DSPDM_SATURATE = 1 << D3DSP_DSTMOD_SHIFT,
1030
D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
1031
D3DSPDM_MSAMPCENTROID = 4 << D3DSP_DSTMOD_SHIFT,
1032
D3DSPDM_FORCE_DWORD = 0x7FFFFFFF
1033
} D3DSHADER_PARAM_DSTMOD_TYPE;
1034
1035
#define D3DSP_DSTSHIFT_SHIFT 24
1036
#define D3DSP_DSTSHIFT_MASK (0xF << D3DSP_DSTSHIFT_SHIFT)
1037
1038
#define D3DSP_REGTYPE_SHIFT 28
1039
#define D3DSP_REGTYPE_SHIFT2 8
1040
#define D3DSP_REGTYPE_MASK (0x7 << D3DSP_REGTYPE_SHIFT)
1041
#define D3DSP_REGTYPE_MASK2 0x00001800
1042
1043
typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
1044
D3DSMO_POSITION = 0,
1045
D3DSMO_FACE = 1
1046
} D3DSHADER_MISCTYPE_OFFSETS;
1047
1048
typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
1049
D3DSPR_TEMP = 0,
1050
D3DSPR_INPUT = 1,
1051
D3DSPR_CONST = 2,
1052
D3DSPR_ADDR = 3,
1053
D3DSPR_TEXTURE = 3,
1054
D3DSPR_RASTOUT = 4,
1055
D3DSPR_ATTROUT = 5,
1056
D3DSPR_TEXCRDOUT = 6,
1057
D3DSPR_OUTPUT = 6,
1058
D3DSPR_CONSTINT = 7,
1059
D3DSPR_COLOROUT = 8,
1060
D3DSPR_DEPTHOUT = 9,
1061
D3DSPR_SAMPLER = 10,
1062
D3DSPR_CONST2 = 11,
1063
D3DSPR_CONST3 = 12,
1064
D3DSPR_CONST4 = 13,
1065
D3DSPR_CONSTBOOL = 14,
1066
D3DSPR_LOOP = 15,
1067
D3DSPR_TEMPFLOAT16 = 16,
1068
D3DSPR_MISCTYPE = 17,
1069
D3DSPR_LABEL = 18,
1070
D3DSPR_PREDICATE = 19
1071
} D3DSHADER_PARAM_REGISTER_TYPE;
1072
1073
#define D3DSP_SWIZZLE_SHIFT 16
1074
#define D3DSP_SWIZZLE_MASK (0xFF << D3DSP_SWIZZLE_SHIFT)
1075
1076
#define D3DSP_NOSWIZZLE \
1077
((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
1078
1079
#define D3DSP_SRCMOD_SHIFT 24
1080
#define D3DSP_SRCMOD_MASK (0xF << D3DSP_SRCMOD_SHIFT)
1081
1082
typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
1083
D3DSPSM_NONE = 0<<24,
1084
D3DSPSM_NEG = 1<<24,
1085
D3DSPSM_BIAS = 2<<24,
1086
D3DSPSM_BIASNEG = 3<<24,
1087
D3DSPSM_SIGN = 4<<24,
1088
D3DSPSM_SIGNNEG = 5<<24,
1089
D3DSPSM_COMP = 6<<24,
1090
D3DSPSM_X2 = 7<<24,
1091
D3DSPSM_X2NEG = 8<<24,
1092
D3DSPSM_DZ = 9<<24,
1093
D3DSPSM_DW = 10<<24,
1094
D3DSPSM_ABS = 11<<24,
1095
D3DSPSM_ABSNEG = 12<<24,
1096
D3DSPSM_NOT = 13<<24
1097
} D3DSHADER_PARAM_SRCMOD_TYPE;
1098
1099
#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
1100
#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
1101
#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
1102
#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
1103
1104
#define D3DSI_COMMENTSIZE_SHIFT 16
1105
#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
1106
1107
typedef enum _D3DSTATEBLOCKTYPE {
1108
D3DSBT_ALL = 1,
1109
D3DSBT_PIXELSTATE = 2,
1110
D3DSBT_VERTEXSTATE = 3
1111
} D3DSTATEBLOCKTYPE;
1112
1113
typedef enum _D3DSTENCILOP {
1114
D3DSTENCILOP_KEEP = 1,
1115
D3DSTENCILOP_ZERO = 2,
1116
D3DSTENCILOP_REPLACE = 3,
1117
D3DSTENCILOP_INCRSAT = 4,
1118
D3DSTENCILOP_DECRSAT = 5,
1119
D3DSTENCILOP_INVERT = 6,
1120
D3DSTENCILOP_INCR = 7,
1121
D3DSTENCILOP_DECR = 8
1122
} D3DSTENCILOP;
1123
1124
typedef enum _D3DSWAPEFFECT {
1125
D3DSWAPEFFECT_DISCARD = 1,
1126
D3DSWAPEFFECT_FLIP = 2,
1127
D3DSWAPEFFECT_COPY = 3,
1128
D3DSWAPEFFECT_OVERLAY = 4,
1129
D3DSWAPEFFECT_FLIPEX = 5
1130
} D3DSWAPEFFECT;
1131
1132
typedef enum _D3DTEXTUREADDRESS {
1133
D3DTADDRESS_WRAP = 1,
1134
D3DTADDRESS_MIRROR = 2,
1135
D3DTADDRESS_CLAMP = 3,
1136
D3DTADDRESS_BORDER = 4,
1137
D3DTADDRESS_MIRRORONCE = 5
1138
} D3DTEXTUREADDRESS;
1139
1140
typedef enum _D3DTEXTUREFILTERTYPE {
1141
D3DTEXF_NONE = 0,
1142
D3DTEXF_POINT = 1,
1143
D3DTEXF_LINEAR = 2,
1144
D3DTEXF_ANISOTROPIC = 3,
1145
D3DTEXF_PYRAMIDALQUAD = 6,
1146
D3DTEXF_GAUSSIANQUAD = 7,
1147
D3DTEXF_CONVOLUTIONMONO = 8
1148
} D3DTEXTUREFILTERTYPE;
1149
1150
typedef enum _D3DTEXTUREOP {
1151
D3DTOP_DISABLE = 1,
1152
D3DTOP_SELECTARG1 = 2,
1153
D3DTOP_SELECTARG2 = 3,
1154
D3DTOP_MODULATE = 4,
1155
D3DTOP_MODULATE2X = 5,
1156
D3DTOP_MODULATE4X = 6,
1157
D3DTOP_ADD = 7,
1158
D3DTOP_ADDSIGNED = 8,
1159
D3DTOP_ADDSIGNED2X = 9,
1160
D3DTOP_SUBTRACT = 10,
1161
D3DTOP_ADDSMOOTH = 11,
1162
D3DTOP_BLENDDIFFUSEALPHA = 12,
1163
D3DTOP_BLENDTEXTUREALPHA = 13,
1164
D3DTOP_BLENDFACTORALPHA = 14,
1165
D3DTOP_BLENDTEXTUREALPHAPM = 15,
1166
D3DTOP_BLENDCURRENTALPHA = 16,
1167
D3DTOP_PREMODULATE = 17,
1168
D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
1169
D3DTOP_MODULATECOLOR_ADDALPHA = 19,
1170
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
1171
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
1172
D3DTOP_BUMPENVMAP = 22,
1173
D3DTOP_BUMPENVMAPLUMINANCE = 23,
1174
D3DTOP_DOTPRODUCT3 = 24,
1175
D3DTOP_MULTIPLYADD = 25,
1176
D3DTOP_LERP = 26
1177
} D3DTEXTUREOP;
1178
1179
typedef enum _D3DTEXTURESTAGESTATETYPE {
1180
D3DTSS_COLOROP = 1,
1181
D3DTSS_COLORARG1 = 2,
1182
D3DTSS_COLORARG2 = 3,
1183
D3DTSS_ALPHAOP = 4,
1184
D3DTSS_ALPHAARG1 = 5,
1185
D3DTSS_ALPHAARG2 = 6,
1186
D3DTSS_BUMPENVMAT00 = 7,
1187
D3DTSS_BUMPENVMAT01 = 8,
1188
D3DTSS_BUMPENVMAT10 = 9,
1189
D3DTSS_BUMPENVMAT11 = 10,
1190
D3DTSS_TEXCOORDINDEX = 11,
1191
D3DTSS_BUMPENVLSCALE = 22,
1192
D3DTSS_BUMPENVLOFFSET = 23,
1193
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
1194
D3DTSS_COLORARG0 = 26,
1195
D3DTSS_ALPHAARG0 = 27,
1196
D3DTSS_RESULTARG = 28,
1197
D3DTSS_CONSTANT = 32
1198
} D3DTEXTURESTAGESTATETYPE;
1199
1200
/* MSDN has this in d3d9caps.h, but it should be here */
1201
#define D3DTSS_TCI_PASSTHRU 0x00000
1202
#define D3DTSS_TCI_CAMERASPACENORMAL 0x10000
1203
#define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000
1204
#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
1205
#define D3DTSS_TCI_SPHEREMAP 0x40000
1206
1207
typedef enum _D3DTEXTURETRANSFORMFLAGS {
1208
D3DTTFF_DISABLE = 0,
1209
D3DTTFF_COUNT1 = 1,
1210
D3DTTFF_COUNT2 = 2,
1211
D3DTTFF_COUNT3 = 3,
1212
D3DTTFF_COUNT4 = 4,
1213
D3DTTFF_PROJECTED = 256
1214
} D3DTEXTURETRANSFORMFLAGS;
1215
1216
typedef enum _D3DTRANSFORMSTATETYPE {
1217
D3DTS_VIEW = 2,
1218
D3DTS_PROJECTION = 3,
1219
D3DTS_TEXTURE0 = 16,
1220
D3DTS_TEXTURE1 = 17,
1221
D3DTS_TEXTURE2 = 18,
1222
D3DTS_TEXTURE3 = 19,
1223
D3DTS_TEXTURE4 = 20,
1224
D3DTS_TEXTURE5 = 21,
1225
D3DTS_TEXTURE6 = 22,
1226
D3DTS_TEXTURE7 = 23
1227
} D3DTRANSFORMSTATETYPE;
1228
1229
#define D3DDMAPSAMPLER 256
1230
#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
1231
#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
1232
#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
1233
#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
1234
1235
#define D3DTS_WORLD D3DTS_WORLDMATRIX(0)
1236
#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
1237
#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
1238
#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
1239
#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
1240
1241
typedef enum _D3DVERTEXBLENDFLAGS {
1242
D3DVBF_DISABLE = 0,
1243
D3DVBF_1WEIGHTS = 1,
1244
D3DVBF_2WEIGHTS = 2,
1245
D3DVBF_3WEIGHTS = 3,
1246
D3DVBF_TWEENING = 255,
1247
D3DVBF_0WEIGHTS = 256
1248
} D3DVERTEXBLENDFLAGS;
1249
1250
typedef enum _D3DVS_ADDRESSMODE_TYPE {
1251
D3DVS_ADDRMODE_ABSOLUTE = 0<<13,
1252
D3DVS_ADDRMODE_RELATIVE = 1<<13
1253
} D3DVS_ADDRESSMODE_TYPE;
1254
1255
typedef enum _D3DVS_RASTOUT_OFFSETS {
1256
D3DSRO_POSITION = 0,
1257
D3DSRO_FOG = 1,
1258
D3DSRO_POINT_SIZE = 2
1259
} D3DVS_RASTOUT_OFFSETS;
1260
1261
typedef enum _D3DZBUFFERTYPE {
1262
D3DZB_FALSE = 0,
1263
D3DZB_TRUE = 1,
1264
D3DZB_USEW = 2
1265
} D3DZBUFFERTYPE;
1266
1267
/*****************************************************************************
1268
* Structs *
1269
*****************************************************************************/
1270
typedef struct D3DDISPLAYMODEEX {
1271
UINT Size;
1272
UINT Width;
1273
UINT Height;
1274
UINT RefreshRate;
1275
D3DFORMAT Format;
1276
D3DSCANLINEORDERING ScanLineOrdering;
1277
} D3DDISPLAYMODEEX, *PD3DDISPLAYMODEEX, *LPD3DDISPLAYMODEEX;
1278
1279
typedef struct D3DDISPLAYMODEFILTER {
1280
UINT Size;
1281
D3DFORMAT Format;
1282
D3DSCANLINEORDERING ScanLineOrdering;
1283
} D3DDISPLAYMODEFILTER, *PD3DDISPLAYMODEFILTER, *LPD3DDISPLAYMODEFILTER;
1284
1285
typedef struct _D3D_OMAC {
1286
BYTE Omac[16];
1287
} D3D_OMAC, *PD3D_OMAC, *LPD3D_OMAC;
1288
1289
typedef struct _D3DADAPTER_IDENTIFIER9 {
1290
char Driver[512];
1291
char Description[512];
1292
char DeviceName[32];
1293
DWORD DriverVersionLowPart;
1294
DWORD DriverVersionHighPart;
1295
DWORD VendorId;
1296
DWORD DeviceId;
1297
DWORD SubSysId;
1298
DWORD Revision;
1299
GUID DeviceIdentifier;
1300
DWORD WHQLLevel;
1301
} D3DADAPTER_IDENTIFIER9, *PD3DADAPTER_IDENTIFIER9, *LPD3DADAPTER_IDENTIFIER9;
1302
1303
typedef struct _D3DAES_CTR_IV {
1304
UINT64 IV;
1305
UINT64 Count;
1306
} D3DAES_CTR_IV, *PD3DAES_CTR_IV, *LPD3DAES_CTR_IV;
1307
1308
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT {
1309
D3D_OMAC omac;
1310
GUID ConfigureType;
1311
HANDLE hChannel;
1312
UINT SequenceNumber;
1313
} D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, *PD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
1314
1315
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION {
1316
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
1317
HANDLE DXVA2DecodeHandle;
1318
HANDLE CryptoSessionHandle;
1319
HANDLE DeviceHandle;
1320
} D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION, *PD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION;
1321
1322
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE {
1323
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
1324
UINT StartSequenceQuery;
1325
UINT StartSequenceConfigure;
1326
} D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE;
1327
1328
typedef struct _D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS {
1329
union {
1330
struct {
1331
UINT ProtectionEnabled : 1;
1332
UINT OverlayOrFullscreenRequired : 1;
1333
UINT Reserved : 30;
1334
};
1335
UINT Value;
1336
};
1337
} D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, *PD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, *LPD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS;
1338
1339
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION {
1340
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
1341
D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS Protections;
1342
} D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION;
1343
1344
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE {
1345
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
1346
D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE ProcessIdentiferType;
1347
HANDLE ProcessHandle;
1348
BOOL AllowAccess;
1349
} D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE, *PD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE;
1350
1351
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION {
1352
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
1353
GUID EncryptionGuid;
1354
} D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION;
1355
1356
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT {
1357
D3D_OMAC omac;
1358
GUID ConfigureType;
1359
HANDLE hChannel;
1360
UINT SequenceNumber;
1361
HRESULT ReturnCode;
1362
} D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT;
1363
1364
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERY_INPUT {
1365
GUID QueryType;
1366
HANDLE hChannel;
1367
UINT SequenceNumber;
1368
} D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERY_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
1369
1370
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT {
1371
D3D_OMAC omac;
1372
GUID QueryType;
1373
HANDLE hChannel;
1374
UINT SequenceNumber;
1375
HRESULT ReturnCode;
1376
} D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
1377
1378
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT {
1379
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1380
D3DAUTHENTICATEDCHANNELTYPE ChannelType;
1381
} D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT;
1382
1383
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT {
1384
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
1385
HANDLE DXVA2DecodeHandle;
1386
} D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT;
1387
1388
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT {
1389
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1390
HANDLE DXVA2DecodeHandle;
1391
HANDLE CryptoSessionHandle;
1392
HANDLE DeviceHandle;
1393
} D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT;
1394
1395
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT {
1396
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1397
HANDLE DeviceHandle;
1398
} D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT;
1399
1400
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT {
1401
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1402
UINT NumEncryptionGuids;
1403
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT;
1404
1405
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT {
1406
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
1407
UINT EncryptionGuidIndex;
1408
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT;
1409
1410
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT {
1411
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1412
UINT EncryptionGuidIndex;
1413
GUID EncryptionGuid;
1414
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT;
1415
1416
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT {
1417
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1418
D3DBUSTYPE BusType;
1419
BOOL bAccessibleInContiguousBlocks;
1420
BOOL bAccessibleInNonContiguousBlocks;
1421
} D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT;
1422
1423
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT {
1424
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
1425
HANDLE DeviceHandle;
1426
HANDLE CryptoSessionHandle;
1427
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT;
1428
1429
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT {
1430
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1431
HANDLE DeviceHandle;
1432
HANDLE CryptoSessionHandle;
1433
UINT NumOutputIDs;
1434
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT;
1435
1436
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT {
1437
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
1438
HANDLE DeviceHandle;
1439
HANDLE CryptoSessionHandle;
1440
UINT OutputIDIndex;
1441
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT;
1442
1443
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT {
1444
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1445
HANDLE DeviceHandle;
1446
HANDLE CryptoSessionHandle;
1447
UINT OutputIDIndex;
1448
UINT64 OutputID;
1449
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT;
1450
1451
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT {
1452
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1453
D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS ProtectionFlags;
1454
} D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT;
1455
1456
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT {
1457
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1458
UINT NumRestrictedSharedResourceProcesses;
1459
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT;
1460
1461
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT {
1462
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
1463
UINT ProcessIndex;
1464
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT;
1465
1466
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT {
1467
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1468
UINT ProcessIndex;
1469
D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE ProcessIdentifer;
1470
HANDLE ProcessHandle;
1471
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT;
1472
1473
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT {
1474
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1475
GUID EncryptionGuid;
1476
} D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT;
1477
1478
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT {
1479
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
1480
UINT NumUnrestrictedProtectedSharedResources;
1481
} D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT;
1482
1483
typedef struct _D3DBOX {
1484
UINT Left;
1485
UINT Top;
1486
UINT Right;
1487
UINT Bottom;
1488
UINT Front;
1489
UINT Back;
1490
} D3DBOX, *PD3DBOX, *LPD3DBOX;
1491
1492
typedef struct _D3DCLIPSTATUS9 {
1493
DWORD ClipUnion;
1494
DWORD ClipIntersection;
1495
} D3DCLIPSTATUS9, *PD3DCLIPSTATUS9, *LPD3DCLIPSTATUS9;
1496
1497
typedef struct _D3DCOLORVALUE {
1498
float r;
1499
float g;
1500
float b;
1501
float a;
1502
} D3DCOLORVALUE, *PD3DCOLORVALUE, *LPD3DCOLORVALUE;
1503
1504
typedef struct _D3DCOMPOSERECTDESC {
1505
USHORT X, Y;
1506
USHORT Width, Height;
1507
} D3DCOMPOSERECTDESC, *PD3DCOMPOSERECTDESC, *LPD3DCOMPOSERECTDESC;
1508
1509
typedef struct _D3DCOMPOSERECTDESTINATION {
1510
USHORT SrcRectIndex;
1511
USHORT Reserved;
1512
SHORT X, Y;
1513
} D3DCOMPOSERECTDESTINATION, *PD3DCOMPOSERECTDESTINATION, *LPD3DCOMPOSERECTDESTINATION;
1514
1515
typedef struct _D3DDEVICE_CREATION_PARAMETERS {
1516
UINT AdapterOrdinal;
1517
D3DDEVTYPE DeviceType;
1518
HWND hFocusWindow;
1519
DWORD BehaviorFlags;
1520
} D3DDEVICE_CREATION_PARAMETERS, *PD3DDEVICE_CREATION_PARAMETERS, *LPD3DDEVICE_CREATION_PARAMETERS;
1521
1522
typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
1523
FLOAT MaxBandwidthUtilized;
1524
FLOAT FrontEndUploadMemoryUtilizedPercent;
1525
FLOAT VertexRateUtilizedPercent;
1526
FLOAT TriangleSetupRateUtilizedPercent;
1527
FLOAT FillRateUtilizedPercent;
1528
} D3DDEVINFO_D3D9BANDWIDTHTIMINGS, *PD3DDEVINFO_D3D9BANDWIDTHTIMINGS, *LPD3DDEVINFO_D3D9BANDWIDTHTIMINGS;
1529
1530
typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
1531
FLOAT TextureCacheHitRate;
1532
FLOAT PostTransformVertexCacheHitRate;
1533
} D3DDEVINFO_D3D9CACHEUTILIZATION, *PD3DDEVINFO_D3D9CACHEUTILIZATION, *LPD3DDEVINFO_D3D9CACHEUTILIZATION;
1534
1535
typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
1536
FLOAT WaitingForGPUToUseApplicationResourceTimePercent;
1537
FLOAT WaitingForGPUToAcceptMoreCommandsTimePercent;
1538
FLOAT WaitingForGPUToStayWithinLatencyTimePercent;
1539
FLOAT WaitingForGPUExclusiveResourceTimePercent;
1540
FLOAT WaitingForGPUOtherTimePercent;
1541
} D3DDEVINFO_D3D9INTERFACETIMINGS, *PD3DDEVINFO_D3D9INTERFACETIMINGS, *LPD3DDEVINFO_D3D9INTERFACETIMINGS;
1542
1543
typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
1544
FLOAT VertexProcessingTimePercent;
1545
FLOAT PixelProcessingTimePercent;
1546
FLOAT OtherGPUProcessingTimePercent;
1547
FLOAT GPUIdleTimePercent;
1548
} D3DDEVINFO_D3D9PIPELINETIMINGS, *PD3DDEVINFO_D3D9PIPELINETIMINGS, *LPD3DDEVINFO_D3D9PIPELINETIMINGS;
1549
1550
typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
1551
FLOAT MemoryProcessingPercent;
1552
FLOAT ComputationProcessingPercent;
1553
} D3DDEVINFO_D3D9STAGETIMINGS, *PD3DDEVINFO_D3D9STAGETIMINGS, *LPD3DDEVINFO_D3D9STAGETIMINGS;
1554
1555
typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
1556
DWORD NumRenderedTriangles;
1557
DWORD NumExtraClippingTriangles;
1558
} D3DDEVINFO_D3DVERTEXSTATS, *LPD3DDEVINFO_D3DVERTEXSTATS;
1559
1560
typedef struct _D3DRESOURCESTATS {
1561
BOOL bThrashing;
1562
DWORD ApproxBytesDownloaded;
1563
DWORD NumEvicts;
1564
DWORD NumVidCreates;
1565
DWORD LastPri;
1566
DWORD NumUsed;
1567
DWORD NumUsedInVidMem;
1568
DWORD WorkingSet;
1569
DWORD WorkingSetBytes;
1570
DWORD TotalManaged;
1571
DWORD TotalBytes;
1572
} D3DRESOURCESTATS, *PD3DRESOURCESTATS, *LPD3DRESOURCESTATS;
1573
1574
typedef struct _D3DDEVINFO_RESOURCEMANAGER {
1575
D3DRESOURCESTATS stats[(D3DRTYPE_INDEXBUFFER+1)];
1576
} D3DDEVINFO_RESOURCEMANAGER, *LPD3DDEVINFO_RESOURCEMANAGER;
1577
1578
typedef struct _D3DDEVINFO_VCACHE {
1579
DWORD Pattern;
1580
DWORD OptMethod;
1581
DWORD CacheSize;
1582
DWORD MagicNumber;
1583
} D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE;
1584
1585
typedef struct _D3DDISPLAYMODE {
1586
UINT Width;
1587
UINT Height;
1588
UINT RefreshRate;
1589
D3DFORMAT Format;
1590
} D3DDISPLAYMODE, *PD3DDISPLAYMODE, *LPD3DDISPLAYMODE;
1591
1592
typedef struct _D3DENCRYPTED_BLOCK_INFO {
1593
UINT NumEncryptedBytesAtBeginning;
1594
UINT NumBytesInSkipPattern;
1595
UINT NumBytesInEncryptPattern;
1596
} D3DENCRYPTED_BLOCK_INFO, *PD3DENCRYPTED_BLOCK_INFO, *LPD3DENCRYPTED_BLOCK_INFO;
1597
1598
typedef struct _D3DGAMMARAMP {
1599
WORD red [256];
1600
WORD green[256];
1601
WORD blue [256];
1602
} D3DGAMMARAMP, *PD3DGAMMARAMP, *LPD3DGAMMARAMP;
1603
1604
typedef struct _D3DINDEXBUFFER_DESC {
1605
D3DFORMAT Format;
1606
D3DRESOURCETYPE Type;
1607
DWORD Usage;
1608
D3DPOOL Pool;
1609
UINT Size;
1610
} D3DINDEXBUFFER_DESC, *PD3DINDEXBUFFER_DESC, *LPD3DINDEXBUFFER_DESC;
1611
1612
typedef struct _D3DVECTOR {
1613
float x;
1614
float y;
1615
float z;
1616
} D3DVECTOR, *PD3DVECTOR, *LPD3DVECTOR;
1617
1618
typedef struct _D3DLIGHT9 {
1619
D3DLIGHTTYPE Type;
1620
D3DCOLORVALUE Diffuse;
1621
D3DCOLORVALUE Specular;
1622
D3DCOLORVALUE Ambient;
1623
D3DVECTOR Position;
1624
D3DVECTOR Direction;
1625
float Range;
1626
float Falloff;
1627
float Attenuation0;
1628
float Attenuation1;
1629
float Attenuation2;
1630
float Theta;
1631
float Phi;
1632
} D3DLIGHT9, *PD3DLIGHT9, *LPD3DLIGHT9;
1633
1634
typedef struct _D3DLOCKED_BOX {
1635
INT RowPitch;
1636
INT SlicePitch;
1637
void* pBits;
1638
} D3DLOCKED_BOX, *PD3DLOCKED_BOX, *LPD3DLOCKED_BOX;
1639
1640
typedef struct _D3DLOCKED_RECT {
1641
INT Pitch;
1642
void* pBits;
1643
} D3DLOCKED_RECT, *PD3DLOCKED_RECT, *LPD3DLOCKED_RECT;
1644
1645
typedef struct _D3DMATERIAL9 {
1646
D3DCOLORVALUE Diffuse;
1647
D3DCOLORVALUE Ambient;
1648
D3DCOLORVALUE Specular;
1649
D3DCOLORVALUE Emissive;
1650
float Power;
1651
} D3DMATERIAL9, *PD3DMATERIAL9, *LPD3DMATERIAL9;
1652
1653
typedef struct _D3DMATRIX {
1654
union {
1655
struct {
1656
float _11, _12, _13, _14;
1657
float _21, _22, _23, _24;
1658
float _31, _32, _33, _34;
1659
float _41, _42, _43, _44;
1660
};
1661
float m[4][4];
1662
};
1663
} D3DMATRIX, *PD3DMATRIX, *LPD3DMATRIX;
1664
1665
typedef struct _D3DMEMORYPRESSURE {
1666
UINT64 BytesEvictedFromProcess;
1667
UINT64 SizeOfInefficientAllocation;
1668
DWORD LevelOfEfficiency;
1669
} D3DMEMORYPRESSURE, *PD3DMEMORYPRESSURE, *LPD3DMEMORYPRESSURE;
1670
1671
typedef struct _D3DPRESENTSTATS {
1672
UINT PresentCount;
1673
UINT PresentRefreshCount;
1674
UINT SyncRefreshCount;
1675
LARGE_INTEGER SyncQPCTime;
1676
LARGE_INTEGER SyncGPUTime;
1677
} D3DPRESENTSTATS, *PD3DPRESENTSTATS, *LPD3DPRESENTSTATS;
1678
1679
typedef struct _D3DPRESENT_PARAMETERS_ {
1680
UINT BackBufferWidth;
1681
UINT BackBufferHeight;
1682
D3DFORMAT BackBufferFormat;
1683
UINT BackBufferCount;
1684
D3DMULTISAMPLE_TYPE MultiSampleType;
1685
DWORD MultiSampleQuality;
1686
D3DSWAPEFFECT SwapEffect;
1687
HWND hDeviceWindow;
1688
BOOL Windowed;
1689
BOOL EnableAutoDepthStencil;
1690
D3DFORMAT AutoDepthStencilFormat;
1691
DWORD Flags;
1692
UINT FullScreen_RefreshRateInHz;
1693
UINT PresentationInterval;
1694
} D3DPRESENT_PARAMETERS, *PD3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;
1695
1696
typedef struct _D3DRANGE {
1697
UINT Offset;
1698
UINT Size;
1699
} D3DRANGE, *PD3DRANGE, *LPD3DRANGE;
1700
1701
typedef struct _D3DRASTER_STATUS {
1702
BOOL InVBlank;
1703
UINT ScanLine;
1704
} D3DRASTER_STATUS, *PD3DRASTER_STATUS, *LPD3DRASTER_STATUS;
1705
1706
typedef struct _D3DRECT {
1707
LONG x1;
1708
LONG y1;
1709
LONG x2;
1710
LONG y2;
1711
} D3DRECT, *PD3DRECT, *LPD3DRECT;
1712
1713
typedef struct _D3DRECTPATCH_INFO {
1714
UINT StartVertexOffsetWidth;
1715
UINT StartVertexOffsetHeight;
1716
UINT Width;
1717
UINT Height;
1718
UINT Stride;
1719
D3DBASISTYPE Basis;
1720
D3DDEGREETYPE Degree;
1721
} D3DRECTPATCH_INFO, *PD3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;
1722
1723
typedef struct _D3DSURFACE_DESC {
1724
D3DFORMAT Format;
1725
D3DRESOURCETYPE Type;
1726
DWORD Usage;
1727
D3DPOOL Pool;
1728
D3DMULTISAMPLE_TYPE MultiSampleType;
1729
DWORD MultiSampleQuality;
1730
UINT Width;
1731
UINT Height;
1732
} D3DSURFACE_DESC, *PD3DSURFACE_DESC, *LPD3DSURFACE_DESC;
1733
1734
typedef struct _D3DTRIPATCH_INFO {
1735
UINT StartVertexOffset;
1736
UINT NumVertices;
1737
D3DBASISTYPE Basis;
1738
D3DDEGREETYPE Degree;
1739
} D3DTRIPATCH_INFO, *PD3DTRIPATCH_INFO, *LPD3DTRIPATCH_INFO;
1740
1741
typedef struct _D3DVERTEXBUFFER_DESC {
1742
D3DFORMAT Format;
1743
D3DRESOURCETYPE Type;
1744
DWORD Usage;
1745
D3DPOOL Pool;
1746
UINT Size;
1747
DWORD FVF;
1748
} D3DVERTEXBUFFER_DESC, *PD3DVERTEXBUFFER_DESC, *LPD3DVERTEXBUFFER_DESC;
1749
1750
typedef struct _D3DVERTEXELEMENT9 {
1751
WORD Stream;
1752
WORD Offset;
1753
BYTE Type;
1754
BYTE Method;
1755
BYTE Usage;
1756
BYTE UsageIndex;
1757
} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
1758
1759
typedef struct _D3DVIEWPORT9 {
1760
DWORD X;
1761
DWORD Y;
1762
DWORD Width;
1763
DWORD Height;
1764
float MinZ;
1765
float MaxZ;
1766
} D3DVIEWPORT9, *PD3DVIEWPORT9, *LPD3DVIEWPORT9;
1767
1768
typedef struct _D3DVOLUME_DESC {
1769
D3DFORMAT Format;
1770
D3DRESOURCETYPE Type;
1771
DWORD Usage;
1772
D3DPOOL Pool;
1773
UINT Width;
1774
UINT Height;
1775
UINT Depth;
1776
} D3DVOLUME_DESC, *PD3DVOLUME_DESC, *LPD3DVOLUME_DESC;
1777
1778
#ifndef _WIN32
1779
/* If _WIN32 isn't declared it means only internal header files are used. To
1780
* avoid a conflict, IUnknown is declared here rather than in d3d9.h */
1781
1782
typedef struct IUnknown IUnknown, *PUNKNOWN, *LPUNKNOWN;
1783
1784
#ifdef __cplusplus
1785
extern "C" const GUID IID_IUnknown;
1786
1787
struct IUnknown
1788
{
1789
virtual HRESULT WINAPI QueryInterface(REFIID riid, void **ppvObject) = 0;
1790
virtual ULONG WINAPI AddRef() = 0;
1791
virtual ULONG WINAPI Release() = 0;
1792
};
1793
#else /* __cplusplus */
1794
extern const GUID IID_IUnknown;
1795
1796
typedef struct IUnknownVtbl
1797
{
1798
/* IUnknown */
1799
HRESULT (WINAPI *QueryInterface)(IUnknown *This, REFIID riid, void **ppvObject);
1800
ULONG (WINAPI *AddRef)(IUnknown *This);
1801
ULONG (WINAPI *Release)(IUnknown *This);
1802
} IUnknownVtbl;
1803
1804
struct IUnknown
1805
{
1806
IUnknownVtbl *lpVtbl;
1807
};
1808
1809
/* IUnknown macros */
1810
#define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1811
#define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
1812
#define IUnknown_Release(p) (p)->lpVtbl->Release(p)
1813
#endif /* __cplusplus */
1814
#endif /* _WIN32 */
1815
1816
#endif /* _D3D9TYPES_H_ */
1817
1818