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