1 // Copyright © 2015; Connor Hilarides
2 // Licensed under the MIT License <LICENSE.md>
3 //! Mappings for the contents of d3dcommon.h
4 ENUM!{enum D3D_DRIVER_TYPE {
5     D3D_DRIVER_TYPE_UNKNOWN,
6     D3D_DRIVER_TYPE_HARDWARE,
7     D3D_DRIVER_TYPE_REFERENCE,
8     D3D_DRIVER_TYPE_NULL,
9     D3D_DRIVER_TYPE_SOFTWARE,
10     D3D_DRIVER_TYPE_WARP,
11 }}
12 ENUM!{enum D3D_FEATURE_LEVEL {
13     D3D_FEATURE_LEVEL_9_1 = 0x9100,
14     D3D_FEATURE_LEVEL_9_2 = 0x9200,
15     D3D_FEATURE_LEVEL_9_3 = 0x9300,
16     D3D_FEATURE_LEVEL_10_0 = 0xa000,
17     D3D_FEATURE_LEVEL_10_1 = 0xa100,
18     D3D_FEATURE_LEVEL_11_0 = 0xb000,
19     D3D_FEATURE_LEVEL_11_1 = 0xb100,
20     D3D_FEATURE_LEVEL_12_0  = 0xc000,
21     D3D_FEATURE_LEVEL_12_1  = 0xc100,
22 }}
23 ENUM!{enum D3D_PRIMITIVE_TOPOLOGY {
24     D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
25     D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
26     D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
27     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
28     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
29     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
30     D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
31     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
32     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
33     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
34     D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
35     D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
36     D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
37     D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
38     D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
39     D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
40     D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
41     D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
42     D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
43     D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
44     D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
45     D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
46     D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
47     D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
48     D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
49     D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
50     D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
51     D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
52     D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
53     D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
54     D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
55     D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
56     D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
57     D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
58     D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
59     D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
60     D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
61     D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
62     D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
63     D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
64     D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
65     D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
66 }}
67 pub const D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED: ::D3D_PRIMITIVE_TOPOLOGY =
68     D3D_PRIMITIVE_TOPOLOGY_UNDEFINED;
69 pub const D3D10_PRIMITIVE_TOPOLOGY_POINTLIST: ::D3D_PRIMITIVE_TOPOLOGY =
70     D3D_PRIMITIVE_TOPOLOGY_POINTLIST;
71 pub const D3D10_PRIMITIVE_TOPOLOGY_LINELIST: ::D3D_PRIMITIVE_TOPOLOGY =
72     D3D_PRIMITIVE_TOPOLOGY_LINELIST;
73 pub const D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP: ::D3D_PRIMITIVE_TOPOLOGY =
74     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP;
75 pub const D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST: ::D3D_PRIMITIVE_TOPOLOGY =
76     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
77 pub const D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP: ::D3D_PRIMITIVE_TOPOLOGY =
78     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
79 pub const D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
80     D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ;
81 pub const D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
82     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ;
83 pub const D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
84     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ;
85 pub const D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
86     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ;
87 pub const D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED: ::D3D_PRIMITIVE_TOPOLOGY =
88     D3D_PRIMITIVE_TOPOLOGY_UNDEFINED;
89 pub const D3D11_PRIMITIVE_TOPOLOGY_POINTLIST: ::D3D_PRIMITIVE_TOPOLOGY =
90     D3D_PRIMITIVE_TOPOLOGY_POINTLIST;
91 pub const D3D11_PRIMITIVE_TOPOLOGY_LINELIST: ::D3D_PRIMITIVE_TOPOLOGY =
92     D3D_PRIMITIVE_TOPOLOGY_LINELIST;
93 pub const D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP: ::D3D_PRIMITIVE_TOPOLOGY =
94     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP;
95 pub const D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST: ::D3D_PRIMITIVE_TOPOLOGY =
96     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
97 pub const D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP: ::D3D_PRIMITIVE_TOPOLOGY =
98     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
99 pub const D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
100     D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ;
101 pub const D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
102     D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ;
103 pub const D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
104     D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ;
105 pub const D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ: ::D3D_PRIMITIVE_TOPOLOGY =
106     D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ;
107 pub const D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
108     D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST;
109 pub const D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
110     D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST;
111 pub const D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
112     D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST;
113 pub const D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
114     D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST;
115 pub const D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
116     D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST;
117 pub const D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
118     D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST;
119 pub const D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
120     D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST;
121 pub const D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
122     D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST;
123 pub const D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
124     D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST;
125 pub const D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
126     D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST;
127 pub const D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
128     D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST;
129 pub const D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
130     D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST;
131 pub const D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
132     D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST;
133 pub const D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
134     D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST;
135 pub const D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
136     D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST;
137 pub const D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
138     D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST;
139 pub const D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
140     D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST;
141 pub const D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
142     D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST;
143 pub const D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
144     D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST;
145 pub const D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
146     D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST;
147 pub const D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
148     D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST;
149 pub const D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
150     D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST;
151 pub const D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
152     D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST;
153 pub const D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
154     D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST;
155 pub const D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
156     D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST;
157 pub const D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
158     D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST;
159 pub const D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
160     D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST;
161 pub const D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
162     D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST;
163 pub const D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
164     D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST;
165 pub const D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
166     D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST;
167 pub const D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
168     D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST;
169 pub const D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST: ::D3D_PRIMITIVE_TOPOLOGY =
170     D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST;
171 ENUM!{enum D3D_PRIMITIVE {
172     D3D_PRIMITIVE_UNDEFINED = 0,
173     D3D_PRIMITIVE_POINT = 1,
174     D3D_PRIMITIVE_LINE = 2,
175     D3D_PRIMITIVE_TRIANGLE = 3,
176     D3D_PRIMITIVE_LINE_ADJ = 6,
177     D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
178     D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
179     D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
180     D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
181     D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
182     D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
183     D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
184     D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
185     D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
186     D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
187     D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
188     D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
189     D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
190     D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
191     D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
192     D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
193     D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
194     D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
195     D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
196     D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
197     D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 28,
198     D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 29,
199     D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 30,
200     D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 31,
201     D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 32,
202     D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 33,
203     D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 34,
204     D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 35,
205     D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 36,
206     D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 37,
207     D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 38,
208     D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 39,
209     D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 40,
210 }}
211 pub const D3D10_PRIMITIVE_UNDEFINED: ::D3D_PRIMITIVE = D3D_PRIMITIVE_UNDEFINED;
212 pub const D3D10_PRIMITIVE_POINT: ::D3D_PRIMITIVE = D3D_PRIMITIVE_POINT;
213 pub const D3D10_PRIMITIVE_LINE: ::D3D_PRIMITIVE = D3D_PRIMITIVE_LINE;
214 pub const D3D10_PRIMITIVE_TRIANGLE: ::D3D_PRIMITIVE = D3D_PRIMITIVE_TRIANGLE;
215 pub const D3D10_PRIMITIVE_LINE_ADJ: ::D3D_PRIMITIVE = D3D_PRIMITIVE_LINE_ADJ;
216 pub const D3D10_PRIMITIVE_TRIANGLE_ADJ: ::D3D_PRIMITIVE = D3D_PRIMITIVE_TRIANGLE_ADJ;
217 pub const D3D11_PRIMITIVE_UNDEFINED: ::D3D_PRIMITIVE = D3D_PRIMITIVE_UNDEFINED;
218 pub const D3D11_PRIMITIVE_POINT: ::D3D_PRIMITIVE = D3D_PRIMITIVE_POINT;
219 pub const D3D11_PRIMITIVE_LINE: ::D3D_PRIMITIVE = D3D_PRIMITIVE_LINE;
220 pub const D3D11_PRIMITIVE_TRIANGLE: ::D3D_PRIMITIVE = D3D_PRIMITIVE_TRIANGLE;
221 pub const D3D11_PRIMITIVE_LINE_ADJ: ::D3D_PRIMITIVE = D3D_PRIMITIVE_LINE_ADJ;
222 pub const D3D11_PRIMITIVE_TRIANGLE_ADJ: ::D3D_PRIMITIVE = D3D_PRIMITIVE_TRIANGLE_ADJ;
223 pub const D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
224     D3D_PRIMITIVE_1_CONTROL_POINT_PATCH;
225 pub const D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
226     D3D_PRIMITIVE_2_CONTROL_POINT_PATCH;
227 pub const D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
228     D3D_PRIMITIVE_3_CONTROL_POINT_PATCH;
229 pub const D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
230     D3D_PRIMITIVE_4_CONTROL_POINT_PATCH;
231 pub const D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
232     D3D_PRIMITIVE_5_CONTROL_POINT_PATCH;
233 pub const D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
234     D3D_PRIMITIVE_6_CONTROL_POINT_PATCH;
235 pub const D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
236     D3D_PRIMITIVE_7_CONTROL_POINT_PATCH;
237 pub const D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
238     D3D_PRIMITIVE_8_CONTROL_POINT_PATCH;
239 pub const D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
240     D3D_PRIMITIVE_9_CONTROL_POINT_PATCH;
241 pub const D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
242     D3D_PRIMITIVE_10_CONTROL_POINT_PATCH;
243 pub const D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
244     D3D_PRIMITIVE_11_CONTROL_POINT_PATCH;
245 pub const D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
246     D3D_PRIMITIVE_12_CONTROL_POINT_PATCH;
247 pub const D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
248     D3D_PRIMITIVE_13_CONTROL_POINT_PATCH;
249 pub const D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
250     D3D_PRIMITIVE_14_CONTROL_POINT_PATCH;
251 pub const D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
252     D3D_PRIMITIVE_15_CONTROL_POINT_PATCH;
253 pub const D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
254     D3D_PRIMITIVE_16_CONTROL_POINT_PATCH;
255 pub const D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
256     D3D_PRIMITIVE_17_CONTROL_POINT_PATCH;
257 pub const D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
258     D3D_PRIMITIVE_18_CONTROL_POINT_PATCH;
259 pub const D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
260     D3D_PRIMITIVE_19_CONTROL_POINT_PATCH;
261 pub const D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
262     D3D_PRIMITIVE_20_CONTROL_POINT_PATCH;
263 pub const D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
264     D3D_PRIMITIVE_21_CONTROL_POINT_PATCH;
265 pub const D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
266     D3D_PRIMITIVE_22_CONTROL_POINT_PATCH;
267 pub const D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
268     D3D_PRIMITIVE_23_CONTROL_POINT_PATCH;
269 pub const D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
270     D3D_PRIMITIVE_24_CONTROL_POINT_PATCH;
271 pub const D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
272     D3D_PRIMITIVE_25_CONTROL_POINT_PATCH;
273 pub const D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
274     D3D_PRIMITIVE_26_CONTROL_POINT_PATCH;
275 pub const D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
276     D3D_PRIMITIVE_27_CONTROL_POINT_PATCH;
277 pub const D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
278     D3D_PRIMITIVE_28_CONTROL_POINT_PATCH;
279 pub const D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
280     D3D_PRIMITIVE_29_CONTROL_POINT_PATCH;
281 pub const D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
282     D3D_PRIMITIVE_30_CONTROL_POINT_PATCH;
283 pub const D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
284     D3D_PRIMITIVE_31_CONTROL_POINT_PATCH;
285 pub const D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH: ::D3D_PRIMITIVE =
286     D3D_PRIMITIVE_32_CONTROL_POINT_PATCH;
287 ENUM!{enum D3D_SRV_DIMENSION {
288     D3D_SRV_DIMENSION_UNKNOWN = 0,
289     D3D_SRV_DIMENSION_BUFFER = 1,
290     D3D_SRV_DIMENSION_TEXTURE1D = 2,
291     D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
292     D3D_SRV_DIMENSION_TEXTURE2D = 4,
293     D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
294     D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
295     D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
296     D3D_SRV_DIMENSION_TEXTURE3D = 8,
297     D3D_SRV_DIMENSION_TEXTURECUBE = 9,
298     D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
299     D3D_SRV_DIMENSION_BUFFEREX = 11,
300 }}
301 pub const D3D10_SRV_DIMENSION_UNKNOWN: ::D3D_SRV_DIMENSION =
302     D3D_SRV_DIMENSION_UNKNOWN;
303 pub const D3D10_SRV_DIMENSION_BUFFER: ::D3D_SRV_DIMENSION =
304     D3D_SRV_DIMENSION_BUFFER;
305 pub const D3D10_SRV_DIMENSION_TEXTURE1D: ::D3D_SRV_DIMENSION =
306     D3D_SRV_DIMENSION_TEXTURE1D;
307 pub const D3D10_SRV_DIMENSION_TEXTURE1DARRAY: ::D3D_SRV_DIMENSION =
308     D3D_SRV_DIMENSION_TEXTURE1DARRAY;
309 pub const D3D10_SRV_DIMENSION_TEXTURE2D: ::D3D_SRV_DIMENSION =
310     D3D_SRV_DIMENSION_TEXTURE2D;
311 pub const D3D10_SRV_DIMENSION_TEXTURE2DARRAY: ::D3D_SRV_DIMENSION =
312     D3D_SRV_DIMENSION_TEXTURE2DARRAY;
313 pub const D3D10_SRV_DIMENSION_TEXTURE2DMS: ::D3D_SRV_DIMENSION =
314     D3D_SRV_DIMENSION_TEXTURE2DMS;
315 pub const D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY: ::D3D_SRV_DIMENSION =
316     D3D_SRV_DIMENSION_TEXTURE2DMSARRAY;
317 pub const D3D10_SRV_DIMENSION_TEXTURE3D: ::D3D_SRV_DIMENSION =
318     D3D_SRV_DIMENSION_TEXTURE3D;
319 pub const D3D10_SRV_DIMENSION_TEXTURECUBE: ::D3D_SRV_DIMENSION =
320     D3D_SRV_DIMENSION_TEXTURECUBE;
321 pub const D3D10_1_SRV_DIMENSION_UNKNOWN: ::D3D_SRV_DIMENSION =
322     D3D_SRV_DIMENSION_UNKNOWN;
323 pub const D3D10_1_SRV_DIMENSION_BUFFER: ::D3D_SRV_DIMENSION =
324     D3D_SRV_DIMENSION_BUFFER;
325 pub const D3D10_1_SRV_DIMENSION_TEXTURE1D: ::D3D_SRV_DIMENSION =
326     D3D_SRV_DIMENSION_TEXTURE1D;
327 pub const D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY: ::D3D_SRV_DIMENSION =
328     D3D_SRV_DIMENSION_TEXTURE1DARRAY;
329 pub const D3D10_1_SRV_DIMENSION_TEXTURE2D: ::D3D_SRV_DIMENSION =
330     D3D_SRV_DIMENSION_TEXTURE2D;
331 pub const D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY: ::D3D_SRV_DIMENSION =
332     D3D_SRV_DIMENSION_TEXTURE2DARRAY;
333 pub const D3D10_1_SRV_DIMENSION_TEXTURE2DMS: ::D3D_SRV_DIMENSION =
334     D3D_SRV_DIMENSION_TEXTURE2DMS;
335 pub const D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY: ::D3D_SRV_DIMENSION =
336     D3D_SRV_DIMENSION_TEXTURE2DMSARRAY;
337 pub const D3D10_1_SRV_DIMENSION_TEXTURE3D: ::D3D_SRV_DIMENSION =
338     D3D_SRV_DIMENSION_TEXTURE3D;
339 pub const D3D10_1_SRV_DIMENSION_TEXTURECUBE: ::D3D_SRV_DIMENSION =
340     D3D_SRV_DIMENSION_TEXTURECUBE;
341 pub const D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY: ::D3D_SRV_DIMENSION =
342     D3D_SRV_DIMENSION_TEXTURECUBEARRAY;
343 pub const D3D11_SRV_DIMENSION_UNKNOWN: ::D3D_SRV_DIMENSION =
344     D3D_SRV_DIMENSION_UNKNOWN;
345 pub const D3D11_SRV_DIMENSION_BUFFER: ::D3D_SRV_DIMENSION =
346     D3D_SRV_DIMENSION_BUFFER;
347 pub const D3D11_SRV_DIMENSION_TEXTURE1D: ::D3D_SRV_DIMENSION =
348     D3D_SRV_DIMENSION_TEXTURE1D;
349 pub const D3D11_SRV_DIMENSION_TEXTURE1DARRAY: ::D3D_SRV_DIMENSION =
350     D3D_SRV_DIMENSION_TEXTURE1DARRAY;
351 pub const D3D11_SRV_DIMENSION_TEXTURE2D: ::D3D_SRV_DIMENSION =
352     D3D_SRV_DIMENSION_TEXTURE2D;
353 pub const D3D11_SRV_DIMENSION_TEXTURE2DARRAY: ::D3D_SRV_DIMENSION =
354     D3D_SRV_DIMENSION_TEXTURE2DARRAY;
355 pub const D3D11_SRV_DIMENSION_TEXTURE2DMS: ::D3D_SRV_DIMENSION =
356     D3D_SRV_DIMENSION_TEXTURE2DMS;
357 pub const D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: ::D3D_SRV_DIMENSION =
358     D3D_SRV_DIMENSION_TEXTURE2DMSARRAY;
359 pub const D3D11_SRV_DIMENSION_TEXTURE3D: ::D3D_SRV_DIMENSION =
360     D3D_SRV_DIMENSION_TEXTURE3D;
361 pub const D3D11_SRV_DIMENSION_TEXTURECUBE: ::D3D_SRV_DIMENSION =
362     D3D_SRV_DIMENSION_TEXTURECUBE;
363 pub const D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: ::D3D_SRV_DIMENSION =
364     D3D_SRV_DIMENSION_TEXTURECUBEARRAY;
365 pub const D3D11_SRV_DIMENSION_BUFFEREX: ::D3D_SRV_DIMENSION =
366     D3D_SRV_DIMENSION_BUFFEREX;
367 STRUCT!{struct D3D_SHADER_MACRO {
368     Name: ::LPCSTR,
369     Definition: ::LPCSTR,
370 }}
371 pub type LPD3D_SHADER_MACRO = *mut D3D_SHADER_MACRO;
372 RIDL!(
373 interface ID3D10Blob(ID3D10BlobVtbl): IUnknown(IUnknownVtbl) {
374     fn GetBufferPointer(&mut self) -> ::LPVOID,
375     fn GetBufferSize(&mut self) -> ::SIZE_T
376 }
377 );
378 pub type LPD3D10BLOB = *mut ID3D10Blob;
379 pub type ID3DBlob = ID3D10Blob;
380 pub type LPD3DBLOB = *mut ID3DBlob;
381 ENUM!{enum D3D_INCLUDE_TYPE {
382     D3D_INCLUDE_LOCAL = 0,
383     D3D_INCLUDE_SYSTEM,
384 }}
385 pub const D3D10_INCLUDE_LOCAL: ::D3D_INCLUDE_TYPE = D3D_INCLUDE_LOCAL;
386 pub const D3D10_INCLUDE_SYSTEM: ::D3D_INCLUDE_TYPE = D3D_INCLUDE_SYSTEM;
387 RIDL!(
388 interface ID3DInclude(ID3DIncludeVtbl) {
389     fn Open(
390         &mut self, IncludeType: D3D_INCLUDE_TYPE, pFileName: ::LPCSTR, pParentData: ::LPCVOID,
391         ppData: *mut ::LPCVOID, pBytes: *mut ::UINT
392     ) -> ::HRESULT,
393     fn Close(&mut self, pData: ::LPCVOID) -> ::HRESULT
394 }
395 );
396 pub type LPD3DINCLUDE = *mut ID3DInclude;
397 ENUM!{enum D3D_SHADER_VARIABLE_CLASS {
398     D3D_SVC_SCALAR = 0,
399     D3D_SVC_VECTOR,
400     D3D_SVC_MATRIX_ROWS,
401     D3D_SVC_MATRIX_COLUMNS,
402     D3D_SVC_OBJECT,
403     D3D_SVC_STRUCT,
404     D3D_SVC_INTERFACE_CLASS,
405     D3D_SVC_INTERFACE_POINTER,
406 }}
407 pub const D3D10_SVC_SCALAR: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_SCALAR;
408 pub const D3D10_SVC_VECTOR: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_VECTOR;
409 pub const D3D10_SVC_MATRIX_ROWS: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_MATRIX_ROWS;
410 pub const D3D10_SVC_MATRIX_COLUMNS: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_MATRIX_COLUMNS;
411 pub const D3D10_SVC_OBJECT: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_OBJECT;
412 pub const D3D10_SVC_STRUCT: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_STRUCT;
413 pub const D3D11_SVC_INTERFACE_CLASS: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_INTERFACE_CLASS;
414 pub const D3D11_SVC_INTERFACE_POINTER: ::D3D_SHADER_VARIABLE_CLASS = D3D_SVC_INTERFACE_POINTER;
415 FLAGS!{enum D3D_SHADER_VARIABLE_FLAGS {
416     D3D_SVF_USERPACKED = 1,
417     D3D_SVF_USED = 2,
418     D3D_SVF_INTERFACE_POINTER = 4,
419     D3D_SVF_INTERFACE_PARAMETER = 8,
420 }}
421 pub const D3D10_SVF_USERPACKED: ::D3D_SHADER_VARIABLE_FLAGS = D3D_SVF_USERPACKED;
422 pub const D3D10_SVF_USED: ::D3D_SHADER_VARIABLE_FLAGS = D3D_SVF_USED;
423 pub const D3D11_SVF_INTERFACE_POINTER: ::D3D_SHADER_VARIABLE_FLAGS = D3D_SVF_INTERFACE_POINTER;
424 pub const D3D11_SVF_INTERFACE_PARAMETER: ::D3D_SHADER_VARIABLE_FLAGS = D3D_SVF_INTERFACE_PARAMETER;
425 ENUM!{enum D3D_SHADER_VARIABLE_TYPE {
426     D3D_SVT_VOID = 0,
427     D3D_SVT_BOOL = 1,
428     D3D_SVT_INT = 2,
429     D3D_SVT_FLOAT = 3,
430     D3D_SVT_STRING = 4,
431     D3D_SVT_TEXTURE = 5,
432     D3D_SVT_TEXTURE1D = 6,
433     D3D_SVT_TEXTURE2D = 7,
434     D3D_SVT_TEXTURE3D = 8,
435     D3D_SVT_TEXTURECUBE = 9,
436     D3D_SVT_SAMPLER = 10,
437     D3D_SVT_SAMPLER1D = 11,
438     D3D_SVT_SAMPLER2D = 12,
439     D3D_SVT_SAMPLER3D = 13,
440     D3D_SVT_SAMPLERCUBE = 14,
441     D3D_SVT_PIXELSHADER = 15,
442     D3D_SVT_VERTEXSHADER = 16,
443     D3D_SVT_PIXELFRAGMENT = 17,
444     D3D_SVT_VERTEXFRAGMENT = 18,
445     D3D_SVT_UINT = 19,
446     D3D_SVT_UINT8 = 20,
447     D3D_SVT_GEOMETRYSHADER = 21,
448     D3D_SVT_RASTERIZER = 22,
449     D3D_SVT_DEPTHSTENCIL = 23,
450     D3D_SVT_BLEND = 24,
451     D3D_SVT_BUFFER = 25,
452     D3D_SVT_CBUFFER = 26,
453     D3D_SVT_TBUFFER = 27,
454     D3D_SVT_TEXTURE1DARRAY = 28,
455     D3D_SVT_TEXTURE2DARRAY = 29,
456     D3D_SVT_RENDERTARGETVIEW = 30,
457     D3D_SVT_DEPTHSTENCILVIEW = 31,
458     D3D_SVT_TEXTURE2DMS = 32,
459     D3D_SVT_TEXTURE2DMSARRAY = 33,
460     D3D_SVT_TEXTURECUBEARRAY = 34,
461     D3D_SVT_HULLSHADER = 35,
462     D3D_SVT_DOMAINSHADER = 36,
463     D3D_SVT_INTERFACE_POINTER = 37,
464     D3D_SVT_COMPUTESHADER = 38,
465     D3D_SVT_DOUBLE = 39,
466     D3D_SVT_RWTEXTURE1D = 40,
467     D3D_SVT_RWTEXTURE1DARRAY = 41,
468     D3D_SVT_RWTEXTURE2D = 42,
469     D3D_SVT_RWTEXTURE2DARRAY = 43,
470     D3D_SVT_RWTEXTURE3D = 44,
471     D3D_SVT_RWBUFFER = 45,
472     D3D_SVT_BYTEADDRESS_BUFFER = 46,
473     D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
474     D3D_SVT_STRUCTURED_BUFFER = 48,
475     D3D_SVT_RWSTRUCTURED_BUFFER = 49,
476     D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
477     D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
478     D3D_SVT_MIN8FLOAT = 52,
479     D3D_SVT_MIN10FLOAT = 53,
480     D3D_SVT_MIN16FLOAT = 54,
481     D3D_SVT_MIN12INT = 55,
482     D3D_SVT_MIN16INT = 56,
483     D3D_SVT_MIN16UINT = 57,
484 }}
485 pub const D3D10_SVT_VOID: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_VOID;
486 pub const D3D10_SVT_BOOL: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_BOOL;
487 pub const D3D10_SVT_INT: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_INT;
488 pub const D3D10_SVT_FLOAT: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_FLOAT;
489 pub const D3D10_SVT_STRING: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_STRING;
490 pub const D3D10_SVT_TEXTURE: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE;
491 pub const D3D10_SVT_TEXTURE1D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE1D;
492 pub const D3D10_SVT_TEXTURE2D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE2D;
493 pub const D3D10_SVT_TEXTURE3D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE3D;
494 pub const D3D10_SVT_TEXTURECUBE: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURECUBE;
495 pub const D3D10_SVT_SAMPLER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_SAMPLER;
496 pub const D3D10_SVT_SAMPLER1D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_SAMPLER1D;
497 pub const D3D10_SVT_SAMPLER2D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_SAMPLER2D;
498 pub const D3D10_SVT_SAMPLER3D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_SAMPLER3D;
499 pub const D3D10_SVT_SAMPLERCUBE: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_SAMPLERCUBE;
500 pub const D3D10_SVT_PIXELSHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_PIXELSHADER;
501 pub const D3D10_SVT_VERTEXSHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_VERTEXSHADER;
502 pub const D3D10_SVT_PIXELFRAGMENT: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_PIXELFRAGMENT;
503 pub const D3D10_SVT_VERTEXFRAGMENT: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_VERTEXFRAGMENT;
504 pub const D3D10_SVT_UINT: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_UINT;
505 pub const D3D10_SVT_UINT8: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_UINT8;
506 pub const D3D10_SVT_GEOMETRYSHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_GEOMETRYSHADER;
507 pub const D3D10_SVT_RASTERIZER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RASTERIZER;
508 pub const D3D10_SVT_DEPTHSTENCIL: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_DEPTHSTENCIL;
509 pub const D3D10_SVT_BLEND: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_BLEND;
510 pub const D3D10_SVT_BUFFER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_BUFFER;
511 pub const D3D10_SVT_CBUFFER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_CBUFFER;
512 pub const D3D10_SVT_TBUFFER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TBUFFER;
513 pub const D3D10_SVT_TEXTURE1DARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE1DARRAY;
514 pub const D3D10_SVT_TEXTURE2DARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE2DARRAY;
515 pub const D3D10_SVT_RENDERTARGETVIEW: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RENDERTARGETVIEW;
516 pub const D3D10_SVT_DEPTHSTENCILVIEW: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_DEPTHSTENCILVIEW;
517 pub const D3D10_SVT_TEXTURE2DMS: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE2DMS;
518 pub const D3D10_SVT_TEXTURE2DMSARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURE2DMSARRAY;
519 pub const D3D10_SVT_TEXTURECUBEARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_TEXTURECUBEARRAY;
520 pub const D3D11_SVT_HULLSHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_HULLSHADER;
521 pub const D3D11_SVT_DOMAINSHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_DOMAINSHADER;
522 pub const D3D11_SVT_INTERFACE_POINTER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_INTERFACE_POINTER;
523 pub const D3D11_SVT_COMPUTESHADER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_COMPUTESHADER;
524 pub const D3D11_SVT_DOUBLE: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_DOUBLE;
525 pub const D3D11_SVT_RWTEXTURE1D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWTEXTURE1D;
526 pub const D3D11_SVT_RWTEXTURE1DARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWTEXTURE1DARRAY;
527 pub const D3D11_SVT_RWTEXTURE2D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWTEXTURE2D;
528 pub const D3D11_SVT_RWTEXTURE2DARRAY: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWTEXTURE2DARRAY;
529 pub const D3D11_SVT_RWTEXTURE3D: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWTEXTURE3D;
530 pub const D3D11_SVT_RWBUFFER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_RWBUFFER;
531 pub const D3D11_SVT_BYTEADDRESS_BUFFER: ::D3D_SHADER_VARIABLE_TYPE = D3D_SVT_BYTEADDRESS_BUFFER;
532 pub const D3D11_SVT_RWBYTEADDRESS_BUFFER: ::D3D_SHADER_VARIABLE_TYPE =
533     D3D_SVT_RWBYTEADDRESS_BUFFER;
534 pub const D3D11_SVT_STRUCTURED_BUFFER: ::D3D_SHADER_VARIABLE_TYPE =
535     D3D_SVT_STRUCTURED_BUFFER;
536 pub const D3D11_SVT_RWSTRUCTURED_BUFFER: ::D3D_SHADER_VARIABLE_TYPE =
537     D3D_SVT_RWSTRUCTURED_BUFFER;
538 pub const D3D11_SVT_APPEND_STRUCTURED_BUFFER: ::D3D_SHADER_VARIABLE_TYPE =
539     D3D_SVT_APPEND_STRUCTURED_BUFFER;
540 pub const D3D11_SVT_CONSUME_STRUCTURED_BUFFER: ::D3D_SHADER_VARIABLE_TYPE =
541     D3D_SVT_CONSUME_STRUCTURED_BUFFER;
542 FLAGS!{enum D3D_SHADER_INPUT_FLAGS {
543     D3D_SIF_USERPACKED = 0x1,
544     D3D_SIF_COMPARISON_SAMPLER = 0x2,
545     D3D_SIF_TEXTURE_COMPONENT_0 = 0x4,
546     D3D_SIF_TEXTURE_COMPONENT_1 = 0x8,
547     D3D_SIF_TEXTURE_COMPONENTS = 0xc,
548     D3D_SIF_UNUSED = 0x10,
549 }}
550 pub const D3D10_SIF_USERPACKED: ::D3D_SHADER_INPUT_FLAGS = D3D_SIF_USERPACKED;
551 pub const D3D10_SIF_COMPARISON_SAMPLER: ::D3D_SHADER_INPUT_FLAGS = D3D_SIF_COMPARISON_SAMPLER;
552 pub const D3D10_SIF_TEXTURE_COMPONENT_0: ::D3D_SHADER_INPUT_FLAGS = D3D_SIF_TEXTURE_COMPONENT_0;
553 pub const D3D10_SIF_TEXTURE_COMPONENT_1: ::D3D_SHADER_INPUT_FLAGS = D3D_SIF_TEXTURE_COMPONENT_1;
554 pub const D3D10_SIF_TEXTURE_COMPONENTS: ::D3D_SHADER_INPUT_FLAGS = D3D_SIF_TEXTURE_COMPONENTS;
555 ENUM!{enum D3D_SHADER_INPUT_TYPE {
556     D3D_SIT_CBUFFER,
557     D3D_SIT_TBUFFER,
558     D3D_SIT_TEXTURE,
559     D3D_SIT_SAMPLER,
560     D3D_SIT_UAV_RWTYPED,
561     D3D_SIT_STRUCTURED,
562     D3D_SIT_UAV_RWSTRUCTURED,
563     D3D_SIT_BYTEADDRESS,
564     D3D_SIT_UAV_RWBYTEADDRESS,
565     D3D_SIT_UAV_APPEND_STRUCTURED,
566     D3D_SIT_UAV_CONSUME_STRUCTURED,
567     D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
568 }}
569 pub const D3D10_SIT_CBUFFER: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_CBUFFER;
570 pub const D3D10_SIT_TBUFFER: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_TBUFFER;
571 pub const D3D10_SIT_TEXTURE: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_TEXTURE;
572 pub const D3D10_SIT_SAMPLER: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_SAMPLER;
573 pub const D3D11_SIT_UAV_RWTYPED: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_UAV_RWTYPED;
574 pub const D3D11_SIT_STRUCTURED: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_STRUCTURED;
575 pub const D3D11_SIT_UAV_RWSTRUCTURED: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_UAV_RWSTRUCTURED;
576 pub const D3D11_SIT_BYTEADDRESS: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_BYTEADDRESS;
577 pub const D3D11_SIT_UAV_RWBYTEADDRESS: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_UAV_RWBYTEADDRESS;
578 pub const D3D11_SIT_UAV_APPEND_STRUCTURED: ::D3D_SHADER_INPUT_TYPE = D3D_SIT_UAV_APPEND_STRUCTURED;
579 pub const D3D11_SIT_UAV_CONSUME_STRUCTURED: ::D3D_SHADER_INPUT_TYPE =
580     D3D_SIT_UAV_CONSUME_STRUCTURED;
581 pub const D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER: ::D3D_SHADER_INPUT_TYPE =
582     D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER;
583 FLAGS!{enum D3D_SHADER_CBUFFER_FLAGS {
584     D3D_CBF_USERPACKED = 1,
585 }}
586 pub const D3D10_CBF_USERPACKED: ::D3D_SHADER_CBUFFER_FLAGS = D3D_CBF_USERPACKED;
587 ENUM!{enum D3D_CBUFFER_TYPE {
588     D3D_CT_CBUFFER,
589     D3D_CT_TBUFFER,
590     D3D_CT_INTERFACE_POINTERS,
591     D3D_CT_RESOURCE_BIND_INFO,
592 }}
593 pub const D3D10_CT_CBUFFER: ::D3D_CBUFFER_TYPE = D3D_CT_CBUFFER;
594 pub const D3D10_CT_TBUFFER: ::D3D_CBUFFER_TYPE = D3D_CT_TBUFFER;
595 pub const D3D11_CT_CBUFFER: ::D3D_CBUFFER_TYPE = D3D_CT_CBUFFER;
596 pub const D3D11_CT_TBUFFER: ::D3D_CBUFFER_TYPE = D3D_CT_TBUFFER;
597 pub const D3D11_CT_INTERFACE_POINTERS: ::D3D_CBUFFER_TYPE = D3D_CT_INTERFACE_POINTERS;
598 pub const D3D11_CT_RESOURCE_BIND_INFO: ::D3D_CBUFFER_TYPE = D3D_CT_RESOURCE_BIND_INFO;
599 ENUM!{enum D3D_NAME {
600     D3D_NAME_UNDEFINED = 0,
601     D3D_NAME_POSITION = 1,
602     D3D_NAME_CLIP_DISTANCE = 2,
603     D3D_NAME_CULL_DISTANCE = 3,
604     D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
605     D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
606     D3D_NAME_VERTEX_ID = 6,
607     D3D_NAME_PRIMITIVE_ID = 7,
608     D3D_NAME_INSTANCE_ID = 8,
609     D3D_NAME_IS_FRONT_FACE = 9,
610     D3D_NAME_SAMPLE_INDEX = 10,
611     D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
612     D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
613     D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
614     D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
615     D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
616     D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
617     D3D_NAME_TARGET = 64,
618     D3D_NAME_DEPTH = 65,
619     D3D_NAME_COVERAGE = 66,
620     D3D_NAME_DEPTH_GREATER_EQUAL = 67,
621     D3D_NAME_DEPTH_LESS_EQUAL = 68,
622 }}
623 pub const D3D10_NAME_UNDEFINED: D3D_NAME = D3D_NAME_UNDEFINED;
624 pub const D3D10_NAME_POSITION: D3D_NAME = D3D_NAME_POSITION;
625 pub const D3D10_NAME_CLIP_DISTANCE: D3D_NAME = D3D_NAME_CLIP_DISTANCE;
626 pub const D3D10_NAME_CULL_DISTANCE: D3D_NAME = D3D_NAME_CULL_DISTANCE;
627 pub const D3D10_NAME_RENDER_TARGET_ARRAY_INDEX: D3D_NAME = D3D_NAME_RENDER_TARGET_ARRAY_INDEX;
628 pub const D3D10_NAME_VIEWPORT_ARRAY_INDEX: D3D_NAME = D3D_NAME_VIEWPORT_ARRAY_INDEX;
629 pub const D3D10_NAME_VERTEX_ID: D3D_NAME = D3D_NAME_VERTEX_ID;
630 pub const D3D10_NAME_PRIMITIVE_ID: D3D_NAME = D3D_NAME_PRIMITIVE_ID;
631 pub const D3D10_NAME_INSTANCE_ID: D3D_NAME = D3D_NAME_INSTANCE_ID;
632 pub const D3D10_NAME_IS_FRONT_FACE: D3D_NAME = D3D_NAME_IS_FRONT_FACE;
633 pub const D3D10_NAME_SAMPLE_INDEX: D3D_NAME = D3D_NAME_SAMPLE_INDEX;
634 pub const D3D10_NAME_TARGET: D3D_NAME = D3D_NAME_TARGET;
635 pub const D3D10_NAME_DEPTH: D3D_NAME = D3D_NAME_DEPTH;
636 pub const D3D10_NAME_COVERAGE: D3D_NAME = D3D_NAME_COVERAGE;
637 pub const D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR;
638 pub const D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR;
639 pub const D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR;
640 pub const D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR;
641 pub const D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR;
642 pub const D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR: D3D_NAME = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR;
643 pub const D3D11_NAME_DEPTH_GREATER_EQUAL: D3D_NAME = D3D_NAME_DEPTH_GREATER_EQUAL;
644 pub const D3D11_NAME_DEPTH_LESS_EQUAL: D3D_NAME = D3D_NAME_DEPTH_LESS_EQUAL;
645 ENUM!{enum D3D_RESOURCE_RETURN_TYPE {
646     D3D_RETURN_TYPE_UNORM = 1,
647     D3D_RETURN_TYPE_SNORM = 2,
648     D3D_RETURN_TYPE_SINT = 3,
649     D3D_RETURN_TYPE_UINT = 4,
650     D3D_RETURN_TYPE_FLOAT = 5,
651     D3D_RETURN_TYPE_MIXED = 6,
652     D3D_RETURN_TYPE_DOUBLE = 7,
653     D3D_RETURN_TYPE_CONTINUED = 8,
654 }}
655 pub const D3D10_RETURN_TYPE_UNORM: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_UNORM;
656 pub const D3D10_RETURN_TYPE_SNORM: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_SNORM;
657 pub const D3D10_RETURN_TYPE_SINT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_SINT;
658 pub const D3D10_RETURN_TYPE_UINT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_UINT;
659 pub const D3D10_RETURN_TYPE_FLOAT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_FLOAT;
660 pub const D3D10_RETURN_TYPE_MIXED: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_MIXED;
661 pub const D3D11_RETURN_TYPE_UNORM: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_UNORM;
662 pub const D3D11_RETURN_TYPE_SNORM: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_SNORM;
663 pub const D3D11_RETURN_TYPE_SINT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_SINT;
664 pub const D3D11_RETURN_TYPE_UINT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_UINT;
665 pub const D3D11_RETURN_TYPE_FLOAT: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_FLOAT;
666 pub const D3D11_RETURN_TYPE_MIXED: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_MIXED;
667 pub const D3D11_RETURN_TYPE_DOUBLE: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_DOUBLE;
668 pub const D3D11_RETURN_TYPE_CONTINUED: ::D3D_RESOURCE_RETURN_TYPE = D3D_RETURN_TYPE_CONTINUED;
669 ENUM!{enum D3D_REGISTER_COMPONENT_TYPE {
670     D3D_REGISTER_COMPONENT_UNKNOWN = 0,
671     D3D_REGISTER_COMPONENT_UINT32 = 1,
672     D3D_REGISTER_COMPONENT_SINT32 = 2,
673     D3D_REGISTER_COMPONENT_FLOAT32 = 3,
674 }}
675 pub const D3D10_REGISTER_COMPONENT_UNKNOWN: ::D3D_REGISTER_COMPONENT_TYPE =
676     D3D_REGISTER_COMPONENT_UNKNOWN;
677 pub const D3D10_REGISTER_COMPONENT_UINT32: ::D3D_REGISTER_COMPONENT_TYPE =
678     D3D_REGISTER_COMPONENT_UINT32;
679 pub const D3D10_REGISTER_COMPONENT_SINT32: ::D3D_REGISTER_COMPONENT_TYPE =
680     D3D_REGISTER_COMPONENT_SINT32;
681 pub const D3D10_REGISTER_COMPONENT_FLOAT32: ::D3D_REGISTER_COMPONENT_TYPE =
682     D3D_REGISTER_COMPONENT_FLOAT32;
683 ENUM!{enum D3D_TESSELLATOR_DOMAIN {
684     D3D_TESSELLATOR_DOMAIN_UNDEFINED,
685     D3D_TESSELLATOR_DOMAIN_ISOLINE,
686     D3D_TESSELLATOR_DOMAIN_TRI,
687     D3D_TESSELLATOR_DOMAIN_QUAD,
688 }}
689 pub const D3D11_TESSELLATOR_DOMAIN_UNDEFINED: ::D3D_TESSELLATOR_DOMAIN =
690     D3D_TESSELLATOR_DOMAIN_UNDEFINED;
691 pub const D3D11_TESSELLATOR_DOMAIN_ISOLINE: ::D3D_TESSELLATOR_DOMAIN =
692     D3D_TESSELLATOR_DOMAIN_ISOLINE;
693 pub const D3D11_TESSELLATOR_DOMAIN_TRI: ::D3D_TESSELLATOR_DOMAIN = D3D_TESSELLATOR_DOMAIN_TRI;
694 pub const D3D11_TESSELLATOR_DOMAIN_QUAD: ::D3D_TESSELLATOR_DOMAIN = D3D_TESSELLATOR_DOMAIN_QUAD;
695 ENUM!{enum D3D_TESSELLATOR_PARTITIONING {
696     D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
697     D3D_TESSELLATOR_PARTITIONING_INTEGER,
698     D3D_TESSELLATOR_PARTITIONING_POW2,
699     D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
700     D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
701 }}
702 pub const D3D11_TESSELLATOR_PARTITIONING_UNDEFINED: ::D3D_TESSELLATOR_PARTITIONING =
703     D3D_TESSELLATOR_PARTITIONING_UNDEFINED;
704 pub const D3D11_TESSELLATOR_PARTITIONING_INTEGER: ::D3D_TESSELLATOR_PARTITIONING =
705     D3D_TESSELLATOR_PARTITIONING_INTEGER;
706 pub const D3D11_TESSELLATOR_PARTITIONING_POW2: ::D3D_TESSELLATOR_PARTITIONING =
707     D3D_TESSELLATOR_PARTITIONING_POW2;
708 pub const D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: ::D3D_TESSELLATOR_PARTITIONING =
709     D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD;
710 pub const D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: ::D3D_TESSELLATOR_PARTITIONING =
711     D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN;
712 ENUM!{enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE {
713     D3D_TESSELLATOR_OUTPUT_UNDEFINED,
714     D3D_TESSELLATOR_OUTPUT_POINT,
715     D3D_TESSELLATOR_OUTPUT_LINE,
716     D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
717     D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
718 }}
719 pub const D3D11_TESSELLATOR_OUTPUT_UNDEFINED: ::D3D_TESSELLATOR_OUTPUT_PRIMITIVE =
720     D3D_TESSELLATOR_OUTPUT_UNDEFINED;
721 pub const D3D11_TESSELLATOR_OUTPUT_POINT: ::D3D_TESSELLATOR_OUTPUT_PRIMITIVE =
722     D3D_TESSELLATOR_OUTPUT_POINT;
723 pub const D3D11_TESSELLATOR_OUTPUT_LINE: ::D3D_TESSELLATOR_OUTPUT_PRIMITIVE =
724     D3D_TESSELLATOR_OUTPUT_LINE;
725 pub const D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW: ::D3D_TESSELLATOR_OUTPUT_PRIMITIVE =
726     D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW;
727 pub const D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW: ::D3D_TESSELLATOR_OUTPUT_PRIMITIVE =
728     D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW;
729 ENUM!{enum D3D_MIN_PRECISION {
730     D3D_MIN_PRECISION_DEFAULT,
731     D3D_MIN_PRECISION_FLOAT_16,
732     D3D_MIN_PRECISION_FLOAT_2_8,
733     D3D_MIN_PRECISION_RESERVED,
734     D3D_MIN_PRECISION_SINT_16,
735     D3D_MIN_PRECISION_UINT_16,
736     D3D_MIN_PRECISION_ANY_16 = 0xf0,
737     D3D_MIN_PRECISION_ANY_10 = 0xf1,
738 }}
739 ENUM!{enum D3D_INTERPOLATION_MODE {
740     D3D_INTERPOLATION_UNDEFINED,
741     D3D_INTERPOLATION_CONSTANT,
742     D3D_INTERPOLATION_LINEAR,
743     D3D_INTERPOLATION_LINEAR_CENTROID,
744     D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE,
745     D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID,
746     D3D_INTERPOLATION_LINEAR_SAMPLE,
747     D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE,
748 }}
749 FLAGS!{enum D3D_PARAMETER_FLAGS {
750     D3D_PF_NONE = 0,
751     D3D_PF_IN = 0x1,
752     D3D_PF_OUT = 0x2,
753 }}
754