1 ##########################################################################
3 # Copyright 2012 Jose Fonseca
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:
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
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
24 ##########################################################################/
28 from d3dcommon import *
29 from d3d11sdklayers import *
32 HRESULT = FakeEnum(HRESULT, [
33 "D3D11_ERROR_FILE_NOT_FOUND",
34 "D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS",
35 "D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS",
36 "D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD",
38 "D3DERR_WASSTILLDRAWING",
47 ID3D11DepthStencilState = Interface('ID3D11DepthStencilState', ID3D11DeviceChild)
48 ID3D11BlendState = Interface('ID3D11BlendState', ID3D11DeviceChild)
49 ID3D11RasterizerState = Interface('ID3D11RasterizerState', ID3D11DeviceChild)
50 ID3D11Resource = Interface('ID3D11Resource', ID3D11DeviceChild)
51 ID3D11Buffer = Interface('ID3D11Buffer', ID3D11Resource)
52 ID3D11Texture1D = Interface('ID3D11Texture1D', ID3D11Resource)
53 ID3D11Texture2D = Interface('ID3D11Texture2D', ID3D11Resource)
54 ID3D11Texture3D = Interface('ID3D11Texture3D', ID3D11Resource)
55 ID3D11View = Interface('ID3D11View', ID3D11DeviceChild)
56 ID3D11ShaderResourceView = Interface('ID3D11ShaderResourceView', ID3D11View)
57 ID3D11RenderTargetView = Interface('ID3D11RenderTargetView', ID3D11View)
58 ID3D11DepthStencilView = Interface('ID3D11DepthStencilView', ID3D11View)
59 ID3D11UnorderedAccessView = Interface('ID3D11UnorderedAccessView', ID3D11View)
60 ID3D11VertexShader = Interface('ID3D11VertexShader', ID3D11DeviceChild)
61 ID3D11HullShader = Interface('ID3D11HullShader', ID3D11DeviceChild)
62 ID3D11DomainShader = Interface('ID3D11DomainShader', ID3D11DeviceChild)
63 ID3D11GeometryShader = Interface('ID3D11GeometryShader', ID3D11DeviceChild)
64 ID3D11PixelShader = Interface('ID3D11PixelShader', ID3D11DeviceChild)
65 ID3D11ComputeShader = Interface('ID3D11ComputeShader', ID3D11DeviceChild)
66 ID3D11InputLayout = Interface('ID3D11InputLayout', ID3D11DeviceChild)
67 ID3D11SamplerState = Interface('ID3D11SamplerState', ID3D11DeviceChild)
68 ID3D11Asynchronous = Interface('ID3D11Asynchronous', ID3D11DeviceChild)
69 ID3D11Query = Interface('ID3D11Query', ID3D11Asynchronous)
70 ID3D11Predicate = Interface('ID3D11Predicate', ID3D11Query)
71 ID3D11Counter = Interface('ID3D11Counter', ID3D11Asynchronous)
72 ID3D11ClassInstance = Interface('ID3D11ClassInstance', ID3D11DeviceChild)
73 ID3D11ClassLinkage = Interface('ID3D11ClassLinkage', ID3D11DeviceChild)
74 ID3D11CommandList = Interface('ID3D11CommandList', ID3D11DeviceChild)
75 ID3D11Device = Interface('ID3D11Device', IUnknown)
78 D3D11_INPUT_CLASSIFICATION = Enum('D3D11_INPUT_CLASSIFICATION', [
79 'D3D11_INPUT_PER_VERTEX_DATA',
80 'D3D11_INPUT_PER_INSTANCE_DATA',
83 D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET = FakeEnum(UINT, [
84 'D3D11_APPEND_ALIGNED_ELEMENT',
87 D3D11_INPUT_ELEMENT_DESC = Struct('D3D11_INPUT_ELEMENT_DESC', [
88 (LPCSTR, 'SemanticName'),
89 (UINT, 'SemanticIndex'),
90 (DXGI_FORMAT, 'Format'),
92 (D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET, 'AlignedByteOffset'),
93 (D3D11_INPUT_CLASSIFICATION, 'InputSlotClass'),
94 (UINT, 'InstanceDataStepRate'),
97 D3D11_FILL_MODE = Enum('D3D11_FILL_MODE', [
98 'D3D11_FILL_WIREFRAME',
102 D3D11_PRIMITIVE_TOPOLOGY = Enum('D3D11_PRIMITIVE_TOPOLOGY', [
103 'D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED',
104 'D3D11_PRIMITIVE_TOPOLOGY_POINTLIST',
105 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST',
106 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP',
107 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST',
108 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP',
109 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ',
110 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ',
111 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ',
112 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ',
113 'D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST',
114 'D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST',
115 'D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST',
116 'D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST',
117 'D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST',
118 'D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST',
119 'D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST',
120 'D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST',
121 'D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST',
122 'D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST',
123 'D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST',
124 'D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST',
125 'D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST',
126 'D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST',
127 'D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST',
128 'D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST',
129 'D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST',
130 'D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST',
131 'D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST',
132 'D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST',
133 'D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST',
134 'D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST',
135 'D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST',
136 'D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST',
137 'D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST',
138 'D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST',
139 'D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST',
140 'D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST',
141 'D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST',
142 'D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST',
143 'D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST',
144 'D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST',
147 D3D11_PRIMITIVE = Enum('D3D11_PRIMITIVE', [
148 'D3D11_PRIMITIVE_UNDEFINED',
149 'D3D11_PRIMITIVE_POINT',
150 'D3D11_PRIMITIVE_LINE',
151 'D3D11_PRIMITIVE_TRIANGLE',
152 'D3D11_PRIMITIVE_LINE_ADJ',
153 'D3D11_PRIMITIVE_TRIANGLE_ADJ',
154 'D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH',
155 'D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH',
156 'D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH',
157 'D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH',
158 'D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH',
159 'D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH',
160 'D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH',
161 'D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH',
162 'D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH',
163 'D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH',
164 'D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH',
165 'D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH',
166 'D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH',
167 'D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH',
168 'D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH',
169 'D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH',
170 'D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH',
171 'D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH',
172 'D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH',
173 'D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH',
174 'D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH',
175 'D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH',
176 'D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH',
177 'D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH',
178 'D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH',
179 'D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH',
180 'D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH',
181 'D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH',
182 'D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH',
183 'D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH',
184 'D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH',
185 'D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH',
188 D3D11_CULL_MODE = Enum('D3D11_CULL_MODE', [
194 D3D11_SO_DECLARATION_ENTRY = Struct('D3D11_SO_DECLARATION_ENTRY', [
196 (LPCSTR, 'SemanticName'),
197 (UINT, 'SemanticIndex'),
198 (BYTE, 'StartComponent'),
199 (BYTE, 'ComponentCount'),
200 (BYTE, 'OutputSlot'),
203 D3D11_VIEWPORT = Struct('D3D11_VIEWPORT', [
212 D3D11_RESOURCE_DIMENSION = Enum('D3D11_RESOURCE_DIMENSION', [
213 'D3D11_RESOURCE_DIMENSION_UNKNOWN',
214 'D3D11_RESOURCE_DIMENSION_BUFFER',
215 'D3D11_RESOURCE_DIMENSION_TEXTURE1D',
216 'D3D11_RESOURCE_DIMENSION_TEXTURE2D',
217 'D3D11_RESOURCE_DIMENSION_TEXTURE3D',
220 D3D11_SRV_DIMENSION = Enum('D3D11_SRV_DIMENSION', [
221 'D3D11_SRV_DIMENSION_UNKNOWN',
222 'D3D11_SRV_DIMENSION_BUFFER',
223 'D3D11_SRV_DIMENSION_TEXTURE1D',
224 'D3D11_SRV_DIMENSION_TEXTURE1DARRAY',
225 'D3D11_SRV_DIMENSION_TEXTURE2D',
226 'D3D11_SRV_DIMENSION_TEXTURE2DARRAY',
227 'D3D11_SRV_DIMENSION_TEXTURE2DMS',
228 'D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY',
229 'D3D11_SRV_DIMENSION_TEXTURE3D',
230 'D3D11_SRV_DIMENSION_TEXTURECUBE',
231 'D3D11_SRV_DIMENSION_TEXTURECUBEARRAY',
232 'D3D11_SRV_DIMENSION_BUFFEREX',
235 D3D11_DSV_DIMENSION = Enum('D3D11_DSV_DIMENSION', [
236 'D3D11_DSV_DIMENSION_UNKNOWN',
237 'D3D11_DSV_DIMENSION_TEXTURE1D',
238 'D3D11_DSV_DIMENSION_TEXTURE1DARRAY',
239 'D3D11_DSV_DIMENSION_TEXTURE2D',
240 'D3D11_DSV_DIMENSION_TEXTURE2DARRAY',
241 'D3D11_DSV_DIMENSION_TEXTURE2DMS',
242 'D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY',
245 D3D11_RTV_DIMENSION = Enum('D3D11_RTV_DIMENSION', [
246 'D3D11_RTV_DIMENSION_UNKNOWN',
247 'D3D11_RTV_DIMENSION_BUFFER',
248 'D3D11_RTV_DIMENSION_TEXTURE1D',
249 'D3D11_RTV_DIMENSION_TEXTURE1DARRAY',
250 'D3D11_RTV_DIMENSION_TEXTURE2D',
251 'D3D11_RTV_DIMENSION_TEXTURE2DARRAY',
252 'D3D11_RTV_DIMENSION_TEXTURE2DMS',
253 'D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY',
254 'D3D11_RTV_DIMENSION_TEXTURE3D',
257 D3D11_UAV_DIMENSION = Enum('D3D11_UAV_DIMENSION', [
258 'D3D11_UAV_DIMENSION_UNKNOWN',
259 'D3D11_UAV_DIMENSION_BUFFER',
260 'D3D11_UAV_DIMENSION_TEXTURE1D',
261 'D3D11_UAV_DIMENSION_TEXTURE1DARRAY',
262 'D3D11_UAV_DIMENSION_TEXTURE2D',
263 'D3D11_UAV_DIMENSION_TEXTURE2DARRAY',
264 'D3D11_UAV_DIMENSION_TEXTURE3D',
267 D3D11_USAGE = Enum('D3D11_USAGE', [
268 'D3D11_USAGE_DEFAULT',
269 'D3D11_USAGE_IMMUTABLE',
270 'D3D11_USAGE_DYNAMIC',
271 'D3D11_USAGE_STAGING',
274 D3D11_BIND_FLAG = Flags(UINT, [
275 'D3D11_BIND_VERTEX_BUFFER',
276 'D3D11_BIND_INDEX_BUFFER',
277 'D3D11_BIND_CONSTANT_BUFFER',
278 'D3D11_BIND_SHADER_RESOURCE',
279 'D3D11_BIND_STREAM_OUTPUT',
280 'D3D11_BIND_RENDER_TARGET',
281 'D3D11_BIND_DEPTH_STENCIL',
282 'D3D11_BIND_UNORDERED_ACCESS',
285 D3D11_CPU_ACCESS_FLAG = Flags(UINT, [
286 'D3D11_CPU_ACCESS_WRITE',
287 'D3D11_CPU_ACCESS_READ',
290 D3D11_RESOURCE_MISC_FLAG = Flags(UINT, [
291 'D3D11_RESOURCE_MISC_GENERATE_MIPS',
292 'D3D11_RESOURCE_MISC_SHARED',
293 'D3D11_RESOURCE_MISC_TEXTURECUBE',
294 'D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS',
295 'D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS',
296 'D3D11_RESOURCE_MISC_BUFFER_STRUCTURED',
297 'D3D11_RESOURCE_MISC_RESOURCE_CLAMP',
298 'D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX',
299 'D3D11_RESOURCE_MISC_GDI_COMPATIBLE',
302 D3D11_MAP = Enum('D3D11_MAP', [
305 'D3D11_MAP_READ_WRITE',
306 'D3D11_MAP_WRITE_DISCARD',
307 'D3D11_MAP_WRITE_NO_OVERWRITE',
310 D3D11_MAP_FLAG = Flags(UINT, [
311 'D3D11_MAP_FLAG_DO_NOT_WAIT',
314 D3D11_RAISE_FLAG = Flags(UINT, [
315 'D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR',
318 D3D11_CLEAR_FLAG = Flags(UINT, [
320 'D3D11_CLEAR_STENCIL',
323 D3D11_RECT = Alias('D3D11_RECT', RECT)
324 D3D11_BOX = Struct('D3D11_BOX', [
333 ID3D11DeviceChild.methods += [
334 StdMethod(Void, 'GetDevice', [Out(Pointer(Pointer(ID3D11Device)), 'ppDevice')]),
335 StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]),
336 StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]),
337 StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]),
340 D3D11_COMPARISON_FUNC = Enum('D3D11_COMPARISON_FUNC', [
341 'D3D11_COMPARISON_NEVER',
342 'D3D11_COMPARISON_LESS',
343 'D3D11_COMPARISON_EQUAL',
344 'D3D11_COMPARISON_LESS_EQUAL',
345 'D3D11_COMPARISON_GREATER',
346 'D3D11_COMPARISON_NOT_EQUAL',
347 'D3D11_COMPARISON_GREATER_EQUAL',
348 'D3D11_COMPARISON_ALWAYS',
351 D3D11_DEPTH_WRITE_MASK = Enum('D3D11_DEPTH_WRITE_MASK', [
352 'D3D11_DEPTH_WRITE_MASK_ZERO',
353 'D3D11_DEPTH_WRITE_MASK_ALL',
356 D3D11_STENCIL_OP = Enum('D3D11_STENCIL_OP', [
357 'D3D11_STENCIL_OP_KEEP',
358 'D3D11_STENCIL_OP_ZERO',
359 'D3D11_STENCIL_OP_REPLACE',
360 'D3D11_STENCIL_OP_INCR_SAT',
361 'D3D11_STENCIL_OP_DECR_SAT',
362 'D3D11_STENCIL_OP_INVERT',
363 'D3D11_STENCIL_OP_INCR',
364 'D3D11_STENCIL_OP_DECR',
367 D3D11_DEPTH_STENCILOP_DESC = Struct('D3D11_DEPTH_STENCILOP_DESC', [
368 (D3D11_STENCIL_OP, 'StencilFailOp'),
369 (D3D11_STENCIL_OP, 'StencilDepthFailOp'),
370 (D3D11_STENCIL_OP, 'StencilPassOp'),
371 (D3D11_COMPARISON_FUNC, 'StencilFunc'),
374 D3D11_DEPTH_STENCIL_DESC = Struct('D3D11_DEPTH_STENCIL_DESC', [
375 (BOOL, 'DepthEnable'),
376 (D3D11_DEPTH_WRITE_MASK, 'DepthWriteMask'),
377 (D3D11_COMPARISON_FUNC, 'DepthFunc'),
378 (BOOL, 'StencilEnable'),
379 (UINT8, 'StencilReadMask'),
380 (UINT8, 'StencilWriteMask'),
381 (D3D11_DEPTH_STENCILOP_DESC, 'FrontFace'),
382 (D3D11_DEPTH_STENCILOP_DESC, 'BackFace'),
385 ID3D11DepthStencilState.methods += [
386 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_DEPTH_STENCIL_DESC), 'pDesc')]),
389 D3D11_BLEND = Enum('D3D11_BLEND', [
392 'D3D11_BLEND_SRC_COLOR',
393 'D3D11_BLEND_INV_SRC_COLOR',
394 'D3D11_BLEND_SRC_ALPHA',
395 'D3D11_BLEND_INV_SRC_ALPHA',
396 'D3D11_BLEND_DEST_ALPHA',
397 'D3D11_BLEND_INV_DEST_ALPHA',
398 'D3D11_BLEND_DEST_COLOR',
399 'D3D11_BLEND_INV_DEST_COLOR',
400 'D3D11_BLEND_SRC_ALPHA_SAT',
401 'D3D11_BLEND_BLEND_FACTOR',
402 'D3D11_BLEND_INV_BLEND_FACTOR',
403 'D3D11_BLEND_SRC1_COLOR',
404 'D3D11_BLEND_INV_SRC1_COLOR',
405 'D3D11_BLEND_SRC1_ALPHA',
406 'D3D11_BLEND_INV_SRC1_ALPHA',
409 D3D11_BLEND_OP = Enum('D3D11_BLEND_OP', [
410 'D3D11_BLEND_OP_ADD',
411 'D3D11_BLEND_OP_SUBTRACT',
412 'D3D11_BLEND_OP_REV_SUBTRACT',
413 'D3D11_BLEND_OP_MIN',
414 'D3D11_BLEND_OP_MAX',
417 D3D11_COLOR_WRITE_ENABLE = Enum('D3D11_COLOR_WRITE_ENABLE', [
418 'D3D11_COLOR_WRITE_ENABLE_ALL',
419 'D3D11_COLOR_WRITE_ENABLE_RED',
420 'D3D11_COLOR_WRITE_ENABLE_GREEN',
421 'D3D11_COLOR_WRITE_ENABLE_BLUE',
422 'D3D11_COLOR_WRITE_ENABLE_ALPHA',
425 D3D11_RENDER_TARGET_BLEND_DESC = Struct('D3D11_RENDER_TARGET_BLEND_DESC', [
426 (BOOL, 'BlendEnable'),
427 (D3D11_BLEND, 'SrcBlend'),
428 (D3D11_BLEND, 'DestBlend'),
429 (D3D11_BLEND_OP, 'BlendOp'),
430 (D3D11_BLEND, 'SrcBlendAlpha'),
431 (D3D11_BLEND, 'DestBlendAlpha'),
432 (D3D11_BLEND_OP, 'BlendOpAlpha'),
433 (UINT8, 'RenderTargetWriteMask'),
436 D3D11_BLEND_DESC = Struct('D3D11_BLEND_DESC', [
437 (BOOL, 'AlphaToCoverageEnable'),
438 (BOOL, 'IndependentBlendEnable'),
439 (Array(D3D11_RENDER_TARGET_BLEND_DESC, 8), 'RenderTarget'),
442 ID3D11BlendState.methods += [
443 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_BLEND_DESC), 'pDesc')]),
446 D3D11_RASTERIZER_DESC = Struct('D3D11_RASTERIZER_DESC', [
447 (D3D11_FILL_MODE, 'FillMode'),
448 (D3D11_CULL_MODE, 'CullMode'),
449 (BOOL, 'FrontCounterClockwise'),
451 (FLOAT, 'DepthBiasClamp'),
452 (FLOAT, 'SlopeScaledDepthBias'),
453 (BOOL, 'DepthClipEnable'),
454 (BOOL, 'ScissorEnable'),
455 (BOOL, 'MultisampleEnable'),
456 (BOOL, 'AntialiasedLineEnable'),
459 ID3D11RasterizerState.methods += [
460 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_RASTERIZER_DESC), 'pDesc')]),
463 D3D11_SUBRESOURCE_DATA = Struct('D3D11_SUBRESOURCE_DATA', [
464 (OpaquePointer(Const(Void)), 'pSysMem'),
465 (UINT, 'SysMemPitch'),
466 (UINT, 'SysMemSlicePitch'),
469 D3D11_MAPPED_SUBRESOURCE = Struct('D3D11_MAPPED_SUBRESOURCE', [
470 (OpaquePointer(Void), 'pData'),
472 (UINT, 'DepthPitch'),
475 ID3D11Resource.methods += [
476 StdMethod(Void, 'GetType', [Out(Pointer(D3D11_RESOURCE_DIMENSION), 'pResourceDimension')]),
477 StdMethod(Void, 'SetEvictionPriority', [(UINT, 'EvictionPriority')]),
478 StdMethod(UINT, 'GetEvictionPriority', []),
481 D3D11_BUFFER_DESC = Struct('D3D11_BUFFER_DESC', [
483 (D3D11_USAGE, 'Usage'),
484 (D3D11_BIND_FLAG, 'BindFlags'),
485 (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'),
486 (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'),
487 (UINT, 'StructureByteStride'),
490 ID3D11Buffer.methods += [
491 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_BUFFER_DESC), 'pDesc')]),
494 D3D11_TEXTURE1D_DESC = Struct('D3D11_TEXTURE1D_DESC', [
498 (DXGI_FORMAT, 'Format'),
499 (D3D11_USAGE, 'Usage'),
500 (D3D11_BIND_FLAG, 'BindFlags'),
501 (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'),
502 (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'),
505 ID3D11Texture1D.methods += [
506 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE1D_DESC), 'pDesc')]),
509 D3D11_TEXTURE2D_DESC = Struct('D3D11_TEXTURE2D_DESC', [
514 (DXGI_FORMAT, 'Format'),
515 (DXGI_SAMPLE_DESC, 'SampleDesc'),
516 (D3D11_USAGE, 'Usage'),
517 (D3D11_BIND_FLAG, 'BindFlags'),
518 (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'),
519 (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'),
522 ID3D11Texture2D.methods += [
523 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE2D_DESC), 'pDesc')]),
526 D3D11_TEXTURE3D_DESC = Struct('D3D11_TEXTURE3D_DESC', [
531 (DXGI_FORMAT, 'Format'),
532 (D3D11_USAGE, 'Usage'),
533 (D3D11_BIND_FLAG, 'BindFlags'),
534 (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'),
535 (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'),
538 ID3D11Texture3D.methods += [
539 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE3D_DESC), 'pDesc')]),
542 D3D11_TEXTURECUBE_FACE = Enum('D3D11_TEXTURECUBE_FACE', [
543 'D3D11_TEXTURECUBE_FACE_POSITIVE_X',
544 'D3D11_TEXTURECUBE_FACE_NEGATIVE_X',
545 'D3D11_TEXTURECUBE_FACE_POSITIVE_Y',
546 'D3D11_TEXTURECUBE_FACE_NEGATIVE_Y',
547 'D3D11_TEXTURECUBE_FACE_POSITIVE_Z',
548 'D3D11_TEXTURECUBE_FACE_NEGATIVE_Z',
551 ID3D11View.methods += [
552 StdMethod(Void, 'GetResource', [Out(Pointer(Pointer(ID3D11Resource)), 'ppResource')]),
555 D3D11_BUFFER_SRV = Struct('D3D11_BUFFER_SRV', [
556 (Union(None, [(UINT, 'FirstElement'), (UINT, 'ElementOffset')]), None),
557 (Union(None, [(UINT, 'NumElements'), (UINT, 'ElementWidth')]), None),
560 D3D11_BUFFEREX_SRV_FLAG = Flags(UINT, [
561 'D3D11_BUFFEREX_SRV_FLAG_RAW',
564 D3D11_BUFFEREX_SRV = Struct('D3D11_BUFFEREX_SRV', [
565 (UINT, 'FirstElement'),
566 (UINT, 'NumElements'),
567 (D3D11_BUFFEREX_SRV_FLAG, 'Flags'),
570 D3D11_TEX1D_SRV = Struct('D3D11_TEX1D_SRV', [
571 (UINT, 'MostDetailedMip'),
575 D3D11_TEX1D_ARRAY_SRV = Struct('D3D11_TEX1D_ARRAY_SRV', [
576 (UINT, 'MostDetailedMip'),
578 (UINT, 'FirstArraySlice'),
582 D3D11_TEX2D_SRV = Struct('D3D11_TEX2D_SRV', [
583 (UINT, 'MostDetailedMip'),
587 D3D11_TEX2D_ARRAY_SRV = Struct('D3D11_TEX2D_ARRAY_SRV', [
588 (UINT, 'MostDetailedMip'),
590 (UINT, 'FirstArraySlice'),
594 D3D11_TEX3D_SRV = Struct('D3D11_TEX3D_SRV', [
595 (UINT, 'MostDetailedMip'),
599 D3D11_TEXCUBE_SRV = Struct('D3D11_TEXCUBE_SRV', [
600 (UINT, 'MostDetailedMip'),
604 D3D11_TEXCUBE_ARRAY_SRV = Struct('D3D11_TEXCUBE_ARRAY_SRV', [
605 (UINT, 'MostDetailedMip'),
607 (UINT, 'First2DArrayFace'),
611 D3D11_TEX2DMS_SRV = Struct('D3D11_TEX2DMS_SRV', [
612 (UINT, 'UnusedField_NothingToDefine'),
615 D3D11_TEX2DMS_ARRAY_SRV = Struct('D3D11_TEX2DMS_ARRAY_SRV', [
616 (UINT, 'FirstArraySlice'),
620 D3D11_SHADER_RESOURCE_VIEW_DESC = Struct('D3D11_SHADER_RESOURCE_VIEW_DESC', [
621 (DXGI_FORMAT, 'Format'),
622 (D3D11_SRV_DIMENSION, 'ViewDimension'),
624 (D3D11_BUFFER_SRV, 'Buffer'),
625 (D3D11_TEX1D_SRV, 'Texture1D'),
626 (D3D11_TEX1D_ARRAY_SRV, 'Texture1DArray'),
627 (D3D11_TEX2D_SRV, 'Texture2D'),
628 (D3D11_TEX2D_ARRAY_SRV, 'Texture2DArray'),
629 (D3D11_TEX2DMS_SRV, 'Texture2DMS'),
630 (D3D11_TEX2DMS_ARRAY_SRV, 'Texture2DMSArray'),
631 (D3D11_TEX3D_SRV, 'Texture3D'),
632 (D3D11_TEXCUBE_SRV, 'TextureCube'),
633 (D3D11_TEXCUBE_ARRAY_SRV, 'TextureCubeArray'),
634 (D3D11_BUFFEREX_SRV, 'BufferEx'),
638 ID3D11ShaderResourceView.methods += [
639 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC), 'pDesc')]),
642 D3D11_BUFFER_RTV = Struct('D3D11_BUFFER_RTV', [
643 (Union(None, [(UINT, 'FirstElement'), (UINT, 'ElementOffset')]), None),
644 (Union(None, [(UINT, 'NumElements'), (UINT, 'ElementWidth')]), None),
647 D3D11_TEX1D_RTV = Struct('D3D11_TEX1D_RTV', [
651 D3D11_TEX1D_ARRAY_RTV = Struct('D3D11_TEX1D_ARRAY_RTV', [
653 (UINT, 'FirstArraySlice'),
657 D3D11_TEX2D_RTV = Struct('D3D11_TEX2D_RTV', [
661 D3D11_TEX2DMS_RTV = Struct('D3D11_TEX2DMS_RTV', [
662 (UINT, 'UnusedField_NothingToDefine'),
665 D3D11_TEX2D_ARRAY_RTV = Struct('D3D11_TEX2D_ARRAY_RTV', [
667 (UINT, 'FirstArraySlice'),
671 D3D11_TEX2DMS_ARRAY_RTV = Struct('D3D11_TEX2DMS_ARRAY_RTV', [
672 (UINT, 'FirstArraySlice'),
676 D3D11_TEX3D_RTV = Struct('D3D11_TEX3D_RTV', [
678 (UINT, 'FirstWSlice'),
682 D3D11_RENDER_TARGET_VIEW_DESC = Struct('D3D11_RENDER_TARGET_VIEW_DESC', [
683 (DXGI_FORMAT, 'Format'),
684 (D3D11_RTV_DIMENSION, 'ViewDimension'),
686 (D3D11_BUFFER_RTV, 'Buffer'),
687 (D3D11_TEX1D_RTV, 'Texture1D'),
688 (D3D11_TEX1D_ARRAY_RTV, 'Texture1DArray'),
689 (D3D11_TEX2D_RTV, 'Texture2D'),
690 (D3D11_TEX2D_ARRAY_RTV, 'Texture2DArray'),
691 (D3D11_TEX2DMS_RTV, 'Texture2DMS'),
692 (D3D11_TEX2DMS_ARRAY_RTV, 'Texture2DMSArray'),
693 (D3D11_TEX3D_RTV, 'Texture3D'),
697 ID3D11RenderTargetView.methods += [
698 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC), 'pDesc')]),
701 D3D11_TEX1D_DSV = Struct('D3D11_TEX1D_DSV', [
705 D3D11_TEX1D_ARRAY_DSV = Struct('D3D11_TEX1D_ARRAY_DSV', [
707 (UINT, 'FirstArraySlice'),
711 D3D11_TEX2D_DSV = Struct('D3D11_TEX2D_DSV', [
715 D3D11_TEX2D_ARRAY_DSV = Struct('D3D11_TEX2D_ARRAY_DSV', [
717 (UINT, 'FirstArraySlice'),
721 D3D11_TEX2DMS_DSV = Struct('D3D11_TEX2DMS_DSV', [
722 (UINT, 'UnusedField_NothingToDefine'),
725 D3D11_TEX2DMS_ARRAY_DSV = Struct('D3D11_TEX2DMS_ARRAY_DSV', [
726 (UINT, 'FirstArraySlice'),
730 D3D11_DSV_FLAG = Flags(UINT, [
731 'D3D11_DSV_READ_ONLY_DEPTH',
732 'D3D11_DSV_READ_ONLY_STENCIL',
735 D3D11_DEPTH_STENCIL_VIEW_DESC = Struct('D3D11_DEPTH_STENCIL_VIEW_DESC', [
736 (DXGI_FORMAT, 'Format'),
737 (D3D11_DSV_DIMENSION, 'ViewDimension'),
738 (D3D11_DSV_FLAG, 'Flags'),
740 (D3D11_TEX1D_DSV, 'Texture1D'),
741 (D3D11_TEX1D_ARRAY_DSV, 'Texture1DArray'),
742 (D3D11_TEX2D_DSV, 'Texture2D'),
743 (D3D11_TEX2D_ARRAY_DSV, 'Texture2DArray'),
744 (D3D11_TEX2DMS_DSV, 'Texture2DMS'),
745 (D3D11_TEX2DMS_ARRAY_DSV, 'Texture2DMSArray'),
749 ID3D11DepthStencilView.methods += [
750 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_DEPTH_STENCIL_VIEW_DESC), 'pDesc')]),
753 D3D11_BUFFER_UAV_FLAG = Flags(UINT, [
754 'D3D11_BUFFER_UAV_FLAG_RAW',
755 'D3D11_BUFFER_UAV_FLAG_APPEND',
756 'D3D11_BUFFER_UAV_FLAG_COUNTER',
759 D3D11_BUFFER_UAV = Struct('D3D11_BUFFER_UAV', [
760 (UINT, 'FirstElement'),
761 (UINT, 'NumElements'),
762 (D3D11_BUFFER_UAV_FLAG, 'Flags'),
765 D3D11_TEX1D_UAV = Struct('D3D11_TEX1D_UAV', [
769 D3D11_TEX1D_ARRAY_UAV = Struct('D3D11_TEX1D_ARRAY_UAV', [
771 (UINT, 'FirstArraySlice'),
775 D3D11_TEX2D_UAV = Struct('D3D11_TEX2D_UAV', [
779 D3D11_TEX2D_ARRAY_UAV = Struct('D3D11_TEX2D_ARRAY_UAV', [
781 (UINT, 'FirstArraySlice'),
785 D3D11_TEX3D_UAV = Struct('D3D11_TEX3D_UAV', [
787 (UINT, 'FirstWSlice'),
791 D3D11_UNORDERED_ACCESS_VIEW_DESC = Struct('D3D11_UNORDERED_ACCESS_VIEW_DESC', [
792 (DXGI_FORMAT, 'Format'),
793 (D3D11_UAV_DIMENSION, 'ViewDimension'),
795 (D3D11_BUFFER_UAV, 'Buffer'),
796 (D3D11_TEX1D_UAV, 'Texture1D'),
797 (D3D11_TEX1D_ARRAY_UAV, 'Texture1DArray'),
798 (D3D11_TEX2D_UAV, 'Texture2D'),
799 (D3D11_TEX2D_ARRAY_UAV, 'Texture2DArray'),
800 (D3D11_TEX3D_UAV, 'Texture3D'),
804 ID3D11UnorderedAccessView.methods += [
805 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC), 'pDesc')]),
808 D3D11_FILTER = Enum('D3D11_FILTER', [
809 'D3D11_FILTER_MIN_MAG_MIP_POINT',
810 'D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR',
811 'D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT',
812 'D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR',
813 'D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT',
814 'D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR',
815 'D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT',
816 'D3D11_FILTER_MIN_MAG_MIP_LINEAR',
817 'D3D11_FILTER_ANISOTROPIC',
818 'D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT',
819 'D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR',
820 'D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT',
821 'D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR',
822 'D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT',
823 'D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR',
824 'D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT',
825 'D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR',
826 'D3D11_FILTER_COMPARISON_ANISOTROPIC',
829 D3D11_FILTER_TYPE = Enum('D3D11_FILTER_TYPE', [
830 'D3D11_FILTER_TYPE_POINT',
831 'D3D11_FILTER_TYPE_LINEAR',
834 D3D11_TEXTURE_ADDRESS_MODE = Enum('D3D11_TEXTURE_ADDRESS_MODE', [
835 'D3D11_TEXTURE_ADDRESS_WRAP',
836 'D3D11_TEXTURE_ADDRESS_MIRROR',
837 'D3D11_TEXTURE_ADDRESS_CLAMP',
838 'D3D11_TEXTURE_ADDRESS_BORDER',
839 'D3D11_TEXTURE_ADDRESS_MIRROR_ONCE',
842 D3D11_SAMPLER_DESC = Struct('D3D11_SAMPLER_DESC', [
843 (D3D11_FILTER, 'Filter'),
844 (D3D11_TEXTURE_ADDRESS_MODE, 'AddressU'),
845 (D3D11_TEXTURE_ADDRESS_MODE, 'AddressV'),
846 (D3D11_TEXTURE_ADDRESS_MODE, 'AddressW'),
847 (FLOAT, 'MipLODBias'),
848 (UINT, 'MaxAnisotropy'),
849 (D3D11_COMPARISON_FUNC, 'ComparisonFunc'),
850 (Array(FLOAT, 4), 'BorderColor'),
855 ID3D11SamplerState.methods += [
856 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_SAMPLER_DESC), 'pDesc')]),
859 D3D11_FORMAT_SUPPORT = Enum('D3D11_FORMAT_SUPPORT', [
860 'D3D11_FORMAT_SUPPORT_BUFFER',
861 'D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER',
862 'D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER',
863 'D3D11_FORMAT_SUPPORT_SO_BUFFER',
864 'D3D11_FORMAT_SUPPORT_TEXTURE1D',
865 'D3D11_FORMAT_SUPPORT_TEXTURE2D',
866 'D3D11_FORMAT_SUPPORT_TEXTURE3D',
867 'D3D11_FORMAT_SUPPORT_TEXTURECUBE',
868 'D3D11_FORMAT_SUPPORT_SHADER_LOAD',
869 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE',
870 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON',
871 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT',
872 'D3D11_FORMAT_SUPPORT_MIP',
873 'D3D11_FORMAT_SUPPORT_MIP_AUTOGEN',
874 'D3D11_FORMAT_SUPPORT_RENDER_TARGET',
875 'D3D11_FORMAT_SUPPORT_BLENDABLE',
876 'D3D11_FORMAT_SUPPORT_DEPTH_STENCIL',
877 'D3D11_FORMAT_SUPPORT_CPU_LOCKABLE',
878 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE',
879 'D3D11_FORMAT_SUPPORT_DISPLAY',
880 'D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT',
881 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET',
882 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD',
883 'D3D11_FORMAT_SUPPORT_SHADER_GATHER',
884 'D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST',
885 'D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW',
886 'D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON',
889 D3D11_FORMAT_SUPPORT2 = Enum('D3D11_FORMAT_SUPPORT2', [
890 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD',
891 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS',
892 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE',
893 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE',
894 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX',
895 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX',
896 'D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD',
897 'D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE',
900 ID3D11Asynchronous.methods += [
901 StdMethod(UINT, 'GetDataSize', []),
904 D3D11_ASYNC_GETDATA_FLAG = Flags(UINT, [
905 'D3D11_ASYNC_GETDATA_DONOTFLUSH',
908 D3D11_QUERY = Enum('D3D11_QUERY', [
910 'D3D11_QUERY_OCCLUSION',
911 'D3D11_QUERY_TIMESTAMP',
912 'D3D11_QUERY_TIMESTAMP_DISJOINT',
913 'D3D11_QUERY_PIPELINE_STATISTICS',
914 'D3D11_QUERY_OCCLUSION_PREDICATE',
915 'D3D11_QUERY_SO_STATISTICS',
916 'D3D11_QUERY_SO_OVERFLOW_PREDICATE',
917 'D3D11_QUERY_SO_STATISTICS_STREAM0',
918 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0',
919 'D3D11_QUERY_SO_STATISTICS_STREAM1',
920 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1',
921 'D3D11_QUERY_SO_STATISTICS_STREAM2',
922 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2',
923 'D3D11_QUERY_SO_STATISTICS_STREAM3',
924 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3',
927 D3D11_QUERY_MISC_FLAG = Flags(UINT, [
928 'D3D11_QUERY_MISC_PREDICATEHINT',
931 D3D11_QUERY_DESC = Struct('D3D11_QUERY_DESC', [
932 (D3D11_QUERY, 'Query'),
933 (D3D11_QUERY_MISC_FLAG, 'MiscFlags'),
936 ID3D11Query.methods += [
937 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_QUERY_DESC), 'pDesc')]),
940 D3D11_QUERY_DATA_TIMESTAMP_DISJOINT = Struct('D3D11_QUERY_DATA_TIMESTAMP_DISJOINT', [
941 (UINT64, 'Frequency'),
945 D3D11_QUERY_DATA_PIPELINE_STATISTICS = Struct('D3D11_QUERY_DATA_PIPELINE_STATISTICS', [
946 (UINT64, 'IAVertices'),
947 (UINT64, 'IAPrimitives'),
948 (UINT64, 'VSInvocations'),
949 (UINT64, 'GSInvocations'),
950 (UINT64, 'GSPrimitives'),
951 (UINT64, 'CInvocations'),
952 (UINT64, 'CPrimitives'),
953 (UINT64, 'PSInvocations'),
954 (UINT64, 'HSInvocations'),
955 (UINT64, 'DSInvocations'),
956 (UINT64, 'CSInvocations'),
959 D3D11_QUERY_DATA_SO_STATISTICS = Struct('D3D11_QUERY_DATA_SO_STATISTICS', [
960 (UINT64, 'NumPrimitivesWritten'),
961 (UINT64, 'PrimitivesStorageNeeded'),
964 D3D11_COUNTER = Enum('D3D11_COUNTER', [
965 'D3D11_COUNTER_DEVICE_DEPENDENT_0',
968 D3D11_COUNTER_TYPE = Enum('D3D11_COUNTER_TYPE', [
969 'D3D11_COUNTER_TYPE_FLOAT32',
970 'D3D11_COUNTER_TYPE_UINT16',
971 'D3D11_COUNTER_TYPE_UINT32',
972 'D3D11_COUNTER_TYPE_UINT64',
975 D3D11_COUNTER_DESC = Struct('D3D11_COUNTER_DESC', [
976 (D3D11_COUNTER, 'Counter'),
980 D3D11_COUNTER_INFO = Struct('D3D11_COUNTER_INFO', [
981 (D3D11_COUNTER, 'LastDeviceDependentCounter'),
982 (UINT, 'NumSimultaneousCounters'),
983 (UINT8, 'NumDetectableParallelUnits'),
986 ID3D11Counter.methods += [
987 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_COUNTER_DESC), 'pDesc')]),
990 D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS = Enum('D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS', [
991 'D3D11_STANDARD_MULTISAMPLE_PATTERN',
992 'D3D11_CENTER_MULTISAMPLE_PATTERN',
995 D3D11_DEVICE_CONTEXT_TYPE = Enum('D3D11_DEVICE_CONTEXT_TYPE', [
996 'D3D11_DEVICE_CONTEXT_IMMEDIATE',
997 'D3D11_DEVICE_CONTEXT_DEFERRED',
1000 D3D11_CLASS_INSTANCE_DESC = Struct('D3D11_CLASS_INSTANCE_DESC', [
1001 (UINT, 'InstanceId'),
1002 (UINT, 'InstanceIndex'),
1004 (UINT, 'ConstantBuffer'),
1005 (UINT, 'BaseConstantBufferOffset'),
1006 (UINT, 'BaseTexture'),
1007 (UINT, 'BaseSampler'),
1012 ID3D11ClassInstance.methods += [
1013 StdMethod(Void, 'GetClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]),
1014 StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), 'pDesc')]),
1015 StdMethod(Void, 'GetInstanceName', [Out(LPSTR, 'pInstanceName'), Out(Pointer(SIZE_T), 'pBufferLength')]),
1016 StdMethod(Void, 'GetTypeName', [Out(LPSTR, 'pTypeName'), Out(Pointer(SIZE_T), 'pBufferLength')]),
1019 ID3D11ClassLinkage.methods += [
1020 StdMethod(HRESULT, 'GetClassInstance', [(LPCSTR, 'pClassInstanceName'), (UINT, 'InstanceIndex'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]),
1021 StdMethod(HRESULT, 'CreateClassInstance', [(LPCSTR, 'pClassTypeName'), (UINT, 'ConstantBufferOffset'), (UINT, 'ConstantVectorOffset'), (UINT, 'TextureOffset'), (UINT, 'SamplerOffset'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]),
1024 ID3D11CommandList.methods += [
1025 StdMethod(UINT, 'GetContextFlags', []),
1028 D3D11_FEATURE = Enum('D3D11_FEATURE', [
1029 'D3D11_FEATURE_THREADING',
1030 'D3D11_FEATURE_DOUBLES',
1031 'D3D11_FEATURE_FORMAT_SUPPORT',
1032 'D3D11_FEATURE_FORMAT_SUPPORT2',
1033 'D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS',
1036 D3D11_FEATURE_DATA_THREADING = Struct('D3D11_FEATURE_DATA_THREADING', [
1037 (BOOL, 'DriverConcurrentCreates'),
1038 (BOOL, 'DriverCommandLists'),
1041 D3D11_FEATURE_DATA_DOUBLES = Struct('D3D11_FEATURE_DATA_DOUBLES', [
1042 (BOOL, 'DoublePrecisionFloatShaderOps'),
1045 D3D11_FEATURE_DATA_FORMAT_SUPPORT = Struct('D3D11_FEATURE_DATA_FORMAT_SUPPORT', [
1046 (DXGI_FORMAT, 'InFormat'),
1047 (UINT, 'OutFormatSupport'),
1050 D3D11_FEATURE_DATA_FORMAT_SUPPORT2 = Struct('D3D11_FEATURE_DATA_FORMAT_SUPPORT2', [
1051 (DXGI_FORMAT, 'InFormat'),
1052 (UINT, 'OutFormatSupport2'),
1055 D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct('D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS', [
1056 (BOOL, 'ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x'),
1059 ID3D11DeviceContext.methods += [
1060 StdMethod(Void, 'VSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1061 StdMethod(Void, 'PSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1062 StdMethod(Void, 'PSSetShader', [(Pointer(ID3D11PixelShader), 'pPixelShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1063 StdMethod(Void, 'PSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1064 StdMethod(Void, 'VSSetShader', [(Pointer(ID3D11VertexShader), 'pVertexShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1065 StdMethod(Void, 'DrawIndexed', [(UINT, 'IndexCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation')]),
1066 StdMethod(Void, 'Draw', [(UINT, 'VertexCount'), (UINT, 'StartVertexLocation')]),
1067 StdMethod(HRESULT, 'Map', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource'), (D3D11_MAP, 'MapType'), (D3D11_MAP_FLAG, 'MapFlags'), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), 'pMappedResource')]),
1068 StdMethod(Void, 'Unmap', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource')]),
1069 StdMethod(Void, 'PSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1070 StdMethod(Void, 'IASetInputLayout', [(Pointer(ID3D11InputLayout), 'pInputLayout')]),
1071 StdMethod(Void, 'IASetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppVertexBuffers'), (Pointer(Const(UINT)), 'pStrides'), (Pointer(Const(UINT)), 'pOffsets')]),
1072 StdMethod(Void, 'IASetIndexBuffer', [(Pointer(ID3D11Buffer), 'pIndexBuffer'), (DXGI_FORMAT, 'Format'), (UINT, 'Offset')]),
1073 StdMethod(Void, 'DrawIndexedInstanced', [(UINT, 'IndexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation'), (UINT, 'StartInstanceLocation')]),
1074 StdMethod(Void, 'DrawInstanced', [(UINT, 'VertexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartVertexLocation'), (UINT, 'StartInstanceLocation')]),
1075 StdMethod(Void, 'GSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1076 StdMethod(Void, 'GSSetShader', [(Pointer(ID3D11GeometryShader), 'pShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1077 StdMethod(Void, 'IASetPrimitiveTopology', [(D3D11_PRIMITIVE_TOPOLOGY, 'Topology')]),
1078 StdMethod(Void, 'VSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1079 StdMethod(Void, 'VSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1080 StdMethod(Void, 'Begin', [(Pointer(ID3D11Asynchronous), 'pAsync')]),
1081 StdMethod(Void, 'End', [(Pointer(ID3D11Asynchronous), 'pAsync')]),
1082 StdMethod(HRESULT, 'GetData', [(Pointer(ID3D11Asynchronous), 'pAsync'), Out(OpaqueBlob(Void, 'DataSize'), 'pData'), (UINT, 'DataSize'), (D3D11_ASYNC_GETDATA_FLAG, 'GetDataFlags')]),
1083 StdMethod(Void, 'SetPredication', [(Pointer(ID3D11Predicate), 'pPredicate'), (BOOL, 'PredicateValue')]),
1084 StdMethod(Void, 'GSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1085 StdMethod(Void, 'GSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1086 StdMethod(Void, 'OMSetRenderTargets', [(UINT, 'NumViews'), (Array(Const(Pointer(ID3D11RenderTargetView)), 'NumViews'), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView')]),
1087 StdMethod(Void, 'OMSetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(Const(Pointer(ID3D11RenderTargetView)), 'NumRTVs'), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(Const(Pointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
1088 StdMethod(Void, 'OMSetBlendState', [(Pointer(ID3D11BlendState), 'pBlendState'), (Array(Const(FLOAT), 4), 'BlendFactor'), (UINT, 'SampleMask')]),
1089 StdMethod(Void, 'OMSetDepthStencilState', [(Pointer(ID3D11DepthStencilState), 'pDepthStencilState'), (UINT, 'StencilRef')]),
1090 StdMethod(Void, 'SOSetTargets', [(UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppSOTargets'), (Pointer(Const(UINT)), 'pOffsets')]),
1091 StdMethod(Void, 'DrawAuto', []),
1092 StdMethod(Void, 'DrawIndexedInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
1093 StdMethod(Void, 'DrawInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
1094 StdMethod(Void, 'Dispatch', [(UINT, 'ThreadGroupCountX'), (UINT, 'ThreadGroupCountY'), (UINT, 'ThreadGroupCountZ')]),
1095 StdMethod(Void, 'DispatchIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
1096 StdMethod(Void, 'RSSetState', [(Pointer(ID3D11RasterizerState), 'pRasterizerState')]),
1097 StdMethod(Void, 'RSSetViewports', [(UINT, 'NumViewports'), (Array(Const(D3D11_VIEWPORT), 'NumViewports'), 'pViewports')]),
1098 StdMethod(Void, 'RSSetScissorRects', [(UINT, 'NumRects'), (Array(Const(D3D11_RECT), 'NumRects'), 'pRects')]),
1099 StdMethod(Void, 'CopySubresourceRegion', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (UINT, 'DstX'), (UINT, 'DstY'), (UINT, 'DstZ'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (Pointer(Const(D3D11_BOX)), 'pSrcBox')]),
1100 StdMethod(Void, 'CopyResource', [(Pointer(ID3D11Resource), 'pDstResource'), (Pointer(ID3D11Resource), 'pSrcResource')]),
1101 StdMethod(Void, 'UpdateSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(Const(D3D11_BOX)), 'pDstBox'), (OpaquePointer(Const(Void)), 'pSrcData'), (UINT, 'SrcRowPitch'), (UINT, 'SrcDepthPitch')]),
1102 StdMethod(Void, 'CopyStructureCount', [(Pointer(ID3D11Buffer), 'pDstBuffer'), (UINT, 'DstAlignedByteOffset'), (Pointer(ID3D11UnorderedAccessView), 'pSrcView')]),
1103 StdMethod(Void, 'ClearRenderTargetView', [(Pointer(ID3D11RenderTargetView), 'pRenderTargetView'), (Array(Const(FLOAT), 4), 'ColorRGBA')]),
1104 StdMethod(Void, 'ClearUnorderedAccessViewUint', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(UINT), 4), 'Values')]),
1105 StdMethod(Void, 'ClearUnorderedAccessViewFloat', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(FLOAT), 4), 'Values')]),
1106 StdMethod(Void, 'ClearDepthStencilView', [(Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (D3D11_CLEAR_FLAG, 'ClearFlags'), (FLOAT, 'Depth'), (UINT8, 'Stencil')]),
1107 StdMethod(Void, 'GenerateMips', [(Pointer(ID3D11ShaderResourceView), 'pShaderResourceView')]),
1108 StdMethod(Void, 'SetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource'), (FLOAT, 'MinLOD')]),
1109 StdMethod(FLOAT, 'GetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource')]),
1110 StdMethod(Void, 'ResolveSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (DXGI_FORMAT, 'Format')]),
1111 StdMethod(Void, 'ExecuteCommandList', [(Pointer(ID3D11CommandList), 'pCommandList'), (BOOL, 'RestoreContextState')]),
1112 StdMethod(Void, 'HSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1113 StdMethod(Void, 'HSSetShader', [(Pointer(ID3D11HullShader), 'pHullShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1114 StdMethod(Void, 'HSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1115 StdMethod(Void, 'HSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1116 StdMethod(Void, 'DSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1117 StdMethod(Void, 'DSSetShader', [(Pointer(ID3D11DomainShader), 'pDomainShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1118 StdMethod(Void, 'DSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1119 StdMethod(Void, 'DSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1120 StdMethod(Void, 'CSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
1121 StdMethod(Void, 'CSSetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(Const(Pointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
1122 StdMethod(Void, 'CSSetShader', [(Pointer(ID3D11ComputeShader), 'pComputeShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
1123 StdMethod(Void, 'CSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
1124 StdMethod(Void, 'CSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
1125 StdMethod(Void, 'VSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1126 StdMethod(Void, 'PSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1127 StdMethod(Void, 'PSGetShader', [Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1128 StdMethod(Void, 'PSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1129 StdMethod(Void, 'VSGetShader', [Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1130 StdMethod(Void, 'PSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1131 StdMethod(Void, 'IAGetInputLayout', [Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]),
1132 StdMethod(Void, 'IAGetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppVertexBuffers'), Out(Pointer(UINT), 'pStrides'), Out(Pointer(UINT), 'pOffsets')]),
1133 StdMethod(Void, 'IAGetIndexBuffer', [Out(Pointer(Pointer(ID3D11Buffer)), 'pIndexBuffer'), Out(Pointer(DXGI_FORMAT), 'Format'), Out(Pointer(UINT), 'Offset')]),
1134 StdMethod(Void, 'GSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1135 StdMethod(Void, 'GSGetShader', [Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1136 StdMethod(Void, 'IAGetPrimitiveTopology', [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), 'pTopology')]),
1137 StdMethod(Void, 'VSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1138 StdMethod(Void, 'VSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1139 StdMethod(Void, 'GetPredication', [Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate'), Out(Pointer(BOOL), 'pPredicateValue')]),
1140 StdMethod(Void, 'GSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1141 StdMethod(Void, 'GSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1142 StdMethod(Void, 'OMGetRenderTargets', [(UINT, 'NumViews'), (Array(Pointer(ID3D11RenderTargetView), 'NumViews'), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
1143 StdMethod(Void, 'OMGetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(Pointer(ID3D11RenderTargetView), 'NumRTVs'), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(Pointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
1144 StdMethod(Void, 'OMGetBlendState', [Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState'), Out(Array(FLOAT, 4), 'BlendFactor'), Out(Pointer(UINT), 'pSampleMask')]),
1145 StdMethod(Void, 'OMGetDepthStencilState', [Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState'), Out(Pointer(UINT), 'pStencilRef')]),
1146 StdMethod(Void, 'SOGetTargets', [(UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppSOTargets')]),
1147 StdMethod(Void, 'RSGetState', [Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
1148 StdMethod(Void, 'RSGetViewports', [Out(Pointer(UINT), 'pNumViewports'), Out(Array(D3D11_VIEWPORT, '*pNumViewports'), 'pViewports')]),
1149 StdMethod(Void, 'RSGetScissorRects', [Out(Pointer(UINT), 'pNumRects'), Out(Array(D3D11_RECT, '*pNumRects'), 'pRects')]),
1150 StdMethod(Void, 'HSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1151 StdMethod(Void, 'HSGetShader', [Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1152 StdMethod(Void, 'HSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1153 StdMethod(Void, 'HSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1154 StdMethod(Void, 'DSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1155 StdMethod(Void, 'DSGetShader', [Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1156 StdMethod(Void, 'DSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1157 StdMethod(Void, 'DSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1158 StdMethod(Void, 'CSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
1159 StdMethod(Void, 'CSGetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(Pointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
1160 StdMethod(Void, 'CSGetShader', [Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
1161 StdMethod(Void, 'CSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
1162 StdMethod(Void, 'CSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
1163 StdMethod(Void, 'ClearState', []),
1164 StdMethod(Void, 'Flush', []),
1165 StdMethod(D3D11_DEVICE_CONTEXT_TYPE, 'GetType', []),
1166 StdMethod(UINT, 'GetContextFlags', []),
1167 StdMethod(HRESULT, 'FinishCommandList', [(BOOL, 'RestoreDeferredContextState'), Out(Pointer(Pointer(ID3D11CommandList)), 'ppCommandList')]),
1170 D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
1171 'D3D11_CREATE_DEVICE_SINGLETHREADED',
1172 'D3D11_CREATE_DEVICE_DEBUG',
1173 'D3D11_CREATE_DEVICE_SWITCH_TO_REF',
1174 'D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS',
1175 'D3D11_CREATE_DEVICE_BGRA_SUPPORT',
1178 ID3D11Device.methods += [
1179 StdMethod(HRESULT, 'CreateBuffer', [(Pointer(Const(D3D11_BUFFER_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppBuffer')]),
1180 StdMethod(HRESULT, 'CreateTexture1D', [(Pointer(Const(D3D11_TEXTURE1D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture1D)), 'ppTexture1D')]),
1181 StdMethod(HRESULT, 'CreateTexture2D', [(Pointer(Const(D3D11_TEXTURE2D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture2D)), 'ppTexture2D')]),
1182 StdMethod(HRESULT, 'CreateTexture3D', [(Pointer(Const(D3D11_TEXTURE3D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture3D)), 'ppTexture3D')]),
1183 StdMethod(HRESULT, 'CreateShaderResourceView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppSRView')]),
1184 StdMethod(HRESULT, 'CreateUnorderedAccessView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11UnorderedAccessView)), 'ppUAView')]),
1185 StdMethod(HRESULT, 'CreateRenderTargetView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11RenderTargetView)), 'ppRTView')]),
1186 StdMethod(HRESULT, 'CreateDepthStencilView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
1187 StdMethod(HRESULT, 'CreateInputLayout', [(Array(Const(D3D11_INPUT_ELEMENT_DESC), 'NumElements'), 'pInputElementDescs'), (UINT, 'NumElements'), (Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecodeWithInputSignature'), (SIZE_T, 'BytecodeLength'), Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]),
1188 StdMethod(HRESULT, 'CreateVertexShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader')]),
1189 StdMethod(HRESULT, 'CreateGeometryShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
1190 StdMethod(HRESULT, 'CreateGeometryShaderWithStreamOutput', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Array(Const(D3D11_SO_DECLARATION_ENTRY), 'NumEntries'), 'pSODeclaration'), (UINT, 'NumEntries'), (Array(Const(UINT), 'NumStrides'), 'pBufferStrides'), (UINT, 'NumStrides'), (UINT, 'RasterizedStream'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
1191 StdMethod(HRESULT, 'CreatePixelShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader')]),
1192 StdMethod(HRESULT, 'CreateHullShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader')]),
1193 StdMethod(HRESULT, 'CreateDomainShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader')]),
1194 StdMethod(HRESULT, 'CreateComputeShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader')]),
1195 StdMethod(HRESULT, 'CreateClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]),
1196 StdMethod(HRESULT, 'CreateBlendState', [(Pointer(Const(D3D11_BLEND_DESC)), 'pBlendStateDesc'), Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState')]),
1197 StdMethod(HRESULT, 'CreateDepthStencilState', [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), 'pDepthStencilDesc'), Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState')]),
1198 StdMethod(HRESULT, 'CreateRasterizerState', [(Pointer(Const(D3D11_RASTERIZER_DESC)), 'pRasterizerDesc'), Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
1199 StdMethod(HRESULT, 'CreateSamplerState', [(Pointer(Const(D3D11_SAMPLER_DESC)), 'pSamplerDesc'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplerState')]),
1200 StdMethod(HRESULT, 'CreateQuery', [(Pointer(Const(D3D11_QUERY_DESC)), 'pQueryDesc'), Out(Pointer(Pointer(ID3D11Query)), 'ppQuery')]),
1201 StdMethod(HRESULT, 'CreatePredicate', [(Pointer(Const(D3D11_QUERY_DESC)), 'pPredicateDesc'), Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate')]),
1202 StdMethod(HRESULT, 'CreateCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pCounterDesc'), Out(Pointer(Pointer(ID3D11Counter)), 'ppCounter')]),
1203 StdMethod(HRESULT, 'CreateDeferredContext', [(UINT, 'ContextFlags'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppDeferredContext')]),
1204 StdMethod(HRESULT, 'OpenSharedResource', [(HANDLE, 'hResource'), (REFIID, 'ReturnedInterface'), Out(Pointer(OpaquePointer(Void)), 'ppResource')]),
1205 StdMethod(HRESULT, 'CheckFormatSupport', [(DXGI_FORMAT, 'Format'), Out(Pointer(UINT), 'pFormatSupport')]),
1206 StdMethod(HRESULT, 'CheckMultisampleQualityLevels', [(DXGI_FORMAT, 'Format'), (UINT, 'SampleCount'), Out(Pointer(UINT), 'pNumQualityLevels')]),
1207 StdMethod(Void, 'CheckCounterInfo', [Out(Pointer(D3D11_COUNTER_INFO), 'pCounterInfo')]),
1208 StdMethod(HRESULT, 'CheckCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pDesc'), Out(Pointer(D3D11_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')]),
1209 StdMethod(HRESULT, 'CheckFeatureSupport', [(D3D11_FEATURE, 'Feature'), Out(OpaqueBlob(Void, 'FeatureSupportDataSize'), 'pFeatureSupportData'), (UINT, 'FeatureSupportDataSize')]),
1210 StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]),
1211 StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]),
1212 StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]),
1213 StdMethod(D3D_FEATURE_LEVEL, 'GetFeatureLevel', []),
1214 StdMethod(D3D11_CREATE_DEVICE_FLAG, 'GetCreationFlags', []),
1215 StdMethod(HRESULT, 'GetDeviceRemovedReason', []),
1216 StdMethod(Void, 'GetImmediateContext', [Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
1217 StdMethod(HRESULT, 'SetExceptionMode', [(D3D11_RAISE_FLAG, 'RaiseFlags')]),
1218 StdMethod(UINT, 'GetExceptionMode', []),
1221 d3d11 = API("d3d11")
1223 d3d11.addFunctions([
1224 StdFunction(HRESULT, 'D3D11CreateDevice', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
1225 StdFunction(HRESULT, 'D3D11CreateDeviceAndSwapChain', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), (Pointer(Const(DXGI_SWAP_CHAIN_DESC)), 'pSwapChainDesc'), Out(Pointer(Pointer(IDXGISwapChain)), 'ppSwapChain'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
1228 d3d11.addInterfaces([