]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3d9types/d3d9types.factor
Temporary fix for directx bindings until I revert flags{ patch or parsing words get...
[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        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 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    HEX: 7fffffff
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            HEX: 00000001
106 CONSTANT: D3DCLEAR_ZBUFFER           HEX: 00000002
107 CONSTANT: D3DCLEAR_STENCIL           HEX: 00000004
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        HEX: 7fffffff
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         HEX: 7fffffff
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        HEX: 7fffffff
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      HEX: 7fffffff
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     HEX: 7fffffff
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         HEX: 7fffffff
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          HEX: 7fffffff
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    HEX: 7fffffff
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          HEX: 7fffffff
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           HEX: 7fffffff
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           HEX: 7fffffff
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   HEX: 7fffffff
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               HEX: 7fffffff
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      HEX: 7fffffff
333
334 CONSTANT: D3DRENDERSTATE_WRAPBIAS                 128
335
336 CONSTANT: D3DWRAP_U   HEX: 00000001
337 CONSTANT: D3DWRAP_V   HEX: 00000002
338 CONSTANT: D3DWRAP_W   HEX: 00000004
339
340 CONSTANT: D3DWRAPCOORD_0   HEX: 00000001
341 CONSTANT: D3DWRAPCOORD_1   HEX: 00000002
342 CONSTANT: D3DWRAPCOORD_2   HEX: 00000004
343 CONSTANT: D3DWRAPCOORD_3   HEX: 00000008
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   HEX: 7fffffff
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   HEX: 7fffffff
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                             HEX: 00000000
395 CONSTANT: D3DTSS_TCI_CAMERASPACENORMAL                    HEX: 00010000
396 CONSTANT: D3DTSS_TCI_CAMERASPACEPOSITION                  HEX: 00020000
397 CONSTANT: D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          HEX: 00030000
398 CONSTANT: D3DTSS_TCI_SPHEREMAP                            HEX: 00040000
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 HEX: 7fffffff
428
429 CONSTANT: D3DTA_SELECTMASK        HEX: 0000000f
430 CONSTANT: D3DTA_DIFFUSE           HEX: 00000000
431 CONSTANT: D3DTA_CURRENT           HEX: 00000001
432 CONSTANT: D3DTA_TEXTURE           HEX: 00000002
433 CONSTANT: D3DTA_TFACTOR           HEX: 00000003
434 CONSTANT: D3DTA_SPECULAR          HEX: 00000004
435 CONSTANT: D3DTA_TEMP              HEX: 00000005
436 CONSTANT: D3DTA_CONSTANT          HEX: 00000006
437 CONSTANT: D3DTA_COMPLEMENT        HEX: 00000010
438 CONSTANT: D3DTA_ALPHAREPLICATE    HEX: 00000020
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     HEX: 7fffffff
449
450 CONSTANT: D3DPV_DONOTCOPYDATA     1
451
452 CONSTANT: D3DFVF_RESERVED0        HEX: 001
453 CONSTANT: D3DFVF_POSITION_MASK    HEX: 400E
454 CONSTANT: D3DFVF_XYZ              HEX: 002
455 CONSTANT: D3DFVF_XYZRHW           HEX: 004
456 CONSTANT: D3DFVF_XYZB1            HEX: 006
457 CONSTANT: D3DFVF_XYZB2            HEX: 008
458 CONSTANT: D3DFVF_XYZB3            HEX: 00a
459 CONSTANT: D3DFVF_XYZB4            HEX: 00c
460 CONSTANT: D3DFVF_XYZB5            HEX: 00e
461 CONSTANT: D3DFVF_XYZW             HEX: 4002
462
463 CONSTANT: D3DFVF_NORMAL           HEX: 010
464 CONSTANT: D3DFVF_PSIZE            HEX: 020
465 CONSTANT: D3DFVF_DIFFUSE          HEX: 040
466 CONSTANT: D3DFVF_SPECULAR         HEX: 080
467
468 CONSTANT: D3DFVF_TEXCOUNT_MASK    HEX: f00
469 CONSTANT: D3DFVF_TEXCOUNT_SHIFT   8
470 CONSTANT: D3DFVF_TEX0             HEX: 000
471 CONSTANT: D3DFVF_TEX1             HEX: 100
472 CONSTANT: D3DFVF_TEX2             HEX: 200
473 CONSTANT: D3DFVF_TEX3             HEX: 300
474 CONSTANT: D3DFVF_TEX4             HEX: 400
475 CONSTANT: D3DFVF_TEX5             HEX: 500
476 CONSTANT: D3DFVF_TEX6             HEX: 600
477 CONSTANT: D3DFVF_TEX7             HEX: 700
478 CONSTANT: D3DFVF_TEX8             HEX: 800
479
480 CONSTANT: D3DFVF_LASTBETA_UBYTE4   HEX: 1000
481 CONSTANT: D3DFVF_LASTBETA_D3DCOLOR HEX: 8000
482
483 CONSTANT: D3DFVF_RESERVED2         HEX: 6000
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 TYPEDEF: int D3DDECLMETHOD
506 C-ENUM:
507     D3DDECLMETHOD_DEFAULT
508     D3DDECLMETHOD_PARTIALU
509     D3DDECLMETHOD_PARTIALV
510     D3DDECLMETHOD_CROSSUV
511     D3DDECLMETHOD_UV
512     D3DDECLMETHOD_LOOKUP
513     D3DDECLMETHOD_LOOKUPPRESAMPLED ;
514
515 : MAXD3DDECLMETHOD ( -- n ) D3DDECLMETHOD_LOOKUPPRESAMPLED ; inline
516
517 TYPEDEF: int D3DDECLTYPE
518 CONSTANT: D3DDECLTYPE_FLOAT1    0
519 CONSTANT: D3DDECLTYPE_FLOAT2    1
520 CONSTANT: D3DDECLTYPE_FLOAT3    2
521 CONSTANT: D3DDECLTYPE_FLOAT4    3
522 CONSTANT: D3DDECLTYPE_D3DCOLOR  4
523 CONSTANT: D3DDECLTYPE_UBYTE4    5
524 CONSTANT: D3DDECLTYPE_SHORT2    6
525 CONSTANT: D3DDECLTYPE_SHORT4    7
526 CONSTANT: D3DDECLTYPE_UBYTE4N   8
527 CONSTANT: D3DDECLTYPE_SHORT2N   9
528 CONSTANT: D3DDECLTYPE_SHORT4N   10
529 CONSTANT: D3DDECLTYPE_USHORT2N  11
530 CONSTANT: D3DDECLTYPE_USHORT4N  12
531 CONSTANT: D3DDECLTYPE_UDEC3     13
532 CONSTANT: D3DDECLTYPE_DEC3N     14
533 CONSTANT: D3DDECLTYPE_FLOAT16_2 15
534 CONSTANT: D3DDECLTYPE_FLOAT16_4 16
535 CONSTANT: D3DDECLTYPE_UNUSED    17
536
537 : MAXD3DDECLTYPE ( -- n ) D3DDECLTYPE_UNUSED ; inline
538
539 STRUCT: D3DVERTEXELEMENT9
540     { Stream        WORD }
541     { Offset        WORD }
542     { Type          BYTE }
543     { Method        BYTE }
544     { Usage         BYTE }
545     { UsageIndex    BYTE } ;
546 TYPEDEF: D3DVERTEXELEMENT9* LPD3DVERTEXELEMENT9
547
548 CONSTANT: D3DDP_MAXTEXCOORD   8
549
550 CONSTANT: D3DSTREAMSOURCE_INDEXEDDATA  HEX: 40000000
551 CONSTANT: D3DSTREAMSOURCE_INSTANCEDATA HEX: 80000000
552
553 CONSTANT: D3DSI_OPCODE_MASK       HEX: 0000FFFF
554 CONSTANT: D3DSI_INSTLENGTH_MASK   HEX: 0F000000
555 CONSTANT: D3DSI_INSTLENGTH_SHIFT  24
556
557 TYPEDEF: int D3DSHADER_INSTRUCTION_OPCODE_TYPE
558 CONSTANT: D3DSIO_NOP          0
559 CONSTANT: D3DSIO_MOV          1
560 CONSTANT: D3DSIO_ADD          2
561 CONSTANT: D3DSIO_SUB          3
562 CONSTANT: D3DSIO_MAD          4
563 CONSTANT: D3DSIO_MUL          5
564 CONSTANT: D3DSIO_RCP          6
565 CONSTANT: D3DSIO_RSQ          7
566 CONSTANT: D3DSIO_DP3          8
567 CONSTANT: D3DSIO_DP4          9
568 CONSTANT: D3DSIO_MIN          10
569 CONSTANT: D3DSIO_MAX          11
570 CONSTANT: D3DSIO_SLT          12
571 CONSTANT: D3DSIO_SGE          13
572 CONSTANT: D3DSIO_EXP          14
573 CONSTANT: D3DSIO_LOG          15
574 CONSTANT: D3DSIO_LIT          16
575 CONSTANT: D3DSIO_DST          17
576 CONSTANT: D3DSIO_LRP          18
577 CONSTANT: D3DSIO_FRC          19
578 CONSTANT: D3DSIO_M4x4         20
579 CONSTANT: D3DSIO_M4x3         21
580 CONSTANT: D3DSIO_M3x4         22
581 CONSTANT: D3DSIO_M3x3         23
582 CONSTANT: D3DSIO_M3x2         24
583 CONSTANT: D3DSIO_CALL         25
584 CONSTANT: D3DSIO_CALLNZ       26
585 CONSTANT: D3DSIO_LOOP         27
586 CONSTANT: D3DSIO_RET          28
587 CONSTANT: D3DSIO_ENDLOOP      29
588 CONSTANT: D3DSIO_LABEL        30
589 CONSTANT: D3DSIO_DCL          31
590 CONSTANT: D3DSIO_POW          32
591 CONSTANT: D3DSIO_CRS          33
592 CONSTANT: D3DSIO_SGN          34
593 CONSTANT: D3DSIO_ABS          35
594 CONSTANT: D3DSIO_NRM          36
595 CONSTANT: D3DSIO_SINCOS       37
596 CONSTANT: D3DSIO_REP          38
597 CONSTANT: D3DSIO_ENDREP       39
598 CONSTANT: D3DSIO_IF           40
599 CONSTANT: D3DSIO_IFC          41
600 CONSTANT: D3DSIO_ELSE         42
601 CONSTANT: D3DSIO_ENDIF        43
602 CONSTANT: D3DSIO_BREAK        44
603 CONSTANT: D3DSIO_BREAKC       45
604 CONSTANT: D3DSIO_MOVA         46
605 CONSTANT: D3DSIO_DEFB         47
606 CONSTANT: D3DSIO_DEFI         48
607 CONSTANT: D3DSIO_TEXCOORD     64
608 CONSTANT: D3DSIO_TEXKILL      65
609 CONSTANT: D3DSIO_TEX          66
610 CONSTANT: D3DSIO_TEXBEM       67
611 CONSTANT: D3DSIO_TEXBEML      68
612 CONSTANT: D3DSIO_TEXREG2AR    69
613 CONSTANT: D3DSIO_TEXREG2GB    70
614 CONSTANT: D3DSIO_TEXM3x2PAD   71
615 CONSTANT: D3DSIO_TEXM3x2TEX   72
616 CONSTANT: D3DSIO_TEXM3x3PAD   73
617 CONSTANT: D3DSIO_TEXM3x3TEX   74
618 CONSTANT: D3DSIO_RESERVED0    75
619 CONSTANT: D3DSIO_TEXM3x3SPEC  76
620 CONSTANT: D3DSIO_TEXM3x3VSPEC 77
621 CONSTANT: D3DSIO_EXPP         78
622 CONSTANT: D3DSIO_LOGP         79
623 CONSTANT: D3DSIO_CND          80
624 CONSTANT: D3DSIO_DEF          81
625 CONSTANT: D3DSIO_TEXREG2RGB   82
626 CONSTANT: D3DSIO_TEXDP3TEX    83
627 CONSTANT: D3DSIO_TEXM3x2DEPTH 84
628 CONSTANT: D3DSIO_TEXDP3       85
629 CONSTANT: D3DSIO_TEXM3x3      86
630 CONSTANT: D3DSIO_TEXDEPTH     87
631 CONSTANT: D3DSIO_CMP          88
632 CONSTANT: D3DSIO_BEM          89
633 CONSTANT: D3DSIO_DP2ADD       90
634 CONSTANT: D3DSIO_DSX          91
635 CONSTANT: D3DSIO_DSY          92
636 CONSTANT: D3DSIO_TEXLDD       93
637 CONSTANT: D3DSIO_SETP         94
638 CONSTANT: D3DSIO_TEXLDL       95
639 CONSTANT: D3DSIO_BREAKP       96
640 CONSTANT: D3DSIO_PHASE        HEX: FFFD
641 CONSTANT: D3DSIO_COMMENT      HEX: FFFE
642 CONSTANT: D3DSIO_END          HEX: FFFF
643 CONSTANT: D3DSIO_FORCE_DWORD  HEX: 7fffffff
644
645 CONSTANT: D3DSI_COISSUE           HEX: 40000000
646
647 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_MASK  HEX: 00ff0000
648 CONSTANT: D3DSP_OPCODESPECIFICCONTROL_SHIFT 16
649
650 : D3DSI_TEXLD_PROJECT ( -- n ) 1 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
651 : D3DSI_TEXLD_BIAS    ( -- n ) 2 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
652
653 TYPEDEF: int D3DSHADER_COMPARISON
654 CONSTANT: D3DSPC_RESERVED0 0
655 CONSTANT: D3DSPC_GT        1
656 CONSTANT: D3DSPC_EQ        2
657 CONSTANT: D3DSPC_GE        3
658 CONSTANT: D3DSPC_LT        4
659 CONSTANT: D3DSPC_NE        5
660 CONSTANT: D3DSPC_LE        6
661 CONSTANT: D3DSPC_RESERVED1 7  
662
663 CONSTANT: D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT
664 : D3DSHADER_COMPARISON_MASK ( -- n ) 7 D3DSHADER_COMPARISON_SHIFT shift ; inline
665
666 CONSTANT: D3DSHADER_INSTRUCTION_PREDICATED    HEX: 10000000
667
668 CONSTANT: D3DSP_DCL_USAGE_SHIFT 0
669 CONSTANT: D3DSP_DCL_USAGE_MASK  HEX: 0000000f
670
671 CONSTANT: D3DSP_DCL_USAGEINDEX_SHIFT 16
672 CONSTANT: D3DSP_DCL_USAGEINDEX_MASK  HEX: 000f0000
673
674 CONSTANT: D3DSP_TEXTURETYPE_SHIFT 27
675 CONSTANT: D3DSP_TEXTURETYPE_MASK  HEX: 78000000
676
677 TYPEDEF: int D3DSAMPLER_TEXTURE_TYPE
678 : D3DSTT_UNKNOWN ( -- n ) 0 D3DSP_TEXTURETYPE_SHIFT shift ; inline
679 : D3DSTT_2D      ( -- n ) 2 D3DSP_TEXTURETYPE_SHIFT shift ; inline
680 : D3DSTT_CUBE    ( -- n ) 3 D3DSP_TEXTURETYPE_SHIFT shift ; inline
681 : D3DSTT_VOLUME  ( -- n ) 4 D3DSP_TEXTURETYPE_SHIFT shift ; inline
682 CONSTANT: D3DSTT_FORCE_DWORD HEX: 7fffffff
683
684 CONSTANT: D3DSP_REGNUM_MASK       HEX: 000007FF
685
686 CONSTANT: D3DSP_WRITEMASK_0       HEX: 00010000
687 CONSTANT: D3DSP_WRITEMASK_1       HEX: 00020000
688 CONSTANT: D3DSP_WRITEMASK_2       HEX: 00040000
689 CONSTANT: D3DSP_WRITEMASK_3       HEX: 00080000
690 CONSTANT: D3DSP_WRITEMASK_ALL     HEX: 000F0000
691
692 CONSTANT: D3DSP_DSTMOD_SHIFT      20
693 CONSTANT: D3DSP_DSTMOD_MASK       HEX: 00F00000
694
695 : D3DSPDM_NONE             ( -- n ) 0 D3DSP_DSTMOD_SHIFT shift ; inline
696 : D3DSPDM_SATURATE         ( -- n ) 1 D3DSP_DSTMOD_SHIFT shift ; inline
697 : D3DSPDM_PARTIALPRECISION ( -- n ) 2 D3DSP_DSTMOD_SHIFT shift ; inline
698 : D3DSPDM_MSAMPCENTROID    ( -- n ) 4 D3DSP_DSTMOD_SHIFT shift ; inline
699
700 CONSTANT: D3DSP_DSTSHIFT_SHIFT    24
701 CONSTANT: D3DSP_DSTSHIFT_MASK     HEX: 0F000000
702
703 CONSTANT: D3DSP_REGTYPE_SHIFT     28
704 CONSTANT: D3DSP_REGTYPE_SHIFT2    8
705 CONSTANT: D3DSP_REGTYPE_MASK      HEX: 70000000
706 CONSTANT: D3DSP_REGTYPE_MASK2     HEX: 00001800
707
708 TYPEDEF: int D3DSHADER_PARAM_REGISTER_TYPE
709 CONSTANT: D3DSPR_TEMP           0
710 CONSTANT: D3DSPR_INPUT          1
711 CONSTANT: D3DSPR_CONST          2
712 CONSTANT: D3DSPR_ADDR           3
713 CONSTANT: D3DSPR_TEXTURE        3
714 CONSTANT: D3DSPR_RASTOUT        4
715 CONSTANT: D3DSPR_ATTROUT        5
716 CONSTANT: D3DSPR_TEXCRDOUT      6
717 CONSTANT: D3DSPR_OUTPUT         6
718 CONSTANT: D3DSPR_CONSTINT       7
719 CONSTANT: D3DSPR_COLOROUT       8
720 CONSTANT: D3DSPR_DEPTHOUT       9
721 CONSTANT: D3DSPR_SAMPLER        10
722 CONSTANT: D3DSPR_CONST2         11
723 CONSTANT: D3DSPR_CONST3         12
724 CONSTANT: D3DSPR_CONST4         13
725 CONSTANT: D3DSPR_CONSTBOOL      14
726 CONSTANT: D3DSPR_LOOP           15
727 CONSTANT: D3DSPR_TEMPFLOAT16    16
728 CONSTANT: D3DSPR_MISCTYPE       17
729 CONSTANT: D3DSPR_LABEL          18
730 CONSTANT: D3DSPR_PREDICATE      19
731 CONSTANT: D3DSPR_FORCE_DWORD  HEX: 7fffffff
732
733 TYPEDEF: int D3DSHADER_MISCTYPE_OFFSETS
734 CONSTANT: D3DSMO_POSITION   0
735 CONSTANT: D3DSMO_FACE       1
736
737 TYPEDEF: int D3DVS_RASTOUT_OFFSETS
738 CONSTANT: D3DSRO_POSITION   0
739 CONSTANT: D3DSRO_FOG        1
740 CONSTANT: D3DSRO_POINT_SIZE 2
741 CONSTANT: D3DSRO_FORCE_DWORD HEX: 7fffffff
742
743 CONSTANT: D3DVS_ADDRESSMODE_SHIFT 13
744 : D3DVS_ADDRESSMODE_MASK ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
745
746 TYPEDEF: int D3DVS_ADDRESSMODE_TYPE
747 : D3DVS_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DVS_ADDRESSMODE_SHIFT shift ; inline
748 : D3DVS_ADDRMODE_RELATIVE ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
749 CONSTANT: D3DVS_ADDRMODE_FORCE_DWORD HEX: 7fffffff
750
751 CONSTANT: D3DSHADER_ADDRESSMODE_SHIFT 13
752 : D3DSHADER_ADDRESSMODE_MASK ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
753
754 TYPEDEF: int D3DSHADER_ADDRESSMODE_TYPE
755 : D3DSHADER_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
756 : D3DSHADER_ADDRMODE_RELATIVE ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
757 CONSTANT: D3DSHADER_ADDRMODE_FORCE_DWORD HEX: 7fffffff
758
759 CONSTANT: D3DVS_SWIZZLE_SHIFT     16
760 CONSTANT: D3DVS_SWIZZLE_MASK      HEX: 00FF0000
761
762 CONSTANT: D3DVS_X_X $[ 0 16 shift ]
763 CONSTANT: D3DVS_X_Y $[ 1 16 shift ]
764 CONSTANT: D3DVS_X_Z $[ 2 16 shift ]
765 CONSTANT: D3DVS_X_W $[ 3 16 shift ]
766
767 CONSTANT: D3DVS_Y_X $[ 0 16 2 + shift ]
768 CONSTANT: D3DVS_Y_Y $[ 1 16 2 + shift ]
769 CONSTANT: D3DVS_Y_Z $[ 2 16 2 + shift ]
770 CONSTANT: D3DVS_Y_W $[ 3 16 2 + shift ]
771
772 CONSTANT: D3DVS_Z_X $[ 0 16 4 + shift ]
773 CONSTANT: D3DVS_Z_Y $[ 1 16 4 + shift ]
774 CONSTANT: D3DVS_Z_Z $[ 2 16 4 + shift ]
775 CONSTANT: D3DVS_Z_W $[ 3 16 4 + shift ]
776
777 CONSTANT: D3DVS_W_X $[ 0 16 6 + shift ]
778 CONSTANT: D3DVS_W_Y $[ 1 16 6 + shift ]
779 CONSTANT: D3DVS_W_Z $[ 2 16 6 + shift ]
780 CONSTANT: D3DVS_W_W $[ 3 16 6 + shift ]
781
782 CONSTANT: D3DVS_NOSWIZZLE flags{ D3DVS_X_X D3DVS_Y_Y D3DVS_Z_Z D3DVS_W_W }
783
784 CONSTANT: D3DSP_SWIZZLE_SHIFT     16
785 CONSTANT: D3DSP_SWIZZLE_MASK      HEX: 00FF0000
786 CONSTANT: D3DSP_SRCMOD_SHIFT      24
787 CONSTANT: D3DSP_SRCMOD_MASK       HEX: 0F000000
788
789 TYPEDEF: int D3DSHADER_PARAM_SRCMOD_TYPE
790 CONSTANT: D3DSPSM_NONE    $[ 0 24 shift ]
791 CONSTANT: D3DSPSM_NEG     $[ 1 24 shift ]
792 CONSTANT: D3DSPSM_BIAS    $[ 2 24 shift ]
793 CONSTANT: D3DSPSM_BIASNEG $[ 3 24 shift ]
794 CONSTANT: D3DSPSM_SIGN    $[ 4 24 shift ]
795 CONSTANT: D3DSPSM_SIGNNEG $[ 5 24 shift ]
796 CONSTANT: D3DSPSM_COMP    $[ 6 24 shift ]
797 CONSTANT: D3DSPSM_X2      $[ 7 24 shift ]
798 CONSTANT: D3DSPSM_X2NEG   $[ 8 24 shift ]
799 CONSTANT: D3DSPSM_DZ      $[ 9 24 shift ]
800 CONSTANT: D3DSPSM_DW      $[ 10 24 shift ]
801 CONSTANT: D3DSPSM_ABS     $[ 11 24 shift ]
802 CONSTANT: D3DSPSM_ABSNEG  $[ 12 24 shift ]
803 CONSTANT: D3DSPSM_NOT     $[ 13 24 shift ]
804 CONSTANT: D3DSPSM_FORCE_DWORD HEX: 7fffffff
805
806 : D3DPS_VERSION ( major minor -- n )
807     swap 8 shift bitor HEX: FFFF0000 bitor ; inline
808 : D3DVS_VERSION ( major minor -- n )
809     swap 8 shift bitor HEX: FFFF0000 bitor ; inline
810
811 : D3DSHADER_VERSION_MAJOR ( version -- n )
812     -8 shift HEX: FF bitand ; inline
813 : D3DSHADER_VERSION_MINOR ( version -- n )
814     HEX: FF bitand ; inline
815
816 CONSTANT: D3DSI_COMMENTSIZE_SHIFT 16
817 CONSTANT: D3DSI_COMMENTSIZE_MASK  HEX: 7FFF0000
818
819 CONSTANT: D3DPS_END()  HEX: 0000FFFF
820 CONSTANT: D3DVS_END()  HEX: 0000FFFF
821
822 TYPEDEF: int D3DBASISTYPE
823 CONSTANT: D3DBASIS_BEZIER      0
824 CONSTANT: D3DBASIS_BSPLINE     1
825 CONSTANT: D3DBASIS_CATMULL_ROM 2
826 CONSTANT: D3DBASIS_FORCE_DWORD HEX: 7fffffff
827
828 TYPEDEF: int D3DDEGREETYPE
829 CONSTANT: D3DDEGREE_LINEAR      1
830 CONSTANT: D3DDEGREE_QUADRATIC   2
831 CONSTANT: D3DDEGREE_CUBIC       3
832 CONSTANT: D3DDEGREE_QUINTIC     5
833 CONSTANT: D3DDEGREE_FORCE_DWORD HEX: 7fffffff
834
835 TYPEDEF: int D3DPATCHEDGESTYLE
836 CONSTANT: D3DPATCHEDGE_DISCRETE    0
837 CONSTANT: D3DPATCHEDGE_CONTINUOUS  1
838 CONSTANT: D3DPATCHEDGE_FORCE_DWORD HEX: 7fffffff
839
840 TYPEDEF: int D3DSTATEBLOCKTYPE
841 CONSTANT: D3DSBT_ALL           1
842 CONSTANT: D3DSBT_PIXELSTATE    2
843 CONSTANT: D3DSBT_VERTEXSTATE   3
844 CONSTANT: D3DSBT_FORCE_DWORD   HEX: 7fffffff
845
846 TYPEDEF: int D3DVERTEXBLENDFLAGS
847 CONSTANT: D3DVBF_DISABLE  0
848 CONSTANT: D3DVBF_1WEIGHTS 1
849 CONSTANT: D3DVBF_2WEIGHTS 2
850 CONSTANT: D3DVBF_3WEIGHTS 3
851 CONSTANT: D3DVBF_TWEENING 255
852 CONSTANT: D3DVBF_0WEIGHTS 256
853 CONSTANT: D3DVBF_FORCE_DWORD HEX: 7fffffff
854
855 TYPEDEF: int D3DTEXTURETRANSFORMFLAGS
856 CONSTANT: D3DTTFF_DISABLE         0
857 CONSTANT: D3DTTFF_COUNT1          1
858 CONSTANT: D3DTTFF_COUNT2          2
859 CONSTANT: D3DTTFF_COUNT3          3
860 CONSTANT: D3DTTFF_COUNT4          4
861 CONSTANT: D3DTTFF_PROJECTED       256
862 CONSTANT: D3DTTFF_FORCE_DWORD     HEX: 7fffffff
863
864 CONSTANT: D3DFVF_TEXTUREFORMAT2 0
865 CONSTANT: D3DFVF_TEXTUREFORMAT1 3
866 CONSTANT: D3DFVF_TEXTUREFORMAT3 1
867 CONSTANT: D3DFVF_TEXTUREFORMAT4 2
868
869 : D3DFVF_TEXCOORDSIZE3 ( CoordIndex -- n )
870     2 * 16 + D3DFVF_TEXTUREFORMAT3 swap shift ; inline
871 : D3DFVF_TEXCOORDSIZE2 ( CoordIndex -- n )
872     drop D3DFVF_TEXTUREFORMAT2 ; inline
873 : D3DFVF_TEXCOORDSIZE4 ( CoordIndex -- n )
874     2 * 16 + D3DFVF_TEXTUREFORMAT4 swap shift ; inline
875 : D3DFVF_TEXCOORDSIZE1 ( CoordIndex -- n )
876     2 * 16 + D3DFVF_TEXTUREFORMAT1 swap shift ; inline
877
878 TYPEDEF: int D3DDEVTYPE
879 CONSTANT: D3DDEVTYPE_HAL         1
880 CONSTANT: D3DDEVTYPE_REF         2
881 CONSTANT: D3DDEVTYPE_SW          3
882 CONSTANT: D3DDEVTYPE_NULLREF     4
883 CONSTANT: D3DDEVTYPE_FORCE_DWORD  HEX: 7fffffff
884
885 TYPEDEF: int D3DMULTISAMPLE_TYPE
886 CONSTANT: D3DMULTISAMPLE_NONE            0
887 CONSTANT: D3DMULTISAMPLE_NONMASKABLE     1
888 CONSTANT: D3DMULTISAMPLE_2_SAMPLES       2
889 CONSTANT: D3DMULTISAMPLE_3_SAMPLES       3
890 CONSTANT: D3DMULTISAMPLE_4_SAMPLES       4
891 CONSTANT: D3DMULTISAMPLE_5_SAMPLES       5
892 CONSTANT: D3DMULTISAMPLE_6_SAMPLES       6
893 CONSTANT: D3DMULTISAMPLE_7_SAMPLES       7
894 CONSTANT: D3DMULTISAMPLE_8_SAMPLES       8
895 CONSTANT: D3DMULTISAMPLE_9_SAMPLES       9
896 CONSTANT: D3DMULTISAMPLE_10_SAMPLES      10
897 CONSTANT: D3DMULTISAMPLE_11_SAMPLES      11
898 CONSTANT: D3DMULTISAMPLE_12_SAMPLES      12
899 CONSTANT: D3DMULTISAMPLE_13_SAMPLES      13
900 CONSTANT: D3DMULTISAMPLE_14_SAMPLES      14
901 CONSTANT: D3DMULTISAMPLE_15_SAMPLES      15
902 CONSTANT: D3DMULTISAMPLE_16_SAMPLES      16
903 CONSTANT: D3DMULTISAMPLE_FORCE_DWORD     HEX: 7fffffff
904                                                                   
905 TYPEDEF: int D3DFORMAT
906 CONSTANT: D3DFMT_UNKNOWN              0
907 CONSTANT: D3DFMT_R8G8B8               20
908 CONSTANT: D3DFMT_A8R8G8B8             21
909 CONSTANT: D3DFMT_X8R8G8B8             22
910 CONSTANT: D3DFMT_R5G6B5               23
911 CONSTANT: D3DFMT_X1R5G5B5             24
912 CONSTANT: D3DFMT_A1R5G5B5             25
913 CONSTANT: D3DFMT_A4R4G4B4             26
914 CONSTANT: D3DFMT_R3G3B2               27
915 CONSTANT: D3DFMT_A8                   28
916 CONSTANT: D3DFMT_A8R3G3B2             29
917 CONSTANT: D3DFMT_X4R4G4B4             30
918 CONSTANT: D3DFMT_A2B10G10R10          31
919 CONSTANT: D3DFMT_A8B8G8R8             32
920 CONSTANT: D3DFMT_X8B8G8R8             33
921 CONSTANT: D3DFMT_G16R16               34
922 CONSTANT: D3DFMT_A2R10G10B10          35
923 CONSTANT: D3DFMT_A16B16G16R16         36
924 CONSTANT: D3DFMT_A8P8                 40
925 CONSTANT: D3DFMT_P8                   41
926 CONSTANT: D3DFMT_L8                   50
927 CONSTANT: D3DFMT_A8L8                 51
928 CONSTANT: D3DFMT_A4L4                 52
929 CONSTANT: D3DFMT_V8U8                 60
930 CONSTANT: D3DFMT_L6V5U5               61
931 CONSTANT: D3DFMT_X8L8V8U8             62
932 CONSTANT: D3DFMT_Q8W8V8U8             63
933 CONSTANT: D3DFMT_V16U16               64
934 CONSTANT: D3DFMT_A2W10V10U10          67
935 CONSTANT: D3DFMT_UYVY                 HEX: 55595659
936 CONSTANT: D3DFMT_R8G8_B8G8            HEX: 52474247
937 CONSTANT: D3DFMT_YUY2                 HEX: 59555932
938 CONSTANT: D3DFMT_G8R8_G8B8            HEX: 47524742
939 CONSTANT: D3DFMT_DXT1                 HEX: 44585431
940 CONSTANT: D3DFMT_DXT2                 HEX: 44585432
941 CONSTANT: D3DFMT_DXT3                 HEX: 44585433
942 CONSTANT: D3DFMT_DXT4                 HEX: 44585434
943 CONSTANT: D3DFMT_DXT5                 HEX: 44585435
944 CONSTANT: D3DFMT_D16_LOCKABLE         70
945 CONSTANT: D3DFMT_D32                  71
946 CONSTANT: D3DFMT_D15S1                73
947 CONSTANT: D3DFMT_D24S8                75
948 CONSTANT: D3DFMT_D24X8                77
949 CONSTANT: D3DFMT_D24X4S4              79
950 CONSTANT: D3DFMT_D16                  80
951 CONSTANT: D3DFMT_D32F_LOCKABLE        82
952 CONSTANT: D3DFMT_D24FS8               83
953 CONSTANT: D3DFMT_D32_LOCKABLE         84
954 CONSTANT: D3DFMT_S8_LOCKABLE          85
955 CONSTANT: D3DFMT_L16                  81
956 CONSTANT: D3DFMT_VERTEXDATA           100
957 CONSTANT: D3DFMT_INDEX16              101
958 CONSTANT: D3DFMT_INDEX32              102
959 CONSTANT: D3DFMT_Q16W16V16U16         110
960 CONSTANT: D3DFMT_MULTI2_ARGB8         HEX: 4d455431
961 CONSTANT: D3DFMT_R16F                 111
962 CONSTANT: D3DFMT_G16R16F              112
963 CONSTANT: D3DFMT_A16B16G16R16F        113
964 CONSTANT: D3DFMT_R32F                 114
965 CONSTANT: D3DFMT_G32R32F              115
966 CONSTANT: D3DFMT_A32B32G32R32F        116
967 CONSTANT: D3DFMT_CxV8U8               117
968 CONSTANT: D3DFMT_A1                   118
969 CONSTANT: D3DFMT_A2B10G10R10_XR_BIAS  119
970 CONSTANT: D3DFMT_BINARYBUFFER         199
971 CONSTANT: D3DFMT_FORCE_DWORD          HEX: 7fffffff
972
973 STRUCT: D3DDISPLAYMODE
974     { Width                  UINT      }
975     { Height                 UINT      }
976     { RefreshRate            UINT      }
977     { Format                 D3DFORMAT } ;
978
979 STRUCT: D3DDEVICE_CREATION_PARAMETERS
980     { AdapterOrdinal            UINT       }
981     { DeviceType                D3DDEVTYPE }
982     { hFocusWindow              HWND       }
983     { BehaviorFlags             DWORD      } ;
984
985 TYPEDEF: int D3DSWAPEFFECT
986 CONSTANT: D3DSWAPEFFECT_DISCARD           1
987 CONSTANT: D3DSWAPEFFECT_FLIP              2
988 CONSTANT: D3DSWAPEFFECT_COPY              3
989 CONSTANT: D3DSWAPEFFECT_OVERLAY           4
990 CONSTANT: D3DSWAPEFFECT_FLIPEX            5
991 CONSTANT: D3DSWAPEFFECT_FORCE_DWORD       HEX: 7fffffff
992
993 TYPEDEF: int D3DPOOL
994 CONSTANT: D3DPOOL_DEFAULT                 0
995 CONSTANT: D3DPOOL_MANAGED                 1
996 CONSTANT: D3DPOOL_SYSTEMMEM               2
997 CONSTANT: D3DPOOL_SCRATCH                 3
998 CONSTANT: D3DPOOL_FORCE_DWORD             HEX: 7fffffff
999
1000 CONSTANT: D3DPRESENT_RATE_DEFAULT         HEX: 00000000
1001
1002 STRUCT: D3DPRESENT_PARAMETERS
1003     { BackBufferWidth             UINT                }
1004     { BackBufferHeight            UINT                }
1005     { BackBufferFormat            D3DFORMAT           }
1006     { BackBufferCount             UINT                }
1007     { MultiSampleType             D3DMULTISAMPLE_TYPE }
1008     { MultiSampleQuality          DWORD               }
1009     { SwapEffect                  D3DSWAPEFFECT       }
1010     { hDeviceWindow               HWND                }
1011     { Windowed                    BOOL                }
1012     { EnableAutoDepthStencil      BOOL                }
1013     { AutoDepthStencilFormat      D3DFORMAT           }
1014     { Flags                       DWORD               }
1015     { FullScreen_RefreshRateInHz  UINT                }
1016     { PresentationInterval        UINT                } ;
1017
1018 CONSTANT: D3DPRESENTFLAG_LOCKABLE_BACKBUFFER      HEX: 00000001
1019 CONSTANT: D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL     HEX: 00000002
1020 CONSTANT: D3DPRESENTFLAG_DEVICECLIP               HEX: 00000004
1021 CONSTANT: D3DPRESENTFLAG_VIDEO                    HEX: 00000010
1022
1023 CONSTANT: D3DPRESENTFLAG_NOAUTOROTATE                    HEX: 00000020
1024 CONSTANT: D3DPRESENTFLAG_UNPRUNEDMODE                    HEX: 00000040
1025 CONSTANT: D3DPRESENTFLAG_OVERLAY_LIMITEDRGB              HEX: 00000080
1026 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_BT709             HEX: 00000100
1027 CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC             HEX: 00000200
1028 CONSTANT: D3DPRESENTFLAG_RESTRICTED_CONTENT              HEX: 00000400
1029 CONSTANT: D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00000800
1030
1031 STRUCT: D3DGAMMARAMP
1032     { red   WORD[256] }
1033     { green WORD[256] }
1034     { blue  WORD[256] } ;
1035
1036 TYPEDEF: int D3DBACKBUFFER_TYPE
1037 CONSTANT: D3DBACKBUFFER_TYPE_MONO         0
1038 CONSTANT: D3DBACKBUFFER_TYPE_LEFT         1
1039 CONSTANT: D3DBACKBUFFER_TYPE_RIGHT        2
1040 CONSTANT: D3DBACKBUFFER_TYPE_FORCE_DWORD  HEX: 7fffffff
1041
1042 TYPEDEF: int D3DRESOURCETYPE
1043 CONSTANT: D3DRTYPE_SURFACE                1
1044 CONSTANT: D3DRTYPE_VOLUME                 2
1045 CONSTANT: D3DRTYPE_TEXTURE                3
1046 CONSTANT: D3DRTYPE_VOLUMETEXTURE          4
1047 CONSTANT: D3DRTYPE_CUBETEXTURE            5
1048 CONSTANT: D3DRTYPE_VERTEXBUFFER           6
1049 CONSTANT: D3DRTYPE_INDEXBUFFER            7
1050 CONSTANT: D3DRTYPE_FORCE_DWORD            HEX: 7fffffff
1051
1052 CONSTANT: D3DUSAGE_RENDERTARGET       HEX: 00000001
1053 CONSTANT: D3DUSAGE_DEPTHSTENCIL       HEX: 00000002
1054 CONSTANT: D3DUSAGE_DYNAMIC            HEX: 00000200
1055
1056 CONSTANT: D3DUSAGE_NONSECURE          HEX: 00800000
1057
1058 CONSTANT: D3DUSAGE_AUTOGENMIPMAP      HEX: 00000400
1059 CONSTANT: D3DUSAGE_DMAP               HEX: 00004000
1060
1061 CONSTANT: D3DUSAGE_QUERY_LEGACYBUMPMAP            HEX: 00008000
1062 CONSTANT: D3DUSAGE_QUERY_SRGBREAD                 HEX: 00010000
1063 CONSTANT: D3DUSAGE_QUERY_FILTER                   HEX: 00020000
1064 CONSTANT: D3DUSAGE_QUERY_SRGBWRITE                HEX: 00040000
1065 CONSTANT: D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING HEX: 00080000
1066 CONSTANT: D3DUSAGE_QUERY_VERTEXTEXTURE            HEX: 00100000
1067 CONSTANT: D3DUSAGE_QUERY_WRAPANDMIP             HEX: 00200000
1068
1069 CONSTANT: D3DUSAGE_WRITEONLY          HEX: 00000008
1070 CONSTANT: D3DUSAGE_SOFTWAREPROCESSING HEX: 00000010
1071 CONSTANT: D3DUSAGE_DONOTCLIP          HEX: 00000020
1072 CONSTANT: D3DUSAGE_POINTS             HEX: 00000040
1073 CONSTANT: D3DUSAGE_RTPATCHES          HEX: 00000080
1074 CONSTANT: D3DUSAGE_NPATCHES           HEX: 00000100
1075
1076 CONSTANT: D3DUSAGE_TEXTAPI                         HEX: 10000000
1077 CONSTANT: D3DUSAGE_RESTRICTED_CONTENT              HEX: 00000800
1078 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE        HEX: 00002000
1079 CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00001000
1080
1081 TYPEDEF: int D3DCUBEMAP_FACES
1082 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_X     0
1083 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_X     1
1084 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Y     2
1085 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Y     3
1086 CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Z     4
1087 CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Z     5
1088 CONSTANT: D3DCUBEMAP_FACE_FORCE_DWORD    HEX: 7fffffff
1089
1090 CONSTANT: D3DLOCK_READONLY           HEX: 00000010
1091 CONSTANT: D3DLOCK_DISCARD            HEX: 00002000
1092 CONSTANT: D3DLOCK_NOOVERWRITE        HEX: 00001000
1093 CONSTANT: D3DLOCK_NOSYSLOCK          HEX: 00000800
1094 CONSTANT: D3DLOCK_DONOTWAIT          HEX: 00004000
1095
1096 CONSTANT: D3DLOCK_NO_DIRTY_UPDATE     HEX: 00008000
1097
1098 STRUCT: D3DVERTEXBUFFER_DESC
1099     { Format              D3DFORMAT       }
1100     { Type                D3DRESOURCETYPE }
1101     { Usage               DWORD           }
1102     { Pool                D3DPOOL         }
1103     { Size                UINT            }
1104     { FVF                 DWORD           } ;
1105
1106 STRUCT: D3DINDEXBUFFER_DESC
1107     { Format              D3DFORMAT       }
1108     { Type                D3DRESOURCETYPE }
1109     { Usage               DWORD           }
1110     { Pool                D3DPOOL         }
1111     { Size                UINT            } ;
1112
1113 STRUCT: D3DSURFACE_DESC
1114     { Format              D3DFORMAT           }
1115     { Type                D3DRESOURCETYPE     }
1116     { Usage               DWORD               }
1117     { Pool                D3DPOOL             }
1118     { MultiSampleType     D3DMULTISAMPLE_TYPE }
1119     { MultiSampleQuality  DWORD               }
1120     { Width               UINT                }
1121     { Height              UINT                } ;
1122
1123 STRUCT: D3DVOLUME_DESC
1124
1125     { Format              D3DFORMAT       }
1126     { Type                D3DRESOURCETYPE }
1127     { Usage               DWORD           }
1128     { Pool                D3DPOOL         }
1129     { Width               UINT            }
1130     { Height              UINT            }
1131     { Depth               UINT            } ;
1132
1133 STRUCT: D3DLOCKED_RECT
1134     { Pitch               INT   }
1135     { pBits               void* } ;
1136
1137 STRUCT: D3DBOX
1138     { Left                  UINT }
1139     { Top                   UINT }
1140     { Right                 UINT }
1141     { Bottom                UINT }
1142     { Front                 UINT }
1143     { Back                  UINT } ;
1144
1145 STRUCT: D3DLOCKED_BOX
1146     { RowPitch             INT   }
1147     { SlicePitch           INT   }
1148     { pBits                void* } ;
1149
1150 STRUCT: D3DRANGE
1151     { Offset                UINT }
1152     { Size                  UINT } ;
1153
1154 STRUCT: D3DRECTPATCH_INFO
1155     { StartVertexOffsetWidth  UINT          }
1156     { StartVertexOffsetHeight UINT          }
1157     { Width                   UINT          }
1158     { Height                  UINT          }
1159     { Stride                  UINT          }
1160     { Basis                   D3DBASISTYPE  }
1161     { Degree                  D3DDEGREETYPE } ;
1162
1163 STRUCT: D3DTRIPATCH_INFO
1164     { StartVertexOffset       UINT          }
1165     { NumVertices             UINT          }
1166     { Basis                   D3DBASISTYPE  }
1167     { Degree                  D3DDEGREETYPE } ;
1168
1169 CONSTANT: MAX_DEVICE_IDENTIFIER_STRING        512
1170
1171 STRUCT: D3DADAPTER_IDENTIFIER9
1172     { Driver                      char[512]     }
1173     { Description                 char[512]     }
1174     { DeviceName                  char[32]      }
1175     { DriverVersion               LARGE_INTEGER }
1176     { VendorId                    DWORD         }
1177     { DeviceId                    DWORD         }
1178     { SubSysId                    DWORD         }
1179     { Revision                    DWORD         }
1180     { DeviceIdentifier            GUID          }
1181     { WHQLLevel                   DWORD         } ;
1182
1183 STRUCT: D3DRASTER_STATUS
1184     { InVBlank            BOOL }
1185     { ScanLine            UINT } ;
1186
1187 TYPEDEF: int D3DDEBUGMONITORTOKENS
1188 CONSTANT: D3DDMT_ENABLE            0
1189 CONSTANT: D3DDMT_DISABLE           1
1190 CONSTANT: D3DDMT_FORCE_DWORD     HEX: 7fffffff
1191
1192 TYPEDEF: int D3DQUERYTYPE
1193 CONSTANT: D3DQUERYTYPE_VCACHE                 4
1194 CONSTANT: D3DQUERYTYPE_RESOURCEMANAGER        5
1195 CONSTANT: D3DQUERYTYPE_VERTEXSTATS            6
1196 CONSTANT: D3DQUERYTYPE_EVENT                  8
1197 CONSTANT: D3DQUERYTYPE_OCCLUSION              9
1198 CONSTANT: D3DQUERYTYPE_TIMESTAMP              10
1199 CONSTANT: D3DQUERYTYPE_TIMESTAMPDISJOINT      11
1200 CONSTANT: D3DQUERYTYPE_TIMESTAMPFREQ          12
1201 CONSTANT: D3DQUERYTYPE_PIPELINETIMINGS        13
1202 CONSTANT: D3DQUERYTYPE_INTERFACETIMINGS       14
1203 CONSTANT: D3DQUERYTYPE_VERTEXTIMINGS          15
1204 CONSTANT: D3DQUERYTYPE_PIXELTIMINGS           16
1205 CONSTANT: D3DQUERYTYPE_BANDWIDTHTIMINGS       17
1206 CONSTANT: D3DQUERYTYPE_CACHEUTILIZATION       18
1207 CONSTANT: D3DQUERYTYPE_MEMORYPRESSURE         19
1208
1209 CONSTANT: D3DISSUE_END   1
1210 CONSTANT: D3DISSUE_BEGIN 2
1211
1212 CONSTANT: D3DGETDATA_FLUSH 1
1213
1214 STRUCT: D3DRESOURCESTATS
1215     { bThrashing              BOOL  }
1216     { ApproxBytesDownloaded   DWORD }
1217     { NumEvicts               DWORD }
1218     { NumVidCreates           DWORD }
1219     { LastPri                 DWORD }
1220     { NumUsed                 DWORD }
1221     { NumUsedInVidMem         DWORD }
1222     { WorkingSet              DWORD }
1223     { WorkingSetBytes         DWORD }
1224     { TotalManaged            DWORD }
1225     { TotalBytes              DWORD } ;
1226
1227 CONSTANT: D3DRTYPECOUNT 8
1228
1229 STRUCT: D3DDEVINFO_RESOURCEMANAGER
1230     { stats D3DRESOURCESTATS[8] } ;
1231 TYPEDEF: D3DDEVINFO_RESOURCEMANAGER* LPD3DDEVINFO_RESOURCEMANAGER
1232
1233 STRUCT: D3DDEVINFO_D3DVERTEXSTATS
1234     { NumRenderedTriangles        DWORD }
1235     { NumExtraClippingTriangles   DWORD } ;
1236 TYPEDEF: D3DDEVINFO_D3DVERTEXSTATS* LPD3DDEVINFO_D3DVERTEXSTATS
1237
1238 STRUCT: D3DDEVINFO_VCACHE
1239     { Pattern       DWORD }
1240     { OptMethod     DWORD }
1241     { CacheSize     DWORD }
1242     { MagicNumber   DWORD } ;
1243 TYPEDEF: D3DDEVINFO_VCACHE* LPD3DDEVINFO_VCACHE
1244
1245 STRUCT: D3DDEVINFO_D3D9PIPELINETIMINGS
1246     { VertexProcessingTimePercent   FLOAT }
1247     { PixelProcessingTimePercent    FLOAT }
1248     { OtherGPUProcessingTimePercent FLOAT }
1249     { GPUIdleTimePercent            FLOAT } ;
1250
1251 STRUCT: D3DDEVINFO_D3D9INTERFACETIMINGS
1252     { WaitingForGPUToUseApplicationResourceTimePercent FLOAT }
1253     { WaitingForGPUToAcceptMoreCommandsTimePercent     FLOAT }
1254     { WaitingForGPUToStayWithinLatencyTimePercent      FLOAT }
1255     { WaitingForGPUExclusiveResourceTimePercent        FLOAT }
1256     { WaitingForGPUOtherTimePercent                    FLOAT } ;
1257
1258 STRUCT: D3DDEVINFO_D3D9STAGETIMINGS
1259     { MemoryProcessingPercent      FLOAT }
1260     { ComputationProcessingPercent FLOAT } ;
1261
1262 STRUCT: D3DDEVINFO_D3D9BANDWIDTHTIMINGS
1263     { MaxBandwidthUtilized                FLOAT }
1264     { FrontEndUploadMemoryUtilizedPercent FLOAT }
1265     { VertexRateUtilizedPercent           FLOAT }
1266     { TriangleSetupRateUtilizedPercent    FLOAT }
1267     { FillRateUtilizedPercent             FLOAT } ;
1268
1269 STRUCT: D3DDEVINFO_D3D9CACHEUTILIZATION
1270     { TextureCacheHitRate             FLOAT }
1271     { PostTransformVertexCacheHitRate FLOAT } ;
1272
1273 STRUCT: D3DMEMORYPRESSURE
1274     { BytesEvictedFromProcess      UINT64 }
1275     { SizeOfInefficientAllocation  UINT64 }
1276     { LevelOfEfficiency            DWORD  } ;
1277
1278 TYPEDEF: int D3DCOMPOSERECTSOP
1279 CONSTANT: D3DCOMPOSERECTS_COPY     1
1280 CONSTANT: D3DCOMPOSERECTS_OR       2
1281 CONSTANT: D3DCOMPOSERECTS_AND      3
1282 CONSTANT: D3DCOMPOSERECTS_NEG      4
1283 CONSTANT: D3DCOMPOSERECTS_FORCE_DWORD    HEX: 7fffffff
1284
1285 STRUCT: D3DCOMPOSERECTDESC
1286     { X       USHORT }
1287     { Y       USHORT }
1288     { Width   USHORT }
1289     { Height  USHORT } ;
1290
1291 STRUCT: D3DCOMPOSERECTDESTINATION
1292     { SrcRectIndex USHORT }
1293     { Reserved     USHORT }
1294     { X            SHORT  }
1295     { Y            SHORT  } ;
1296
1297 CONSTANT: D3DCOMPOSERECTS_MAXNUMRECTS HEX: FFFF
1298 CONSTANT: D3DCONVOLUTIONMONO_MAXWIDTH  7
1299 : D3DCONVOLUTIONMONO_MAXHEIGHT ( -- n ) D3DCONVOLUTIONMONO_MAXWIDTH ; inline
1300 CONSTANT: D3DFMT_A1_SURFACE_MAXWIDTH  8192
1301 CONSTANT: D3DFMT_A1_SURFACE_MAXHEIGHT 2048
1302
1303 STRUCT: D3DPRESENTSTATS
1304     { PresentCount        UINT          }
1305     { PresentRefreshCount UINT          }
1306     { SyncRefreshCount    UINT          }
1307     { SyncQPCTime         LARGE_INTEGER }
1308     { SyncGPUTime         LARGE_INTEGER } ;
1309
1310 TYPEDEF: int D3DSCANLINEORDERING
1311 CONSTANT: D3DSCANLINEORDERING_UNKNOWN                    0
1312 CONSTANT: D3DSCANLINEORDERING_PROGRESSIVE                1
1313 CONSTANT: D3DSCANLINEORDERING_INTERLACED                 2
1314
1315 STRUCT: D3DDISPLAYMODEEX
1316     { Size                UINT                }
1317     { Width               UINT                }
1318     { Height              UINT                }
1319     { RefreshRate         UINT                }
1320     { Format              D3DFORMAT           }
1321     { ScanLineOrdering    D3DSCANLINEORDERING } ;
1322
1323 STRUCT: D3DDISPLAYMODEFILTER
1324     { Size                 UINT                }
1325     { Format               D3DFORMAT           }
1326     { ScanLineOrdering     D3DSCANLINEORDERING } ;
1327
1328 TYPEDEF: int D3DDISPLAYROTATION
1329 CONSTANT: D3DDISPLAYROTATION_IDENTITY 1
1330 CONSTANT: D3DDISPLAYROTATION_90       2
1331 CONSTANT: D3DDISPLAYROTATION_180      3
1332 CONSTANT: D3DDISPLAYROTATION_270      4  
1333
1334 CONSTANT: D3D9_RESOURCE_PRIORITY_MINIMUM       HEX: 28000000
1335 CONSTANT: D3D9_RESOURCE_PRIORITY_LOW           HEX: 50000000
1336 CONSTANT: D3D9_RESOURCE_PRIORITY_NORMAL        HEX: 78000000
1337 CONSTANT: D3D9_RESOURCE_PRIORITY_HIGH          HEX: a0000000
1338 CONSTANT: D3D9_RESOURCE_PRIORITY_MAXIMUM       HEX: c8000000
1339
1340 CONSTANT: D3D_OMAC_SIZE    16
1341
1342 STRUCT: D3D_OMAC
1343     { Omac BYTE[D3D_OMAC_SIZE] } ;
1344
1345 TYPEDEF: int D3DAUTHENTICATEDCHANNELTYPE
1346 CONSTANT: D3DAUTHENTICATEDCHANNEL_D3D9            1
1347 CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE 2
1348 CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE 3
1349
1350 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT
1351     { QueryType        GUID   }
1352     { hChannel         HANDLE }
1353     { SequenceNumber   UINT   } ;
1354
1355 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT
1356     { omac                D3D_OMAC }
1357     { QueryType           GUID     }
1358     { hChannel            HANDLE   }
1359     { SequenceNumber      UINT     }
1360     { ReturnCode          HRESULT  } ;
1361
1362 STRUCT: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS
1363     { Value  UINT } ;
1364
1365 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT
1366     { Output          D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT     }
1367     { ProtectionFlags D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
1368
1369 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT
1370     { Output      D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1371     { ChannelType D3DAUTHENTICATEDCHANNELTYPE          } ;
1372
1373 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT
1374     { Output         D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1375     { DeviceHandle   HANDLE                               } ;
1376
1377 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT
1378     { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1379     { DXVA2DecodeHandle   HANDLE                              } ;
1380
1381 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT
1382     { Output                D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1383     { DXVA2DecodeHandle     HANDLE                               }
1384     { CryptoSessionHandle   HANDLE                               }
1385     { DeviceHandle          HANDLE                               } ;
1386
1387 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT
1388     { Output                                 D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1389     { NumRestrictedSharedResourceProcesses   UINT                                 } ;
1390
1391 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT
1392     { Input            D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1393     { ProcessIndex     UINT                                } ;
1394
1395 TYPEDEF: int D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE
1396 CONSTANT: PROCESSIDTYPE_UNKNOWN  0
1397 CONSTANT: PROCESSIDTYPE_DWM      1
1398 CONSTANT: PROCESSIDTYPE_HANDLE   2
1399
1400 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT
1401     { Output           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT          }
1402     { ProcessIndex     UINT                                          }
1403     { ProcessIdentifer D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
1404     { ProcessHandle    HANDLE                                        } ;
1405
1406 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT
1407     { Output                                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1408     { NumUnrestrictedProtectedSharedResources   UINT                                 } ;
1409
1410 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT
1411     { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1412     { DeviceHandle         HANDLE                              }
1413     { CryptoSessionHandle  HANDLE                              } ;
1414
1415 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT
1416     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1417     { DeviceHandle         HANDLE                               }
1418     { CryptoSessionHandle  HANDLE                               }
1419     { NumOutputIDs         UINT                                 } ;
1420
1421 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT
1422     { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1423     { DeviceHandle         HANDLE                              }
1424     { CryptoSessionHandle  HANDLE                              }
1425     { OutputIDIndex        UINT                                } ;
1426
1427 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT
1428     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1429     { DeviceHandle         HANDLE                               }
1430     { CryptoSessionHandle  HANDLE                               }
1431     { OutputIDIndex        UINT                                 }
1432     { OutputID             UINT64                               } ;
1433
1434 TYPEDEF: int D3DBUSTYPE
1435 CONSTANT: D3DBUSTYPE_OTHER                                     HEX: 00000000
1436 CONSTANT: D3DBUSTYPE_PCI                                       HEX: 00000001
1437 CONSTANT: D3DBUSTYPE_PCIX                                      HEX: 00000002
1438 CONSTANT: D3DBUSTYPE_PCIEXPRESS                                HEX: 00000003
1439 CONSTANT: D3DBUSTYPE_AGP                                       HEX: 00000004
1440 CONSTANT: D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET                HEX: 00010000
1441 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP   HEX: 00020000
1442 CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET HEX: 00030000
1443 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR         HEX: 00040000
1444 CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE HEX: 00050000
1445 CONSTANT: D3DBUSIMPL_MODIFIER_NON_STANDARD                     HEX: 80000000
1446
1447 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT
1448     { Output                           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1449     { BusType                          D3DBUSTYPE                           }
1450     { bAccessibleInContiguousBlocks    BOOL                                 }
1451     { bAccessibleInNonContiguousBlocks BOOL                                 } ;
1452
1453 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT
1454     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1455     { NumEncryptionGuids   UINT                                 } ;
1456
1457 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT
1458     { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
1459     { EncryptionGuidIndex UINT                                } ;
1460
1461 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT
1462     { Output                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1463     { EncryptionGuidIndex       UINT                                 }
1464     { EncryptionGuid            GUID                                 } ;
1465
1466 STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT
1467     { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
1468     { EncryptionGuid       GUID                                 } ;
1469
1470 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT
1471     { omac                          D3D_OMAC }
1472     { ConfigureType                 GUID     }
1473     { hChannel                      HANDLE   }
1474     { SequenceNumber                UINT     } ;
1475
1476 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT
1477     { omac                          D3D_OMAC }
1478     { ConfigureType                 GUID     }
1479     { hChannel                      HANDLE   }
1480     { SequenceNumber                UINT     }
1481     { ReturnCode                    HRESULT  } ;
1482
1483 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE
1484     { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1485     { StartSequenceQuery       UINT                                    }
1486     { StartSequenceConfigure   UINT                                    } ;
1487
1488 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION
1489     { Parameters   D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT  }
1490     { Protections  D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
1491
1492 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION
1493     { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1494     { DXVA2DecodeHandle        HANDLE                                  }
1495     { CryptoSessionHandle      HANDLE                                  }
1496     { DeviceHandle             HANDLE                                  } ;
1497
1498 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE
1499     { Parameters           D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT       }
1500     { ProcessIdentiferType D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
1501     { ProcessHandle        HANDLE                                        }
1502     { AllowAccess          BOOL                                          } ;
1503
1504 STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION
1505     { Parameters      D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
1506     { EncryptionGuid  GUID                                    } ;
1507
1508 STRUCT: D3DENCRYPTED_BLOCK_INFO
1509     { NumEncryptedBytesAtBeginning UINT }
1510     { NumBytesInSkipPattern        UINT }
1511     { NumBytesInEncryptPattern     UINT } ;
1512
1513 STRUCT: D3DAES_CTR_IV
1514     { IV      UINT64 }
1515     { Count   UINT64 } ;