]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3d9types/d3d9types.factor
use radix literals
[factor.git] / basis / windows / directx / d3d9types / d3d9types.factor
1 USING: alien.syntax windows.types classes.struct math alien.c-types
2 math.bitwise kernel locals windows.kernel32 literals ;
3 IN: windows.directx.d3d9types
4
5 TYPEDEF: DWORD D3DCOLOR
6
7 STRUCT: D3DVECTOR
8     { x FLOAT }
9     { y FLOAT }
10     { z FLOAT } ;
11
12 STRUCT: D3DCOLORVALUE
13     { r FLOAT }
14     { g FLOAT }
15     { b FLOAT }
16     { a FLOAT } ;
17
18 STRUCT: D3DRECT
19     { x1 LONG }
20     { y1 LONG }
21     { x2 LONG }
22     { y2 LONG } ;
23
24 STRUCT: D3DMATRIX
25     { m FLOAT[4][4] } ;
26
27 STRUCT: D3DVIEWPORT9
28     { X            DWORD }
29     { Y            DWORD }
30     { Width        DWORD }
31     { Height       DWORD }
32     { MinZ         FLOAT }
33     { MaxZ         FLOAT } ;
34
35 CONSTANT: D3DMAXUSERCLIPPLANES 32
36
37 CONSTANT: D3DCLIPPLANE0 1
38 CONSTANT: D3DCLIPPLANE1 2
39 CONSTANT: D3DCLIPPLANE2 4
40 CONSTANT: D3DCLIPPLANE3 8
41 CONSTANT: D3DCLIPPLANE4 16
42 CONSTANT: D3DCLIPPLANE5 32
43
44 CONSTANT: D3DCS_LEFT        0x00000001
45 CONSTANT: D3DCS_RIGHT       0x00000002
46 CONSTANT: D3DCS_TOP         0x00000004
47 CONSTANT: D3DCS_BOTTOM      0x00000008
48 CONSTANT: D3DCS_FRONT       0x00000010
49 CONSTANT: D3DCS_BACK        0x00000020
50 CONSTANT: D3DCS_PLANE0      0x00000040
51 CONSTANT: D3DCS_PLANE1      0x00000080
52 CONSTANT: D3DCS_PLANE2      0x00000100
53 CONSTANT: D3DCS_PLANE3      0x00000200
54 CONSTANT: D3DCS_PLANE4      0x00000400
55 CONSTANT: D3DCS_PLANE5      0x00000800
56
57 CONSTANT: D3DCS_ALL
58     flags{
59         D3DCS_LEFT
60         D3DCS_RIGHT
61         D3DCS_TOP
62         D3DCS_BOTTOM
63         D3DCS_FRONT
64         D3DCS_BACK
65         D3DCS_PLANE0
66         D3DCS_PLANE1
67         D3DCS_PLANE2
68         D3DCS_PLANE3
69         D3DCS_PLANE4
70         D3DCS_PLANE5
71     }
72
73 STRUCT: D3DCLIPSTATUS9
74     { ClipUnion        DWORD }
75     { ClipIntersection DWORD } ;
76
77 STRUCT: D3DMATERIAL9
78     { Diffuse         D3DCOLORVALUE }
79     { Ambient         D3DCOLORVALUE }
80     { Specular        D3DCOLORVALUE }
81     { Emissive        D3DCOLORVALUE }
82     { Power           FLOAT         } ;
83
84 TYPEDEF: int D3DLIGHTTYPE
85 CONSTANT: D3DLIGHT_POINT          1
86 CONSTANT: D3DLIGHT_SPOT           2
87 CONSTANT: D3DLIGHT_DIRECTIONAL    3
88 CONSTANT: D3DLIGHT_FORCE_DWORD    0x7fffffff
89
90 STRUCT: D3DLIGHT9
91     { Type                   D3DLIGHTTYPE  }
92     { Diffuse                D3DCOLORVALUE }
93     { Specular               D3DCOLORVALUE }
94     { Ambient                D3DCOLORVALUE }
95     { Position               D3DVECTOR     }
96     { Direction              D3DVECTOR     }
97     { Range                  FLOAT         }
98     { Falloff                FLOAT         }
99     { Attenuation0           FLOAT         }
100     { Attenuation1           FLOAT         }
101     { Attenuation2           FLOAT         }
102     { Theta                  FLOAT         }
103     { Phi                    FLOAT         } ;
104
105 CONSTANT: D3DCLEAR_TARGET            0x00000001
106 CONSTANT: D3DCLEAR_ZBUFFER           0x00000002
107 CONSTANT: D3DCLEAR_STENCIL           0x00000004
108
109 TYPEDEF: int D3DSHADEMODE
110 CONSTANT: D3DSHADE_FLAT               1
111 CONSTANT: D3DSHADE_GOURAUD            2
112 CONSTANT: D3DSHADE_PHONG              3
113 CONSTANT: D3DSHADE_FORCE_DWORD        0x7fffffff
114
115 TYPEDEF: int D3DFILLMODE
116 CONSTANT: D3DFILL_POINT               1
117 CONSTANT: D3DFILL_WIREFRAME           2
118 CONSTANT: D3DFILL_SOLID               3
119 CONSTANT: D3DFILL_FORCE_DWORD         0x7fffffff
120
121 TYPEDEF: int D3DBLEND
122 CONSTANT: D3DBLEND_ZERO               1
123 CONSTANT: D3DBLEND_ONE                2
124 CONSTANT: D3DBLEND_SRCCOLOR           3
125 CONSTANT: D3DBLEND_INVSRCCOLOR        4
126 CONSTANT: D3DBLEND_SRCALPHA           5
127 CONSTANT: D3DBLEND_INVSRCALPHA        6
128 CONSTANT: D3DBLEND_DESTALPHA          7
129 CONSTANT: D3DBLEND_INVDESTALPHA       8
130 CONSTANT: D3DBLEND_DESTCOLOR          9
131 CONSTANT: D3DBLEND_INVDESTCOLOR       10
132 CONSTANT: D3DBLEND_SRCALPHASAT        11
133 CONSTANT: D3DBLEND_BOTHSRCALPHA       12
134 CONSTANT: D3DBLEND_BOTHINVSRCALPHA    13
135 CONSTANT: D3DBLEND_BLENDFACTOR        14
136 CONSTANT: D3DBLEND_INVBLENDFACTOR     15
137 CONSTANT: D3DBLEND_SRCCOLOR2          16
138 CONSTANT: D3DBLEND_INVSRCCOLOR2       17
139 CONSTANT: D3DBLEND_FORCE_DWORD        0x7fffffff
140
141 TYPEDEF: int D3DBLENDOP
142 CONSTANT: D3DBLENDOP_ADD              1
143 CONSTANT: D3DBLENDOP_SUBTRACT         2
144 CONSTANT: D3DBLENDOP_REVSUBTRACT      3
145 CONSTANT: D3DBLENDOP_MIN              4
146 CONSTANT: D3DBLENDOP_MAX              5
147 CONSTANT: D3DBLENDOP_FORCE_DWORD      0x7fffffff
148
149 TYPEDEF: int D3DTEXTUREADDRESS
150 CONSTANT: D3DTADDRESS_WRAP            1
151 CONSTANT: D3DTADDRESS_MIRROR          2
152 CONSTANT: D3DTADDRESS_CLAMP           3
153 CONSTANT: D3DTADDRESS_BORDER          4
154 CONSTANT: D3DTADDRESS_MIRRORONCE      5
155 CONSTANT: D3DTADDRESS_FORCE_DWORD     0x7fffffff
156
157 TYPEDEF: int D3DCULL
158 CONSTANT: D3DCULL_NONE                1
159 CONSTANT: D3DCULL_CW                  2
160 CONSTANT: D3DCULL_CCW                 3
161 CONSTANT: D3DCULL_FORCE_DWORD         0x7fffffff
162
163 TYPEDEF: int D3DCMPFUNC
164 CONSTANT: D3DCMP_NEVER                1
165 CONSTANT: D3DCMP_LESS                 2
166 CONSTANT: D3DCMP_EQUAL                3
167 CONSTANT: D3DCMP_LESSEQUAL            4
168 CONSTANT: D3DCMP_GREATER              5
169 CONSTANT: D3DCMP_NOTEQUAL             6
170 CONSTANT: D3DCMP_GREATEREQUAL         7
171 CONSTANT: D3DCMP_ALWAYS               8
172 CONSTANT: D3DCMP_FORCE_DWORD          0x7fffffff
173
174 TYPEDEF: int D3DSTENCILOP
175 CONSTANT: D3DSTENCILOP_KEEP           1
176 CONSTANT: D3DSTENCILOP_ZERO           2
177 CONSTANT: D3DSTENCILOP_REPLACE        3
178 CONSTANT: D3DSTENCILOP_INCRSAT        4
179 CONSTANT: D3DSTENCILOP_DECRSAT        5
180 CONSTANT: D3DSTENCILOP_INVERT         6
181 CONSTANT: D3DSTENCILOP_INCR           7
182 CONSTANT: D3DSTENCILOP_DECR           8
183 CONSTANT: D3DSTENCILOP_FORCE_DWORD    0x7fffffff
184
185 TYPEDEF: int D3DFOGMODE
186 CONSTANT: D3DFOG_NONE                 0
187 CONSTANT: D3DFOG_EXP                  1
188 CONSTANT: D3DFOG_EXP2                 2
189 CONSTANT: D3DFOG_LINEAR               3
190 CONSTANT: D3DFOG_FORCE_DWORD          0x7fffffff
191
192 TYPEDEF: int D3DZBUFFERTYPE
193 CONSTANT: D3DZB_FALSE                 0
194 CONSTANT: D3DZB_TRUE                  1
195 CONSTANT: D3DZB_USEW                  2
196 CONSTANT: D3DZB_FORCE_DWORD           0x7fffffff
197
198 TYPEDEF: int D3DPRIMITIVETYPE
199 CONSTANT: D3DPT_POINTLIST             1
200 CONSTANT: D3DPT_LINELIST              2
201 CONSTANT: D3DPT_LINESTRIP             3
202 CONSTANT: D3DPT_TRIANGLELIST          4
203 CONSTANT: D3DPT_TRIANGLESTRIP         5
204 CONSTANT: D3DPT_TRIANGLEFAN           6
205 CONSTANT: D3DPT_FORCE_DWORD           0x7fffffff
206
207 TYPEDEF: int D3DTRANSFORMSTATETYPE
208 CONSTANT: D3DTS_VIEW          2
209 CONSTANT: D3DTS_PROJECTION    3
210 CONSTANT: D3DTS_TEXTURE0      16
211 CONSTANT: D3DTS_TEXTURE1      17
212 CONSTANT: D3DTS_TEXTURE2      18
213 CONSTANT: D3DTS_TEXTURE3      19
214 CONSTANT: D3DTS_TEXTURE4      20
215 CONSTANT: D3DTS_TEXTURE5      21
216 CONSTANT: D3DTS_TEXTURE6      22
217 CONSTANT: D3DTS_TEXTURE7      23
218 CONSTANT: D3DTS_FORCE_DWORD   0x7fffffff
219
220 TYPEDEF: int D3DRENDERSTATETYPE
221 CONSTANT: D3DRS_ZENABLE                   7
222 CONSTANT: D3DRS_FILLMODE                  8
223 CONSTANT: D3DRS_SHADEMODE                 9
224 CONSTANT: D3DRS_ZWRITEENABLE              14
225 CONSTANT: D3DRS_ALPHATESTENABLE           15
226 CONSTANT: D3DRS_LASTPIXEL                 16
227 CONSTANT: D3DRS_SRCBLEND                  19
228 CONSTANT: D3DRS_DESTBLEND                 20
229 CONSTANT: D3DRS_CULLMODE                  22
230 CONSTANT: D3DRS_ZFUNC                     23
231 CONSTANT: D3DRS_ALPHAREF                  24
232 CONSTANT: D3DRS_ALPHAFUNC                 25
233 CONSTANT: D3DRS_DITHERENABLE              26
234 CONSTANT: D3DRS_ALPHABLENDENABLE          27
235 CONSTANT: D3DRS_FOGENABLE                 28
236 CONSTANT: D3DRS_SPECULARENABLE            29
237 CONSTANT: D3DRS_FOGCOLOR                  34
238 CONSTANT: D3DRS_FOGTABLEMODE              35
239 CONSTANT: D3DRS_FOGSTART                  36
240 CONSTANT: D3DRS_FOGEND                    37
241 CONSTANT: D3DRS_FOGDENSITY                38
242 CONSTANT: D3DRS_RANGEFOGENABLE            48
243 CONSTANT: D3DRS_STENCILENABLE             52
244 CONSTANT: D3DRS_STENCILFAIL               53
245 CONSTANT: D3DRS_STENCILZFAIL              54
246 CONSTANT: D3DRS_STENCILPASS               55
247 CONSTANT: D3DRS_STENCILFUNC               56
248 CONSTANT: D3DRS_STENCILREF                57
249 CONSTANT: D3DRS_STENCILMASK               58
250 CONSTANT: D3DRS_STENCILWRITEMASK          59
251 CONSTANT: D3DRS_TEXTUREFACTOR             60
252 CONSTANT: D3DRS_WRAP0                     128
253 CONSTANT: D3DRS_WRAP1                     129
254 CONSTANT: D3DRS_WRAP2                     130
255 CONSTANT: D3DRS_WRAP3                     131
256 CONSTANT: D3DRS_WRAP4                     132
257 CONSTANT: D3DRS_WRAP5                     133
258 CONSTANT: D3DRS_WRAP6                     134
259 CONSTANT: D3DRS_WRAP7                     135
260 CONSTANT: D3DRS_CLIPPING                  136
261 CONSTANT: D3DRS_LIGHTING                  137
262 CONSTANT: D3DRS_AMBIENT                   139
263 CONSTANT: D3DRS_FOGVERTEXMODE             140
264 CONSTANT: D3DRS_COLORVERTEX               141
265 CONSTANT: D3DRS_LOCALVIEWER               142
266 CONSTANT: D3DRS_NORMALIZENORMALS          143
267 CONSTANT: D3DRS_DIFFUSEMATERIALSOURCE     145
268 CONSTANT: D3DRS_SPECULARMATERIALSOURCE    146
269 CONSTANT: D3DRS_AMBIENTMATERIALSOURCE     147
270 CONSTANT: D3DRS_EMISSIVEMATERIALSOURCE    148
271 CONSTANT: D3DRS_VERTEXBLEND               151
272 CONSTANT: D3DRS_CLIPPLANEENABLE           152
273 CONSTANT: D3DRS_POINTSIZE                 154
274 CONSTANT: D3DRS_POINTSIZE_MIN             155
275 CONSTANT: D3DRS_POINTSPRITEENABLE         156
276 CONSTANT: D3DRS_POINTSCALEENABLE          157
277 CONSTANT: D3DRS_POINTSCALE_A              158
278 CONSTANT: D3DRS_POINTSCALE_B              159
279 CONSTANT: D3DRS_POINTSCALE_C              160
280 CONSTANT: D3DRS_MULTISAMPLEANTIALIAS      161
281 CONSTANT: D3DRS_MULTISAMPLEMASK           162
282 CONSTANT: D3DRS_PATCHEDGESTYLE            163
283 CONSTANT: D3DRS_DEBUGMONITORTOKEN         165
284 CONSTANT: D3DRS_POINTSIZE_MAX             166
285 CONSTANT: D3DRS_INDEXEDVERTEXBLENDENABLE  167
286 CONSTANT: D3DRS_COLORWRITEENABLE          168
287 CONSTANT: D3DRS_TWEENFACTOR               170
288 CONSTANT: D3DRS_BLENDOP                   171
289 CONSTANT: D3DRS_POSITIONDEGREE            172
290 CONSTANT: D3DRS_NORMALDEGREE              173
291 CONSTANT: D3DRS_SCISSORTESTENABLE         174
292 CONSTANT: D3DRS_SLOPESCALEDEPTHBIAS       175
293 CONSTANT: D3DRS_ANTIALIASEDLINEENABLE     176
294 CONSTANT: D3DRS_MINTESSELLATIONLEVEL      178
295 CONSTANT: D3DRS_MAXTESSELLATIONLEVEL      179
296 CONSTANT: D3DRS_ADAPTIVETESS_X            180
297 CONSTANT: D3DRS_ADAPTIVETESS_Y            181
298 CONSTANT: D3DRS_ADAPTIVETESS_Z            182
299 CONSTANT: D3DRS_ADAPTIVETESS_W            183
300 CONSTANT: D3DRS_ENABLEADAPTIVETESSELLATION 184
301 CONSTANT: D3DRS_TWOSIDEDSTENCILMODE       185
302 CONSTANT: D3DRS_CCW_STENCILFAIL           186
303 CONSTANT: D3DRS_CCW_STENCILZFAIL          187
304 CONSTANT: D3DRS_CCW_STENCILPASS           188
305 CONSTANT: D3DRS_CCW_STENCILFUNC           189
306 CONSTANT: D3DRS_COLORWRITEENABLE1         190
307 CONSTANT: D3DRS_COLORWRITEENABLE2         191
308 CONSTANT: D3DRS_COLORWRITEENABLE3         192
309 CONSTANT: D3DRS_BLENDFACTOR               193
310 CONSTANT: D3DRS_SRGBWRITEENABLE           194
311 CONSTANT: D3DRS_DEPTHBIAS                 195
312 CONSTANT: D3DRS_WRAP8                     198
313 CONSTANT: D3DRS_WRAP9                     199
314 CONSTANT: D3DRS_WRAP10                    200
315 CONSTANT: D3DRS_WRAP11                    201
316 CONSTANT: D3DRS_WRAP12                    202
317 CONSTANT: D3DRS_WRAP13                    203
318 CONSTANT: D3DRS_WRAP14                    204
319 CONSTANT: D3DRS_WRAP15                    205
320 CONSTANT: D3DRS_SEPARATEALPHABLENDENABLE  206
321 CONSTANT: D3DRS_SRCBLENDALPHA             207
322 CONSTANT: D3DRS_DESTBLENDALPHA            208
323 CONSTANT: D3DRS_BLENDOPALPHA              209
324 CONSTANT: D3DRS_FORCE_DWORD               0x7fffffff
325
326 CONSTANT: D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
327
328 TYPEDEF: int D3DMATERIALCOLORSOURCE
329 CONSTANT: D3DMCS_MATERIAL         0
330 CONSTANT: D3DMCS_COLOR1           1
331 CONSTANT: D3DMCS_COLOR2           2
332 CONSTANT: D3DMCS_FORCE_DWORD      0x7fffffff
333
334 CONSTANT: D3DRENDERSTATE_WRAPBIAS                 128
335
336 CONSTANT: D3DWRAP_U   0x00000001
337 CONSTANT: D3DWRAP_V   0x00000002
338 CONSTANT: D3DWRAP_W   0x00000004
339
340 CONSTANT: D3DWRAPCOORD_0   0x00000001
341 CONSTANT: D3DWRAPCOORD_1   0x00000002
342 CONSTANT: D3DWRAPCOORD_2   0x00000004
343 CONSTANT: D3DWRAPCOORD_3   0x00000008
344
345 CONSTANT: D3DCOLORWRITEENABLE_RED     1
346 CONSTANT: D3DCOLORWRITEENABLE_GREEN   2
347 CONSTANT: D3DCOLORWRITEENABLE_BLUE    4
348 CONSTANT: D3DCOLORWRITEENABLE_ALPHA   8
349
350 TYPEDEF: int D3DTEXTURESTAGESTATETYPE
351 CONSTANT: D3DTSS_COLOROP        1
352 CONSTANT: D3DTSS_COLORARG1      2
353 CONSTANT: D3DTSS_COLORARG2      3
354 CONSTANT: D3DTSS_ALPHAOP        4
355 CONSTANT: D3DTSS_ALPHAARG1      5
356 CONSTANT: D3DTSS_ALPHAARG2      6
357 CONSTANT: D3DTSS_BUMPENVMAT00   7
358 CONSTANT: D3DTSS_BUMPENVMAT01   8
359 CONSTANT: D3DTSS_BUMPENVMAT10   9
360 CONSTANT: D3DTSS_BUMPENVMAT11   10
361 CONSTANT: D3DTSS_TEXCOORDINDEX  11
362 CONSTANT: D3DTSS_BUMPENVLSCALE  22
363 CONSTANT: D3DTSS_BUMPENVLOFFSET 23
364 CONSTANT: D3DTSS_TEXTURETRANSFORMFLAGS 24
365 CONSTANT: D3DTSS_COLORARG0      26
366 CONSTANT: D3DTSS_ALPHAARG0      27
367 CONSTANT: D3DTSS_RESULTARG      28
368 CONSTANT: D3DTSS_CONSTANT       32
369 CONSTANT: D3DTSS_FORCE_DWORD   0x7fffffff
370
371 TYPEDEF: int D3DSAMPLERSTATETYPE
372 CONSTANT: D3DSAMP_ADDRESSU       1
373 CONSTANT: D3DSAMP_ADDRESSV       2
374 CONSTANT: D3DSAMP_ADDRESSW       3
375 CONSTANT: D3DSAMP_BORDERCOLOR    4
376 CONSTANT: D3DSAMP_MAGFILTER      5
377 CONSTANT: D3DSAMP_MINFILTER      6
378 CONSTANT: D3DSAMP_MIPFILTER      7
379 CONSTANT: D3DSAMP_MIPMAPLODBIAS  8
380 CONSTANT: D3DSAMP_MAXMIPLEVEL    9
381 CONSTANT: D3DSAMP_MAXANISOTROPY  10
382 CONSTANT: D3DSAMP_SRGBTEXTURE    11
383 CONSTANT: D3DSAMP_ELEMENTINDEX   12
384 CONSTANT: D3DSAMP_DMAPOFFSET     13
385 CONSTANT: D3DSAMP_FORCE_DWORD   0x7fffffff
386
387 CONSTANT: D3DDMAPSAMPLER 256
388
389 CONSTANT: D3DVERTEXTEXTURESAMPLER0 257
390 CONSTANT: D3DVERTEXTEXTURESAMPLER1 258
391 CONSTANT: D3DVERTEXTEXTURESAMPLER2 259
392 CONSTANT: D3DVERTEXTEXTURESAMPLER3 260
393
394 CONSTANT: D3DTSS_TCI_PASSTHRU                             0x00000000
395 CONSTANT: D3DTSS_TCI_CAMERASPACENORMAL                    0x00010000
396 CONSTANT: D3DTSS_TCI_CAMERASPACEPOSITION                  0x00020000
397 CONSTANT: D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          0x00030000
398 CONSTANT: D3DTSS_TCI_SPHEREMAP                            0x00040000
399
400 TYPEDEF: int D3DTEXTUREOP
401 CONSTANT: D3DTOP_DISABLE              1
402 CONSTANT: D3DTOP_SELECTARG1           2
403 CONSTANT: D3DTOP_SELECTARG2           3
404 CONSTANT: D3DTOP_MODULATE             4
405 CONSTANT: D3DTOP_MODULATE2X           5
406 CONSTANT: D3DTOP_MODULATE4X           6
407 CONSTANT: D3DTOP_ADD                  7
408 CONSTANT: D3DTOP_ADDSIGNED            8
409 CONSTANT: D3DTOP_ADDSIGNED2X          9
410 CONSTANT: D3DTOP_SUBTRACT             10
411 CONSTANT: D3DTOP_ADDSMOOTH            11
412 CONSTANT: D3DTOP_BLENDDIFFUSEALPHA    12
413 CONSTANT: D3DTOP_BLENDTEXTUREALPHA    13
414 CONSTANT: D3DTOP_BLENDFACTORALPHA     14
415 CONSTANT: D3DTOP_BLENDTEXTUREALPHAPM  15
416 CONSTANT: D3DTOP_BLENDCURRENTALPHA    16
417 CONSTANT: D3DTOP_PREMODULATE            17
418 CONSTANT: D3DTOP_MODULATEALPHA_ADDCOLOR 18
419 CONSTANT: D3DTOP_MODULATECOLOR_ADDALPHA 19
420 CONSTANT: D3DTOP_MODULATEINVALPHA_ADDCOLOR 20
421 CONSTANT: D3DTOP_MODULATEINVCOLOR_ADDALPHA 21
422 CONSTANT: D3DTOP_BUMPENVMAP           22
423 CONSTANT: D3DTOP_BUMPENVMAPLUMINANCE  23
424 CONSTANT: D3DTOP_DOTPRODUCT3          24
425 CONSTANT: D3DTOP_MULTIPLYADD          25
426 CONSTANT: D3DTOP_LERP                 26
427 CONSTANT: D3DTOP_FORCE_DWORD 0x7fffffff
428
429 CONSTANT: D3DTA_SELECTMASK        0x0000000f
430 CONSTANT: D3DTA_DIFFUSE           0x00000000
431 CONSTANT: D3DTA_CURRENT           0x00000001
432 CONSTANT: D3DTA_TEXTURE           0x00000002
433 CONSTANT: D3DTA_TFACTOR           0x00000003
434 CONSTANT: D3DTA_SPECULAR          0x00000004
435 CONSTANT: D3DTA_TEMP              0x00000005
436 CONSTANT: D3DTA_CONSTANT          0x00000006
437 CONSTANT: D3DTA_COMPLEMENT        0x00000010
438 CONSTANT: D3DTA_ALPHAREPLICATE    0x00000020
439
440 TYPEDEF: int D3DTEXTUREFILTERTYPE
441 CONSTANT: D3DTEXF_NONE            0
442 CONSTANT: D3DTEXF_POINT           1
443 CONSTANT: D3DTEXF_LINEAR          2
444 CONSTANT: D3DTEXF_ANISOTROPIC     3
445 CONSTANT: D3DTEXF_PYRAMIDALQUAD   6
446 CONSTANT: D3DTEXF_GAUSSIANQUAD    7
447 CONSTANT: D3DTEXF_CONVOLUTIONMONO 8
448 CONSTANT: D3DTEXF_FORCE_DWORD     0x7fffffff
449
450 CONSTANT: D3DPV_DONOTCOPYDATA     1
451
452 CONSTANT: D3DFVF_RESERVED0        0x001
453 CONSTANT: D3DFVF_POSITION_MASK    0x400E
454 CONSTANT: D3DFVF_XYZ              0x002
455 CONSTANT: D3DFVF_XYZRHW           0x004
456 CONSTANT: D3DFVF_XYZB1            0x006
457 CONSTANT: D3DFVF_XYZB2            0x008
458 CONSTANT: D3DFVF_XYZB3            0x00a
459 CONSTANT: D3DFVF_XYZB4            0x00c
460 CONSTANT: D3DFVF_XYZB5            0x00e
461 CONSTANT: D3DFVF_XYZW             0x4002
462
463 CONSTANT: D3DFVF_NORMAL           0x010
464 CONSTANT: D3DFVF_PSIZE            0x020
465 CONSTANT: D3DFVF_DIFFUSE          0x040
466 CONSTANT: D3DFVF_SPECULAR         0x080
467
468 CONSTANT: D3DFVF_TEXCOUNT_MASK    0xf00
469 CONSTANT: D3DFVF_TEXCOUNT_SHIFT   8
470 CONSTANT: D3DFVF_TEX0             0x000
471 CONSTANT: D3DFVF_TEX1             0x100
472 CONSTANT: D3DFVF_TEX2             0x200
473 CONSTANT: D3DFVF_TEX3             0x300
474 CONSTANT: D3DFVF_TEX4             0x400
475 CONSTANT: D3DFVF_TEX5             0x500
476 CONSTANT: D3DFVF_TEX6             0x600
477 CONSTANT: D3DFVF_TEX7             0x700
478 CONSTANT: D3DFVF_TEX8             0x800
479
480 CONSTANT: D3DFVF_LASTBETA_UBYTE4   0x1000
481 CONSTANT: D3DFVF_LASTBETA_D3DCOLOR 0x8000
482
483 CONSTANT: D3DFVF_RESERVED2         0x6000
484
485 TYPEDEF: int D3DDECLUSAGE
486 CONSTANT: D3DDECLUSAGE_POSITION     0
487 CONSTANT: D3DDECLUSAGE_BLENDWEIGHT  1
488 CONSTANT: D3DDECLUSAGE_BLENDINDICES 2
489 CONSTANT: D3DDECLUSAGE_NORMAL       3
490 CONSTANT: D3DDECLUSAGE_PSIZE        4
491 CONSTANT: D3DDECLUSAGE_TEXCOORD     5
492 CONSTANT: D3DDECLUSAGE_TANGENT      6
493 CONSTANT: D3DDECLUSAGE_BINORMAL     7
494 CONSTANT: D3DDECLUSAGE_TESSFACTOR   8
495 CONSTANT: D3DDECLUSAGE_POSITIONT    9
496 CONSTANT: D3DDECLUSAGE_COLOR        10
497 CONSTANT: D3DDECLUSAGE_FOG          11
498 CONSTANT: D3DDECLUSAGE_DEPTH        12
499 CONSTANT: D3DDECLUSAGE_SAMPLE       13
500
501 CONSTANT: MAXD3DDECLUSAGE         13
502 CONSTANT: MAXD3DDECLUSAGEINDEX    15
503 CONSTANT: MAXD3DDECLLENGTH        64
504
505 ENUM: D3DDECLMETHOD
506     D3DDECLMETHOD_DEFAULT
507     D3DDECLMETHOD_PARTIALU
508     D3DDECLMETHOD_PARTIALV
509     D3DDECLMETHOD_CROSSUV
510     D3DDECLMETHOD_UV
511     D3DDECLMETHOD_LOOKUP
512     D3DDECLMETHOD_LOOKUPPRESAMPLED ;
513
514 : MAXD3DDECLMETHOD ( -- n ) D3DDECLMETHOD_LOOKUPPRESAMPLED ; inline
515
516 TYPEDEF: int D3DDECLTYPE
517 CONSTANT: D3DDECLTYPE_FLOAT1    0
518 CONSTANT: D3DDECLTYPE_FLOAT2    1
519 CONSTANT: D3DDECLTYPE_FLOAT3    2
520 CONSTANT: D3DDECLTYPE_FLOAT4    3
521 CONSTANT: D3DDECLTYPE_D3DCOLOR  4
522 CONSTANT: D3DDECLTYPE_UBYTE4    5
523 CONSTANT: D3DDECLTYPE_SHORT2    6
524 CONSTANT: D3DDECLTYPE_SHORT4    7
525 CONSTANT: D3DDECLTYPE_UBYTE4N   8
526 CONSTANT: D3DDECLTYPE_SHORT2N   9
527 CONSTANT: D3DDECLTYPE_SHORT4N   10
528 CONSTANT: D3DDECLTYPE_USHORT2N  11
529 CONSTANT: D3DDECLTYPE_USHORT4N  12
530 CONSTANT: D3DDECLTYPE_UDEC3     13
531 CONSTANT: D3DDECLTYPE_DEC3N     14
532 CONSTANT: D3DDECLTYPE_FLOAT16_2 15
533 CONSTANT: D3DDECLTYPE_FLOAT16_4 16
534 CONSTANT: D3DDECLTYPE_UNUSED    17
535
536 : MAXD3DDECLTYPE ( -- n ) D3DDECLTYPE_UNUSED ; inline
537
538 STRUCT: D3DVERTEXELEMENT9
539     { Stream        WORD }
540     { Offset        WORD }
541     { Type          BYTE }
542     { Method        BYTE }
543     { Usage         BYTE }
544     { UsageIndex    BYTE } ;
545 TYPEDEF: D3DVERTEXELEMENT9* LPD3DVERTEXELEMENT9
546
547 CONSTANT: D3DDP_MAXTEXCOORD   8
548
549 CONSTANT: D3DSTREAMSOURCE_INDEXEDDATA  0x40000000
550 CONSTANT: D3DSTREAMSOURCE_INSTANCEDATA 0x80000000
551
552 CONSTANT: D3DSI_OPCODE_MASK       0x0000FFFF
553 CONSTANT: D3DSI_INSTLENGTH_MASK   0x0F000000
554 CONSTANT: D3DSI_INSTLENGTH_SHIFT  24
555
556 TYPEDEF: int D3DSHADER_INSTRUCTION_OPCODE_TYPE
557 CONSTANT: D3DSIO_NOP          0
558 CONSTANT: D3DSIO_MOV          1
559 CONSTANT: D3DSIO_ADD          2
560 CONSTANT: D3DSIO_SUB          3
561 CONSTANT: D3DSIO_MAD          4
562 CONSTANT: D3DSIO_MUL          5
563 CONSTANT: D3DSIO_RCP          6
564 CONSTANT: D3DSIO_RSQ          7
565 CONSTANT: D3DSIO_DP3          8
566 CONSTANT: D3DSIO_DP4          9
567 CONSTANT: D3DSIO_MIN          10
568 CONSTANT: D3DSIO_MAX          11
569 CONSTANT: D3DSIO_SLT          12
570 CONSTANT: D3DSIO_SGE          13
571 CONSTANT: D3DSIO_EXP          14
572 CONSTANT: D3DSIO_LOG          15
573 CONSTANT: D3DSIO_LIT          16
574 CONSTANT: D3DSIO_DST          17
575 CONSTANT: D3DSIO_LRP          18
576 CONSTANT: D3DSIO_FRC          19
577 CONSTANT: D3DSIO_M4x4         20
578 CONSTANT: D3DSIO_M4x3         21
579 CONSTANT: D3DSIO_M3x4         22
580 CONSTANT: D3DSIO_M3x3         23
581 CONSTANT: D3DSIO_M3x2         24
582 CONSTANT: D3DSIO_CALL         25
583 CONSTANT: D3DSIO_CALLNZ       26
584 CONSTANT: D3DSIO_LOOP         27
585 CONSTANT: D3DSIO_RET          28
586 CONSTANT: D3DSIO_ENDLOOP      29
587 CONSTANT: D3DSIO_LABEL        30
588 CONSTANT: D3DSIO_DCL          31
589 CONSTANT: D3DSIO_POW          32
590 CONSTANT: D3DSIO_CRS          33
591 CONSTANT: D3DSIO_SGN          34
592 CONSTANT: D3DSIO_ABS          35
593 CONSTANT: D3DSIO_NRM          36
594 CONSTANT: D3DSIO_SINCOS       37
595 CONSTANT: D3DSIO_REP          38
596 CONSTANT: D3DSIO_ENDREP       39
597 CONSTANT: D3DSIO_IF           40
598 CONSTANT: D3DSIO_IFC          41
599 CONSTANT: D3DSIO_ELSE         42
600 CONSTANT: D3DSIO_ENDIF        43
601 CONSTANT: D3DSIO_BREAK        44
602 CONSTANT: D3DSIO_BREAKC       45
603 CONSTANT: D3DSIO_MOVA         46
604 CONSTANT: D3DSIO_DEFB         47
605 CONSTANT: D3DSIO_DEFI         48
606 CONSTANT: D3DSIO_TEXCOORD     64
607 CONSTANT: D3DSIO_TEXKILL      65
608 CONSTANT: D3DSIO_TEX          66
609 CONSTANT: D3DSIO_TEXBEM       67
610 CONSTANT: D3DSIO_TEXBEML      68
611 CONSTANT: D3DSIO_TEXREG2AR    69
612 CONSTANT: D3DSIO_TEXREG2GB    70
613 CONSTANT: D3DSIO_TEXM3x2PAD   71
614 CONSTANT: D3DSIO_TEXM3x2TEX   72
615 CONSTANT: D3DSIO_TEXM3x3PAD   73
616 CONSTANT: D3DSIO_TEXM3x3TEX   74
617 CONSTANT: D3DSIO_RESERVED0    75
618 CONSTANT: D3DSIO_TEXM3x3SPEC  76
619 CONSTANT: D3DSIO_TEXM3x3VSPEC 77
620 CONSTANT: D3DSIO_EXPP         78
621 CONSTANT: D3DSIO_LOGP         79
622 CONSTANT: D3DSIO_CND          80
623 CONSTANT: D3DSIO_DEF          81
624 CONSTANT: D3DSIO_TEXREG2RGB   82
625 CONSTANT: D3DSIO_TEXDP3TEX    83
626 CONSTANT: D3DSIO_TEXM3x2DEPTH 84
627 CONSTANT: D3DSIO_TEXDP3       85
628 CONSTANT: D3DSIO_TEXM3x3      86
629 CONSTANT: D3DSIO_TEXDEPTH     87
630 CONSTANT: D3DSIO_CMP          88
631 CONSTANT: D3DSIO_BEM          89
632 CONSTANT: D3DSIO_DP2ADD       90
633 CONSTANT: D3DSIO_DSX          91
634 CONSTANT: D3DSIO_DSY          92
635 CONSTANT: D3DSIO_TEXLDD       93
636 CONSTANT: D3DSIO_SETP         94
637 CONSTANT: D3DSIO_TEXLDL       95
638 CONSTANT: D3DSIO_BREAKP       96
639 CONSTANT: D3DSIO_PHASE        0xFFFD
640 CONSTANT: D3DSIO_COMMENT      0xFFFE
641 CONSTANT: D3DSIO_END          0xFFFF
642 CONSTANT: D3DSIO_FORCE_DWORD  0x7fffffff
643
644 CONSTANT: D3DSI_COISSUE           0x40000000
645
646 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_MASK  0x00ff0000
647 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_SHIFT 16
648
649 : D3DSI_TEXLD_PROJECT ( -- n ) 1 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
650 : D3DSI_TEXLD_BIAS    ( -- n ) 2 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
651
652 TYPEDEF: int D3DSHADER_COMPARISON
653 CONSTANT: D3DSPC_RESERVED0 0
654 CONSTANT: D3DSPC_GT        1
655 CONSTANT: D3DSPC_EQ        2
656 CONSTANT: D3DSPC_GE        3
657 CONSTANT: D3DSPC_LT        4
658 CONSTANT: D3DSPC_NE        5
659 CONSTANT: D3DSPC_LE        6
660 CONSTANT: D3DSPC_RESERVED1 7  
661
662 CONSTANT: D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT
663 : D3DSHADER_COMPARISON_MASK ( -- n ) 7 D3DSHADER_COMPARISON_SHIFT shift ; inline
664
665 CONSTANT: D3DSHADER_INSTRUCTION_PREDICATED    0x10000000
666
667 CONSTANT: D3DSP_DCL_USAGE_SHIFT 0
668 CONSTANT: D3DSP_DCL_USAGE_MASK  0x0000000f
669
670 CONSTANT: D3DSP_DCL_USAGEINDEX_SHIFT 16
671 CONSTANT: D3DSP_DCL_USAGEINDEX_MASK  0x000f0000
672
673 CONSTANT: D3DSP_TEXTURETYPE_SHIFT 27
674 CONSTANT: D3DSP_TEXTURETYPE_MASK  0x78000000
675
676 TYPEDEF: int D3DSAMPLER_TEXTURE_TYPE
677 : D3DSTT_UNKNOWN ( -- n ) 0 D3DSP_TEXTURETYPE_SHIFT shift ; inline
678 : D3DSTT_2D      ( -- n ) 2 D3DSP_TEXTURETYPE_SHIFT shift ; inline
679 : D3DSTT_CUBE    ( -- n ) 3 D3DSP_TEXTURETYPE_SHIFT shift ; inline
680 : D3DSTT_VOLUME  ( -- n ) 4 D3DSP_TEXTURETYPE_SHIFT shift ; inline
681 CONSTANT: D3DSTT_FORCE_DWORD 0x7fffffff
682
683 CONSTANT: D3DSP_REGNUM_MASK       0x000007FF
684
685 CONSTANT: D3DSP_WRITEMASK_0       0x00010000
686 CONSTANT: D3DSP_WRITEMASK_1       0x00020000
687 CONSTANT: D3DSP_WRITEMASK_2       0x00040000
688 CONSTANT: D3DSP_WRITEMASK_3       0x00080000
689 CONSTANT: D3DSP_WRITEMASK_ALL     0x000F0000
690
691 CONSTANT: D3DSP_DSTMOD_SHIFT      20
692 CONSTANT: D3DSP_DSTMOD_MASK       0x00F00000
693
694 : D3DSPDM_NONE             ( -- n ) 0 D3DSP_DSTMOD_SHIFT shift ; inline
695 : D3DSPDM_SATURATE         ( -- n ) 1 D3DSP_DSTMOD_SHIFT shift ; inline
696 : D3DSPDM_PARTIALPRECISION ( -- n ) 2 D3DSP_DSTMOD_SHIFT shift ; inline
697 : D3DSPDM_MSAMPCENTROID    ( -- n ) 4 D3DSP_DSTMOD_SHIFT shift ; inline
698
699 CONSTANT: D3DSP_DSTSHIFT_SHIFT    24
700 CONSTANT: D3DSP_DSTSHIFT_MASK     0x0F000000
701
702 CONSTANT: D3DSP_REGTYPE_SHIFT     28
703 CONSTANT: D3DSP_REGTYPE_SHIFT2    8
704 CONSTANT: D3DSP_REGTYPE_MASK      0x70000000
705 CONSTANT: D3DSP_REGTYPE_MASK2     0x00001800
706
707 TYPEDEF: int D3DSHADER_PARAM_REGISTER_TYPE
708 CONSTANT: D3DSPR_TEMP           0
709 CONSTANT: D3DSPR_INPUT          1
710 CONSTANT: D3DSPR_CONST          2
711 CONSTANT: D3DSPR_ADDR           3
712 CONSTANT: D3DSPR_TEXTURE        3
713 CONSTANT: D3DSPR_RASTOUT        4
714 CONSTANT: D3DSPR_ATTROUT        5
715 CONSTANT: D3DSPR_TEXCRDOUT      6
716 CONSTANT: D3DSPR_OUTPUT         6
717 CONSTANT: D3DSPR_CONSTINT       7
718 CONSTANT: D3DSPR_COLOROUT       8
719 CONSTANT: D3DSPR_DEPTHOUT       9
720 CONSTANT: D3DSPR_SAMPLER        10
721 CONSTANT: D3DSPR_CONST2         11
722 CONSTANT: D3DSPR_CONST3         12
723 CONSTANT: D3DSPR_CONST4         13
724 CONSTANT: D3DSPR_CONSTBOOL      14
725 CONSTANT: D3DSPR_LOOP           15
726 CONSTANT: D3DSPR_TEMPFLOAT16    16
727 CONSTANT: D3DSPR_MISCTYPE       17
728 CONSTANT: D3DSPR_LABEL          18
729 CONSTANT: D3DSPR_PREDICATE      19
730 CONSTANT: D3DSPR_FORCE_DWORD  0x7fffffff
731
732 TYPEDEF: int D3DSHADER_MISCTYPE_OFFSETS
733 CONSTANT: D3DSMO_POSITION   0
734 CONSTANT: D3DSMO_FACE       1
735
736 TYPEDEF: int D3DVS_RASTOUT_OFFSETS
737 CONSTANT: D3DSRO_POSITION   0
738 CONSTANT: D3DSRO_FOG        1
739 CONSTANT: D3DSRO_POINT_SIZE 2
740 CONSTANT: D3DSRO_FORCE_DWORD 0x7fffffff
741
742 CONSTANT: D3DVS_ADDRESSMODE_SHIFT 13
743 : D3DVS_ADDRESSMODE_MASK ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
744
745 TYPEDEF: int D3DVS_ADDRESSMODE_TYPE
746 : D3DVS_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DVS_ADDRESSMODE_SHIFT shift ; inline
747 : D3DVS_ADDRMODE_RELATIVE ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
748 CONSTANT: D3DVS_ADDRMODE_FORCE_DWORD 0x7fffffff
749
750 CONSTANT: D3DSHADER_ADDRESSMODE_SHIFT 13
751 : D3DSHADER_ADDRESSMODE_MASK ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
752
753 TYPEDEF: int D3DSHADER_ADDRESSMODE_TYPE
754 : D3DSHADER_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
755 : D3DSHADER_ADDRMODE_RELATIVE ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
756 CONSTANT: D3DSHADER_ADDRMODE_FORCE_DWORD 0x7fffffff
757
758 CONSTANT: D3DVS_SWIZZLE_SHIFT     16
759 CONSTANT: D3DVS_SWIZZLE_MASK      0x00FF0000
760
761 CONSTANT: D3DVS_X_X $[ 0 16 shift ]
762 CONSTANT: D3DVS_X_Y $[ 1 16 shift ]
763 CONSTANT: D3DVS_X_Z $[ 2 16 shift ]
764 CONSTANT: D3DVS_X_W $[ 3 16 shift ]
765
766 CONSTANT: D3DVS_Y_X $[ 0 16 2 + shift ]
767 CONSTANT: D3DVS_Y_Y $[ 1 16 2 + shift ]
768 CONSTANT: D3DVS_Y_Z $[ 2 16 2 + shift ]
769 CONSTANT: D3DVS_Y_W $[ 3 16 2 + shift ]
770
771 CONSTANT: D3DVS_Z_X $[ 0 16 4 + shift ]
772 CONSTANT: D3DVS_Z_Y $[ 1 16 4 + shift ]
773 CONSTANT: D3DVS_Z_Z $[ 2 16 4 + shift ]
774 CONSTANT: D3DVS_Z_W $[ 3 16 4 + shift ]
775
776 CONSTANT: D3DVS_W_X $[ 0 16 6 + shift ]
777 CONSTANT: D3DVS_W_Y $[ 1 16 6 + shift ]
778 CONSTANT: D3DVS_W_Z $[ 2 16 6 + shift ]
779 CONSTANT: D3DVS_W_W $[ 3 16 6 + shift ]
780
781 CONSTANT: D3DVS_NOSWIZZLE flags{ D3DVS_X_X D3DVS_Y_Y D3DVS_Z_Z D3DVS_W_W }
782
783 CONSTANT: D3DSP_SWIZZLE_SHIFT     16
784 CONSTANT: D3DSP_SWIZZLE_MASK      0x00FF0000
785 CONSTANT: D3DSP_SRCMOD_SHIFT      24
786 CONSTANT: D3DSP_SRCMOD_MASK       0x0F000000
787
788 TYPEDEF: int D3DSHADER_PARAM_SRCMOD_TYPE
789 CONSTANT: D3DSPSM_NONE    $[ 0 24 shift ]
790 CONSTANT: D3DSPSM_NEG     $[ 1 24 shift ]
791 CONSTANT: D3DSPSM_BIAS    $[ 2 24 shift ]
792 CONSTANT: D3DSPSM_BIASNEG $[ 3 24 shift ]
793 CONSTANT: D3DSPSM_SIGN    $[ 4 24 shift ]
794 CONSTANT: D3DSPSM_SIGNNEG $[ 5 24 shift ]
795 CONSTANT: D3DSPSM_COMP    $[ 6 24 shift ]
796 CONSTANT: D3DSPSM_X2      $[ 7 24 shift ]
797 CONSTANT: D3DSPSM_X2NEG   $[ 8 24 shift ]
798 CONSTANT: D3DSPSM_DZ      $[ 9 24 shift ]
799 CONSTANT: D3DSPSM_DW      $[ 10 24 shift ]
800 CONSTANT: D3DSPSM_ABS     $[ 11 24 shift ]
801 CONSTANT: D3DSPSM_ABSNEG  $[ 12 24 shift ]
802 CONSTANT: D3DSPSM_NOT     $[ 13 24 shift ]
803 CONSTANT: D3DSPSM_FORCE_DWORD 0x7fffffff
804
805 : D3DPS_VERSION ( major minor -- n )
806     swap 8 shift bitor 0xFFFF0000 bitor ; inline
807 : D3DVS_VERSION ( major minor -- n )
808     swap 8 shift bitor 0xFFFF0000 bitor ; inline
809
810 : D3DSHADER_VERSION_MAJOR ( version -- n )
811     -8 shift 0xFF bitand ; inline
812 : D3DSHADER_VERSION_MINOR ( version -- n )
813     0xFF bitand ; inline
814
815 CONSTANT: D3DSI_COMMENTSIZE_SHIFT 16
816 CONSTANT: D3DSI_COMMENTSIZE_MASK  0x7FFF0000
817
818 CONSTANT: D3DPS_END()  0x0000FFFF
819 CONSTANT: D3DVS_END()  0x0000FFFF
820
821 TYPEDEF: int D3DBASISTYPE
822 CONSTANT: D3DBASIS_BEZIER      0
823 CONSTANT: D3DBASIS_BSPLINE     1
824 CONSTANT: D3DBASIS_CATMULL_ROM 2
825 CONSTANT: D3DBASIS_FORCE_DWORD 0x7fffffff
826
827 TYPEDEF: int D3DDEGREETYPE
828 CONSTANT: D3DDEGREE_LINEAR      1
829 CONSTANT: D3DDEGREE_QUADRATIC   2
830 CONSTANT: D3DDEGREE_CUBIC       3
831 CONSTANT: D3DDEGREE_QUINTIC     5
832 CONSTANT: D3DDEGREE_FORCE_DWORD 0x7fffffff
833
834 TYPEDEF: int D3DPATCHEDGESTYLE
835 CONSTANT: D3DPATCHEDGE_DISCRETE    0
836 CONSTANT: D3DPATCHEDGE_CONTINUOUS  1
837 CONSTANT: D3DPATCHEDGE_FORCE_DWORD 0x7fffffff
838
839 TYPEDEF: int D3DSTATEBLOCKTYPE
840 CONSTANT: D3DSBT_ALL           1
841 CONSTANT: D3DSBT_PIXELSTATE    2
842 CONSTANT: D3DSBT_VERTEXSTATE   3
843 CONSTANT: D3DSBT_FORCE_DWORD   0x7fffffff
844
845 TYPEDEF: int D3DVERTEXBLENDFLAGS
846 CONSTANT: D3DVBF_DISABLE  0
847 CONSTANT: D3DVBF_1WEIGHTS 1
848 CONSTANT: D3DVBF_2WEIGHTS 2
849 CONSTANT: D3DVBF_3WEIGHTS 3
850 CONSTANT: D3DVBF_TWEENING 255
851 CONSTANT: D3DVBF_0WEIGHTS 256
852 CONSTANT: D3DVBF_FORCE_DWORD 0x7fffffff
853
854 TYPEDEF: int D3DTEXTURETRANSFORMFLAGS
855 CONSTANT: D3DTTFF_DISABLE         0
856 CONSTANT: D3DTTFF_COUNT1          1
857 CONSTANT: D3DTTFF_COUNT2          2
858 CONSTANT: D3DTTFF_COUNT3          3
859 CONSTANT: D3DTTFF_COUNT4          4
860 CONSTANT: D3DTTFF_PROJECTED       256
861 CONSTANT: D3DTTFF_FORCE_DWORD     0x7fffffff
862
863 CONSTANT: D3DFVF_TEXTUREFORMAT2 0
864 CONSTANT: D3DFVF_TEXTUREFORMAT1 3
865 CONSTANT: D3DFVF_TEXTUREFORMAT3 1
866 CONSTANT: D3DFVF_TEXTUREFORMAT4 2
867
868 : D3DFVF_TEXCOORDSIZE3 ( CoordIndex -- n )
869     2 * 16 + D3DFVF_TEXTUREFORMAT3 swap shift ; inline
870 : D3DFVF_TEXCOORDSIZE2 ( CoordIndex -- n )
871     drop D3DFVF_TEXTUREFORMAT2 ; inline
872 : D3DFVF_TEXCOORDSIZE4 ( CoordIndex -- n )
873     2 * 16 + D3DFVF_TEXTUREFORMAT4 swap shift ; inline
874 : D3DFVF_TEXCOORDSIZE1 ( CoordIndex -- n )
875     2 * 16 + D3DFVF_TEXTUREFORMAT1 swap shift ; inline
876
877 TYPEDEF: int D3DDEVTYPE
878 CONSTANT: D3DDEVTYPE_HAL         1
879 CONSTANT: D3DDEVTYPE_REF         2
880 CONSTANT: D3DDEVTYPE_SW          3
881 CONSTANT: D3DDEVTYPE_NULLREF     4
882 CONSTANT: D3DDEVTYPE_FORCE_DWORD  0x7fffffff
883
884 TYPEDEF: int D3DMULTISAMPLE_TYPE
885 CONSTANT: D3DMULTISAMPLE_NONE            0
886 CONSTANT: D3DMULTISAMPLE_NONMASKABLE     1
887 CONSTANT: D3DMULTISAMPLE_2_SAMPLES       2
888 CONSTANT: D3DMULTISAMPLE_3_SAMPLES       3
889 CONSTANT: D3DMULTISAMPLE_4_SAMPLES       4
890 CONSTANT: D3DMULTISAMPLE_5_SAMPLES       5
891 CONSTANT: D3DMULTISAMPLE_6_SAMPLES       6
892 CONSTANT: D3DMULTISAMPLE_7_SAMPLES       7
893 CONSTANT: D3DMULTISAMPLE_8_SAMPLES       8
894 CONSTANT: D3DMULTISAMPLE_9_SAMPLES       9
895 CONSTANT: D3DMULTISAMPLE_10_SAMPLES      10
896 CONSTANT: D3DMULTISAMPLE_11_SAMPLES      11
897 CONSTANT: D3DMULTISAMPLE_12_SAMPLES      12
898 CONSTANT: D3DMULTISAMPLE_13_SAMPLES      13
899 CONSTANT: D3DMULTISAMPLE_14_SAMPLES      14
900 CONSTANT: D3DMULTISAMPLE_15_SAMPLES      15
901 CONSTANT: D3DMULTISAMPLE_16_SAMPLES      16
902 CONSTANT: D3DMULTISAMPLE_FORCE_DWORD     0x7fffffff
903                                                                   
904 TYPEDEF: int D3DFORMAT
905 CONSTANT: D3DFMT_UNKNOWN              0
906 CONSTANT: D3DFMT_R8G8B8               20
907 CONSTANT: D3DFMT_A8R8G8B8             21
908 CONSTANT: D3DFMT_X8R8G8B8             22
909 CONSTANT: D3DFMT_R5G6B5               23
910 CONSTANT: D3DFMT_X1R5G5B5             24
911 CONSTANT: D3DFMT_A1R5G5B5             25
912 CONSTANT: D3DFMT_A4R4G4B4             26
913 CONSTANT: D3DFMT_R3G3B2               27
914 CONSTANT: D3DFMT_A8                   28
915 CONSTANT: D3DFMT_A8R3G3B2             29
916 CONSTANT: D3DFMT_X4R4G4B4             30
917 CONSTANT: D3DFMT_A2B10G10R10          31
918 CONSTANT: D3DFMT_A8B8G8R8             32
919 CONSTANT: D3DFMT_X8B8G8R8             33
920 CONSTANT: D3DFMT_G16R16               34
921 CONSTANT: D3DFMT_A2R10G10B10          35
922 CONSTANT: D3DFMT_A16B16G16R16         36
923 CONSTANT: D3DFMT_A8P8                 40
924 CONSTANT: D3DFMT_P8                   41
925 CONSTANT: D3DFMT_L8                   50
926 CONSTANT: D3DFMT_A8L8                 51
927 CONSTANT: D3DFMT_A4L4                 52
928 CONSTANT: D3DFMT_V8U8                 60
929 CONSTANT: D3DFMT_L6V5U5               61
930 CONSTANT: D3DFMT_X8L8V8U8             62
931 CONSTANT: D3DFMT_Q8W8V8U8             63
932 CONSTANT: D3DFMT_V16U16               64
933 CONSTANT: D3DFMT_A2W10V10U10          67
934 CONSTANT: D3DFMT_UYVY                 0x55595659
935 CONSTANT: D3DFMT_R8G8_B8G8            0x52474247
936 CONSTANT: D3DFMT_YUY2                 0x59555932
937 CONSTANT: D3DFMT_G8R8_G8B8            0x47524742
938 CONSTANT: D3DFMT_DXT1                 0x44585431
939 CONSTANT: D3DFMT_DXT2                 0x44585432
940 CONSTANT: D3DFMT_DXT3                 0x44585433
941 CONSTANT: D3DFMT_DXT4                 0x44585434
942 CONSTANT: D3DFMT_DXT5                 0x44585435
943 CONSTANT: D3DFMT_D16_LOCKABLE         70
944 CONSTANT: D3DFMT_D32                  71
945 CONSTANT: D3DFMT_D15S1                73
946 CONSTANT: D3DFMT_D24S8                75
947 CONSTANT: D3DFMT_D24X8                77
948 CONSTANT: D3DFMT_D24X4S4              79
949 CONSTANT: D3DFMT_D16                  80
950 CONSTANT: D3DFMT_D32F_LOCKABLE        82
951 CONSTANT: D3DFMT_D24FS8               83
952 CONSTANT: D3DFMT_D32_LOCKABLE         84
953 CONSTANT: D3DFMT_S8_LOCKABLE          85
954 CONSTANT: D3DFMT_L16                  81
955 CONSTANT: D3DFMT_VERTEXDATA           100
956 CONSTANT: D3DFMT_INDEX16              101
957 CONSTANT: D3DFMT_INDEX32              102
958 CONSTANT: D3DFMT_Q16W16V16U16         110
959 CONSTANT: D3DFMT_MULTI2_ARGB8         0x4d455431
960 CONSTANT: D3DFMT_R16F                 111
961 CONSTANT: D3DFMT_G16R16F              112
962 CONSTANT: D3DFMT_A16B16G16R16F        113
963 CONSTANT: D3DFMT_R32F                 114
964 CONSTANT: D3DFMT_G32R32F              115
965 CONSTANT: D3DFMT_A32B32G32R32F        116
966 CONSTANT: D3DFMT_CxV8U8               117
967 CONSTANT: D3DFMT_A1                   118
968 CONSTANT: D3DFMT_A2B10G10R10_XR_BIAS  119
969 CONSTANT: D3DFMT_BINARYBUFFER         199
970 CONSTANT: D3DFMT_FORCE_DWORD          0x7fffffff
971
972 STRUCT: D3DDISPLAYMODE
973     { Width                  UINT      }
974     { Height                 UINT      }
975     { RefreshRate            UINT      }
976     { Format                 D3DFORMAT } ;
977
978 STRUCT: D3DDEVICE_CREATION_PARAMETERS
979     { AdapterOrdinal            UINT       }
980     { DeviceType                D3DDEVTYPE }
981     { hFocusWindow              HWND       }
982     { BehaviorFlags             DWORD      } ;
983
984 TYPEDEF: int D3DSWAPEFFECT
985 CONSTANT: D3DSWAPEFFECT_DISCARD           1
986 CONSTANT: D3DSWAPEFFECT_FLIP              2
987 CONSTANT: D3DSWAPEFFECT_COPY              3
988 CONSTANT: D3DSWAPEFFECT_OVERLAY           4
989 CONSTANT: D3DSWAPEFFECT_FLIPEX            5
990 CONSTANT: D3DSWAPEFFECT_FORCE_DWORD       0x7fffffff
991
992 TYPEDEF: int D3DPOOL
993 CONSTANT: D3DPOOL_DEFAULT                 0
994 CONSTANT: D3DPOOL_MANAGED                 1
995 CONSTANT: D3DPOOL_SYSTEMMEM               2
996 CONSTANT: D3DPOOL_SCRATCH                 3
997 CONSTANT: D3DPOOL_FORCE_DWORD             0x7fffffff
998
999 CONSTANT: D3DPRESENT_RATE_DEFAULT         0x00000000
1000
1001 STRUCT: D3DPRESENT_PARAMETERS
1002     { BackBufferWidth             UINT                }
1003     { BackBufferHeight            UINT                }
1004     { BackBufferFormat            D3DFORMAT           }
1005     { BackBufferCount             UINT                }
1006     { MultiSampleType             D3DMULTISAMPLE_TYPE }
1007     { MultiSampleQuality          DWORD               }
1008     { SwapEffect                  D3DSWAPEFFECT       }
1009     { hDeviceWindow               HWND                }
1010     { Windowed                    BOOL                }
1011     { EnableAutoDepthStencil      BOOL                }
1012     { AutoDepthStencilFormat      D3DFORMAT           }
1013     { Flags                       DWORD               }
1014     { FullScreen_RefreshRateInHz  UINT                }
1015     { PresentationInterval        UINT                } ;
1016
1017 CONSTANT: D3DPRESENTFLAG_LOCKABLE_BACKBUFFER      0x00000001
1018 CONSTANT: D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL     0x00000002
1019 CONSTANT: D3DPRESENTFLAG_DEVICECLIP               0x00000004
1020 CONSTANT: D3DPRESENTFLAG_VIDEO                    0x00000010
1021
1022 CONSTANT: D3DPRESENTFLAG_NOAUTOROTATE                    0x00000020
1023 CONSTANT: D3DPRESENTFLAG_UNPRUNEDMODE                    0x00000040
1024 CONSTANT: D3DPRESENTFLAG_OVERLAY_LIMITEDRGB              0x00000080
1025 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_BT709             0x00000100
1026 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC             0x00000200
1027 CONSTANT: D3DPRESENTFLAG_RESTRICTED_CONTENT              0x00000400
1028 CONSTANT: D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
1029
1030 STRUCT: D3DGAMMARAMP
1031     { red   WORD[256] }
1032     { green WORD[256] }
1033     { blue  WORD[256] } ;
1034
1035 TYPEDEF: int D3DBACKBUFFER_TYPE
1036 CONSTANT: D3DBACKBUFFER_TYPE_MONO         0
1037 CONSTANT: D3DBACKBUFFER_TYPE_LEFT         1
1038 CONSTANT: D3DBACKBUFFER_TYPE_RIGHT        2
1039 CONSTANT: D3DBACKBUFFER_TYPE_FORCE_DWORD  0x7fffffff
1040
1041 TYPEDEF: int D3DRESOURCETYPE
1042 CONSTANT: D3DRTYPE_SURFACE                1
1043 CONSTANT: D3DRTYPE_VOLUME                 2
1044 CONSTANT: D3DRTYPE_TEXTURE                3
1045 CONSTANT: D3DRTYPE_VOLUMETEXTURE          4
1046 CONSTANT: D3DRTYPE_CUBETEXTURE            5
1047 CONSTANT: D3DRTYPE_VERTEXBUFFER           6
1048 CONSTANT: D3DRTYPE_INDEXBUFFER            7
1049 CONSTANT: D3DRTYPE_FORCE_DWORD            0x7fffffff
1050
1051 CONSTANT: D3DUSAGE_RENDERTARGET       0x00000001
1052 CONSTANT: D3DUSAGE_DEPTHSTENCIL       0x00000002
1053 CONSTANT: D3DUSAGE_DYNAMIC            0x00000200
1054
1055 CONSTANT: D3DUSAGE_NONSECURE          0x00800000
1056
1057 CONSTANT: D3DUSAGE_AUTOGENMIPMAP      0x00000400
1058 CONSTANT: D3DUSAGE_DMAP               0x00004000
1059
1060 CONSTANT: D3DUSAGE_QUERY_LEGACYBUMPMAP            0x00008000
1061 CONSTANT: D3DUSAGE_QUERY_SRGBREAD                 0x00010000
1062 CONSTANT: D3DUSAGE_QUERY_FILTER                   0x00020000
1063 CONSTANT: D3DUSAGE_QUERY_SRGBWRITE                0x00040000
1064 CONSTANT: D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000
1065 CONSTANT: D3DUSAGE_QUERY_VERTEXTEXTURE            0x00100000
1066 CONSTANT: D3DUSAGE_QUERY_WRAPANDMIP             0x00200000
1067
1068 CONSTANT: D3DUSAGE_WRITEONLY          0x00000008
1069 CONSTANT: D3DUSAGE_SOFTWAREPROCESSING 0x00000010
1070 CONSTANT: D3DUSAGE_DONOTCLIP          0x00000020
1071 CONSTANT: D3DUSAGE_POINTS             0x00000040
1072 CONSTANT: D3DUSAGE_RTPATCHES          0x00000080
1073 CONSTANT: D3DUSAGE_NPATCHES           0x00000100
1074
1075 CONSTANT: D3DUSAGE_TEXTAPI                         0x10000000
1076 CONSTANT: D3DUSAGE_RESTRICTED_CONTENT              0x00000800
1077 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE        0x00002000
1078 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER 0x00001000
1079
1080 TYPEDEF: int D3DCUBEMAP_FACES
1081 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_X     0
1082 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_X     1
1083 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Y     2
1084 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Y     3
1085 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Z     4
1086 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Z     5
1087 CONSTANT: D3DCUBEMAP_FACE_FORCE_DWORD    0x7fffffff
1088
1089 CONSTANT: D3DLOCK_READONLY           0x00000010
1090 CONSTANT: D3DLOCK_DISCARD            0x00002000
1091 CONSTANT: D3DLOCK_NOOVERWRITE        0x00001000
1092 CONSTANT: D3DLOCK_NOSYSLOCK          0x00000800
1093 CONSTANT: D3DLOCK_DONOTWAIT          0x00004000
1094
1095 CONSTANT: D3DLOCK_NO_DIRTY_UPDATE     0x00008000
1096
1097 STRUCT: D3DVERTEXBUFFER_DESC
1098     { Format              D3DFORMAT       }
1099     { Type                D3DRESOURCETYPE }
1100     { Usage               DWORD           }
1101     { Pool                D3DPOOL         }
1102     { Size                UINT            }
1103     { FVF                 DWORD           } ;
1104
1105 STRUCT: D3DINDEXBUFFER_DESC
1106     { Format              D3DFORMAT       }
1107     { Type                D3DRESOURCETYPE }
1108     { Usage               DWORD           }
1109     { Pool                D3DPOOL         }
1110     { Size                UINT            } ;
1111
1112 STRUCT: D3DSURFACE_DESC
1113     { Format              D3DFORMAT           }
1114     { Type                D3DRESOURCETYPE     }
1115     { Usage               DWORD               }
1116     { Pool                D3DPOOL             }
1117     { MultiSampleType     D3DMULTISAMPLE_TYPE }
1118     { MultiSampleQuality  DWORD               }
1119     { Width               UINT                }
1120     { Height              UINT                } ;
1121
1122 STRUCT: D3DVOLUME_DESC
1123
1124     { Format              D3DFORMAT       }
1125     { Type                D3DRESOURCETYPE }
1126     { Usage               DWORD           }
1127     { Pool                D3DPOOL         }
1128     { Width               UINT            }
1129     { Height              UINT            }
1130     { Depth               UINT            } ;
1131
1132 STRUCT: D3DLOCKED_RECT
1133     { Pitch               INT   }
1134     { pBits               void* } ;
1135
1136 STRUCT: D3DBOX
1137     { Left                  UINT }
1138     { Top                   UINT }
1139     { Right                 UINT }
1140     { Bottom                UINT }
1141     { Front                 UINT }
1142     { Back                  UINT } ;
1143
1144 STRUCT: D3DLOCKED_BOX
1145     { RowPitch             INT   }
1146     { SlicePitch           INT   }
1147     { pBits                void* } ;
1148
1149 STRUCT: D3DRANGE
1150     { Offset                UINT }
1151     { Size                  UINT } ;
1152
1153 STRUCT: D3DRECTPATCH_INFO
1154     { StartVertexOffsetWidth  UINT          }
1155     { StartVertexOffsetHeight UINT          }
1156     { Width                   UINT          }
1157     { Height                  UINT          }
1158     { Stride                  UINT          }
1159     { Basis                   D3DBASISTYPE  }
1160     { Degree                  D3DDEGREETYPE } ;
1161
1162 STRUCT: D3DTRIPATCH_INFO
1163     { StartVertexOffset       UINT          }
1164     { NumVertices             UINT          }
1165     { Basis                   D3DBASISTYPE  }
1166     { Degree                  D3DDEGREETYPE } ;
1167
1168 CONSTANT: MAX_DEVICE_IDENTIFIER_STRING        512
1169
1170 STRUCT: D3DADAPTER_IDENTIFIER9
1171     { Driver                      char[512]     }
1172     { Description                 char[512]     }
1173     { DeviceName                  char[32]      }
1174     { DriverVersion               LARGE_INTEGER }
1175     { VendorId                    DWORD         }
1176     { DeviceId                    DWORD         }
1177     { SubSysId                    DWORD         }
1178     { Revision                    DWORD         }
1179     { DeviceIdentifier            GUID          }
1180     { WHQLLevel                   DWORD         } ;
1181
1182 STRUCT: D3DRASTER_STATUS
1183     { InVBlank            BOOL }
1184     { ScanLine            UINT } ;
1185
1186 TYPEDEF: int D3DDEBUGMONITORTOKENS
1187 CONSTANT: D3DDMT_ENABLE            0
1188 CONSTANT: D3DDMT_DISABLE           1
1189 CONSTANT: D3DDMT_FORCE_DWORD     0x7fffffff
1190
1191 TYPEDEF: int D3DQUERYTYPE
1192 CONSTANT: D3DQUERYTYPE_VCACHE                 4
1193 CONSTANT: D3DQUERYTYPE_RESOURCEMANAGER        5
1194 CONSTANT: D3DQUERYTYPE_VERTEXSTATS            6
1195 CONSTANT: D3DQUERYTYPE_EVENT                  8
1196 CONSTANT: D3DQUERYTYPE_OCCLUSION              9
1197 CONSTANT: D3DQUERYTYPE_TIMESTAMP              10
1198 CONSTANT: D3DQUERYTYPE_TIMESTAMPDISJOINT      11
1199 CONSTANT: D3DQUERYTYPE_TIMESTAMPFREQ          12
1200 CONSTANT: D3DQUERYTYPE_PIPELINETIMINGS        13
1201 CONSTANT: D3DQUERYTYPE_INTERFACETIMINGS       14
1202 CONSTANT: D3DQUERYTYPE_VERTEXTIMINGS          15
1203 CONSTANT: D3DQUERYTYPE_PIXELTIMINGS           16
1204 CONSTANT: D3DQUERYTYPE_BANDWIDTHTIMINGS       17
1205 CONSTANT: D3DQUERYTYPE_CACHEUTILIZATION       18
1206 CONSTANT: D3DQUERYTYPE_MEMORYPRESSURE         19
1207
1208 CONSTANT: D3DISSUE_END   1
1209 CONSTANT: D3DISSUE_BEGIN 2
1210
1211 CONSTANT: D3DGETDATA_FLUSH 1
1212
1213 STRUCT: D3DRESOURCESTATS
1214     { bThrashing              BOOL  }
1215     { ApproxBytesDownloaded   DWORD }
1216     { NumEvicts               DWORD }
1217     { NumVidCreates           DWORD }
1218     { LastPri                 DWORD }
1219     { NumUsed                 DWORD }
1220     { NumUsedInVidMem         DWORD }
1221     { WorkingSet              DWORD }
1222     { WorkingSetBytes         DWORD }
1223     { TotalManaged            DWORD }
1224     { TotalBytes              DWORD } ;
1225
1226 CONSTANT: D3DRTYPECOUNT 8
1227
1228 STRUCT: D3DDEVINFO_RESOURCEMANAGER
1229     { stats D3DRESOURCESTATS[8] } ;
1230 TYPEDEF: D3DDEVINFO_RESOURCEMANAGER* LPD3DDEVINFO_RESOURCEMANAGER
1231
1232 STRUCT: D3DDEVINFO_D3DVERTEXSTATS
1233     { NumRenderedTriangles        DWORD }
1234     { NumExtraClippingTriangles   DWORD } ;
1235 TYPEDEF: D3DDEVINFO_D3DVERTEXSTATS* LPD3DDEVINFO_D3DVERTEXSTATS
1236
1237 STRUCT: D3DDEVINFO_VCACHE
1238     { Pattern       DWORD }
1239     { OptMethod     DWORD }
1240     { CacheSize     DWORD }
1241     { MagicNumber   DWORD } ;
1242 TYPEDEF: D3DDEVINFO_VCACHE* LPD3DDEVINFO_VCACHE
1243
1244 STRUCT: D3DDEVINFO_D3D9PIPELINETIMINGS
1245     { VertexProcessingTimePercent   FLOAT }
1246     { PixelProcessingTimePercent    FLOAT }
1247     { OtherGPUProcessingTimePercent FLOAT }
1248     { GPUIdleTimePercent            FLOAT } ;
1249
1250 STRUCT: D3DDEVINFO_D3D9INTERFACETIMINGS
1251     { WaitingForGPUToUseApplicationResourceTimePercent FLOAT }
1252     { WaitingForGPUToAcceptMoreCommandsTimePercent     FLOAT }
1253     { WaitingForGPUToStayWithinLatencyTimePercent      FLOAT }
1254     { WaitingForGPUExclusiveResourceTimePercent        FLOAT }
1255     { WaitingForGPUOtherTimePercent                    FLOAT } ;
1256
1257 STRUCT: D3DDEVINFO_D3D9STAGETIMINGS
1258     { MemoryProcessingPercent      FLOAT }
1259     { ComputationProcessingPercent FLOAT } ;
1260
1261 STRUCT: D3DDEVINFO_D3D9BANDWIDTHTIMINGS
1262     { MaxBandwidthUtilized                FLOAT }
1263     { FrontEndUploadMemoryUtilizedPercent FLOAT }
1264     { VertexRateUtilizedPercent           FLOAT }
1265     { TriangleSetupRateUtilizedPercent    FLOAT }
1266     { FillRateUtilizedPercent             FLOAT } ;
1267
1268 STRUCT: D3DDEVINFO_D3D9CACHEUTILIZATION
1269     { TextureCacheHitRate             FLOAT }
1270     { PostTransformVertexCacheHitRate FLOAT } ;
1271
1272 STRUCT: D3DMEMORYPRESSURE
1273     { BytesEvictedFromProcess      UINT64 }
1274     { SizeOfInefficientAllocation  UINT64 }
1275     { LevelOfEfficiency            DWORD  } ;
1276
1277 TYPEDEF: int D3DCOMPOSERECTSOP
1278 CONSTANT: D3DCOMPOSERECTS_COPY     1
1279 CONSTANT: D3DCOMPOSERECTS_OR       2
1280 CONSTANT: D3DCOMPOSERECTS_AND      3
1281 CONSTANT: D3DCOMPOSERECTS_NEG      4
1282 CONSTANT: D3DCOMPOSERECTS_FORCE_DWORD    0x7fffffff
1283
1284 STRUCT: D3DCOMPOSERECTDESC
1285     { X       USHORT }
1286     { Y       USHORT }
1287     { Width   USHORT }
1288     { Height  USHORT } ;
1289
1290 STRUCT: D3DCOMPOSERECTDESTINATION
1291     { SrcRectIndex USHORT }
1292     { Reserved     USHORT }
1293     { X            SHORT  }
1294     { Y            SHORT  } ;
1295
1296 CONSTANT: D3DCOMPOSERECTS_MAXNUMRECTS 0xFFFF
1297 CONSTANT: D3DCONVOLUTIONMONO_MAXWIDTH  7
1298 : D3DCONVOLUTIONMONO_MAXHEIGHT ( -- n ) D3DCONVOLUTIONMONO_MAXWIDTH ; inline
1299 CONSTANT: D3DFMT_A1_SURFACE_MAXWIDTH  8192
1300 CONSTANT: D3DFMT_A1_SURFACE_MAXHEIGHT 2048
1301
1302 STRUCT: D3DPRESENTSTATS
1303     { PresentCount        UINT          }
1304     { PresentRefreshCount UINT          }
1305     { SyncRefreshCount    UINT          }
1306     { SyncQPCTime         LARGE_INTEGER }
1307     { SyncGPUTime         LARGE_INTEGER } ;
1308
1309 TYPEDEF: int D3DSCANLINEORDERING
1310 CONSTANT: D3DSCANLINEORDERING_UNKNOWN                    0
1311 CONSTANT: D3DSCANLINEORDERING_PROGRESSIVE                1
1312 CONSTANT: D3DSCANLINEORDERING_INTERLACED                 2
1313
1314 STRUCT: D3DDISPLAYMODEEX
1315     { Size                UINT                }
1316     { Width               UINT                }
1317     { Height              UINT                }
1318     { RefreshRate         UINT                }
1319     { Format              D3DFORMAT           }
1320     { ScanLineOrdering    D3DSCANLINEORDERING } ;
1321
1322 STRUCT: D3DDISPLAYMODEFILTER
1323     { Size                 UINT                }
1324     { Format               D3DFORMAT           }
1325     { ScanLineOrdering     D3DSCANLINEORDERING } ;
1326
1327 TYPEDEF: int D3DDISPLAYROTATION
1328 CONSTANT: D3DDISPLAYROTATION_IDENTITY 1
1329 CONSTANT: D3DDISPLAYROTATION_90       2
1330 CONSTANT: D3DDISPLAYROTATION_180      3
1331 CONSTANT: D3DDISPLAYROTATION_270      4  
1332
1333 CONSTANT: D3D9_RESOURCE_PRIORITY_MINIMUM       0x28000000
1334 CONSTANT: D3D9_RESOURCE_PRIORITY_LOW           0x50000000
1335 CONSTANT: D3D9_RESOURCE_PRIORITY_NORMAL        0x78000000
1336 CONSTANT: D3D9_RESOURCE_PRIORITY_HIGH          0xa0000000
1337 CONSTANT: D3D9_RESOURCE_PRIORITY_MAXIMUM       0xc8000000
1338
1339 CONSTANT: D3D_OMAC_SIZE    16
1340
1341 STRUCT: D3D_OMAC
1342     { Omac BYTE[D3D_OMAC_SIZE] } ;
1343
1344 TYPEDEF: int D3DAUTHENTICATEDCHANNELTYPE
1345 CONSTANT: D3DAUTHENTICATEDCHANNEL_D3D9            1
1346 CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE 2
1347 CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE 3
1348
1349 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT
1350     { QueryType        GUID   }
1351     { hChannel         HANDLE }
1352     { SequenceNumber   UINT   } ;
1353
1354 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT
1355     { omac                D3D_OMAC }
1356     { QueryType           GUID     }
1357     { hChannel            HANDLE   }
1358     { SequenceNumber      UINT     }
1359     { ReturnCode          HRESULT  } ;
1360
1361 STRUCT: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS
1362     { Value  UINT } ;
1363
1364 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT
1365     { Output          D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT     }
1366     { ProtectionFlags D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
1367
1368 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT
1369     { Output      D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1370     { ChannelType D3DAUTHENTICATEDCHANNELTYPE          } ;
1371
1372 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT
1373     { Output         D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1374     { DeviceHandle   HANDLE                               } ;
1375
1376 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT
1377     { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1378     { DXVA2DecodeHandle   HANDLE                              } ;
1379
1380 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT
1381     { Output                D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1382     { DXVA2DecodeHandle     HANDLE                               }
1383     { CryptoSessionHandle   HANDLE                               }
1384     { DeviceHandle          HANDLE                               } ;
1385
1386 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT
1387     { Output                                 D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1388     { NumRestrictedSharedResourceProcesses   UINT                                 } ;
1389
1390 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT
1391     { Input            D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1392     { ProcessIndex     UINT                                } ;
1393
1394 TYPEDEF: int D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE
1395 CONSTANT: PROCESSIDTYPE_UNKNOWN  0
1396 CONSTANT: PROCESSIDTYPE_DWM      1
1397 CONSTANT: PROCESSIDTYPE_HANDLE   2
1398
1399 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT
1400     { Output           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT          }
1401     { ProcessIndex     UINT                                          }
1402     { ProcessIdentifer D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
1403     { ProcessHandle    HANDLE                                        } ;
1404
1405 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT
1406     { Output                                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1407     { NumUnrestrictedProtectedSharedResources   UINT                                 } ;
1408
1409 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT
1410     { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1411     { DeviceHandle         HANDLE                              }
1412     { CryptoSessionHandle  HANDLE                              } ;
1413
1414 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT
1415     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1416     { DeviceHandle         HANDLE                               }
1417     { CryptoSessionHandle  HANDLE                               }
1418     { NumOutputIDs         UINT                                 } ;
1419
1420 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT
1421     { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1422     { DeviceHandle         HANDLE                              }
1423     { CryptoSessionHandle  HANDLE                              }
1424     { OutputIDIndex        UINT                                } ;
1425
1426 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT
1427     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1428     { DeviceHandle         HANDLE                               }
1429     { CryptoSessionHandle  HANDLE                               }
1430     { OutputIDIndex        UINT                                 }
1431     { OutputID             UINT64                               } ;
1432
1433 TYPEDEF: int D3DBUSTYPE
1434 CONSTANT: D3DBUSTYPE_OTHER                                     0x00000000
1435 CONSTANT: D3DBUSTYPE_PCI                                       0x00000001
1436 CONSTANT: D3DBUSTYPE_PCIX                                      0x00000002
1437 CONSTANT: D3DBUSTYPE_PCIEXPRESS                                0x00000003
1438 CONSTANT: D3DBUSTYPE_AGP                                       0x00000004
1439 CONSTANT: D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET                0x00010000
1440 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP   0x00020000
1441 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET 0x00030000
1442 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR         0x00040000
1443 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE 0x00050000
1444 CONSTANT: D3DBUSIMPL_MODIFIER_NON_STANDARD                     0x80000000
1445
1446 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT
1447     { Output                           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1448     { BusType                          D3DBUSTYPE                           }
1449     { bAccessibleInContiguousBlocks    BOOL                                 }
1450     { bAccessibleInNonContiguousBlocks BOOL                                 } ;
1451
1452 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT
1453     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1454     { NumEncryptionGuids   UINT                                 } ;
1455
1456 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT
1457     { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1458     { EncryptionGuidIndex UINT                                } ;
1459
1460 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT
1461     { Output                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1462     { EncryptionGuidIndex       UINT                                 }
1463     { EncryptionGuid            GUID                                 } ;
1464
1465 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT
1466     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1467     { EncryptionGuid       GUID                                 } ;
1468
1469 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT
1470     { omac                          D3D_OMAC }
1471     { ConfigureType                 GUID     }
1472     { hChannel                      HANDLE   }
1473     { SequenceNumber                UINT     } ;
1474
1475 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT
1476     { omac                          D3D_OMAC }
1477     { ConfigureType                 GUID     }
1478     { hChannel                      HANDLE   }
1479     { SequenceNumber                UINT     }
1480     { ReturnCode                    HRESULT  } ;
1481
1482 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE
1483     { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1484     { StartSequenceQuery       UINT                                    }
1485     { StartSequenceConfigure   UINT                                    } ;
1486
1487 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION
1488     { Parameters   D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT  }
1489     { Protections  D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
1490
1491 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION
1492     { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1493     { DXVA2DecodeHandle        HANDLE                                  }
1494     { CryptoSessionHandle      HANDLE                                  }
1495     { DeviceHandle             HANDLE                                  } ;
1496
1497 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE
1498     { Parameters           D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT       }
1499     { ProcessIdentiferType D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
1500     { ProcessHandle        HANDLE                                        }
1501     { AllowAccess          BOOL                                          } ;
1502
1503 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION
1504     { Parameters      D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1505     { EncryptionGuid  GUID                                    } ;
1506
1507 STRUCT: D3DENCRYPTED_BLOCK_INFO
1508     { NumEncryptedBytesAtBeginning UINT }
1509     { NumBytesInSkipPattern        UINT }
1510     { NumBytesInEncryptPattern     UINT } ;
1511
1512 STRUCT: D3DAES_CTR_IV
1513     { IV      UINT64 }
1514     { Count   UINT64 } ;