]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3d9types/d3d9types.factor
Fix D3D9 constants that I punted on calculating initially.
[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 ;
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        HEX: 00000001
45 CONSTANT: D3DCS_RIGHT       HEX: 00000002
46 CONSTANT: D3DCS_TOP         HEX: 00000004
47 CONSTANT: D3DCS_BOTTOM      HEX: 00000008
48 CONSTANT: D3DCS_FRONT       HEX: 00000010
49 CONSTANT: D3DCS_BACK        HEX: 00000020
50 CONSTANT: D3DCS_PLANE0      HEX: 00000040
51 CONSTANT: D3DCS_PLANE1      HEX: 00000080
52 CONSTANT: D3DCS_PLANE2      HEX: 00000100
53 CONSTANT: D3DCS_PLANE3      HEX: 00000200
54 CONSTANT: D3DCS_PLANE4      HEX: 00000400
55 CONSTANT: D3DCS_PLANE5      HEX: 00000800
56
57 : D3DCS_ALL ( -- n )
58     { D3DCS_LEFT
59       D3DCS_RIGHT
60       D3DCS_TOP
61       D3DCS_BOTTOM
62       D3DCS_FRONT
63       D3DCS_BACK
64       D3DCS_PLANE0
65       D3DCS_PLANE1
66       D3DCS_PLANE2
67       D3DCS_PLANE3
68       D3DCS_PLANE4
69       D3DCS_PLANE5 } flags ; inline
70
71 STRUCT: D3DCLIPSTATUS9
72     { ClipUnion        DWORD }
73     { ClipIntersection DWORD } ;
74
75 STRUCT: D3DMATERIAL9
76     { Diffuse         D3DCOLORVALUE }
77     { Ambient         D3DCOLORVALUE }
78     { Specular        D3DCOLORVALUE }
79     { Emissive        D3DCOLORVALUE }
80     { Power           FLOAT         } ;
81
82 TYPEDEF: int D3DLIGHTTYPE
83 CONSTANT: D3DLIGHT_POINT          1
84 CONSTANT: D3DLIGHT_SPOT           2
85 CONSTANT: D3DLIGHT_DIRECTIONAL    3
86 CONSTANT: D3DLIGHT_FORCE_DWORD    HEX: 7fffffff
87
88 STRUCT: D3DLIGHT9
89     { Type                   D3DLIGHTTYPE  }
90     { Diffuse                D3DCOLORVALUE }
91     { Specular               D3DCOLORVALUE }
92     { Ambient                D3DCOLORVALUE }
93     { Position               D3DVECTOR     }
94     { Direction              D3DVECTOR     }
95     { Range                  FLOAT         }
96     { Falloff                FLOAT         }
97     { Attenuation0           FLOAT         }
98     { Attenuation1           FLOAT         }
99     { Attenuation2           FLOAT         }
100     { Theta                  FLOAT         }
101     { Phi                    FLOAT         } ;
102
103 CONSTANT: D3DCLEAR_TARGET            HEX: 00000001
104 CONSTANT: D3DCLEAR_ZBUFFER           HEX: 00000002
105 CONSTANT: D3DCLEAR_STENCIL           HEX: 00000004
106
107 TYPEDEF: int D3DSHADEMODE
108 CONSTANT: D3DSHADE_FLAT               1
109 CONSTANT: D3DSHADE_GOURAUD            2
110 CONSTANT: D3DSHADE_PHONG              3
111 CONSTANT: D3DSHADE_FORCE_DWORD        HEX: 7fffffff
112
113 TYPEDEF: int D3DFILLMODE
114 CONSTANT: D3DFILL_POINT               1
115 CONSTANT: D3DFILL_WIREFRAME           2
116 CONSTANT: D3DFILL_SOLID               3
117 CONSTANT: D3DFILL_FORCE_DWORD         HEX: 7fffffff
118
119 TYPEDEF: int D3DBLEND
120 CONSTANT: D3DBLEND_ZERO               1
121 CONSTANT: D3DBLEND_ONE                2
122 CONSTANT: D3DBLEND_SRCCOLOR           3
123 CONSTANT: D3DBLEND_INVSRCCOLOR        4
124 CONSTANT: D3DBLEND_SRCALPHA           5
125 CONSTANT: D3DBLEND_INVSRCALPHA        6
126 CONSTANT: D3DBLEND_DESTALPHA          7
127 CONSTANT: D3DBLEND_INVDESTALPHA       8
128 CONSTANT: D3DBLEND_DESTCOLOR          9
129 CONSTANT: D3DBLEND_INVDESTCOLOR       10
130 CONSTANT: D3DBLEND_SRCALPHASAT        11
131 CONSTANT: D3DBLEND_BOTHSRCALPHA       12
132 CONSTANT: D3DBLEND_BOTHINVSRCALPHA    13
133 CONSTANT: D3DBLEND_BLENDFACTOR        14
134 CONSTANT: D3DBLEND_INVBLENDFACTOR     15
135 CONSTANT: D3DBLEND_SRCCOLOR2          16
136 CONSTANT: D3DBLEND_INVSRCCOLOR2       17
137 CONSTANT: D3DBLEND_FORCE_DWORD        HEX: 7fffffff
138
139 TYPEDEF: int D3DBLENDOP
140 CONSTANT: D3DBLENDOP_ADD              1
141 CONSTANT: D3DBLENDOP_SUBTRACT         2
142 CONSTANT: D3DBLENDOP_REVSUBTRACT      3
143 CONSTANT: D3DBLENDOP_MIN              4
144 CONSTANT: D3DBLENDOP_MAX              5
145 CONSTANT: D3DBLENDOP_FORCE_DWORD      HEX: 7fffffff
146
147 TYPEDEF: int D3DTEXTUREADDRESS
148 CONSTANT: D3DTADDRESS_WRAP            1
149 CONSTANT: D3DTADDRESS_MIRROR          2
150 CONSTANT: D3DTADDRESS_CLAMP           3
151 CONSTANT: D3DTADDRESS_BORDER          4
152 CONSTANT: D3DTADDRESS_MIRRORONCE      5
153 CONSTANT: D3DTADDRESS_FORCE_DWORD     HEX: 7fffffff
154
155 TYPEDEF: int D3DCULL
156 CONSTANT: D3DCULL_NONE                1
157 CONSTANT: D3DCULL_CW                  2
158 CONSTANT: D3DCULL_CCW                 3
159 CONSTANT: D3DCULL_FORCE_DWORD         HEX: 7fffffff
160
161 TYPEDEF: int D3DCMPFUNC
162 CONSTANT: D3DCMP_NEVER                1
163 CONSTANT: D3DCMP_LESS                 2
164 CONSTANT: D3DCMP_EQUAL                3
165 CONSTANT: D3DCMP_LESSEQUAL            4
166 CONSTANT: D3DCMP_GREATER              5
167 CONSTANT: D3DCMP_NOTEQUAL             6
168 CONSTANT: D3DCMP_GREATEREQUAL         7
169 CONSTANT: D3DCMP_ALWAYS               8
170 CONSTANT: D3DCMP_FORCE_DWORD          HEX: 7fffffff
171
172 TYPEDEF: int D3DSTENCILOP
173 CONSTANT: D3DSTENCILOP_KEEP           1
174 CONSTANT: D3DSTENCILOP_ZERO           2
175 CONSTANT: D3DSTENCILOP_REPLACE        3
176 CONSTANT: D3DSTENCILOP_INCRSAT        4
177 CONSTANT: D3DSTENCILOP_DECRSAT        5
178 CONSTANT: D3DSTENCILOP_INVERT         6
179 CONSTANT: D3DSTENCILOP_INCR           7
180 CONSTANT: D3DSTENCILOP_DECR           8
181 CONSTANT: D3DSTENCILOP_FORCE_DWORD    HEX: 7fffffff
182
183 TYPEDEF: int D3DFOGMODE
184 CONSTANT: D3DFOG_NONE                 0
185 CONSTANT: D3DFOG_EXP                  1
186 CONSTANT: D3DFOG_EXP2                 2
187 CONSTANT: D3DFOG_LINEAR               3
188 CONSTANT: D3DFOG_FORCE_DWORD          HEX: 7fffffff
189
190 TYPEDEF: int D3DZBUFFERTYPE
191 CONSTANT: D3DZB_FALSE                 0
192 CONSTANT: D3DZB_TRUE                  1
193 CONSTANT: D3DZB_USEW                  2
194 CONSTANT: D3DZB_FORCE_DWORD           HEX: 7fffffff
195
196 TYPEDEF: int D3DPRIMITIVETYPE
197 CONSTANT: D3DPT_POINTLIST             1
198 CONSTANT: D3DPT_LINELIST              2
199 CONSTANT: D3DPT_LINESTRIP             3
200 CONSTANT: D3DPT_TRIANGLELIST          4
201 CONSTANT: D3DPT_TRIANGLESTRIP         5
202 CONSTANT: D3DPT_TRIANGLEFAN           6
203 CONSTANT: D3DPT_FORCE_DWORD           HEX: 7fffffff
204
205 TYPEDEF: int D3DTRANSFORMSTATETYPE
206 CONSTANT: D3DTS_VIEW          2
207 CONSTANT: D3DTS_PROJECTION    3
208 CONSTANT: D3DTS_TEXTURE0      16
209 CONSTANT: D3DTS_TEXTURE1      17
210 CONSTANT: D3DTS_TEXTURE2      18
211 CONSTANT: D3DTS_TEXTURE3      19
212 CONSTANT: D3DTS_TEXTURE4      20
213 CONSTANT: D3DTS_TEXTURE5      21
214 CONSTANT: D3DTS_TEXTURE6      22
215 CONSTANT: D3DTS_TEXTURE7      23
216 CONSTANT: D3DTS_FORCE_DWORD   HEX: 7fffffff
217
218 TYPEDEF: int D3DRENDERSTATETYPE
219 CONSTANT: D3DRS_ZENABLE                   7
220 CONSTANT: D3DRS_FILLMODE                  8
221 CONSTANT: D3DRS_SHADEMODE                 9
222 CONSTANT: D3DRS_ZWRITEENABLE              14
223 CONSTANT: D3DRS_ALPHATESTENABLE           15
224 CONSTANT: D3DRS_LASTPIXEL                 16
225 CONSTANT: D3DRS_SRCBLEND                  19
226 CONSTANT: D3DRS_DESTBLEND                 20
227 CONSTANT: D3DRS_CULLMODE                  22
228 CONSTANT: D3DRS_ZFUNC                     23
229 CONSTANT: D3DRS_ALPHAREF                  24
230 CONSTANT: D3DRS_ALPHAFUNC                 25
231 CONSTANT: D3DRS_DITHERENABLE              26
232 CONSTANT: D3DRS_ALPHABLENDENABLE          27
233 CONSTANT: D3DRS_FOGENABLE                 28
234 CONSTANT: D3DRS_SPECULARENABLE            29
235 CONSTANT: D3DRS_FOGCOLOR                  34
236 CONSTANT: D3DRS_FOGTABLEMODE              35
237 CONSTANT: D3DRS_FOGSTART                  36
238 CONSTANT: D3DRS_FOGEND                    37
239 CONSTANT: D3DRS_FOGDENSITY                38
240 CONSTANT: D3DRS_RANGEFOGENABLE            48
241 CONSTANT: D3DRS_STENCILENABLE             52
242 CONSTANT: D3DRS_STENCILFAIL               53
243 CONSTANT: D3DRS_STENCILZFAIL              54
244 CONSTANT: D3DRS_STENCILPASS               55
245 CONSTANT: D3DRS_STENCILFUNC               56
246 CONSTANT: D3DRS_STENCILREF                57
247 CONSTANT: D3DRS_STENCILMASK               58
248 CONSTANT: D3DRS_STENCILWRITEMASK          59
249 CONSTANT: D3DRS_TEXTUREFACTOR             60
250 CONSTANT: D3DRS_WRAP0                     128
251 CONSTANT: D3DRS_WRAP1                     129
252 CONSTANT: D3DRS_WRAP2                     130
253 CONSTANT: D3DRS_WRAP3                     131
254 CONSTANT: D3DRS_WRAP4                     132
255 CONSTANT: D3DRS_WRAP5                     133
256 CONSTANT: D3DRS_WRAP6                     134
257 CONSTANT: D3DRS_WRAP7                     135
258 CONSTANT: D3DRS_CLIPPING                  136
259 CONSTANT: D3DRS_LIGHTING                  137
260 CONSTANT: D3DRS_AMBIENT                   139
261 CONSTANT: D3DRS_FOGVERTEXMODE             140
262 CONSTANT: D3DRS_COLORVERTEX               141
263 CONSTANT: D3DRS_LOCALVIEWER               142
264 CONSTANT: D3DRS_NORMALIZENORMALS          143
265 CONSTANT: D3DRS_DIFFUSEMATERIALSOURCE     145
266 CONSTANT: D3DRS_SPECULARMATERIALSOURCE    146
267 CONSTANT: D3DRS_AMBIENTMATERIALSOURCE     147
268 CONSTANT: D3DRS_EMISSIVEMATERIALSOURCE    148
269 CONSTANT: D3DRS_VERTEXBLEND               151
270 CONSTANT: D3DRS_CLIPPLANEENABLE           152
271 CONSTANT: D3DRS_POINTSIZE                 154
272 CONSTANT: D3DRS_POINTSIZE_MIN             155
273 CONSTANT: D3DRS_POINTSPRITEENABLE         156
274 CONSTANT: D3DRS_POINTSCALEENABLE          157
275 CONSTANT: D3DRS_POINTSCALE_A              158
276 CONSTANT: D3DRS_POINTSCALE_B              159
277 CONSTANT: D3DRS_POINTSCALE_C              160
278 CONSTANT: D3DRS_MULTISAMPLEANTIALIAS      161
279 CONSTANT: D3DRS_MULTISAMPLEMASK           162
280 CONSTANT: D3DRS_PATCHEDGESTYLE            163
281 CONSTANT: D3DRS_DEBUGMONITORTOKEN         165
282 CONSTANT: D3DRS_POINTSIZE_MAX             166
283 CONSTANT: D3DRS_INDEXEDVERTEXBLENDENABLE  167
284 CONSTANT: D3DRS_COLORWRITEENABLE          168
285 CONSTANT: D3DRS_TWEENFACTOR               170
286 CONSTANT: D3DRS_BLENDOP                   171
287 CONSTANT: D3DRS_POSITIONDEGREE            172
288 CONSTANT: D3DRS_NORMALDEGREE              173
289 CONSTANT: D3DRS_SCISSORTESTENABLE         174
290 CONSTANT: D3DRS_SLOPESCALEDEPTHBIAS       175
291 CONSTANT: D3DRS_ANTIALIASEDLINEENABLE     176
292 CONSTANT: D3DRS_MINTESSELLATIONLEVEL      178
293 CONSTANT: D3DRS_MAXTESSELLATIONLEVEL      179
294 CONSTANT: D3DRS_ADAPTIVETESS_X            180
295 CONSTANT: D3DRS_ADAPTIVETESS_Y            181
296 CONSTANT: D3DRS_ADAPTIVETESS_Z            182
297 CONSTANT: D3DRS_ADAPTIVETESS_W            183
298 CONSTANT: D3DRS_ENABLEADAPTIVETESSELLATION 184
299 CONSTANT: D3DRS_TWOSIDEDSTENCILMODE       185
300 CONSTANT: D3DRS_CCW_STENCILFAIL           186
301 CONSTANT: D3DRS_CCW_STENCILZFAIL          187
302 CONSTANT: D3DRS_CCW_STENCILPASS           188
303 CONSTANT: D3DRS_CCW_STENCILFUNC           189
304 CONSTANT: D3DRS_COLORWRITEENABLE1         190
305 CONSTANT: D3DRS_COLORWRITEENABLE2         191
306 CONSTANT: D3DRS_COLORWRITEENABLE3         192
307 CONSTANT: D3DRS_BLENDFACTOR               193
308 CONSTANT: D3DRS_SRGBWRITEENABLE           194
309 CONSTANT: D3DRS_DEPTHBIAS                 195
310 CONSTANT: D3DRS_WRAP8                     198
311 CONSTANT: D3DRS_WRAP9                     199
312 CONSTANT: D3DRS_WRAP10                    200
313 CONSTANT: D3DRS_WRAP11                    201
314 CONSTANT: D3DRS_WRAP12                    202
315 CONSTANT: D3DRS_WRAP13                    203
316 CONSTANT: D3DRS_WRAP14                    204
317 CONSTANT: D3DRS_WRAP15                    205
318 CONSTANT: D3DRS_SEPARATEALPHABLENDENABLE  206
319 CONSTANT: D3DRS_SRCBLENDALPHA             207
320 CONSTANT: D3DRS_DESTBLENDALPHA            208
321 CONSTANT: D3DRS_BLENDOPALPHA              209
322 CONSTANT: D3DRS_FORCE_DWORD               HEX: 7fffffff
323
324 CONSTANT: D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
325
326 TYPEDEF: int D3DMATERIALCOLORSOURCE
327 CONSTANT: D3DMCS_MATERIAL         0
328 CONSTANT: D3DMCS_COLOR1           1
329 CONSTANT: D3DMCS_COLOR2           2
330 CONSTANT: D3DMCS_FORCE_DWORD      HEX: 7fffffff
331
332 CONSTANT: D3DRENDERSTATE_WRAPBIAS                 128
333
334 CONSTANT: D3DWRAP_U   HEX: 00000001
335 CONSTANT: D3DWRAP_V   HEX: 00000002
336 CONSTANT: D3DWRAP_W   HEX: 00000004
337
338 CONSTANT: D3DWRAPCOORD_0   HEX: 00000001
339 CONSTANT: D3DWRAPCOORD_1   HEX: 00000002
340 CONSTANT: D3DWRAPCOORD_2   HEX: 00000004
341 CONSTANT: D3DWRAPCOORD_3   HEX: 00000008
342
343 CONSTANT: D3DCOLORWRITEENABLE_RED     1
344 CONSTANT: D3DCOLORWRITEENABLE_GREEN   2
345 CONSTANT: D3DCOLORWRITEENABLE_BLUE    4
346 CONSTANT: D3DCOLORWRITEENABLE_ALPHA   8
347
348 TYPEDEF: int D3DTEXTURESTAGESTATETYPE
349 CONSTANT: D3DTSS_COLOROP        1
350 CONSTANT: D3DTSS_COLORARG1      2
351 CONSTANT: D3DTSS_COLORARG2      3
352 CONSTANT: D3DTSS_ALPHAOP        4
353 CONSTANT: D3DTSS_ALPHAARG1      5
354 CONSTANT: D3DTSS_ALPHAARG2      6
355 CONSTANT: D3DTSS_BUMPENVMAT00   7
356 CONSTANT: D3DTSS_BUMPENVMAT01   8
357 CONSTANT: D3DTSS_BUMPENVMAT10   9
358 CONSTANT: D3DTSS_BUMPENVMAT11   10
359 CONSTANT: D3DTSS_TEXCOORDINDEX  11
360 CONSTANT: D3DTSS_BUMPENVLSCALE  22
361 CONSTANT: D3DTSS_BUMPENVLOFFSET 23
362 CONSTANT: D3DTSS_TEXTURETRANSFORMFLAGS 24
363 CONSTANT: D3DTSS_COLORARG0      26
364 CONSTANT: D3DTSS_ALPHAARG0      27
365 CONSTANT: D3DTSS_RESULTARG      28
366 CONSTANT: D3DTSS_CONSTANT       32
367 CONSTANT: D3DTSS_FORCE_DWORD   HEX: 7fffffff
368
369 TYPEDEF: int D3DSAMPLERSTATETYPE
370 CONSTANT: D3DSAMP_ADDRESSU       1
371 CONSTANT: D3DSAMP_ADDRESSV       2
372 CONSTANT: D3DSAMP_ADDRESSW       3
373 CONSTANT: D3DSAMP_BORDERCOLOR    4
374 CONSTANT: D3DSAMP_MAGFILTER      5
375 CONSTANT: D3DSAMP_MINFILTER      6
376 CONSTANT: D3DSAMP_MIPFILTER      7
377 CONSTANT: D3DSAMP_MIPMAPLODBIAS  8
378 CONSTANT: D3DSAMP_MAXMIPLEVEL    9
379 CONSTANT: D3DSAMP_MAXANISOTROPY  10
380 CONSTANT: D3DSAMP_SRGBTEXTURE    11
381 CONSTANT: D3DSAMP_ELEMENTINDEX   12
382 CONSTANT: D3DSAMP_DMAPOFFSET     13
383 CONSTANT: D3DSAMP_FORCE_DWORD   HEX: 7fffffff
384
385 CONSTANT: D3DDMAPSAMPLER 256
386
387 CONSTANT: D3DVERTEXTEXTURESAMPLER0 257
388 CONSTANT: D3DVERTEXTEXTURESAMPLER1 258
389 CONSTANT: D3DVERTEXTEXTURESAMPLER2 259
390 CONSTANT: D3DVERTEXTEXTURESAMPLER3 260
391
392 CONSTANT: D3DTSS_TCI_PASSTHRU                             HEX: 00000000
393 CONSTANT: D3DTSS_TCI_CAMERASPACENORMAL                    HEX: 00010000
394 CONSTANT: D3DTSS_TCI_CAMERASPACEPOSITION                  HEX: 00020000
395 CONSTANT: D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          HEX: 00030000
396 CONSTANT: D3DTSS_TCI_SPHEREMAP                            HEX: 00040000
397
398 TYPEDEF: int D3DTEXTUREOP
399 CONSTANT: D3DTOP_DISABLE              1
400 CONSTANT: D3DTOP_SELECTARG1           2
401 CONSTANT: D3DTOP_SELECTARG2           3
402 CONSTANT: D3DTOP_MODULATE             4
403 CONSTANT: D3DTOP_MODULATE2X           5
404 CONSTANT: D3DTOP_MODULATE4X           6
405 CONSTANT: D3DTOP_ADD                  7
406 CONSTANT: D3DTOP_ADDSIGNED            8
407 CONSTANT: D3DTOP_ADDSIGNED2X          9
408 CONSTANT: D3DTOP_SUBTRACT             10
409 CONSTANT: D3DTOP_ADDSMOOTH            11
410 CONSTANT: D3DTOP_BLENDDIFFUSEALPHA    12
411 CONSTANT: D3DTOP_BLENDTEXTUREALPHA    13
412 CONSTANT: D3DTOP_BLENDFACTORALPHA     14
413 CONSTANT: D3DTOP_BLENDTEXTUREALPHAPM  15
414 CONSTANT: D3DTOP_BLENDCURRENTALPHA    16
415 CONSTANT: D3DTOP_PREMODULATE            17
416 CONSTANT: D3DTOP_MODULATEALPHA_ADDCOLOR 18
417 CONSTANT: D3DTOP_MODULATECOLOR_ADDALPHA 19
418 CONSTANT: D3DTOP_MODULATEINVALPHA_ADDCOLOR 20
419 CONSTANT: D3DTOP_MODULATEINVCOLOR_ADDALPHA 21
420 CONSTANT: D3DTOP_BUMPENVMAP           22
421 CONSTANT: D3DTOP_BUMPENVMAPLUMINANCE  23
422 CONSTANT: D3DTOP_DOTPRODUCT3          24
423 CONSTANT: D3DTOP_MULTIPLYADD          25
424 CONSTANT: D3DTOP_LERP                 26
425 CONSTANT: D3DTOP_FORCE_DWORD HEX: 7fffffff
426
427 CONSTANT: D3DTA_SELECTMASK        HEX: 0000000f
428 CONSTANT: D3DTA_DIFFUSE           HEX: 00000000
429 CONSTANT: D3DTA_CURRENT           HEX: 00000001
430 CONSTANT: D3DTA_TEXTURE           HEX: 00000002
431 CONSTANT: D3DTA_TFACTOR           HEX: 00000003
432 CONSTANT: D3DTA_SPECULAR          HEX: 00000004
433 CONSTANT: D3DTA_TEMP              HEX: 00000005
434 CONSTANT: D3DTA_CONSTANT          HEX: 00000006
435 CONSTANT: D3DTA_COMPLEMENT        HEX: 00000010
436 CONSTANT: D3DTA_ALPHAREPLICATE    HEX: 00000020
437
438 TYPEDEF: int D3DTEXTUREFILTERTYPE
439 CONSTANT: D3DTEXF_NONE            0
440 CONSTANT: D3DTEXF_POINT           1
441 CONSTANT: D3DTEXF_LINEAR          2
442 CONSTANT: D3DTEXF_ANISOTROPIC     3
443 CONSTANT: D3DTEXF_PYRAMIDALQUAD   6
444 CONSTANT: D3DTEXF_GAUSSIANQUAD    7
445 CONSTANT: D3DTEXF_CONVOLUTIONMONO 8
446 CONSTANT: D3DTEXF_FORCE_DWORD     HEX: 7fffffff
447
448 CONSTANT: D3DPV_DONOTCOPYDATA     1
449
450 CONSTANT: D3DFVF_RESERVED0        HEX: 001
451 CONSTANT: D3DFVF_POSITION_MASK    HEX: 400E
452 CONSTANT: D3DFVF_XYZ              HEX: 002
453 CONSTANT: D3DFVF_XYZRHW           HEX: 004
454 CONSTANT: D3DFVF_XYZB1            HEX: 006
455 CONSTANT: D3DFVF_XYZB2            HEX: 008
456 CONSTANT: D3DFVF_XYZB3            HEX: 00a
457 CONSTANT: D3DFVF_XYZB4            HEX: 00c
458 CONSTANT: D3DFVF_XYZB5            HEX: 00e
459 CONSTANT: D3DFVF_XYZW             HEX: 4002
460
461 CONSTANT: D3DFVF_NORMAL           HEX: 010
462 CONSTANT: D3DFVF_PSIZE            HEX: 020
463 CONSTANT: D3DFVF_DIFFUSE          HEX: 040
464 CONSTANT: D3DFVF_SPECULAR         HEX: 080
465
466 CONSTANT: D3DFVF_TEXCOUNT_MASK    HEX: f00
467 CONSTANT: D3DFVF_TEXCOUNT_SHIFT   8
468 CONSTANT: D3DFVF_TEX0             HEX: 000
469 CONSTANT: D3DFVF_TEX1             HEX: 100
470 CONSTANT: D3DFVF_TEX2             HEX: 200
471 CONSTANT: D3DFVF_TEX3             HEX: 300
472 CONSTANT: D3DFVF_TEX4             HEX: 400
473 CONSTANT: D3DFVF_TEX5             HEX: 500
474 CONSTANT: D3DFVF_TEX6             HEX: 600
475 CONSTANT: D3DFVF_TEX7             HEX: 700
476 CONSTANT: D3DFVF_TEX8             HEX: 800
477
478 CONSTANT: D3DFVF_LASTBETA_UBYTE4   HEX: 1000
479 CONSTANT: D3DFVF_LASTBETA_D3DCOLOR HEX: 8000
480
481 CONSTANT: D3DFVF_RESERVED2         HEX: 6000
482
483 TYPEDEF: int D3DDECLUSAGE
484 CONSTANT: D3DDECLUSAGE_POSITION     0
485 CONSTANT: D3DDECLUSAGE_BLENDWEIGHT  1
486 CONSTANT: D3DDECLUSAGE_BLENDINDICES 2
487 CONSTANT: D3DDECLUSAGE_NORMAL       3
488 CONSTANT: D3DDECLUSAGE_PSIZE        4
489 CONSTANT: D3DDECLUSAGE_TEXCOORD     5
490 CONSTANT: D3DDECLUSAGE_TANGENT      6
491 CONSTANT: D3DDECLUSAGE_BINORMAL     7
492 CONSTANT: D3DDECLUSAGE_TESSFACTOR   8
493 CONSTANT: D3DDECLUSAGE_POSITIONT    9
494 CONSTANT: D3DDECLUSAGE_COLOR        10
495 CONSTANT: D3DDECLUSAGE_FOG          11
496 CONSTANT: D3DDECLUSAGE_DEPTH        12
497 CONSTANT: D3DDECLUSAGE_SAMPLE       13
498
499 CONSTANT: MAXD3DDECLUSAGE         13
500 CONSTANT: MAXD3DDECLUSAGEINDEX    15
501 CONSTANT: MAXD3DDECLLENGTH        64
502
503 TYPEDEF: int D3DDECLMETHOD
504 C-ENUM:
505     D3DDECLMETHOD_DEFAULT
506     D3DDECLMETHOD_PARTIALU
507     D3DDECLMETHOD_PARTIALV
508     D3DDECLMETHOD_CROSSUV
509     D3DDECLMETHOD_UV
510     D3DDECLMETHOD_LOOKUP
511     D3DDECLMETHOD_LOOKUPPRESAMPLED ;
512
513 : MAXD3DDECLMETHOD ( -- n ) D3DDECLMETHOD_LOOKUPPRESAMPLED ; inline
514
515 TYPEDEF: int D3DDECLTYPE
516 CONSTANT: D3DDECLTYPE_FLOAT1    0
517 CONSTANT: D3DDECLTYPE_FLOAT2    1
518 CONSTANT: D3DDECLTYPE_FLOAT3    2
519 CONSTANT: D3DDECLTYPE_FLOAT4    3
520 CONSTANT: D3DDECLTYPE_D3DCOLOR  4
521 CONSTANT: D3DDECLTYPE_UBYTE4    5
522 CONSTANT: D3DDECLTYPE_SHORT2    6
523 CONSTANT: D3DDECLTYPE_SHORT4    7
524 CONSTANT: D3DDECLTYPE_UBYTE4N   8
525 CONSTANT: D3DDECLTYPE_SHORT2N   9
526 CONSTANT: D3DDECLTYPE_SHORT4N   10
527 CONSTANT: D3DDECLTYPE_USHORT2N  11
528 CONSTANT: D3DDECLTYPE_USHORT4N  12
529 CONSTANT: D3DDECLTYPE_UDEC3     13
530 CONSTANT: D3DDECLTYPE_DEC3N     14
531 CONSTANT: D3DDECLTYPE_FLOAT16_2 15
532 CONSTANT: D3DDECLTYPE_FLOAT16_4 16
533 CONSTANT: D3DDECLTYPE_UNUSED    17
534
535 : MAXD3DDECLTYPE ( -- n ) D3DDECLTYPE_UNUSED ; inline
536
537 STRUCT: D3DVERTEXELEMENT9
538     { Stream        WORD }
539     { Offset        WORD }
540     { Type          BYTE }
541     { Method        BYTE }
542     { Usage         BYTE }
543     { UsageIndex    BYTE } ;
544 TYPEDEF: D3DVERTEXELEMENT9* LPD3DVERTEXELEMENT9
545
546 CONSTANT: D3DDP_MAXTEXCOORD   8
547
548 CONSTANT: D3DSTREAMSOURCE_INDEXEDDATA  HEX: 40000000
549 CONSTANT: D3DSTREAMSOURCE_INSTANCEDATA HEX: 80000000
550
551 CONSTANT: D3DSI_OPCODE_MASK       HEX: 0000FFFF
552 CONSTANT: D3DSI_INSTLENGTH_MASK   HEX: 0F000000
553 CONSTANT: D3DSI_INSTLENGTH_SHIFT  24
554
555 TYPEDEF: int D3DSHADER_INSTRUCTION_OPCODE_TYPE
556 CONSTANT: D3DSIO_NOP          0
557 CONSTANT: D3DSIO_MOV          1
558 CONSTANT: D3DSIO_ADD          2
559 CONSTANT: D3DSIO_SUB          3
560 CONSTANT: D3DSIO_MAD          4
561 CONSTANT: D3DSIO_MUL          5
562 CONSTANT: D3DSIO_RCP          6
563 CONSTANT: D3DSIO_RSQ          7
564 CONSTANT: D3DSIO_DP3          8
565 CONSTANT: D3DSIO_DP4          9
566 CONSTANT: D3DSIO_MIN          10
567 CONSTANT: D3DSIO_MAX          11
568 CONSTANT: D3DSIO_SLT          12
569 CONSTANT: D3DSIO_SGE          13
570 CONSTANT: D3DSIO_EXP          14
571 CONSTANT: D3DSIO_LOG          15
572 CONSTANT: D3DSIO_LIT          16
573 CONSTANT: D3DSIO_DST          17
574 CONSTANT: D3DSIO_LRP          18
575 CONSTANT: D3DSIO_FRC          19
576 CONSTANT: D3DSIO_M4x4         20
577 CONSTANT: D3DSIO_M4x3         21
578 CONSTANT: D3DSIO_M3x4         22
579 CONSTANT: D3DSIO_M3x3         23
580 CONSTANT: D3DSIO_M3x2         24
581 CONSTANT: D3DSIO_CALL         25
582 CONSTANT: D3DSIO_CALLNZ       26
583 CONSTANT: D3DSIO_LOOP         27
584 CONSTANT: D3DSIO_RET          28
585 CONSTANT: D3DSIO_ENDLOOP      29
586 CONSTANT: D3DSIO_LABEL        30
587 CONSTANT: D3DSIO_DCL          31
588 CONSTANT: D3DSIO_POW          32
589 CONSTANT: D3DSIO_CRS          33
590 CONSTANT: D3DSIO_SGN          34
591 CONSTANT: D3DSIO_ABS          35
592 CONSTANT: D3DSIO_NRM          36
593 CONSTANT: D3DSIO_SINCOS       37
594 CONSTANT: D3DSIO_REP          38
595 CONSTANT: D3DSIO_ENDREP       39
596 CONSTANT: D3DSIO_IF           40
597 CONSTANT: D3DSIO_IFC          41
598 CONSTANT: D3DSIO_ELSE         42
599 CONSTANT: D3DSIO_ENDIF        43
600 CONSTANT: D3DSIO_BREAK        44
601 CONSTANT: D3DSIO_BREAKC       45
602 CONSTANT: D3DSIO_MOVA         46
603 CONSTANT: D3DSIO_DEFB         47
604 CONSTANT: D3DSIO_DEFI         48
605 CONSTANT: D3DSIO_TEXCOORD     64
606 CONSTANT: D3DSIO_TEXKILL      65
607 CONSTANT: D3DSIO_TEX          66
608 CONSTANT: D3DSIO_TEXBEM       67
609 CONSTANT: D3DSIO_TEXBEML      68
610 CONSTANT: D3DSIO_TEXREG2AR    69
611 CONSTANT: D3DSIO_TEXREG2GB    70
612 CONSTANT: D3DSIO_TEXM3x2PAD   71
613 CONSTANT: D3DSIO_TEXM3x2TEX   72
614 CONSTANT: D3DSIO_TEXM3x3PAD   73
615 CONSTANT: D3DSIO_TEXM3x3TEX   74
616 CONSTANT: D3DSIO_RESERVED0    75
617 CONSTANT: D3DSIO_TEXM3x3SPEC  76
618 CONSTANT: D3DSIO_TEXM3x3VSPEC 77
619 CONSTANT: D3DSIO_EXPP         78
620 CONSTANT: D3DSIO_LOGP         79
621 CONSTANT: D3DSIO_CND          80
622 CONSTANT: D3DSIO_DEF          81
623 CONSTANT: D3DSIO_TEXREG2RGB   82
624 CONSTANT: D3DSIO_TEXDP3TEX    83
625 CONSTANT: D3DSIO_TEXM3x2DEPTH 84
626 CONSTANT: D3DSIO_TEXDP3       85
627 CONSTANT: D3DSIO_TEXM3x3      86
628 CONSTANT: D3DSIO_TEXDEPTH     87
629 CONSTANT: D3DSIO_CMP          88
630 CONSTANT: D3DSIO_BEM          89
631 CONSTANT: D3DSIO_DP2ADD       90
632 CONSTANT: D3DSIO_DSX          91
633 CONSTANT: D3DSIO_DSY          92
634 CONSTANT: D3DSIO_TEXLDD       93
635 CONSTANT: D3DSIO_SETP         94
636 CONSTANT: D3DSIO_TEXLDL       95
637 CONSTANT: D3DSIO_BREAKP       96
638 CONSTANT: D3DSIO_PHASE        HEX: FFFD
639 CONSTANT: D3DSIO_COMMENT      HEX: FFFE
640 CONSTANT: D3DSIO_END          HEX: FFFF
641 CONSTANT: D3DSIO_FORCE_DWORD  HEX: 7fffffff
642
643 CONSTANT: D3DSI_COISSUE           HEX: 40000000
644
645 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_MASK  HEX: 00ff0000
646 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_SHIFT 16
647
648 : D3DSI_TEXLD_PROJECT ( -- n ) 1 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
649 : D3DSI_TEXLD_BIAS    ( -- n ) 2 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
650
651 TYPEDEF: int D3DSHADER_COMPARISON
652 CONSTANT: D3DSPC_RESERVED0 0
653 CONSTANT: D3DSPC_GT        1
654 CONSTANT: D3DSPC_EQ        2
655 CONSTANT: D3DSPC_GE        3
656 CONSTANT: D3DSPC_LT        4
657 CONSTANT: D3DSPC_NE        5
658 CONSTANT: D3DSPC_LE        6
659 CONSTANT: D3DSPC_RESERVED1 7  
660
661 CONSTANT: D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT
662 : D3DSHADER_COMPARISON_MASK ( -- n ) 7 D3DSHADER_COMPARISON_SHIFT shift ; inline
663
664 CONSTANT: D3DSHADER_INSTRUCTION_PREDICATED    HEX: 10000000
665
666 CONSTANT: D3DSP_DCL_USAGE_SHIFT 0
667 CONSTANT: D3DSP_DCL_USAGE_MASK  HEX: 0000000f
668
669 CONSTANT: D3DSP_DCL_USAGEINDEX_SHIFT 16
670 CONSTANT: D3DSP_DCL_USAGEINDEX_MASK  HEX: 000f0000
671
672 CONSTANT: D3DSP_TEXTURETYPE_SHIFT 27
673 CONSTANT: D3DSP_TEXTURETYPE_MASK  HEX: 78000000
674
675 TYPEDEF: int D3DSAMPLER_TEXTURE_TYPE
676 : D3DSTT_UNKNOWN ( -- n ) 0 D3DSP_TEXTURETYPE_SHIFT shift ; inline
677 : D3DSTT_2D      ( -- n ) 2 D3DSP_TEXTURETYPE_SHIFT shift ; inline
678 : D3DSTT_CUBE    ( -- n ) 3 D3DSP_TEXTURETYPE_SHIFT shift ; inline
679 : D3DSTT_VOLUME  ( -- n ) 4 D3DSP_TEXTURETYPE_SHIFT shift ; inline
680 CONSTANT: D3DSTT_FORCE_DWORD HEX: 7fffffff
681
682 CONSTANT: D3DSP_REGNUM_MASK       HEX: 000007FF
683
684 CONSTANT: D3DSP_WRITEMASK_0       HEX: 00010000
685 CONSTANT: D3DSP_WRITEMASK_1       HEX: 00020000
686 CONSTANT: D3DSP_WRITEMASK_2       HEX: 00040000
687 CONSTANT: D3DSP_WRITEMASK_3       HEX: 00080000
688 CONSTANT: D3DSP_WRITEMASK_ALL     HEX: 000F0000
689
690 CONSTANT: D3DSP_DSTMOD_SHIFT      20
691 CONSTANT: D3DSP_DSTMOD_MASK       HEX: 00F00000
692
693 : D3DSPDM_NONE             ( -- n ) 0 D3DSP_DSTMOD_SHIFT shift ; inline
694 : D3DSPDM_SATURATE         ( -- n ) 1 D3DSP_DSTMOD_SHIFT shift ; inline
695 : D3DSPDM_PARTIALPRECISION ( -- n ) 2 D3DSP_DSTMOD_SHIFT shift ; inline
696 : D3DSPDM_MSAMPCENTROID    ( -- n ) 4 D3DSP_DSTMOD_SHIFT shift ; inline
697
698 CONSTANT: D3DSP_DSTSHIFT_SHIFT    24
699 CONSTANT: D3DSP_DSTSHIFT_MASK     HEX: 0F000000
700
701 CONSTANT: D3DSP_REGTYPE_SHIFT     28
702 CONSTANT: D3DSP_REGTYPE_SHIFT2    8
703 CONSTANT: D3DSP_REGTYPE_MASK      HEX: 70000000
704 CONSTANT: D3DSP_REGTYPE_MASK2     HEX: 00001800
705
706 TYPEDEF: int D3DSHADER_PARAM_REGISTER_TYPE
707 CONSTANT: D3DSPR_TEMP           0
708 CONSTANT: D3DSPR_INPUT          1
709 CONSTANT: D3DSPR_CONST          2
710 CONSTANT: D3DSPR_ADDR           3
711 CONSTANT: D3DSPR_TEXTURE        3
712 CONSTANT: D3DSPR_RASTOUT        4
713 CONSTANT: D3DSPR_ATTROUT        5
714 CONSTANT: D3DSPR_TEXCRDOUT      6
715 CONSTANT: D3DSPR_OUTPUT         6
716 CONSTANT: D3DSPR_CONSTINT       7
717 CONSTANT: D3DSPR_COLOROUT       8
718 CONSTANT: D3DSPR_DEPTHOUT       9
719 CONSTANT: D3DSPR_SAMPLER        10
720 CONSTANT: D3DSPR_CONST2         11
721 CONSTANT: D3DSPR_CONST3         12
722 CONSTANT: D3DSPR_CONST4         13
723 CONSTANT: D3DSPR_CONSTBOOL      14
724 CONSTANT: D3DSPR_LOOP           15
725 CONSTANT: D3DSPR_TEMPFLOAT16    16
726 CONSTANT: D3DSPR_MISCTYPE       17
727 CONSTANT: D3DSPR_LABEL          18
728 CONSTANT: D3DSPR_PREDICATE      19
729 CONSTANT: D3DSPR_FORCE_DWORD  HEX: 7fffffff
730
731 TYPEDEF: int D3DSHADER_MISCTYPE_OFFSETS
732 CONSTANT: D3DSMO_POSITION   0
733 CONSTANT: D3DSMO_FACE       1
734
735 TYPEDEF: int D3DVS_RASTOUT_OFFSETS
736 CONSTANT: D3DSRO_POSITION   0
737 CONSTANT: D3DSRO_FOG        1
738 CONSTANT: D3DSRO_POINT_SIZE 2
739 CONSTANT: D3DSRO_FORCE_DWORD HEX: 7fffffff
740
741 CONSTANT: D3DVS_ADDRESSMODE_SHIFT 13
742 : D3DVS_ADDRESSMODE_MASK ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
743
744 TYPEDEF: int D3DVS_ADDRESSMODE_TYPE
745 : D3DVS_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DVS_ADDRESSMODE_SHIFT shift ; inline
746 : D3DVS_ADDRMODE_RELATIVE ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
747 CONSTANT: D3DVS_ADDRMODE_FORCE_DWORD HEX: 7fffffff
748
749 CONSTANT: D3DSHADER_ADDRESSMODE_SHIFT 13
750 : D3DSHADER_ADDRESSMODE_MASK ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
751
752 TYPEDEF: int D3DSHADER_ADDRESSMODE_TYPE
753 : D3DSHADER_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
754 : D3DSHADER_ADDRMODE_RELATIVE ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
755 CONSTANT: D3DSHADER_ADDRMODE_FORCE_DWORD HEX: 7fffffff
756
757 CONSTANT: D3DVS_SWIZZLE_SHIFT     16
758 CONSTANT: D3DVS_SWIZZLE_MASK      HEX: 00FF0000
759
760 : D3DVS_X_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT shift ; inline
761 : D3DVS_X_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT shift ; inline
762 : D3DVS_X_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT shift ; inline
763 : D3DVS_X_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT shift ; inline
764
765 : D3DVS_Y_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
766 : D3DVS_Y_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
767 : D3DVS_Y_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
768 : D3DVS_Y_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
769
770 : D3DVS_Z_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
771 : D3DVS_Z_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
772 : D3DVS_Z_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
773 : D3DVS_Z_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
774
775 : D3DVS_W_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
776 : D3DVS_W_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
777 : D3DVS_W_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
778 : D3DVS_W_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
779
780 : D3DVS_NOSWIZZLE ( -- n )
781     { D3DVS_X_X D3DVS_Y_Y D3DVS_Z_Z D3DVS_W_W } flags ; inline
782
783 CONSTANT: D3DSP_SWIZZLE_SHIFT     16
784 CONSTANT: D3DSP_SWIZZLE_MASK      HEX: 00FF0000
785 CONSTANT: D3DSP_SRCMOD_SHIFT      24
786 CONSTANT: D3DSP_SRCMOD_MASK       HEX: 0F000000
787
788 TYPEDEF: int D3DSHADER_PARAM_SRCMOD_TYPE
789 : D3DSPSM_NONE    ( -- n ) 0 D3DSP_SRCMOD_SHIFT shift ; inline
790 : D3DSPSM_NEG     ( -- n ) 1 D3DSP_SRCMOD_SHIFT shift ; inline
791 : D3DSPSM_BIAS    ( -- n ) 2 D3DSP_SRCMOD_SHIFT shift ; inline
792 : D3DSPSM_BIASNEG ( -- n ) 3 D3DSP_SRCMOD_SHIFT shift ; inline
793 : D3DSPSM_SIGN    ( -- n ) 4 D3DSP_SRCMOD_SHIFT shift ; inline
794 : D3DSPSM_SIGNNEG ( -- n ) 5 D3DSP_SRCMOD_SHIFT shift ; inline
795 : D3DSPSM_COMP    ( -- n ) 6 D3DSP_SRCMOD_SHIFT shift ; inline
796 : D3DSPSM_X2      ( -- n ) 7 D3DSP_SRCMOD_SHIFT shift ; inline
797 : D3DSPSM_X2NEG   ( -- n ) 8 D3DSP_SRCMOD_SHIFT shift ; inline
798 : D3DSPSM_DZ      ( -- n ) 9 D3DSP_SRCMOD_SHIFT shift ; inline
799 : D3DSPSM_DW      ( -- n ) 10 D3DSP_SRCMOD_SHIFT shift ; inline
800 : D3DSPSM_ABS     ( -- n ) 11 D3DSP_SRCMOD_SHIFT shift ; inline
801 : D3DSPSM_ABSNEG  ( -- n ) 12 D3DSP_SRCMOD_SHIFT shift ; inline
802 : D3DSPSM_NOT     ( -- n ) 13 D3DSP_SRCMOD_SHIFT shift ; inline
803 CONSTANT: D3DSPSM_FORCE_DWORD HEX: 7fffffff
804
805 : D3DPS_VERSION ( major minor -- n )
806     swap 8 shift bitor HEX: FFFF0000 bitor ; inline
807 : D3DVS_VERSION ( major minor -- n )
808     swap 8 shift bitor HEX: FFFF0000 bitor ; inline
809
810 : D3DSHADER_VERSION_MAJOR ( version -- n )
811     -8 shift HEX: FF bitand ; inline
812 : D3DSHADER_VERSION_MINOR ( version -- n )
813     HEX: FF bitand ; inline
814
815 CONSTANT: D3DSI_COMMENTSIZE_SHIFT 16
816 CONSTANT: D3DSI_COMMENTSIZE_MASK  HEX: 7FFF0000
817
818 CONSTANT: D3DPS_END()  HEX: 0000FFFF
819 CONSTANT: D3DVS_END()  HEX: 0000FFFF
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 HEX: 7fffffff
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 HEX: 7fffffff
833
834 TYPEDEF: int D3DPATCHEDGESTYLE
835 CONSTANT: D3DPATCHEDGE_DISCRETE    0
836 CONSTANT: D3DPATCHEDGE_CONTINUOUS  1
837 CONSTANT: D3DPATCHEDGE_FORCE_DWORD HEX: 7fffffff
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   HEX: 7fffffff
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 HEX: 7fffffff
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     HEX: 7fffffff
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  HEX: 7fffffff
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     HEX: 7fffffff
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                 HEX: 55595659
935 CONSTANT: D3DFMT_R8G8_B8G8            HEX: 52474247
936 CONSTANT: D3DFMT_YUY2                 HEX: 59555932
937 CONSTANT: D3DFMT_G8R8_G8B8            HEX: 47524742
938 CONSTANT: D3DFMT_DXT1                 HEX: 44585431
939 CONSTANT: D3DFMT_DXT2                 HEX: 44585432
940 CONSTANT: D3DFMT_DXT3                 HEX: 44585433
941 CONSTANT: D3DFMT_DXT4                 HEX: 44585434
942 CONSTANT: D3DFMT_DXT5                 HEX: 44585435
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         HEX: 4d455431
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          HEX: 7fffffff
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       HEX: 7fffffff
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             HEX: 7fffffff
998
999 CONSTANT: D3DPRESENT_RATE_DEFAULT         HEX: 00000000
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      HEX: 00000001
1018 CONSTANT: D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL     HEX: 00000002
1019 CONSTANT: D3DPRESENTFLAG_DEVICECLIP               HEX: 00000004
1020 CONSTANT: D3DPRESENTFLAG_VIDEO                    HEX: 00000010
1021
1022 CONSTANT: D3DPRESENTFLAG_NOAUTOROTATE                    HEX: 00000020
1023 CONSTANT: D3DPRESENTFLAG_UNPRUNEDMODE                    HEX: 00000040
1024 CONSTANT: D3DPRESENTFLAG_OVERLAY_LIMITEDRGB              HEX: 00000080
1025 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_BT709             HEX: 00000100
1026 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC             HEX: 00000200
1027 CONSTANT: D3DPRESENTFLAG_RESTRICTED_CONTENT              HEX: 00000400
1028 CONSTANT: D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00000800
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  HEX: 7fffffff
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            HEX: 7fffffff
1050
1051 CONSTANT: D3DUSAGE_RENDERTARGET       HEX: 00000001
1052 CONSTANT: D3DUSAGE_DEPTHSTENCIL       HEX: 00000002
1053 CONSTANT: D3DUSAGE_DYNAMIC            HEX: 00000200
1054
1055 CONSTANT: D3DUSAGE_NONSECURE          HEX: 00800000
1056
1057 CONSTANT: D3DUSAGE_AUTOGENMIPMAP      HEX: 00000400
1058 CONSTANT: D3DUSAGE_DMAP               HEX: 00004000
1059
1060 CONSTANT: D3DUSAGE_QUERY_LEGACYBUMPMAP            HEX: 00008000
1061 CONSTANT: D3DUSAGE_QUERY_SRGBREAD                 HEX: 00010000
1062 CONSTANT: D3DUSAGE_QUERY_FILTER                   HEX: 00020000
1063 CONSTANT: D3DUSAGE_QUERY_SRGBWRITE                HEX: 00040000
1064 CONSTANT: D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING HEX: 00080000
1065 CONSTANT: D3DUSAGE_QUERY_VERTEXTEXTURE            HEX: 00100000
1066 CONSTANT: D3DUSAGE_QUERY_WRAPANDMIP             HEX: 00200000
1067
1068 CONSTANT: D3DUSAGE_WRITEONLY          HEX: 00000008
1069 CONSTANT: D3DUSAGE_SOFTWAREPROCESSING HEX: 00000010
1070 CONSTANT: D3DUSAGE_DONOTCLIP          HEX: 00000020
1071 CONSTANT: D3DUSAGE_POINTS             HEX: 00000040
1072 CONSTANT: D3DUSAGE_RTPATCHES          HEX: 00000080
1073 CONSTANT: D3DUSAGE_NPATCHES           HEX: 00000100
1074
1075 CONSTANT: D3DUSAGE_TEXTAPI                         HEX: 10000000
1076 CONSTANT: D3DUSAGE_RESTRICTED_CONTENT              HEX: 00000800
1077 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE        HEX: 00002000
1078 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00001000
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    HEX: 7fffffff
1088
1089 CONSTANT: D3DLOCK_READONLY           HEX: 00000010
1090 CONSTANT: D3DLOCK_DISCARD            HEX: 00002000
1091 CONSTANT: D3DLOCK_NOOVERWRITE        HEX: 00001000
1092 CONSTANT: D3DLOCK_NOSYSLOCK          HEX: 00000800
1093 CONSTANT: D3DLOCK_DONOTWAIT          HEX: 00004000
1094
1095 CONSTANT: D3DLOCK_NO_DIRTY_UPDATE     HEX: 00008000
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     HEX: 7fffffff
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    HEX: 7fffffff
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 HEX: FFFF
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       HEX: 28000000
1334 CONSTANT: D3D9_RESOURCE_PRIORITY_LOW           HEX: 50000000
1335 CONSTANT: D3D9_RESOURCE_PRIORITY_NORMAL        HEX: 78000000
1336 CONSTANT: D3D9_RESOURCE_PRIORITY_HIGH          HEX: a0000000
1337 CONSTANT: D3D9_RESOURCE_PRIORITY_MAXIMUM       HEX: c8000000
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                                     HEX: 00000000
1435 CONSTANT: D3DBUSTYPE_PCI                                       HEX: 00000001
1436 CONSTANT: D3DBUSTYPE_PCIX                                      HEX: 00000002
1437 CONSTANT: D3DBUSTYPE_PCIEXPRESS                                HEX: 00000003
1438 CONSTANT: D3DBUSTYPE_AGP                                       HEX: 00000004
1439 CONSTANT: D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET                HEX: 00010000
1440 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP   HEX: 00020000
1441 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET HEX: 00030000
1442 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR         HEX: 00040000
1443 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE HEX: 00050000
1444 CONSTANT: D3DBUSIMPL_MODIFIER_NON_STANDARD                     HEX: 80000000
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 } ;