]> git.cworth.org Git - apitrace/blob - specs/d3dcommon.py
Minimal D3D11 support.
[apitrace] / specs / d3dcommon.py
1 ##########################################################################
2 #
3 # Copyright 2012 Jose Fonseca
4 # All Rights Reserved.
5 #
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 # THE SOFTWARE.
23 #
24 ##########################################################################/
25
26
27 from winapi import *
28
29
30 D3D_DRIVER_TYPE = Enum('D3D_DRIVER_TYPE', [
31     'D3D_DRIVER_TYPE_UNKNOWN',
32     'D3D_DRIVER_TYPE_HARDWARE',
33     'D3D_DRIVER_TYPE_REFERENCE',
34     'D3D_DRIVER_TYPE_NULL',
35     'D3D_DRIVER_TYPE_SOFTWARE',
36     'D3D_DRIVER_TYPE_WARP',
37 ])
38
39 D3D_FEATURE_LEVEL = Enum('D3D_FEATURE_LEVEL', [
40     'D3D_FEATURE_LEVEL_9_1',
41     'D3D_FEATURE_LEVEL_9_2',
42     'D3D_FEATURE_LEVEL_9_3',
43     'D3D_FEATURE_LEVEL_10_0',
44     'D3D_FEATURE_LEVEL_10_1',
45     'D3D_FEATURE_LEVEL_11_0',
46 ])
47
48 D3D_PRIMITIVE_TOPOLOGY = Enum('D3D_PRIMITIVE_TOPOLOGY', [
49     'D3D_PRIMITIVE_TOPOLOGY_UNDEFINED',
50     'D3D_PRIMITIVE_TOPOLOGY_POINTLIST',
51     'D3D_PRIMITIVE_TOPOLOGY_LINELIST',
52     'D3D_PRIMITIVE_TOPOLOGY_LINESTRIP',
53     'D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST',
54     'D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP',
55     'D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ',
56     'D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ',
57     'D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ',
58     'D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ',
59     'D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST',
60     'D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST',
61     'D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST',
62     'D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST',
63     'D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST',
64     'D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST',
65     'D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST',
66     'D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST',
67     'D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST',
68     'D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST',
69     'D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST',
70     'D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST',
71     'D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST',
72     'D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST',
73     'D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST',
74     'D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST',
75     'D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST',
76     'D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST',
77     'D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST',
78     'D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST',
79     'D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST',
80     'D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST',
81     'D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST',
82     'D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST',
83     'D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST',
84     'D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST',
85     'D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST',
86     'D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST',
87     'D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST',
88     'D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST',
89     'D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST',
90     'D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST',
91 ])
92
93 D3D10_PRIMITIVE_TOPOLOGY = Enum('D3D10_PRIMITIVE_TOPOLOGY', [
94     'D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED',
95     'D3D10_PRIMITIVE_TOPOLOGY_POINTLIST',
96     'D3D10_PRIMITIVE_TOPOLOGY_LINELIST',
97     'D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP',
98     'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST',
99     'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP',
100     'D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ',
101     'D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ',
102     'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ',
103     'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ',
104 ])
105
106 D3D11_PRIMITIVE_TOPOLOGY = Enum('D3D11_PRIMITIVE_TOPOLOGY', [
107     'D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED',
108     'D3D11_PRIMITIVE_TOPOLOGY_POINTLIST',
109     'D3D11_PRIMITIVE_TOPOLOGY_LINELIST',
110     'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP',
111     'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST',
112     'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP',
113     'D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ',
114     'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ',
115     'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ',
116     'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ',
117     'D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST',
118     'D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST',
119     'D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST',
120     'D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST',
121     'D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST',
122     'D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST',
123     'D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST',
124     'D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST',
125     'D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST',
126     'D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST',
127     'D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST',
128     'D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST',
129     'D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST',
130     'D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST',
131     'D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST',
132     'D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST',
133     'D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST',
134     'D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST',
135     'D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST',
136     'D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST',
137     'D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST',
138     'D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST',
139     'D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST',
140     'D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST',
141     'D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST',
142     'D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST',
143     'D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST',
144     'D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST',
145     'D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST',
146     'D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST',
147     'D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST',
148     'D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST',
149 ])
150
151 D3D_PRIMITIVE = Enum('D3D_PRIMITIVE', [
152     'D3D_PRIMITIVE_UNDEFINED',
153     'D3D_PRIMITIVE_POINT',
154     'D3D_PRIMITIVE_LINE',
155     'D3D_PRIMITIVE_TRIANGLE',
156     'D3D_PRIMITIVE_LINE_ADJ',
157     'D3D_PRIMITIVE_TRIANGLE_ADJ',
158     'D3D_PRIMITIVE_1_CONTROL_POINT_PATCH',
159     'D3D_PRIMITIVE_2_CONTROL_POINT_PATCH',
160     'D3D_PRIMITIVE_3_CONTROL_POINT_PATCH',
161     'D3D_PRIMITIVE_4_CONTROL_POINT_PATCH',
162     'D3D_PRIMITIVE_5_CONTROL_POINT_PATCH',
163     'D3D_PRIMITIVE_6_CONTROL_POINT_PATCH',
164     'D3D_PRIMITIVE_7_CONTROL_POINT_PATCH',
165     'D3D_PRIMITIVE_8_CONTROL_POINT_PATCH',
166     'D3D_PRIMITIVE_9_CONTROL_POINT_PATCH',
167     'D3D_PRIMITIVE_10_CONTROL_POINT_PATCH',
168     'D3D_PRIMITIVE_11_CONTROL_POINT_PATCH',
169     'D3D_PRIMITIVE_12_CONTROL_POINT_PATCH',
170     'D3D_PRIMITIVE_13_CONTROL_POINT_PATCH',
171     'D3D_PRIMITIVE_14_CONTROL_POINT_PATCH',
172     'D3D_PRIMITIVE_15_CONTROL_POINT_PATCH',
173     'D3D_PRIMITIVE_16_CONTROL_POINT_PATCH',
174     'D3D_PRIMITIVE_17_CONTROL_POINT_PATCH',
175     'D3D_PRIMITIVE_18_CONTROL_POINT_PATCH',
176     'D3D_PRIMITIVE_19_CONTROL_POINT_PATCH',
177     'D3D_PRIMITIVE_20_CONTROL_POINT_PATCH',
178     'D3D_PRIMITIVE_21_CONTROL_POINT_PATCH',
179     'D3D_PRIMITIVE_22_CONTROL_POINT_PATCH',
180     'D3D_PRIMITIVE_23_CONTROL_POINT_PATCH',
181     'D3D_PRIMITIVE_24_CONTROL_POINT_PATCH',
182     'D3D_PRIMITIVE_25_CONTROL_POINT_PATCH',
183     'D3D_PRIMITIVE_26_CONTROL_POINT_PATCH',
184     'D3D_PRIMITIVE_27_CONTROL_POINT_PATCH',
185     'D3D_PRIMITIVE_28_CONTROL_POINT_PATCH',
186     'D3D_PRIMITIVE_29_CONTROL_POINT_PATCH',
187     'D3D_PRIMITIVE_30_CONTROL_POINT_PATCH',
188     'D3D_PRIMITIVE_31_CONTROL_POINT_PATCH',
189     'D3D_PRIMITIVE_32_CONTROL_POINT_PATCH',
190 ])
191
192 D3D10_PRIMITIVE = Enum('D3D10_PRIMITIVE', [
193     'D3D10_PRIMITIVE_UNDEFINED',
194     'D3D10_PRIMITIVE_POINT',
195     'D3D10_PRIMITIVE_LINE',
196     'D3D10_PRIMITIVE_TRIANGLE',
197     'D3D10_PRIMITIVE_LINE_ADJ',
198     'D3D10_PRIMITIVE_TRIANGLE_ADJ',
199 ])
200
201 D3D11_PRIMITIVE = Enum('D3D11_PRIMITIVE', [
202     'D3D11_PRIMITIVE_UNDEFINED',
203     'D3D11_PRIMITIVE_POINT',
204     'D3D11_PRIMITIVE_LINE',
205     'D3D11_PRIMITIVE_TRIANGLE',
206     'D3D11_PRIMITIVE_LINE_ADJ',
207     'D3D11_PRIMITIVE_TRIANGLE_ADJ',
208     'D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH',
209     'D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH',
210     'D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH',
211     'D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH',
212     'D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH',
213     'D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH',
214     'D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH',
215     'D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH',
216     'D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH',
217     'D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH',
218     'D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH',
219     'D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH',
220     'D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH',
221     'D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH',
222     'D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH',
223     'D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH',
224     'D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH',
225     'D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH',
226     'D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH',
227     'D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH',
228     'D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH',
229     'D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH',
230     'D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH',
231     'D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH',
232     'D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH',
233     'D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH',
234     'D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH',
235     'D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH',
236     'D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH',
237     'D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH',
238     'D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH',
239     'D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH',
240 ])
241
242 D3D_SRV_DIMENSION = Enum('D3D_SRV_DIMENSION', [
243     'D3D_SRV_DIMENSION_UNKNOWN',
244     'D3D_SRV_DIMENSION_BUFFER',
245     'D3D_SRV_DIMENSION_TEXTURE1D',
246     'D3D_SRV_DIMENSION_TEXTURE1DARRAY',
247     'D3D_SRV_DIMENSION_TEXTURE2D',
248     'D3D_SRV_DIMENSION_TEXTURE2DARRAY',
249     'D3D_SRV_DIMENSION_TEXTURE2DMS',
250     'D3D_SRV_DIMENSION_TEXTURE2DMSARRAY',
251     'D3D_SRV_DIMENSION_TEXTURE3D',
252     'D3D_SRV_DIMENSION_TEXTURECUBE',
253     'D3D_SRV_DIMENSION_TEXTURECUBEARRAY',
254     'D3D_SRV_DIMENSION_BUFFEREX',
255 ])
256
257 D3D10_SRV_DIMENSION = Enum('D3D10_SRV_DIMENSION', [
258     'D3D10_SRV_DIMENSION_UNKNOWN',
259     'D3D10_SRV_DIMENSION_BUFFER',
260     'D3D10_SRV_DIMENSION_TEXTURE1D',
261     'D3D10_SRV_DIMENSION_TEXTURE1DARRAY',
262     'D3D10_SRV_DIMENSION_TEXTURE2D',
263     'D3D10_SRV_DIMENSION_TEXTURE2DARRAY',
264     'D3D10_SRV_DIMENSION_TEXTURE2DMS',
265     'D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY',
266     'D3D10_SRV_DIMENSION_TEXTURE3D',
267     'D3D10_SRV_DIMENSION_TEXTURECUBE',
268 ])
269
270 D3D10_SRV_DIMENSION1 = Enum('D3D10_SRV_DIMENSION1', [
271     'D3D10_1_SRV_DIMENSION_UNKNOWN',
272     'D3D10_1_SRV_DIMENSION_BUFFER',
273     'D3D10_1_SRV_DIMENSION_TEXTURE1D',
274     'D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY',
275     'D3D10_1_SRV_DIMENSION_TEXTURE2D',
276     'D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY',
277     'D3D10_1_SRV_DIMENSION_TEXTURE2DMS',
278     'D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY',
279     'D3D10_1_SRV_DIMENSION_TEXTURE3D',
280     'D3D10_1_SRV_DIMENSION_TEXTURECUBE',
281     'D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY',
282 ])
283
284 D3D11_SRV_DIMENSION = Enum('D3D11_SRV_DIMENSION', [
285     'D3D11_SRV_DIMENSION_UNKNOWN',
286     'D3D11_SRV_DIMENSION_BUFFER',
287     'D3D11_SRV_DIMENSION_TEXTURE1D',
288     'D3D11_SRV_DIMENSION_TEXTURE1DARRAY',
289     'D3D11_SRV_DIMENSION_TEXTURE2D',
290     'D3D11_SRV_DIMENSION_TEXTURE2DARRAY',
291     'D3D11_SRV_DIMENSION_TEXTURE2DMS',
292     'D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY',
293     'D3D11_SRV_DIMENSION_TEXTURE3D',
294     'D3D11_SRV_DIMENSION_TEXTURECUBE',
295     'D3D11_SRV_DIMENSION_TEXTURECUBEARRAY',
296     'D3D11_SRV_DIMENSION_BUFFEREX',
297 ])
298
299 D3D_SHADER_MACRO = Struct('D3D_SHADER_MACRO', [
300     (LPCSTR, 'Name'),
301     (LPCSTR, 'Definition'),
302 ])
303
304 ID3D10Blob = Interface('ID3D10Blob', IUnknown)
305 ID3D10Blob.methods += [
306     StdMethod(LPVOID, 'GetBufferPointer', []),
307     StdMethod(SIZE_T, 'GetBufferSize', []),
308 ]
309
310 D3D_INCLUDE_TYPE = Enum('D3D_INCLUDE_TYPE', [
311     'D3D_INCLUDE_LOCAL',
312     'D3D_INCLUDE_SYSTEM',
313 ])
314
315 D3D10_INCLUDE_TYPE = Enum('D3D10_INCLUDE_TYPE', [
316     'D3D10_INCLUDE_LOCAL',
317     'D3D10_INCLUDE_SYSTEM',
318 ])
319
320 D3D_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [
321     'D3D_SVC_SCALAR',
322     'D3D_SVC_VECTOR',
323     'D3D_SVC_MATRIX_ROWS',
324     'D3D_SVC_MATRIX_COLUMNS',
325     'D3D_SVC_OBJECT',
326     'D3D_SVC_STRUCT',
327     'D3D_SVC_INTERFACE_CLASS',
328     'D3D_SVC_INTERFACE_POINTER',
329 ])
330
331 D3D10_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [
332     'D3D10_SVC_SCALAR',
333     'D3D10_SVC_VECTOR',
334     'D3D10_SVC_MATRIX_ROWS',
335     'D3D10_SVC_MATRIX_COLUMNS',
336     'D3D10_SVC_OBJECT',
337     'D3D10_SVC_STRUCT',
338 ])
339
340 D3D11_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [
341     'D3D11_SVC_INTERFACE_CLASS',
342     'D3D11_SVC_INTERFACE_POINTER',
343 ])
344
345 D3D10_SHADER_VARIABLE_FLAGS = Enum('D3D10_SHADER_VARIABLE_FLAGS', [
346     'D3D_SVF_USERPACKED',
347     'D3D_SVF_USED',
348     'D3D_SVF_INTERFACE_POINTER',
349     'D3D_SVF_INTERFACE_PARAMETER',
350 ])
351
352 D3D11_SHADER_VARIABLE_FLAGS = Enum('D3D11_SHADER_VARIABLE_FLAGS', [
353     'D3D10_SVF_USERPACKED',
354     'D3D10_SVF_USED',
355     'D3D11_SVF_INTERFACE_POINTER',
356     'D3D11_SVF_INTERFACE_PARAMETER',
357 ])
358
359 D3D_SHADER_VARIABLE_TYPE = Enum('D3D_SHADER_VARIABLE_TYPE', [
360     'D3D_SVT_VOID',
361     'D3D_SVT_BOOL',
362     'D3D_SVT_INT',
363     'D3D_SVT_FLOAT',
364     'D3D_SVT_STRING',
365     'D3D_SVT_TEXTURE',
366     'D3D_SVT_TEXTURE1D',
367     'D3D_SVT_TEXTURE2D',
368     'D3D_SVT_TEXTURE3D',
369     'D3D_SVT_TEXTURECUBE',
370     'D3D_SVT_SAMPLER',
371     'D3D_SVT_SAMPLER1D',
372     'D3D_SVT_SAMPLER2D',
373     'D3D_SVT_SAMPLER3D',
374     'D3D_SVT_SAMPLERCUBE',
375     'D3D_SVT_PIXELSHADER',
376     'D3D_SVT_VERTEXSHADER',
377     'D3D_SVT_PIXELFRAGMENT',
378     'D3D_SVT_VERTEXFRAGMENT',
379     'D3D_SVT_UINT',
380     'D3D_SVT_UINT8',
381     'D3D_SVT_GEOMETRYSHADER',
382     'D3D_SVT_RASTERIZER',
383     'D3D_SVT_DEPTHSTENCIL',
384     'D3D_SVT_BLEND',
385     'D3D_SVT_BUFFER',
386     'D3D_SVT_CBUFFER',
387     'D3D_SVT_TBUFFER',
388     'D3D_SVT_TEXTURE1DARRAY',
389     'D3D_SVT_TEXTURE2DARRAY',
390     'D3D_SVT_RENDERTARGETVIEW',
391     'D3D_SVT_DEPTHSTENCILVIEW',
392     'D3D_SVT_TEXTURE2DMS',
393     'D3D_SVT_TEXTURE2DMSARRAY',
394     'D3D_SVT_TEXTURECUBEARRAY',
395     'D3D_SVT_HULLSHADER',
396     'D3D_SVT_DOMAINSHADER',
397     'D3D_SVT_INTERFACE_POINTER',
398     'D3D_SVT_COMPUTESHADER',
399     'D3D_SVT_DOUBLE',
400     'D3D_SVT_RWTEXTURE1D',
401     'D3D_SVT_RWTEXTURE1DARRAY',
402     'D3D_SVT_RWTEXTURE2D',
403     'D3D_SVT_RWTEXTURE2DARRAY',
404     'D3D_SVT_RWTEXTURE3D',
405     'D3D_SVT_RWBUFFER',
406     'D3D_SVT_BYTEADDRESS_BUFFER',
407     'D3D_SVT_RWBYTEADDRESS_BUFFER',
408     'D3D_SVT_STRUCTURED_BUFFER',
409     'D3D_SVT_RWSTRUCTURED_BUFFER',
410     'D3D_SVT_APPEND_STRUCTURED_BUFFER',
411     'D3D_SVT_CONSUME_STRUCTURED_BUFFER',
412 ])
413
414 D3D10_SHADER_VARIABLE_TYPE = Enum('D3D10_SHADER_VARIABLE_TYPE', [
415     'D3D10_SVT_VOID',
416     'D3D10_SVT_BOOL',
417     'D3D10_SVT_INT',
418     'D3D10_SVT_FLOAT',
419     'D3D10_SVT_STRING',
420     'D3D10_SVT_TEXTURE',
421     'D3D10_SVT_TEXTURE1D',
422     'D3D10_SVT_TEXTURE2D',
423     'D3D10_SVT_TEXTURE3D',
424     'D3D10_SVT_TEXTURECUBE',
425     'D3D10_SVT_SAMPLER',
426     'D3D10_SVT_SAMPLER1D',
427     'D3D10_SVT_SAMPLER2D',
428     'D3D10_SVT_SAMPLER3D',
429     'D3D10_SVT_SAMPLERCUBE',
430     'D3D10_SVT_PIXELSHADER',
431     'D3D10_SVT_VERTEXSHADER',
432     'D3D10_SVT_PIXELFRAGMENT',
433     'D3D10_SVT_VERTEXFRAGMENT',
434     'D3D10_SVT_UINT',
435     'D3D10_SVT_UINT8',
436     'D3D10_SVT_GEOMETRYSHADER',
437     'D3D10_SVT_RASTERIZER',
438     'D3D10_SVT_DEPTHSTENCIL',
439     'D3D10_SVT_BLEND',
440     'D3D10_SVT_BUFFER',
441     'D3D10_SVT_CBUFFER',
442     'D3D10_SVT_TBUFFER',
443     'D3D10_SVT_TEXTURE1DARRAY',
444     'D3D10_SVT_TEXTURE2DARRAY',
445     'D3D10_SVT_RENDERTARGETVIEW',
446     'D3D10_SVT_DEPTHSTENCILVIEW',
447     'D3D10_SVT_TEXTURE2DMS',
448     'D3D10_SVT_TEXTURE2DMSARRAY',
449     'D3D10_SVT_TEXTURECUBEARRAY',
450 ])
451
452 D3D11_SHADER_VARIABLE_TYPE = Enum('D3D11_SHADER_VARIABLE_TYPE', [
453     'D3D11_SVT_HULLSHADER',
454     'D3D11_SVT_DOMAINSHADER',
455     'D3D11_SVT_INTERFACE_POINTER',
456     'D3D11_SVT_COMPUTESHADER',
457     'D3D11_SVT_DOUBLE',
458     'D3D11_SVT_RWTEXTURE1D',
459     'D3D11_SVT_RWTEXTURE1DARRAY',
460     'D3D11_SVT_RWTEXTURE2D',
461     'D3D11_SVT_RWTEXTURE2DARRAY',
462     'D3D11_SVT_RWTEXTURE3D',
463     'D3D11_SVT_RWBUFFER',
464     'D3D11_SVT_BYTEADDRESS_BUFFER',
465     'D3D11_SVT_RWBYTEADDRESS_BUFFER',
466     'D3D11_SVT_STRUCTURED_BUFFER',
467     'D3D11_SVT_RWSTRUCTURED_BUFFER',
468     'D3D11_SVT_APPEND_STRUCTURED_BUFFER',
469     'D3D11_SVT_CONSUME_STRUCTURED_BUFFER',
470 ])
471
472 D3D_SHADER_INPUT_FLAGS = Enum('D3D_SHADER_INPUT_FLAGS', [
473     'D3D_SIF_USERPACKED',
474     'D3D_SIF_COMPARISON_SAMPLER',
475     'D3D_SIF_TEXTURE_COMPONENT_0',
476     'D3D_SIF_TEXTURE_COMPONENT_1',
477     'D3D_SIF_TEXTURE_COMPONENTS',
478 ])
479
480 D3D10_SHADER_INPUT_FLAGS = Enum('D3D10_SHADER_INPUT_FLAGS', [
481     'D3D10_SIF_USERPACKED',
482     'D3D10_SIF_COMPARISON_SAMPLER',
483     'D3D10_SIF_TEXTURE_COMPONENT_0',
484     'D3D10_SIF_TEXTURE_COMPONENT_1',
485     'D3D10_SIF_TEXTURE_COMPONENTS',
486 ])
487
488 D3D_SHADER_INPUT_TYPE = Enum('D3D_SHADER_INPUT_TYPE', [
489     'D3D_SIT_CBUFFER',
490     'D3D_SIT_TBUFFER',
491     'D3D_SIT_TEXTURE',
492     'D3D_SIT_SAMPLER',
493     'D3D_SIT_UAV_RWTYPED',
494     'D3D_SIT_STRUCTURED',
495     'D3D_SIT_UAV_RWSTRUCTURED',
496     'D3D_SIT_BYTEADDRESS',
497     'D3D_SIT_UAV_RWBYTEADDRESS',
498     'D3D_SIT_UAV_APPEND_STRUCTURED',
499     'D3D_SIT_UAV_CONSUME_STRUCTURED',
500     'D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER',
501 ])
502
503 D3D10_SHADER_INPUT_TYPE = Enum('D3D10_SHADER_INPUT_TYPE', [
504     'D3D10_SIT_CBUFFER',
505     'D3D10_SIT_TBUFFER',
506     'D3D10_SIT_TEXTURE',
507     'D3D10_SIT_SAMPLER',
508 ])
509
510 D3D11_SHADER_INPUT_TYPE = Enum('D3D11_SHADER_INPUT_TYPE', [
511     'D3D11_SIT_UAV_RWTYPED',
512     'D3D11_SIT_STRUCTURED',
513     'D3D11_SIT_UAV_RWSTRUCTURED',
514     'D3D11_SIT_BYTEADDRESS',
515     'D3D11_SIT_UAV_RWBYTEADDRESS',
516     'D3D11_SIT_UAV_APPEND_STRUCTURED',
517     'D3D11_SIT_UAV_CONSUME_STRUCTURED',
518     'D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER',
519 ])
520
521 D3D_SHADER_CBUFFER_FLAGS = Enum('D3D_SHADER_CBUFFER_FLAGS', [
522     'D3D_CBF_USERPACKED',
523 ])
524
525 D3D10_SHADER_CBUFFER_FLAGS = Enum('D3D10_SHADER_CBUFFER_FLAGS', [
526     'D3D10_CBF_USERPACKED',
527 ])
528
529 D3D_CBUFFER_TYPE = Enum('D3D_CBUFFER_TYPE', [
530     'D3D_CT_CBUFFER',
531     'D3D_CT_TBUFFER',
532     'D3D_CT_INTERFACE_POINTERS',
533     'D3D_CT_RESOURCE_BIND_INFO',
534 ])
535
536 D3D10_CBUFFER_TYPE = Enum('D3D10_CBUFFER_TYPE', [
537     'D3D10_CT_CBUFFER',
538     'D3D10_CT_TBUFFER',
539 ])
540
541 D3D11_CBUFFER_TYPE = Enum('D3D11_CBUFFER_TYPE', [
542     'D3D11_CT_CBUFFER',
543     'D3D11_CT_TBUFFER',
544     'D3D11_CT_INTERFACE_POINTERS',
545     'D3D11_CT_RESOURCE_BIND_INFO',
546 ])
547
548 D3D_NAME = Enum('D3D_NAME', [
549     'D3D_NAME_UNDEFINED',
550     'D3D_NAME_POSITION',
551     'D3D_NAME_CLIP_DISTANCE',
552     'D3D_NAME_CULL_DISTANCE',
553     'D3D_NAME_RENDER_TARGET_ARRAY_INDEX',
554     'D3D_NAME_VIEWPORT_ARRAY_INDEX',
555     'D3D_NAME_VERTEX_ID',
556     'D3D_NAME_PRIMITIVE_ID',
557     'D3D_NAME_INSTANCE_ID',
558     'D3D_NAME_IS_FRONT_FACE',
559     'D3D_NAME_SAMPLE_INDEX',
560     'D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR',
561     'D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR',
562     'D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR',
563     'D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR',
564     'D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR',
565     'D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR',
566     'D3D_NAME_TARGET',
567     'D3D_NAME_DEPTH',
568     'D3D_NAME_COVERAGE',
569     'D3D_NAME_DEPTH_GREATER_EQUAL',
570     'D3D_NAME_DEPTH_LESS_EQUAL',
571 ])
572
573 D3D10_NAME = Enum('D3D10_NAME', [
574     'D3D10_NAME_UNDEFINED',
575     'D3D10_NAME_POSITION',
576     'D3D10_NAME_CLIP_DISTANCE',
577     'D3D10_NAME_CULL_DISTANCE',
578     'D3D10_NAME_RENDER_TARGET_ARRAY_INDEX',
579     'D3D10_NAME_VIEWPORT_ARRAY_INDEX',
580     'D3D10_NAME_VERTEX_ID',
581     'D3D10_NAME_PRIMITIVE_ID',
582     'D3D10_NAME_INSTANCE_ID',
583     'D3D10_NAME_IS_FRONT_FACE',
584     'D3D10_NAME_SAMPLE_INDEX',
585     'D3D10_NAME_TARGET',
586     'D3D10_NAME_DEPTH',
587     'D3D10_NAME_COVERAGE',
588 ])
589
590 D3D11_NAME = Enum('D3D11_NAME', [
591     'D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR',
592     'D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR',
593     'D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR',
594     'D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR',
595     'D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR',
596     'D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR',
597     'D3D11_NAME_DEPTH_GREATER_EQUAL',
598     'D3D11_NAME_DEPTH_LESS_EQUAL',
599 ])
600
601 D3D_RESOURCE_RETURN_TYPE = Enum('D3D_RESOURCE_RETURN_TYPE', [
602     'D3D_RETURN_TYPE_UNORM',
603     'D3D_RETURN_TYPE_SNORM',
604     'D3D_RETURN_TYPE_SINT',
605     'D3D_RETURN_TYPE_UINT',
606     'D3D_RETURN_TYPE_FLOAT',
607     'D3D_RETURN_TYPE_MIXED',
608     'D3D_RETURN_TYPE_DOUBLE',
609     'D3D_RETURN_TYPE_CONTINUED',
610 ])
611
612 D3D10_RESOURCE_RETURN_TYPE = Enum('D3D10_RESOURCE_RETURN_TYPE', [
613     'D3D10_RETURN_TYPE_UNORM',
614     'D3D10_RETURN_TYPE_SNORM',
615     'D3D10_RETURN_TYPE_SINT',
616     'D3D10_RETURN_TYPE_UINT',
617     'D3D10_RETURN_TYPE_FLOAT',
618     'D3D10_RETURN_TYPE_MIXED',
619 ])
620
621 D3D11_RESOURCE_RETURN_TYPE = Enum('D3D11_RESOURCE_RETURN_TYPE', [
622     'D3D11_RETURN_TYPE_UNORM',
623     'D3D11_RETURN_TYPE_SNORM',
624     'D3D11_RETURN_TYPE_SINT',
625     'D3D11_RETURN_TYPE_UINT',
626     'D3D11_RETURN_TYPE_FLOAT',
627     'D3D11_RETURN_TYPE_MIXED',
628     'D3D11_RETURN_TYPE_DOUBLE',
629     'D3D11_RETURN_TYPE_CONTINUED',
630 ])
631
632 D3D_REGISTER_COMPONENT_TYPE = Enum('D3D_REGISTER_COMPONENT_TYPE', [
633     'D3D_REGISTER_COMPONENT_UNKNOWN',
634     'D3D_REGISTER_COMPONENT_UINT32',
635     'D3D_REGISTER_COMPONENT_SINT32',
636     'D3D_REGISTER_COMPONENT_FLOAT32',
637 ])
638
639 D3D10_REGISTER_COMPONENT_TYPE = Enum('D3D10_REGISTER_COMPONENT_TYPE', [
640     'D3D10_REGISTER_COMPONENT_UNKNOWN',
641     'D3D10_REGISTER_COMPONENT_UINT32',
642     'D3D10_REGISTER_COMPONENT_SINT32',
643     'D3D10_REGISTER_COMPONENT_FLOAT32',
644 ])
645
646 D3D_TESSELLATOR_DOMAIN = Enum('D3D_TESSELLATOR_DOMAIN', [
647     'D3D_TESSELLATOR_DOMAIN_UNDEFINED',
648     'D3D_TESSELLATOR_DOMAIN_ISOLINE',
649     'D3D_TESSELLATOR_DOMAIN_TRI',
650     'D3D_TESSELLATOR_DOMAIN_QUAD',
651 ])
652
653 D3D11_TESSELLATOR_DOMAIN = Enum('D3D11_TESSELLATOR_DOMAIN', [
654     'D3D11_TESSELLATOR_DOMAIN_UNDEFINED',
655     'D3D11_TESSELLATOR_DOMAIN_ISOLINE',
656     'D3D11_TESSELLATOR_DOMAIN_TRI',
657     'D3D11_TESSELLATOR_DOMAIN_QUAD',
658 ])
659
660 D3D_TESSELLATOR_PARTITIONING = Enum('D3D_TESSELLATOR_PARTITIONING', [
661     'D3D_TESSELLATOR_PARTITIONING_UNDEFINED',
662     'D3D_TESSELLATOR_PARTITIONING_INTEGER',
663     'D3D_TESSELLATOR_PARTITIONING_POW2',
664     'D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD',
665     'D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN',
666 ])
667
668 D3D11_TESSELLATOR_PARTITIONING = Enum('D3D11_TESSELLATOR_PARTITIONING', [
669     'D3D11_TESSELLATOR_PARTITIONING_UNDEFINED',
670     'D3D11_TESSELLATOR_PARTITIONING_INTEGER',
671     'D3D11_TESSELLATOR_PARTITIONING_POW2',
672     'D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD',
673     'D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN',
674 ])
675
676 D3D_TESSELLATOR_OUTPUT_PRIMITIVE = Enum('D3D_TESSELLATOR_OUTPUT_PRIMITIVE', [
677     'D3D_TESSELLATOR_OUTPUT_UNDEFINED',
678     'D3D_TESSELLATOR_OUTPUT_POINT',
679     'D3D_TESSELLATOR_OUTPUT_LINE',
680     'D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW',
681     'D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW',
682 ])
683
684 D3D11_TESSELLATOR_OUTPUT_PRIMITIVE = Enum('D3D11_TESSELLATOR_OUTPUT_PRIMITIVE', [
685     'D3D11_TESSELLATOR_OUTPUT_UNDEFINED',
686     'D3D11_TESSELLATOR_OUTPUT_POINT',
687     'D3D11_TESSELLATOR_OUTPUT_LINE',
688     'D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW',
689     'D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW',
690 ])
691