]> git.cworth.org Git - apitrace/blob - specs/d3d10.py
Merge branch 'master' into d2d
[apitrace] / specs / d3d10.py
1 ##########################################################################
2 #
3 # Copyright 2011 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 from dxgi import *
27
28 D3D10_BLEND = Enum("D3D10_BLEND", [
29     "D3D10_BLEND_ZERO",
30     "D3D10_BLEND_ONE",
31     "D3D10_BLEND_SRC_COLOR",
32     "D3D10_BLEND_INV_SRC_COLOR",
33     "D3D10_BLEND_SRC_ALPHA",
34     "D3D10_BLEND_INV_SRC_ALPHA",
35     "D3D10_BLEND_DEST_ALPHA",
36     "D3D10_BLEND_INV_DEST_ALPHA",
37     "D3D10_BLEND_DEST_COLOR",
38     "D3D10_BLEND_INV_DEST_COLOR",
39     "D3D10_BLEND_SRC_ALPHA_SAT",
40     "D3D10_BLEND_BLEND_FACTOR",
41     "D3D10_BLEND_INV_BLEND_FACTOR",
42     "D3D10_BLEND_SRC1_COLOR",
43     "D3D10_BLEND_INV_SRC1_COLOR",
44     "D3D10_BLEND_SRC1_ALPHA",
45     "D3D10_BLEND_INV_SRC1_ALPHA",
46 ])
47
48 D3D10_BLEND_OP = Enum("D3D10_BLEND_OP", [
49     "D3D10_BLEND_OP_ADD",
50     "D3D10_BLEND_OP_SUBTRACT",
51     "D3D10_BLEND_OP_REV_SUBTRACT",
52     "D3D10_BLEND_OP_MIN",
53     "D3D10_BLEND_OP_MAX",
54 ])
55
56 D3D10_BLEND_DESC = Struct("D3D10_BLEND_DESC", [
57     (BOOL, "AlphaToCoverageEnable"),
58     (Array(BOOL, 8), "BlendEnable"),
59     (D3D10_BLEND, "SrcBlend"),
60     (D3D10_BLEND, "DestBlend"),
61     (D3D10_BLEND_OP, "BlendOp"),
62     (D3D10_BLEND, "SrcBlendAlpha"),
63     (D3D10_BLEND, "DestBlendAlpha"),
64     (D3D10_BLEND_OP, "BlendOpAlpha"),
65     (Array(UINT8, 8), "RenderTargetWriteMask"),
66 ])
67
68 D3D10_DEPTH_WRITE_MASK = Enum("D3D10_DEPTH_WRITE_MASK", [
69     "D3D10_DEPTH_WRITE_MASK_ZERO",
70     "D3D10_DEPTH_WRITE_MASK_ALL",
71 ])
72
73 D3D10_COMPARISON_FUNC = Enum("D3D10_COMPARISON_FUNC", [
74     "D3D10_COMPARISON_NEVER",
75     "D3D10_COMPARISON_LESS",
76     "D3D10_COMPARISON_EQUAL",
77     "D3D10_COMPARISON_LESS_EQUAL",
78     "D3D10_COMPARISON_GREATER",
79     "D3D10_COMPARISON_NOT_EQUAL",
80     "D3D10_COMPARISON_GREATER_EQUAL",
81     "D3D10_COMPARISON_ALWAYS",
82 ])
83
84 D3D10_STENCIL_OP = Enum("D3D10_STENCIL_OP", [
85     "D3D10_STENCIL_OP_KEEP",
86     "D3D10_STENCIL_OP_ZERO",
87     "D3D10_STENCIL_OP_REPLACE",
88     "D3D10_STENCIL_OP_INCR_SAT",
89     "D3D10_STENCIL_OP_DECR_SAT",
90     "D3D10_STENCIL_OP_INVERT",
91     "D3D10_STENCIL_OP_INCR",
92     "D3D10_STENCIL_OP_DECR",
93 ])
94
95 D3D10_DEPTH_STENCILOP_DESC = Struct("D3D10_DEPTH_STENCILOP_DESC", [
96     (D3D10_STENCIL_OP, "StencilFailOp"),
97     (D3D10_STENCIL_OP, "StencilDepthFailOp"),
98     (D3D10_STENCIL_OP, "StencilPassOp"),
99     (D3D10_COMPARISON_FUNC, "StencilFunc"),
100 ])
101
102 D3D10_DEPTH_STENCIL_DESC = Struct("D3D10_DEPTH_STENCIL_DESC", [
103     (BOOL, "DepthEnable"),
104     (D3D10_DEPTH_WRITE_MASK, "DepthWriteMask"),
105     (D3D10_COMPARISON_FUNC, "DepthFunc"),
106     (BOOL, "StencilEnable"),
107     (UINT8, "StencilReadMask"),
108     (UINT8, "StencilWriteMask"),
109     (D3D10_DEPTH_STENCILOP_DESC, "FrontFace"),
110     (D3D10_DEPTH_STENCILOP_DESC, "BackFace"),
111 ])
112
113 D3D10_FILL_MODE = Enum("D3D10_FILL_MODE", [
114     "D3D10_FILL_WIREFRAME",
115     "D3D10_FILL_SOLID",
116 ])
117
118 D3D10_CULL_MODE = Enum("D3D10_CULL_MODE", [
119     "D3D10_CULL_NONE",
120     "D3D10_CULL_FRONT",
121     "D3D10_CULL_BACK",
122 ])
123
124 D3D10_RASTERIZER_DESC = Struct("D3D10_RASTERIZER_DESC", [
125     (D3D10_FILL_MODE, "FillMode"),
126     (D3D10_CULL_MODE, "CullMode"),
127     (BOOL, "FrontCounterClockwise"),
128     (INT, "DepthBias"),
129     (FLOAT, "DepthBiasClamp"),
130     (FLOAT, "SlopeScaledDepthBias"),
131     (BOOL, "DepthClipEnable"),
132     (BOOL, "ScissorEnable"),
133     (BOOL, "MultisampleEnable"),
134     (BOOL, "AntialiasedLineEnable"),
135 ])
136
137 D3D10_FILTER = Enum("D3D10_FILTER", [
138     "D3D10_FILTER_MIN_MAG_MIP_POINT",
139     "D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR",
140     "D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT",
141     "D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR",
142     "D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT",
143     "D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
144     "D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT",
145     "D3D10_FILTER_MIN_MAG_MIP_LINEAR",
146     "D3D10_FILTER_ANISOTROPIC",
147     "D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT",
148     "D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR",
149     "D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT",
150     "D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR",
151     "D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT",
152     "D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
153     "D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT",
154     "D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR",
155     "D3D10_FILTER_COMPARISON_ANISOTROPIC",
156     "D3D10_FILTER_TEXT_1BIT",
157 ])
158
159 D3D10_TEXTURE_ADDRESS_MODE = Enum("D3D10_TEXTURE_ADDRESS_MODE", [
160     "D3D10_TEXTURE_ADDRESS_WRAP",
161     "D3D10_TEXTURE_ADDRESS_MIRROR",
162     "D3D10_TEXTURE_ADDRESS_CLAMP",
163     "D3D10_TEXTURE_ADDRESS_BORDER",
164     "D3D10_TEXTURE_ADDRESS_MIRROR_ONCE",
165 ])
166
167 D3D10_SAMPLER_DESC = Struct("D3D10_SAMPLER_DESC", [
168     (D3D10_FILTER, "Filter"),
169     (D3D10_TEXTURE_ADDRESS_MODE, "AddressU"),
170     (D3D10_TEXTURE_ADDRESS_MODE, "AddressV"),
171     (D3D10_TEXTURE_ADDRESS_MODE, "AddressW"),
172     (FLOAT, "MipLODBias"),
173     (UINT, "MaxAnisotropy"),
174     (D3D10_COMPARISON_FUNC, "ComparisonFunc"),
175     (Array(FLOAT, 4), "BorderColor"),
176     (FLOAT, "MinLOD"),
177     (FLOAT, "MaxLOD"),
178 ])
179
180 D3D10_COUNTER = Enum("D3D10_COUNTER", [
181     "D3D10_COUNTER_GPU_IDLE",
182     "D3D10_COUNTER_VERTEX_PROCESSING",
183     "D3D10_COUNTER_GEOMETRY_PROCESSING",
184     "D3D10_COUNTER_PIXEL_PROCESSING",
185     "D3D10_COUNTER_OTHER_GPU_PROCESSING",
186     "D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION",
187     "D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION",
188     "D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION",
189     "D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION",
190     "D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION",
191     "D3D10_COUNTER_VS_MEMORY_LIMITED",
192     "D3D10_COUNTER_VS_COMPUTATION_LIMITED",
193     "D3D10_COUNTER_GS_MEMORY_LIMITED",
194     "D3D10_COUNTER_GS_COMPUTATION_LIMITED",
195     "D3D10_COUNTER_PS_MEMORY_LIMITED",
196     "D3D10_COUNTER_PS_COMPUTATION_LIMITED",
197     "D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE",
198     "D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE",
199     "D3D10_COUNTER_DEVICE_DEPENDENT_0",
200 ])
201
202 D3D10_COUNTER_DESC = Struct("D3D10_COUNTER_DESC", [
203     (D3D10_COUNTER, "Counter"),
204     (UINT, "MiscFlags"),
205 ])
206
207 D3D10_COUNTER_TYPE = Enum("D3D10_COUNTER_TYPE", [
208     "D3D10_COUNTER_TYPE_FLOAT32",
209     "D3D10_COUNTER_TYPE_UINT16",
210     "D3D10_COUNTER_TYPE_UINT32",
211     "D3D10_COUNTER_TYPE_UINT64",
212 ])
213
214 D3D10_COUNTER_INFO = Struct("D3D10_COUNTER_INFO", [
215     (D3D10_COUNTER, "LastDeviceDependentCounter"),
216     (UINT, "NumSimultaneousCounters"),
217     (UINT8, "NumDetectableParallelUnits"),
218 ])
219
220 D3D10_RESOURCE_DIMENSION = Enum("D3D10_RESOURCE_DIMENSION", [
221     "D3D10_RESOURCE_DIMENSION_UNKNOWN",
222     "D3D10_RESOURCE_DIMENSION_BUFFER",
223     "D3D10_RESOURCE_DIMENSION_TEXTURE1D",
224     "D3D10_RESOURCE_DIMENSION_TEXTURE2D",
225     "D3D10_RESOURCE_DIMENSION_TEXTURE3D",
226 ])
227
228 D3D10_USAGE = Enum("D3D10_USAGE", [
229     "D3D10_USAGE_DEFAULT",
230     "D3D10_USAGE_IMMUTABLE",
231     "D3D10_USAGE_DYNAMIC",
232     "D3D10_USAGE_STAGING",
233 ])
234
235 D3D10_BIND_FLAG = Enum("D3D10_BIND_FLAG", [
236     "D3D10_BIND_VERTEX_BUFFER",
237     "D3D10_BIND_INDEX_BUFFER",
238     "D3D10_BIND_CONSTANT_BUFFER",
239     "D3D10_BIND_SHADER_RESOURCE",
240     "D3D10_BIND_STREAM_OUTPUT",
241     "D3D10_BIND_RENDER_TARGET",
242     "D3D10_BIND_DEPTH_STENCIL",
243 ])
244
245 D3D10_BUFFER_DESC = Struct("D3D10_BUFFER_DESC", [
246     (UINT, "ByteWidth"),
247     (D3D10_USAGE, "Usage"),
248     (UINT, "BindFlags"),
249     (UINT, "CPUAccessFlags"),
250     (UINT, "MiscFlags"),
251 ])
252
253 D3D10_MAP = Enum("D3D10_MAP", [
254     "D3D10_MAP_READ",
255     "D3D10_MAP_WRITE",
256     "D3D10_MAP_READ_WRITE",
257     "D3D10_MAP_WRITE_DISCARD",
258     "D3D10_MAP_WRITE_NO_OVERWRITE",
259 ])
260
261 D3D10_TEXTURE1D_DESC = Struct("D3D10_TEXTURE1D_DESC", [
262     (UINT, "Width"),
263     (UINT, "MipLevels"),
264     (UINT, "ArraySize"),
265     (DXGI_FORMAT, "Format"),
266     (D3D10_USAGE, "Usage"),
267     (UINT, "BindFlags"),
268     (UINT, "CPUAccessFlags"),
269     (UINT, "MiscFlags"),
270 ])
271
272 D3D10_TEXTURE2D_DESC = Struct("D3D10_TEXTURE2D_DESC", [
273     (UINT, "Width"),
274     (UINT, "Height"),
275     (UINT, "MipLevels"),
276     (UINT, "ArraySize"),
277     (DXGI_FORMAT, "Format"),
278     (DXGI_SAMPLE_DESC, "SampleDesc"),
279     (D3D10_USAGE, "Usage"),
280     (UINT, "BindFlags"),
281     (UINT, "CPUAccessFlags"),
282     (UINT, "MiscFlags"),
283 ])
284
285 D3D10_TEXTURE3D_DESC = Struct("D3D10_TEXTURE3D_DESC", [
286     (UINT, "Width"),
287     (UINT, "Height"),
288     (UINT, "Depth"),
289     (UINT, "MipLevels"),
290     (DXGI_FORMAT, "Format"),
291     (D3D10_USAGE, "Usage"),
292     (UINT, "BindFlags"),
293     (UINT, "CPUAccessFlags"),
294     (UINT, "MiscFlags"),
295 ])
296
297 D3D10_DSV_DIMENSION = Enum("D3D10_DSV_DIMENSION", [
298     "D3D10_DSV_DIMENSION_UNKNOWN",
299     "D3D10_DSV_DIMENSION_TEXTURE1D",
300     "D3D10_DSV_DIMENSION_TEXTURE1DARRAY",
301     "D3D10_DSV_DIMENSION_TEXTURE2D",
302     "D3D10_DSV_DIMENSION_TEXTURE2DARRAY",
303     "D3D10_DSV_DIMENSION_TEXTURE2DMS",
304     "D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY",
305 ])
306
307 D3D10_TEX1D_DSV = Struct("D3D10_TEX1D_DSV", [
308     (UINT, "MipSlice"),
309 ])
310
311 D3D10_TEX1D_ARRAY_DSV = Struct("D3D10_TEX1D_ARRAY_DSV", [
312     (UINT, "MipSlice"),
313     (UINT, "FirstArraySlice"),
314     (UINT, "ArraySize"),
315 ])
316
317 D3D10_TEX2D_DSV = Struct("D3D10_TEX2D_DSV", [
318     (UINT, "MipSlice"),
319 ])
320
321 D3D10_TEX2D_ARRAY_DSV = Struct("D3D10_TEX2D_ARRAY_DSV", [
322     (UINT, "MipSlice"),
323     (UINT, "FirstArraySlice"),
324     (UINT, "ArraySize"),
325 ])
326
327 D3D10_TEX2DMS_DSV = Struct("D3D10_TEX2DMS_DSV", [
328     (UINT, "UnusedField_NothingToDefine"),
329 ])
330
331 D3D10_TEX2DMS_ARRAY_DSV = Struct("D3D10_TEX2DMS_ARRAY_DSV", [
332     (UINT, "FirstArraySlice"),
333     (UINT, "ArraySize"),
334 ])
335
336 D3D10_DEPTH_STENCIL_VIEW_DESC = Struct("D3D10_DEPTH_STENCIL_VIEW_DESC", [
337     (DXGI_FORMAT, "Format"),
338     (D3D10_DSV_DIMENSION, "ViewDimension"),
339     (D3D10_TEX1D_DSV, "Texture1D"),
340     (D3D10_TEX1D_ARRAY_DSV, "Texture1DArray"),
341     (D3D10_TEX2D_DSV, "Texture2D"),
342     (D3D10_TEX2D_ARRAY_DSV, "Texture2DArray"),
343     (D3D10_TEX2DMS_DSV, "Texture2DMS"),
344     (D3D10_TEX2DMS_ARRAY_DSV, "Texture2DMSArray"),
345 ])
346
347 D3D10_RTV_DIMENSION = Enum("D3D10_RTV_DIMENSION", [
348     "D3D10_RTV_DIMENSION_UNKNOWN",
349     "D3D10_RTV_DIMENSION_BUFFER",
350     "D3D10_RTV_DIMENSION_TEXTURE1D",
351     "D3D10_RTV_DIMENSION_TEXTURE1DARRAY",
352     "D3D10_RTV_DIMENSION_TEXTURE2D",
353     "D3D10_RTV_DIMENSION_TEXTURE2DARRAY",
354     "D3D10_RTV_DIMENSION_TEXTURE2DMS",
355     "D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY",
356     "D3D10_RTV_DIMENSION_TEXTURE3D",
357 ])
358
359 D3D10_BUFFER_RTV = Struct("D3D10_BUFFER_RTV", [
360     (UINT, "ElementOffset"),
361     (UINT, "ElementWidth"),
362 ])
363
364 D3D10_TEX1D_RTV = Struct("D3D10_TEX1D_RTV", [
365     (UINT, "MipSlice"),
366 ])
367
368 D3D10_TEX1D_ARRAY_RTV = Struct("D3D10_TEX1D_ARRAY_RTV", [
369     (UINT, "MipSlice"),
370     (UINT, "FirstArraySlice"),
371     (UINT, "ArraySize"),
372 ])
373
374 D3D10_TEX2D_RTV = Struct("D3D10_TEX2D_RTV", [
375     (UINT, "MipSlice"),
376 ])
377
378 D3D10_TEX2D_ARRAY_RTV = Struct("D3D10_TEX2D_ARRAY_RTV", [
379     (UINT, "MipSlice"),
380     (UINT, "FirstArraySlice"),
381     (UINT, "ArraySize"),
382 ])
383
384 D3D10_TEX2DMS_RTV = Struct("D3D10_TEX2DMS_RTV", [
385     (UINT, "UnusedField_NothingToDefine"),
386 ])
387
388 D3D10_TEX2DMS_ARRAY_RTV = Struct("D3D10_TEX2DMS_ARRAY_RTV", [
389     (UINT, "FirstArraySlice"),
390     (UINT, "ArraySize"),
391 ])
392
393 D3D10_TEX3D_RTV = Struct("D3D10_TEX3D_RTV", [
394     (UINT, "MipSlice"),
395     (UINT, "FirstWSlice"),
396     (UINT, "WSize"),
397 ])
398
399 D3D10_RENDER_TARGET_VIEW_DESC = Struct("D3D10_RENDER_TARGET_VIEW_DESC", [
400     (DXGI_FORMAT, "Format"),
401     (D3D10_RTV_DIMENSION, "ViewDimension"),
402     (D3D10_BUFFER_RTV, "Buffer"),
403     (D3D10_TEX1D_RTV, "Texture1D"),
404     (D3D10_TEX1D_ARRAY_RTV, "Texture1DArray"),
405     (D3D10_TEX2D_RTV, "Texture2D"),
406     (D3D10_TEX2D_ARRAY_RTV, "Texture2DArray"),
407     (D3D10_TEX2DMS_RTV, "Texture2DMS"),
408     (D3D10_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
409     (D3D10_TEX3D_RTV, "Texture3D"),
410 ])
411
412 D3D10_SRV_DIMENSION = Enum("D3D10_SRV_DIMENSION", [
413     "D3D10_SRV_DIMENSION_UNKNOWN",
414         "D3D10_SRV_DIMENSION_BUFFER",
415         "D3D10_SRV_DIMENSION_TEXTURE1D",
416         "D3D10_SRV_DIMENSION_TEXTURE1DARRAY",
417         "D3D10_SRV_DIMENSION_TEXTURE2D",
418         "D3D10_SRV_DIMENSION_TEXTURE2DARRAY",
419         "D3D10_SRV_DIMENSION_TEXTURE2DMS",
420         "D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY",
421         "D3D10_SRV_DIMENSION_TEXTURE3D",
422         "D3D10_SRV_DIMENSION_TEXTURECUBE",
423 ])
424
425 D3D10_BUFFER_SRV = Struct("D3D10_BUFFER_SRV", [
426     (UINT, "ElementOffset"),
427     (UINT, "ElementWidth"),
428 ])
429
430 D3D10_TEX1D_SRV = Struct("D3D10_TEX1D_SRV", [
431     (UINT, "MostDetailedMip"),
432     (UINT, "MipLevels"),
433 ])
434
435 D3D10_TEX1D_ARRAY_SRV = Struct("D3D10_TEX1D_ARRAY_SRV", [
436     (UINT, "MostDetailedMip"),
437     (UINT, "MipLevels"),
438     (UINT, "FirstArraySlice"),
439     (UINT, "ArraySize"),
440 ])
441
442 D3D10_TEX2D_SRV = Struct("D3D10_TEX2D_SRV", [
443     (UINT, "MostDetailedMip"),
444     (UINT, "MipLevels"),
445 ])
446
447 D3D10_TEX2D_ARRAY_SRV = Struct("D3D10_TEX2D_ARRAY_SRV", [
448     (UINT, "MostDetailedMip"),
449     (UINT, "MipLevels"),
450     (UINT, "FirstArraySlice"),
451     (UINT, "ArraySize"),
452 ])
453
454 D3D10_TEX2DMS_SRV = Struct("D3D10_TEX2DMS_SRV", [
455     (UINT, "UnusedField_NothingToDefine"),
456 ])
457
458 D3D10_TEX2DMS_ARRAY_SRV = Struct("D3D10_TEX2DMS_ARRAY_SRV", [
459     (UINT, "FirstArraySlice"),
460     (UINT, "ArraySize"),
461 ])
462
463 D3D10_TEX3D_SRV = Struct("D3D10_TEX3D_SRV", [
464     (UINT, "MostDetailedMip"),
465     (UINT, "MipLevels"),
466 ])
467
468 D3D10_TEXCUBE_SRV = Struct("D3D10_TEXCUBE_SRV", [
469     (UINT, "MostDetailedMip"),
470     (UINT, "MipLevels"),
471 ])
472
473 D3D10_SHADER_RESOURCE_VIEW_DESC = Struct("D3D10_SHADER_RESOURCE_VIEW_DESC", [
474     (DXGI_FORMAT, "Format"),
475     (D3D10_SRV_DIMENSION, "ViewDimension"),
476     (D3D10_BUFFER_SRV, "Buffer"),
477     (D3D10_TEX1D_SRV, "Texture1D"),
478     (D3D10_TEX1D_ARRAY_SRV, "Texture1DArray"),
479     (D3D10_TEX2D_SRV, "Texture2D"),
480     (D3D10_TEX2D_ARRAY_SRV, "Texture2DArray"),
481     (D3D10_TEX2DMS_SRV, "Texture2DMS"),
482     (D3D10_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
483     (D3D10_TEX3D_SRV, "Texture3D"),
484     (D3D10_TEXCUBE_SRV, "TextureCube"),
485 ])
486
487 D3D10_BOX = Struct("D3D10_BOX", [
488     (UINT, "left"),
489     (UINT, "top"),
490     (UINT, "front"),
491     (UINT, "right"),
492     (UINT, "bottom"),
493     (UINT, "back"),
494 ])
495
496 D3D10_SUBRESOURCE_DATA = Struct("D3D10_SUBRESOURCE_DATA", [
497     (OpaquePointer(Const(Void)), "pSysMem"),
498     (UINT, "SysMemPitch"),
499     (UINT, "SysMemSlicePitch"),
500 ])
501
502 D3D10_SO_DECLARATION_ENTRY = Struct("D3D10_SO_DECLARATION_ENTRY", [
503     (LPCSTR, "SemanticName"),
504     (UINT, "SemanticIndex"),
505     (BYTE, "StartComponent"),
506     (BYTE, "ComponentCount"),
507     (BYTE, "OutputSlot"),
508 ])
509
510 D3D10_INPUT_CLASSIFICATION = Enum("D3D10_INPUT_CLASSIFICATION", [
511     "D3D10_INPUT_PER_VERTEX_DATA",
512     "D3D10_INPUT_PER_INSTANCE_DATA",
513 ])
514
515 D3D10_INPUT_ELEMENT_DESC = Struct("D3D10_INPUT_ELEMENT_DESC", [
516     (LPCSTR, "SemanticName"),
517     (UINT, "SemanticIndex"),
518     (DXGI_FORMAT, "Format"),
519     (UINT, "InputSlot"),
520     (UINT, "AlignedByteOffset"),
521     (D3D10_INPUT_CLASSIFICATION, "InputSlotClass"),
522     (UINT, "InstanceDataStepRate"),
523 ])
524
525 D3D10_QUERY = Enum("D3D10_QUERY", [
526     "D3D10_QUERY_EVENT",
527     "D3D10_QUERY_OCCLUSION",
528     "D3D10_QUERY_TIMESTAMP",
529     "D3D10_QUERY_TIMESTAMP_DISJOINT",
530     "D3D10_QUERY_PIPELINE_STATISTICS",
531     "D3D10_QUERY_OCCLUSION_PREDICATE",
532     "D3D10_QUERY_SO_STATISTICS",
533     "D3D10_QUERY_SO_OVERFLOW_PREDICATE",
534 ])
535
536 D3D10_QUERY_DESC = Struct("D3D10_QUERY_DESC", [
537     (D3D10_QUERY, "Query"),
538     (UINT, "MiscFlags"),
539 ])
540
541 D3D10_PRIMITIVE_TOPOLOGY = Enum("D3D10_PRIMITIVE_TOPOLOGY", [
542         "D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED",
543         "D3D10_PRIMITIVE_TOPOLOGY_POINTLIST",
544         "D3D10_PRIMITIVE_TOPOLOGY_LINELIST",
545         "D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP",
546         "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST",
547         "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP",
548         "D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ",
549         "D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ",
550         "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ",
551         "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ",
552 ])
553
554 D3D10_PRIMITIVE = Enum("D3D10_PRIMITIVE", [
555         "D3D10_PRIMITIVE_UNDEFINED",
556         "D3D10_PRIMITIVE_POINT",
557         "D3D10_PRIMITIVE_LINE",
558         "D3D10_PRIMITIVE_TRIANGLE",
559         "D3D10_PRIMITIVE_LINE_ADJ",
560         "D3D10_PRIMITIVE_TRIANGLE_ADJ",
561 ])
562
563 D3D10_RECT = Alias("D3D10_RECT", RECT)
564 D3D10_VIEWPORT = Struct("D3D10_VIEWPORT", [
565     (INT, "TopLeftX"),
566     (INT, "TopLeftY"),
567     (UINT, "Width"),
568     (UINT, "Height"),
569     (FLOAT, "MinDepth"),
570     (FLOAT, "MaxDepth"),
571 ])
572
573 D3D10_MAPPED_TEXTURE2D = Struct("D3D10_MAPPED_TEXTURE2D", [
574     (OpaquePointer(Void), "pData"),
575     (UINT, "RowPitch"),
576 ])
577
578 D3D10_MAPPED_TEXTURE3D = Struct("D3D10_MAPPED_TEXTURE3D", [
579     (OpaquePointer(Void), "pData"),
580     (UINT, "RowPitch"),
581     (UINT, "DepthPitch"),
582 ])
583
584 D3D10_CPU_ACCESS_FLAG = Enum("D3D10_CPU_ACCESS_FLAG", [
585     "D3D10_CPU_ACCESS_WRITE",
586     "D3D10_CPU_ACCESS_READ",
587 ])
588
589 D3D10_RESOURCE_MISC_FLAG = Enum("D3D10_RESOURCE_MISC_FLAG", [
590     "D3D10_RESOURCE_MISC_GENERATE_MIPS",
591     "D3D10_RESOURCE_MISC_SHARED",
592     "D3D10_RESOURCE_MISC_TEXTURECUBE",
593     "D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX",
594     "D3D10_RESOURCE_MISC_GDI_COMPATIBLE",
595 ])
596
597 D3D10_MAP_FLAG = Enum("D3D10_MAP_FLAG", [
598     "D3D10_MAP_FLAG_DO_NOT_WAIT",
599 ])
600
601 D3D10_CLEAR_FLAG = Enum("D3D10_CLEAR_FLAG", [
602     "D3D10_CLEAR_DEPTH",
603     "D3D10_CLEAR_STENCIL",
604 ])
605
606 D3D10_COLOR_WRITE_ENABLE = Enum("D3D10_COLOR_WRITE_ENABLE", [
607     "D3D10_COLOR_WRITE_ENABLE_RED",
608     "D3D10_COLOR_WRITE_ENABLE_GREEN",
609     "D3D10_COLOR_WRITE_ENABLE_BLUE",
610     "D3D10_COLOR_WRITE_ENABLE_ALPHA",
611     "D3D10_COLOR_WRITE_ENABLE_ALL",
612     "D3D10_COLOR_WRITE_ENABLE_RED",
613     "|",
614     "D3D10_COLOR_WRITE_ENABLE_GREEN",
615     "|",
616     "D3D10_COLOR_WRITE_ENABLE_BLUE",
617     "|",
618     "D3D10_COLOR_WRITE_ENABLE_ALPHA",
619     ")",
620 ])
621
622 D3D10_TEXTURECUBE_FACE = Enum("D3D10_TEXTURECUBE_FACE", [
623     "D3D10_TEXTURECUBE_FACE_POSITIVE_X",
624     "D3D10_TEXTURECUBE_FACE_NEGATIVE_X",
625     "D3D10_TEXTURECUBE_FACE_POSITIVE_Y",
626     "D3D10_TEXTURECUBE_FACE_NEGATIVE_Y",
627     "D3D10_TEXTURECUBE_FACE_POSITIVE_Z",
628     "D3D10_TEXTURECUBE_FACE_NEGATIVE_Z",
629 ])
630
631 D3D10_ASYNC_GETDATA_FLAG = Enum("D3D10_ASYNC_GETDATA_FLAG", [
632     "D3D10_ASYNC_GETDATA_DONOTFLUSH",
633 ])
634
635 D3D10_FILTER_TYPE = Enum("D3D10_FILTER_TYPE", [
636     "D3D10_FILTER_TYPE_POINT",
637     "D3D10_FILTER_TYPE_LINEAR",
638 ])
639
640 D3D10_QUERY_MISC_FLAG = Enum("D3D10_QUERY_MISC_FLAG", [
641     "D3D10_QUERY_MISC_PREDICATEHINT",
642 ])
643
644 D3D10_QUERY_DATA_TIMESTAMP_DISJOINT = Struct("D3D10_QUERY_DATA_TIMESTAMP_DISJOINT", [
645     (UINT64, "Frequency"),
646     (BOOL, "Disjoint"),
647 ])
648
649 D3D10_QUERY_DATA_PIPELINE_STATISTICS = Struct("D3D10_QUERY_DATA_PIPELINE_STATISTICS", [
650     (UINT64, "IAVertices"),
651     (UINT64, "IAPrimitives"),
652     (UINT64, "VSInvocations"),
653     (UINT64, "GSInvocations"),
654     (UINT64, "GSPrimitives"),
655     (UINT64, "CInvocations"),
656     (UINT64, "CPrimitives"),
657     (UINT64, "PSInvocations"),
658 ])
659
660 D3D10_QUERY_DATA_SO_STATISTICS = Struct("D3D10_QUERY_DATA_SO_STATISTICS", [
661     (UINT64, "NumPrimitivesWritten"),
662     (UINT64, "PrimitivesStorageNeeded"),
663 ])
664
665 D3D10_CREATE_DEVICE_FLAG = Enum("D3D10_CREATE_DEVICE_FLAG", [
666     "D3D10_CREATE_DEVICE_SINGLETHREADED",
667     "D3D10_CREATE_DEVICE_DEBUG",
668     "D3D10_CREATE_DEVICE_SWITCH_TO_REF",
669     "D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS",
670     "D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP",
671     "D3D10_CREATE_DEVICE_BGRA_SUPPORT",
672     "D3D10_CREATE_DEVICE_STRICT_VALIDATION",
673 ])
674
675 ID3D10DeviceChild = Interface("ID3D10DeviceChild", IUnknown)
676 ID3D10Resource = Interface("ID3D10Resource", ID3D10DeviceChild)
677 ID3D10Buffer = Interface("ID3D10Buffer", ID3D10Resource)
678 ID3D10Texture1D = Interface("ID3D10Texture1D", ID3D10Resource)
679 ID3D10Texture2D = Interface("ID3D10Texture2D", ID3D10Resource)
680 ID3D10Texture3D = Interface("ID3D10Texture3D", ID3D10Resource)
681 ID3D10View = Interface("ID3D10View", ID3D10DeviceChild)
682 ID3D10DepthStencilView = Interface("ID3D10DepthStencilView", ID3D10View)
683 ID3D10RenderTargetView = Interface("ID3D10RenderTargetView", ID3D10View)
684 ID3D10ShaderResourceView = Interface("ID3D10ShaderResourceView", ID3D10View)
685 ID3D10BlendState = Interface("ID3D10BlendState", ID3D10DeviceChild)
686 ID3D10DepthStencilState = Interface("ID3D10DepthStencilState", ID3D10DeviceChild)
687 ID3D10GeometryShader = Interface("ID3D10GeometryShader", ID3D10DeviceChild)
688 ID3D10InputLayout = Interface("ID3D10InputLayout", ID3D10DeviceChild)
689 ID3D10PixelShader = Interface("ID3D10PixelShader", ID3D10DeviceChild)
690 ID3D10RasterizerState = Interface("ID3D10RasterizerState", ID3D10DeviceChild)
691 ID3D10SamplerState = Interface("ID3D10SamplerState", ID3D10DeviceChild)
692 ID3D10VertexShader = Interface("ID3D10VertexShader", ID3D10DeviceChild)
693 ID3D10Asynchronous = Interface("ID3D10Asynchronous", ID3D10DeviceChild)
694 ID3D10Counter = Interface("ID3D10Counter", ID3D10Asynchronous)
695 ID3D10Query = Interface("ID3D10Query", ID3D10Asynchronous)
696 ID3D10Predicate = Interface("ID3D10Predicate", ID3D10Query)
697 ID3D10Device = Interface("ID3D10Device", IUnknown)
698 ID3D10Multithread = Interface("ID3D10Multithread", IUnknown)
699
700 ID3D10DeviceChild.methods += [
701     Method(Void, "GetDevice", [Out(Pointer(Pointer(ID3D10Device)), "ppDevice")]),
702     Method(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")]),
703     Method(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaquePointer(Const(Void)), "pData")]),
704     Method(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")]),
705 ]
706
707 ID3D10Resource.methods += [
708     Method(Void, "GetType", [Out(Pointer(D3D10_RESOURCE_DIMENSION), "rType")]),
709     Method(Void, "SetEvictionPriority", [(UINT, "EvictionPriority")]),
710     Method(UINT, "GetEvictionPriority", []),
711 ]
712
713 ID3D10Buffer.methods += [
714     Method(HRESULT, "Map", [(D3D10_MAP, "MapType"), (UINT, "MapFlags"), Out(Pointer(OpaquePointer(Void)), "ppData")]),
715     Method(Void, "Unmap", []),
716     Method(Void, "GetDesc", [Out(Pointer(D3D10_BUFFER_DESC), "pDesc")]),
717 ]
718
719 ID3D10Texture1D.methods += [
720     Method(HRESULT, "Map", [(UINT, "Subresource"), (D3D10_MAP, "MapType"), (UINT, "MapFlags"), Out(Pointer(OpaquePointer(Void)), "ppData")]),
721     Method(Void, "Unmap", [(UINT, "Subresource")]),
722     Method(Void, "GetDesc", [Out(Pointer(D3D10_TEXTURE1D_DESC), "pDesc")]),
723 ]
724
725 ID3D10Texture2D.methods += [
726     Method(HRESULT, "Map", [(UINT, "Subresource"), (D3D10_MAP, "MapType"), (UINT, "MapFlags"), Out(Pointer(D3D10_MAPPED_TEXTURE2D), "pMappedTex2D")]),
727     Method(Void, "Unmap", [(UINT, "Subresource")]),
728     Method(Void, "GetDesc", [Out(Pointer(D3D10_TEXTURE2D_DESC), "pDesc")]),
729 ]
730
731 ID3D10Texture3D.methods += [
732     Method(HRESULT, "Map", [(UINT, "Subresource"), (D3D10_MAP, "MapType"), (UINT, "MapFlags"), Out(Pointer(D3D10_MAPPED_TEXTURE3D), "pMappedTex3D")]),
733     Method(Void, "Unmap", [(UINT, "Subresource")]),
734     Method(Void, "GetDesc", [Out(Pointer(D3D10_TEXTURE3D_DESC), "pDesc")]),
735 ]
736
737 ID3D10View.methods += [
738     Method(Void, "GetResource", [Out(Pointer(Pointer(ID3D10Resource)), "ppResource")]),
739 ]
740
741 ID3D10DepthStencilView.methods += [
742     Method(Void, "GetDesc", [Out(Pointer(D3D10_DEPTH_STENCIL_VIEW_DESC), "pDesc")]),
743 ]
744
745 ID3D10RenderTargetView.methods += [
746     Method(Void, "GetDesc", [Out(Pointer(D3D10_RENDER_TARGET_VIEW_DESC), "pDesc")]),
747 ]
748
749 ID3D10ShaderResourceView.methods += [
750     Method(Void, "GetDesc", [Out(Pointer(D3D10_SHADER_RESOURCE_VIEW_DESC), "pDesc")]),
751 ]
752
753 ID3D10BlendState.methods += [
754     Method(Void, "GetDesc", [Out(Pointer(D3D10_BLEND_DESC), "pDesc")]),
755 ]
756
757 ID3D10DepthStencilState.methods += [
758     Method(Void, "GetDesc", [Out(Pointer(D3D10_DEPTH_STENCIL_DESC), "pDesc")]),
759 ]
760
761 ID3D10GeometryShader.methods += [
762 ]
763
764 ID3D10InputLayout.methods += [
765 ]
766
767 ID3D10PixelShader.methods += [
768 ]
769
770 ID3D10RasterizerState.methods += [
771     Method(Void, "GetDesc", [Out(Pointer(D3D10_RASTERIZER_DESC), "pDesc")]),
772 ]
773
774 ID3D10SamplerState.methods += [
775     Method(Void, "GetDesc", [Out(Pointer(D3D10_SAMPLER_DESC), "pDesc")]),
776 ]
777
778 ID3D10VertexShader.methods += [
779 ]
780
781 ID3D10Asynchronous.methods += [
782     Method(Void, "Begin", []),
783     Method(Void, "End", []),
784     Method(HRESULT, "GetData", [Out(Blob(Void, "DataSize"), "pData"), (UINT, "DataSize"), (UINT, "GetDataFlags")]),
785     Method(UINT, "GetDataSize", []),
786 ]
787
788 ID3D10Counter.methods += [
789     Method(Void, "GetDesc", [Out(Pointer(D3D10_COUNTER_DESC), "pDesc")]),
790 ]
791
792 ID3D10Query.methods += [
793     Method(Void, "GetDesc", [Out(Pointer(D3D10_QUERY_DESC), "pDesc")]),
794 ]
795
796 ID3D10Predicate.methods += [
797 ]
798
799 ID3D10Device.methods += [
800     Method(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
801     Method(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(OpaquePointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
802     Method(Void, "PSSetShader", [(Pointer(ID3D10PixelShader), "pPixelShader")]),
803     Method(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(OpaquePointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
804     Method(Void, "VSSetShader", [(Pointer(ID3D10VertexShader), "pVertexShader")]),
805     Method(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
806     Method(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
807     Method(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
808     Method(Void, "IASetInputLayout", [(Pointer(ID3D10InputLayout), "pInputLayout")]),
809     Method(Void, "IASetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppVertexBuffers"), (Array(Const(UINT), "NumBuffers"), "pStrides"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
810     Method(Void, "IASetIndexBuffer", [(OpaquePointer(ID3D10Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
811     Method(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
812     Method(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
813     Method(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
814     Method(Void, "GSSetShader", [(Pointer(ID3D10GeometryShader), "pShader")]),
815     Method(Void, "IASetPrimitiveTopology", [(D3D10_PRIMITIVE_TOPOLOGY, "Topology")]),
816     Method(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(OpaquePointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
817     Method(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(OpaquePointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
818     Method(Void, "SetPredication", [(Pointer(ID3D10Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
819     Method(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(OpaquePointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
820     Method(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(OpaquePointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
821     Method(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(OpaquePointer(ID3D10RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (Pointer(ID3D10DepthStencilView), "pDepthStencilView")]),
822     Method(Void, "OMSetBlendState", [(Pointer(ID3D10BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (UINT, "SampleMask")]),
823     Method(Void, "OMSetDepthStencilState", [(Pointer(ID3D10DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
824     Method(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
825     Method(Void, "DrawAuto", []),
826     Method(Void, "RSSetState", [(Pointer(ID3D10RasterizerState), "pRasterizerState")]),
827     Method(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D10_VIEWPORT), "NumViewports"), "pViewports")]),
828     Method(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D10_RECT), "NumRects"), "pRects")]),
829     Method(Void, "CopySubresourceRegion", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (Pointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D10_BOX)), "pSrcBox")]),
830     Method(Void, "CopyResource", [(Pointer(ID3D10Resource), "pDstResource"), (Pointer(ID3D10Resource), "pSrcResource")]),
831     Method(Void, "UpdateSubresource", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D10_BOX)), "pDstBox"), (OpaquePointer(Const(Void)), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch")]),
832     Method(Void, "ClearRenderTargetView", [(OpaquePointer(ID3D10RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
833     Method(Void, "ClearDepthStencilView", [(Pointer(ID3D10DepthStencilView), "pDepthStencilView"), (UINT, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
834     Method(Void, "GenerateMips", [(OpaquePointer(ID3D10ShaderResourceView), "pShaderResourceView")]),
835     Method(Void, "ResolveSubresource", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
836     Method(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(OpaquePointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
837     Method(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(OpaquePointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
838     Method(Void, "PSGetShader", [Out(Pointer(Pointer(ID3D10PixelShader)), "ppPixelShader")]),
839     Method(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(OpaquePointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
840     Method(Void, "VSGetShader", [Out(Pointer(Pointer(ID3D10VertexShader)), "ppVertexShader")]),
841     Method(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(OpaquePointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
842     Method(Void, "IAGetInputLayout", [Out(Pointer(Pointer(ID3D10InputLayout)), "ppInputLayout")]),
843     Method(Void, "IAGetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(OpaquePointer(ID3D10Buffer), "NumBuffers"), "ppVertexBuffers"), Out(Array(UINT, "NumBuffers"), "pStrides"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
844     Method(Void, "IAGetIndexBuffer", [Out(Pointer(OpaquePointer(ID3D10Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
845     Method(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(OpaquePointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
846     Method(Void, "GSGetShader", [Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
847     Method(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D10_PRIMITIVE_TOPOLOGY), "pTopology")]),
848     Method(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(OpaquePointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
849     Method(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(OpaquePointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
850     Method(Void, "GetPredication", [Out(Pointer(Pointer(ID3D10Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
851     Method(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(OpaquePointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
852     Method(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(OpaquePointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
853     Method(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(OpaquePointer(ID3D10RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(Pointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
854     Method(Void, "OMGetBlendState", [Out(Pointer(Pointer(ID3D10BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(UINT), "pSampleMask")]),
855     Method(Void, "OMGetDepthStencilState", [Out(Pointer(Pointer(ID3D10DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
856     Method(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(OpaquePointer(ID3D10Buffer), "NumBuffers"), "ppSOTargets"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
857     Method(Void, "RSGetState", [Out(Pointer(Pointer(ID3D10RasterizerState)), "ppRasterizerState")]),
858     Method(Void, "RSGetViewports", [Out(Pointer(UINT), "NumViewports"), Out(Array(D3D10_VIEWPORT, "*NumViewports"), "pViewports")]),
859     Method(Void, "RSGetScissorRects", [Out(Pointer(UINT), "NumRects"), Out(Array(D3D10_RECT, "*NumRects"), "pRects")]),
860     Method(HRESULT, "GetDeviceRemovedReason", []),
861     Method(HRESULT, "SetExceptionMode", [(UINT, "RaiseFlags")]),
862     Method(UINT, "GetExceptionMode", []),
863     Method(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")]),
864     Method(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaquePointer(Const(Void)), "pData")]),
865     Method(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")]),
866     Method(Void, "ClearState", []),
867     Method(Void, "Flush", []),
868     Method(HRESULT, "CreateBuffer", [(Pointer(Const(D3D10_BUFFER_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(OpaquePointer(ID3D10Buffer)), "ppBuffer")]),
869     Method(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D10_TEXTURE1D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture1D)), "ppTexture1D")]),
870     Method(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D10_TEXTURE2D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture2D)), "ppTexture2D")]),
871     Method(HRESULT, "CreateTexture3D", [(Pointer(Const(D3D10_TEXTURE3D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture3D)), "ppTexture3D")]),
872     Method(HRESULT, "CreateShaderResourceView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(OpaquePointer(ID3D10ShaderResourceView)), "ppSRView")]),
873     Method(HRESULT, "CreateRenderTargetView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(OpaquePointer(ID3D10RenderTargetView)), "ppRTView")]),
874     Method(HRESULT, "CreateDepthStencilView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(Pointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
875     Method(HRESULT, "CreateInputLayout", [(Pointer(Const(D3D10_INPUT_ELEMENT_DESC)), "pInputElementDescs"), (UINT, "NumElements"), (Blob(Const(Void), "BytecodeLength"), "pShaderBytecodeWithInputSignature"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10InputLayout)), "ppInputLayout")]),
876     Method(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10VertexShader)), "ppVertexShader")]),
877     Method(HRESULT, "CreateGeometryShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
878     Method(HRESULT, "CreateGeometryShaderWithStreamOutput", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (Pointer(Const(D3D10_SO_DECLARATION_ENTRY)), "pSODeclaration"), (UINT, "NumEntries"), (UINT, "OutputStreamStride"), Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
879     Method(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10PixelShader)), "ppPixelShader")]),
880     Method(HRESULT, "CreateBlendState", [(Pointer(Const(D3D10_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(Pointer(ID3D10BlendState)), "ppBlendState")]),
881     Method(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D10_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(Pointer(ID3D10DepthStencilState)), "ppDepthStencilState")]),
882     Method(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D10_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(Pointer(ID3D10RasterizerState)), "ppRasterizerState")]),
883     Method(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D10_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(OpaquePointer(ID3D10SamplerState)), "ppSamplerState")]),
884     Method(HRESULT, "CreateQuery", [(Pointer(Const(D3D10_QUERY_DESC)), "pQueryDesc"), Out(Pointer(Pointer(ID3D10Query)), "ppQuery")]),
885     Method(HRESULT, "CreatePredicate", [(Pointer(Const(D3D10_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(Pointer(ID3D10Predicate)), "ppPredicate")]),
886     Method(HRESULT, "CreateCounter", [(Pointer(Const(D3D10_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(Pointer(ID3D10Counter)), "ppCounter")]),
887     Method(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(UINT), "pFormatSupport")]),
888     Method(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")]),
889     Method(Void, "CheckCounterInfo", [Out(Pointer(D3D10_COUNTER_INFO), "pCounterInfo")]),
890     Method(HRESULT, "CheckCounter", [(Pointer(Const(D3D10_COUNTER_DESC)), "pDesc"), Out(Pointer(D3D10_COUNTER_TYPE), "pType"), Out(Pointer(UINT), "pActiveCounters"), Out(LPSTR, "szName"), Out(Pointer(UINT), "pNameLength"), Out(LPSTR, "szUnits"), Out(Pointer(UINT), "pUnitsLength"), Out(LPSTR, "szDescription"), Out(Pointer(UINT), "pDescriptionLength")]),
891     Method(UINT, "GetCreationFlags", []),
892     Method(HRESULT, "OpenSharedResource", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(OpaquePointer(Void)), "ppResource")]),
893     Method(Void, "SetTextFilterSize", [(UINT, "Width"), (UINT, "Height")]),
894     Method(Void, "GetTextFilterSize", [Out(Pointer(UINT), "pWidth"), Out(Pointer(UINT), "pHeight")]),
895 ]
896
897 ID3D10Multithread.methods += [
898     Method(Void, "Enter", []),
899     Method(Void, "Leave", []),
900     Method(BOOL, "SetMultithreadProtected", [(BOOL, "bMTProtect")]),
901     Method(BOOL, "GetMultithreadProtected", []),
902 ]
903