blob: d299a23195756ea33ee8e8ee99056f8910773ba4 [file] [log] [blame]
José Fonseca5b6fb752012-04-14 14:56:45 +01001##########################################################################
2#
3# Copyright 2012 Jose Fonseca
4# All Rights Reserved.
5#
6# Permission is hereby granted, free of charge, to any person obtaining a copy
7# of this software and associated documentation files (the "Software"), to deal
8# in the Software without restriction, including without limitation the rights
9# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10# copies of the Software, and to permit persons to whom the Software is
11# furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be included in
14# all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22# THE SOFTWARE.
23#
24##########################################################################/
25
26
27from dxgi import *
28from d3dcommon import *
29from d3d11sdklayers import *
30
31
José Fonseca73841ad2012-04-16 20:47:56 +010032HRESULT = MAKE_HRESULT([
José Fonseca5b6fb752012-04-14 14:56:45 +010033 "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",
37 "D3DERR_INVALIDCALL",
38 "D3DERR_WASSTILLDRAWING",
José Fonseca5b6fb752012-04-14 14:56:45 +010039])
40
41
José Fonsecaee590be2012-04-16 13:25:06 +010042ID3D11DepthStencilState = Interface("ID3D11DepthStencilState", ID3D11DeviceChild)
43ID3D11BlendState = Interface("ID3D11BlendState", ID3D11DeviceChild)
44ID3D11RasterizerState = Interface("ID3D11RasterizerState", ID3D11DeviceChild)
45ID3D11Resource = Interface("ID3D11Resource", ID3D11DeviceChild)
46ID3D11Buffer = Interface("ID3D11Buffer", ID3D11Resource)
47ID3D11Texture1D = Interface("ID3D11Texture1D", ID3D11Resource)
48ID3D11Texture2D = Interface("ID3D11Texture2D", ID3D11Resource)
49ID3D11Texture3D = Interface("ID3D11Texture3D", ID3D11Resource)
50ID3D11View = Interface("ID3D11View", ID3D11DeviceChild)
51ID3D11ShaderResourceView = Interface("ID3D11ShaderResourceView", ID3D11View)
52ID3D11RenderTargetView = Interface("ID3D11RenderTargetView", ID3D11View)
53ID3D11DepthStencilView = Interface("ID3D11DepthStencilView", ID3D11View)
54ID3D11UnorderedAccessView = Interface("ID3D11UnorderedAccessView", ID3D11View)
55ID3D11VertexShader = Interface("ID3D11VertexShader", ID3D11DeviceChild)
56ID3D11HullShader = Interface("ID3D11HullShader", ID3D11DeviceChild)
57ID3D11DomainShader = Interface("ID3D11DomainShader", ID3D11DeviceChild)
58ID3D11GeometryShader = Interface("ID3D11GeometryShader", ID3D11DeviceChild)
59ID3D11PixelShader = Interface("ID3D11PixelShader", ID3D11DeviceChild)
60ID3D11ComputeShader = Interface("ID3D11ComputeShader", ID3D11DeviceChild)
61ID3D11InputLayout = Interface("ID3D11InputLayout", ID3D11DeviceChild)
62ID3D11SamplerState = Interface("ID3D11SamplerState", ID3D11DeviceChild)
63ID3D11Asynchronous = Interface("ID3D11Asynchronous", ID3D11DeviceChild)
64ID3D11Query = Interface("ID3D11Query", ID3D11Asynchronous)
65ID3D11Predicate = Interface("ID3D11Predicate", ID3D11Query)
66ID3D11Counter = Interface("ID3D11Counter", ID3D11Asynchronous)
67ID3D11ClassInstance = Interface("ID3D11ClassInstance", ID3D11DeviceChild)
68ID3D11ClassLinkage = Interface("ID3D11ClassLinkage", ID3D11DeviceChild)
69ID3D11CommandList = Interface("ID3D11CommandList", ID3D11DeviceChild)
70ID3D11Device = Interface("ID3D11Device", IUnknown)
José Fonseca5b6fb752012-04-14 14:56:45 +010071
72
José Fonsecaee590be2012-04-16 13:25:06 +010073D3D11_INPUT_CLASSIFICATION = Enum("D3D11_INPUT_CLASSIFICATION", [
74 "D3D11_INPUT_PER_VERTEX_DATA",
75 "D3D11_INPUT_PER_INSTANCE_DATA",
José Fonseca5b6fb752012-04-14 14:56:45 +010076])
77
78D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET = FakeEnum(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +010079 "D3D11_APPEND_ALIGNED_ELEMENT",
José Fonseca5b6fb752012-04-14 14:56:45 +010080])
81
José Fonsecaee590be2012-04-16 13:25:06 +010082D3D11_INPUT_ELEMENT_DESC = Struct("D3D11_INPUT_ELEMENT_DESC", [
83 (LPCSTR, "SemanticName"),
84 (UINT, "SemanticIndex"),
85 (DXGI_FORMAT, "Format"),
86 (UINT, "InputSlot"),
87 (D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET, "AlignedByteOffset"),
88 (D3D11_INPUT_CLASSIFICATION, "InputSlotClass"),
89 (UINT, "InstanceDataStepRate"),
José Fonseca5b6fb752012-04-14 14:56:45 +010090])
91
José Fonsecaee590be2012-04-16 13:25:06 +010092D3D11_FILL_MODE = Enum("D3D11_FILL_MODE", [
93 "D3D11_FILL_WIREFRAME",
94 "D3D11_FILL_SOLID",
José Fonseca5b6fb752012-04-14 14:56:45 +010095])
96
José Fonsecaee590be2012-04-16 13:25:06 +010097D3D11_PRIMITIVE_TOPOLOGY = Enum("D3D11_PRIMITIVE_TOPOLOGY", [
98 "D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED",
99 "D3D11_PRIMITIVE_TOPOLOGY_POINTLIST",
100 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST",
101 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP",
102 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST",
103 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP",
104 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ",
105 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ",
106 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ",
107 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ",
108 "D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST",
109 "D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST",
110 "D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST",
111 "D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST",
112 "D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST",
113 "D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST",
114 "D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST",
115 "D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST",
116 "D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST",
117 "D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST",
118 "D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST",
119 "D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST",
120 "D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST",
121 "D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST",
122 "D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST",
123 "D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST",
124 "D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST",
125 "D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST",
126 "D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST",
127 "D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST",
128 "D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST",
129 "D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST",
130 "D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST",
131 "D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST",
132 "D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST",
133 "D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST",
134 "D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST",
135 "D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST",
136 "D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST",
137 "D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST",
138 "D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST",
139 "D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST",
José Fonseca5b6fb752012-04-14 14:56:45 +0100140])
141
José Fonsecaee590be2012-04-16 13:25:06 +0100142D3D11_PRIMITIVE = Enum("D3D11_PRIMITIVE", [
143 "D3D11_PRIMITIVE_UNDEFINED",
144 "D3D11_PRIMITIVE_POINT",
145 "D3D11_PRIMITIVE_LINE",
146 "D3D11_PRIMITIVE_TRIANGLE",
147 "D3D11_PRIMITIVE_LINE_ADJ",
148 "D3D11_PRIMITIVE_TRIANGLE_ADJ",
149 "D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH",
150 "D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH",
151 "D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH",
152 "D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH",
153 "D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH",
154 "D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH",
155 "D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH",
156 "D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH",
157 "D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH",
158 "D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH",
159 "D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH",
160 "D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH",
161 "D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH",
162 "D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH",
163 "D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH",
164 "D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH",
165 "D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH",
166 "D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH",
167 "D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH",
168 "D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH",
169 "D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH",
170 "D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH",
171 "D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH",
172 "D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH",
173 "D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH",
174 "D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH",
175 "D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH",
176 "D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH",
177 "D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH",
178 "D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH",
179 "D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH",
180 "D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH",
José Fonseca5b6fb752012-04-14 14:56:45 +0100181])
182
José Fonsecaee590be2012-04-16 13:25:06 +0100183D3D11_CULL_MODE = Enum("D3D11_CULL_MODE", [
184 "D3D11_CULL_NONE",
185 "D3D11_CULL_FRONT",
186 "D3D11_CULL_BACK",
José Fonseca5b6fb752012-04-14 14:56:45 +0100187])
188
José Fonsecaee590be2012-04-16 13:25:06 +0100189D3D11_SO_DECLARATION_ENTRY = Struct("D3D11_SO_DECLARATION_ENTRY", [
190 (UINT, "Stream"),
191 (LPCSTR, "SemanticName"),
192 (UINT, "SemanticIndex"),
193 (BYTE, "StartComponent"),
194 (BYTE, "ComponentCount"),
195 (BYTE, "OutputSlot"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100196])
197
José Fonsecaee590be2012-04-16 13:25:06 +0100198D3D11_VIEWPORT = Struct("D3D11_VIEWPORT", [
199 (FLOAT, "TopLeftX"),
200 (FLOAT, "TopLeftY"),
201 (FLOAT, "Width"),
202 (FLOAT, "Height"),
203 (FLOAT, "MinDepth"),
204 (FLOAT, "MaxDepth"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100205])
206
José Fonsecaee590be2012-04-16 13:25:06 +0100207D3D11_RESOURCE_DIMENSION = Enum("D3D11_RESOURCE_DIMENSION", [
208 "D3D11_RESOURCE_DIMENSION_UNKNOWN",
209 "D3D11_RESOURCE_DIMENSION_BUFFER",
210 "D3D11_RESOURCE_DIMENSION_TEXTURE1D",
211 "D3D11_RESOURCE_DIMENSION_TEXTURE2D",
212 "D3D11_RESOURCE_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100213])
214
José Fonsecaee590be2012-04-16 13:25:06 +0100215D3D11_SRV_DIMENSION = Enum("D3D11_SRV_DIMENSION", [
216 "D3D11_SRV_DIMENSION_UNKNOWN",
217 "D3D11_SRV_DIMENSION_BUFFER",
218 "D3D11_SRV_DIMENSION_TEXTURE1D",
219 "D3D11_SRV_DIMENSION_TEXTURE1DARRAY",
220 "D3D11_SRV_DIMENSION_TEXTURE2D",
221 "D3D11_SRV_DIMENSION_TEXTURE2DARRAY",
222 "D3D11_SRV_DIMENSION_TEXTURE2DMS",
223 "D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY",
224 "D3D11_SRV_DIMENSION_TEXTURE3D",
225 "D3D11_SRV_DIMENSION_TEXTURECUBE",
226 "D3D11_SRV_DIMENSION_TEXTURECUBEARRAY",
227 "D3D11_SRV_DIMENSION_BUFFEREX",
José Fonseca5b6fb752012-04-14 14:56:45 +0100228])
229
José Fonsecaee590be2012-04-16 13:25:06 +0100230D3D11_DSV_DIMENSION = Enum("D3D11_DSV_DIMENSION", [
231 "D3D11_DSV_DIMENSION_UNKNOWN",
232 "D3D11_DSV_DIMENSION_TEXTURE1D",
233 "D3D11_DSV_DIMENSION_TEXTURE1DARRAY",
234 "D3D11_DSV_DIMENSION_TEXTURE2D",
235 "D3D11_DSV_DIMENSION_TEXTURE2DARRAY",
236 "D3D11_DSV_DIMENSION_TEXTURE2DMS",
237 "D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY",
José Fonseca5b6fb752012-04-14 14:56:45 +0100238])
239
José Fonsecaee590be2012-04-16 13:25:06 +0100240D3D11_RTV_DIMENSION = Enum("D3D11_RTV_DIMENSION", [
241 "D3D11_RTV_DIMENSION_UNKNOWN",
242 "D3D11_RTV_DIMENSION_BUFFER",
243 "D3D11_RTV_DIMENSION_TEXTURE1D",
244 "D3D11_RTV_DIMENSION_TEXTURE1DARRAY",
245 "D3D11_RTV_DIMENSION_TEXTURE2D",
246 "D3D11_RTV_DIMENSION_TEXTURE2DARRAY",
247 "D3D11_RTV_DIMENSION_TEXTURE2DMS",
248 "D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY",
249 "D3D11_RTV_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100250])
251
José Fonsecaee590be2012-04-16 13:25:06 +0100252D3D11_UAV_DIMENSION = Enum("D3D11_UAV_DIMENSION", [
253 "D3D11_UAV_DIMENSION_UNKNOWN",
254 "D3D11_UAV_DIMENSION_BUFFER",
255 "D3D11_UAV_DIMENSION_TEXTURE1D",
256 "D3D11_UAV_DIMENSION_TEXTURE1DARRAY",
257 "D3D11_UAV_DIMENSION_TEXTURE2D",
258 "D3D11_UAV_DIMENSION_TEXTURE2DARRAY",
259 "D3D11_UAV_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100260])
261
José Fonsecaee590be2012-04-16 13:25:06 +0100262D3D11_USAGE = Enum("D3D11_USAGE", [
263 "D3D11_USAGE_DEFAULT",
264 "D3D11_USAGE_IMMUTABLE",
265 "D3D11_USAGE_DYNAMIC",
266 "D3D11_USAGE_STAGING",
José Fonseca5b6fb752012-04-14 14:56:45 +0100267])
268
269D3D11_BIND_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100270 "D3D11_BIND_VERTEX_BUFFER",
271 "D3D11_BIND_INDEX_BUFFER",
272 "D3D11_BIND_CONSTANT_BUFFER",
273 "D3D11_BIND_SHADER_RESOURCE",
274 "D3D11_BIND_STREAM_OUTPUT",
275 "D3D11_BIND_RENDER_TARGET",
276 "D3D11_BIND_DEPTH_STENCIL",
277 "D3D11_BIND_UNORDERED_ACCESS",
José Fonseca5b6fb752012-04-14 14:56:45 +0100278])
279
280D3D11_CPU_ACCESS_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100281 "D3D11_CPU_ACCESS_WRITE",
282 "D3D11_CPU_ACCESS_READ",
José Fonseca5b6fb752012-04-14 14:56:45 +0100283])
284
285D3D11_RESOURCE_MISC_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100286 "D3D11_RESOURCE_MISC_GENERATE_MIPS",
287 "D3D11_RESOURCE_MISC_SHARED",
288 "D3D11_RESOURCE_MISC_TEXTURECUBE",
289 "D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS",
290 "D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS",
291 "D3D11_RESOURCE_MISC_BUFFER_STRUCTURED",
292 "D3D11_RESOURCE_MISC_RESOURCE_CLAMP",
293 "D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX",
294 "D3D11_RESOURCE_MISC_GDI_COMPATIBLE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100295])
296
José Fonsecaee590be2012-04-16 13:25:06 +0100297D3D11_MAP = Enum("D3D11_MAP", [
298 "D3D11_MAP_READ",
299 "D3D11_MAP_WRITE",
300 "D3D11_MAP_READ_WRITE",
301 "D3D11_MAP_WRITE_DISCARD",
302 "D3D11_MAP_WRITE_NO_OVERWRITE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100303])
304
305D3D11_MAP_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100306 "D3D11_MAP_FLAG_DO_NOT_WAIT",
José Fonseca5b6fb752012-04-14 14:56:45 +0100307])
308
309D3D11_RAISE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100310 "D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100311])
312
313D3D11_CLEAR_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100314 "D3D11_CLEAR_DEPTH",
315 "D3D11_CLEAR_STENCIL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100316])
317
José Fonsecaee590be2012-04-16 13:25:06 +0100318D3D11_RECT = Alias("D3D11_RECT", RECT)
319D3D11_BOX = Struct("D3D11_BOX", [
320 (UINT, "left"),
321 (UINT, "top"),
322 (UINT, "front"),
323 (UINT, "right"),
324 (UINT, "bottom"),
325 (UINT, "back"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100326])
327
328ID3D11DeviceChild.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100329 StdMethod(Void, "GetDevice", [Out(Pointer(ObjPointer(ID3D11Device)), "ppDevice")]),
José Fonsecabc10e452012-11-08 10:24:45 +0000330 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
331 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")], sideeffects=False),
332 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100333]
334
José Fonsecaee590be2012-04-16 13:25:06 +0100335D3D11_COMPARISON_FUNC = Enum("D3D11_COMPARISON_FUNC", [
336 "D3D11_COMPARISON_NEVER",
337 "D3D11_COMPARISON_LESS",
338 "D3D11_COMPARISON_EQUAL",
339 "D3D11_COMPARISON_LESS_EQUAL",
340 "D3D11_COMPARISON_GREATER",
341 "D3D11_COMPARISON_NOT_EQUAL",
342 "D3D11_COMPARISON_GREATER_EQUAL",
343 "D3D11_COMPARISON_ALWAYS",
José Fonseca5b6fb752012-04-14 14:56:45 +0100344])
345
José Fonsecaee590be2012-04-16 13:25:06 +0100346D3D11_DEPTH_WRITE_MASK = Enum("D3D11_DEPTH_WRITE_MASK", [
347 "D3D11_DEPTH_WRITE_MASK_ZERO",
348 "D3D11_DEPTH_WRITE_MASK_ALL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100349])
350
José Fonsecaee590be2012-04-16 13:25:06 +0100351D3D11_STENCIL_OP = Enum("D3D11_STENCIL_OP", [
352 "D3D11_STENCIL_OP_KEEP",
353 "D3D11_STENCIL_OP_ZERO",
354 "D3D11_STENCIL_OP_REPLACE",
355 "D3D11_STENCIL_OP_INCR_SAT",
356 "D3D11_STENCIL_OP_DECR_SAT",
357 "D3D11_STENCIL_OP_INVERT",
358 "D3D11_STENCIL_OP_INCR",
359 "D3D11_STENCIL_OP_DECR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100360])
361
José Fonsecaee590be2012-04-16 13:25:06 +0100362D3D11_DEPTH_STENCILOP_DESC = Struct("D3D11_DEPTH_STENCILOP_DESC", [
363 (D3D11_STENCIL_OP, "StencilFailOp"),
364 (D3D11_STENCIL_OP, "StencilDepthFailOp"),
365 (D3D11_STENCIL_OP, "StencilPassOp"),
366 (D3D11_COMPARISON_FUNC, "StencilFunc"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100367])
368
José Fonsecaee590be2012-04-16 13:25:06 +0100369D3D11_DEPTH_STENCIL_DESC = Struct("D3D11_DEPTH_STENCIL_DESC", [
370 (BOOL, "DepthEnable"),
371 (D3D11_DEPTH_WRITE_MASK, "DepthWriteMask"),
372 (D3D11_COMPARISON_FUNC, "DepthFunc"),
373 (BOOL, "StencilEnable"),
374 (UINT8, "StencilReadMask"),
375 (UINT8, "StencilWriteMask"),
376 (D3D11_DEPTH_STENCILOP_DESC, "FrontFace"),
377 (D3D11_DEPTH_STENCILOP_DESC, "BackFace"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100378])
379
380ID3D11DepthStencilState.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100381 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_DEPTH_STENCIL_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100382]
383
José Fonsecaee590be2012-04-16 13:25:06 +0100384D3D11_BLEND = Enum("D3D11_BLEND", [
385 "D3D11_BLEND_ZERO",
386 "D3D11_BLEND_ONE",
387 "D3D11_BLEND_SRC_COLOR",
388 "D3D11_BLEND_INV_SRC_COLOR",
389 "D3D11_BLEND_SRC_ALPHA",
390 "D3D11_BLEND_INV_SRC_ALPHA",
391 "D3D11_BLEND_DEST_ALPHA",
392 "D3D11_BLEND_INV_DEST_ALPHA",
393 "D3D11_BLEND_DEST_COLOR",
394 "D3D11_BLEND_INV_DEST_COLOR",
395 "D3D11_BLEND_SRC_ALPHA_SAT",
396 "D3D11_BLEND_BLEND_FACTOR",
397 "D3D11_BLEND_INV_BLEND_FACTOR",
398 "D3D11_BLEND_SRC1_COLOR",
399 "D3D11_BLEND_INV_SRC1_COLOR",
400 "D3D11_BLEND_SRC1_ALPHA",
401 "D3D11_BLEND_INV_SRC1_ALPHA",
José Fonseca5b6fb752012-04-14 14:56:45 +0100402])
403
José Fonsecaee590be2012-04-16 13:25:06 +0100404D3D11_BLEND_OP = Enum("D3D11_BLEND_OP", [
405 "D3D11_BLEND_OP_ADD",
406 "D3D11_BLEND_OP_SUBTRACT",
407 "D3D11_BLEND_OP_REV_SUBTRACT",
408 "D3D11_BLEND_OP_MIN",
409 "D3D11_BLEND_OP_MAX",
José Fonseca5b6fb752012-04-14 14:56:45 +0100410])
411
José Fonsecaee590be2012-04-16 13:25:06 +0100412D3D11_COLOR_WRITE_ENABLE = Enum("D3D11_COLOR_WRITE_ENABLE", [
413 "D3D11_COLOR_WRITE_ENABLE_ALL",
414 "D3D11_COLOR_WRITE_ENABLE_RED",
415 "D3D11_COLOR_WRITE_ENABLE_GREEN",
416 "D3D11_COLOR_WRITE_ENABLE_BLUE",
417 "D3D11_COLOR_WRITE_ENABLE_ALPHA",
José Fonseca5b6fb752012-04-14 14:56:45 +0100418])
419
José Fonsecaee590be2012-04-16 13:25:06 +0100420D3D11_RENDER_TARGET_BLEND_DESC = Struct("D3D11_RENDER_TARGET_BLEND_DESC", [
421 (BOOL, "BlendEnable"),
422 (D3D11_BLEND, "SrcBlend"),
423 (D3D11_BLEND, "DestBlend"),
424 (D3D11_BLEND_OP, "BlendOp"),
425 (D3D11_BLEND, "SrcBlendAlpha"),
426 (D3D11_BLEND, "DestBlendAlpha"),
427 (D3D11_BLEND_OP, "BlendOpAlpha"),
428 (UINT8, "RenderTargetWriteMask"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100429])
430
José Fonsecaee590be2012-04-16 13:25:06 +0100431D3D11_BLEND_DESC = Struct("D3D11_BLEND_DESC", [
432 (BOOL, "AlphaToCoverageEnable"),
433 (BOOL, "IndependentBlendEnable"),
434 (Array(D3D11_RENDER_TARGET_BLEND_DESC, 8), "RenderTarget"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100435])
436
437ID3D11BlendState.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100438 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_BLEND_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100439]
440
José Fonsecaee590be2012-04-16 13:25:06 +0100441D3D11_RASTERIZER_DESC = Struct("D3D11_RASTERIZER_DESC", [
442 (D3D11_FILL_MODE, "FillMode"),
443 (D3D11_CULL_MODE, "CullMode"),
444 (BOOL, "FrontCounterClockwise"),
445 (INT, "DepthBias"),
446 (FLOAT, "DepthBiasClamp"),
447 (FLOAT, "SlopeScaledDepthBias"),
448 (BOOL, "DepthClipEnable"),
449 (BOOL, "ScissorEnable"),
450 (BOOL, "MultisampleEnable"),
451 (BOOL, "AntialiasedLineEnable"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100452])
453
454ID3D11RasterizerState.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100455 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_RASTERIZER_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100456]
457
José Fonsecaee590be2012-04-16 13:25:06 +0100458D3D11_SUBRESOURCE_DATA = Struct("D3D11_SUBRESOURCE_DATA", [
José Fonseca8f6e0e32012-11-07 19:22:20 +0000459 (Blob(Const(Void), "_calcSubresourceSize(pDesc, {i}, {self}.SysMemPitch, {self}.SysMemSlicePitch)"), "pSysMem"),
José Fonsecaee590be2012-04-16 13:25:06 +0100460 (UINT, "SysMemPitch"),
461 (UINT, "SysMemSlicePitch"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100462])
463
José Fonsecaee590be2012-04-16 13:25:06 +0100464D3D11_MAPPED_SUBRESOURCE = Struct("D3D11_MAPPED_SUBRESOURCE", [
465 (OpaquePointer(Void), "pData"),
466 (UINT, "RowPitch"),
467 (UINT, "DepthPitch"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100468])
469
470ID3D11Resource.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100471 StdMethod(Void, "GetType", [Out(Pointer(D3D11_RESOURCE_DIMENSION), "pResourceDimension")]),
472 StdMethod(Void, "SetEvictionPriority", [(UINT, "EvictionPriority")]),
473 StdMethod(UINT, "GetEvictionPriority", []),
José Fonseca5b6fb752012-04-14 14:56:45 +0100474]
475
José Fonsecaee590be2012-04-16 13:25:06 +0100476D3D11_BUFFER_DESC = Struct("D3D11_BUFFER_DESC", [
477 (UINT, "ByteWidth"),
478 (D3D11_USAGE, "Usage"),
479 (D3D11_BIND_FLAG, "BindFlags"),
480 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
481 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
482 (UINT, "StructureByteStride"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100483])
484
485ID3D11Buffer.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100486 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_BUFFER_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100487]
488
José Fonsecaee590be2012-04-16 13:25:06 +0100489D3D11_TEXTURE1D_DESC = Struct("D3D11_TEXTURE1D_DESC", [
490 (UINT, "Width"),
491 (UINT, "MipLevels"),
492 (UINT, "ArraySize"),
493 (DXGI_FORMAT, "Format"),
494 (D3D11_USAGE, "Usage"),
495 (D3D11_BIND_FLAG, "BindFlags"),
496 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
497 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100498])
499
500ID3D11Texture1D.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100501 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE1D_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100502]
503
José Fonsecaee590be2012-04-16 13:25:06 +0100504D3D11_TEXTURE2D_DESC = Struct("D3D11_TEXTURE2D_DESC", [
505 (UINT, "Width"),
506 (UINT, "Height"),
507 (UINT, "MipLevels"),
508 (UINT, "ArraySize"),
509 (DXGI_FORMAT, "Format"),
510 (DXGI_SAMPLE_DESC, "SampleDesc"),
511 (D3D11_USAGE, "Usage"),
512 (D3D11_BIND_FLAG, "BindFlags"),
513 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
514 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100515])
516
517ID3D11Texture2D.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100518 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE2D_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100519]
520
José Fonsecaee590be2012-04-16 13:25:06 +0100521D3D11_TEXTURE3D_DESC = Struct("D3D11_TEXTURE3D_DESC", [
522 (UINT, "Width"),
523 (UINT, "Height"),
524 (UINT, "Depth"),
525 (UINT, "MipLevels"),
526 (DXGI_FORMAT, "Format"),
527 (D3D11_USAGE, "Usage"),
528 (D3D11_BIND_FLAG, "BindFlags"),
529 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
530 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100531])
532
533ID3D11Texture3D.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100534 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE3D_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100535]
536
José Fonsecaee590be2012-04-16 13:25:06 +0100537D3D11_TEXTURECUBE_FACE = Enum("D3D11_TEXTURECUBE_FACE", [
538 "D3D11_TEXTURECUBE_FACE_POSITIVE_X",
539 "D3D11_TEXTURECUBE_FACE_NEGATIVE_X",
540 "D3D11_TEXTURECUBE_FACE_POSITIVE_Y",
541 "D3D11_TEXTURECUBE_FACE_NEGATIVE_Y",
542 "D3D11_TEXTURECUBE_FACE_POSITIVE_Z",
543 "D3D11_TEXTURECUBE_FACE_NEGATIVE_Z",
José Fonseca5b6fb752012-04-14 14:56:45 +0100544])
545
546ID3D11View.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100547 StdMethod(Void, "GetResource", [Out(Pointer(ObjPointer(ID3D11Resource)), "ppResource")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100548]
549
José Fonsecaee590be2012-04-16 13:25:06 +0100550D3D11_BUFFER_SRV = Struct("D3D11_BUFFER_SRV", [
551 (Union(None, [(UINT, "FirstElement"), (UINT, "ElementOffset")]), None),
552 (Union(None, [(UINT, "NumElements"), (UINT, "ElementWidth")]), None),
José Fonseca5b6fb752012-04-14 14:56:45 +0100553])
554
555D3D11_BUFFEREX_SRV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100556 "D3D11_BUFFEREX_SRV_FLAG_RAW",
José Fonseca5b6fb752012-04-14 14:56:45 +0100557])
558
José Fonsecaee590be2012-04-16 13:25:06 +0100559D3D11_BUFFEREX_SRV = Struct("D3D11_BUFFEREX_SRV", [
560 (UINT, "FirstElement"),
561 (UINT, "NumElements"),
562 (D3D11_BUFFEREX_SRV_FLAG, "Flags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100563])
564
José Fonsecaee590be2012-04-16 13:25:06 +0100565D3D11_TEX1D_SRV = Struct("D3D11_TEX1D_SRV", [
566 (UINT, "MostDetailedMip"),
567 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100568])
569
José Fonsecaee590be2012-04-16 13:25:06 +0100570D3D11_TEX1D_ARRAY_SRV = Struct("D3D11_TEX1D_ARRAY_SRV", [
571 (UINT, "MostDetailedMip"),
572 (UINT, "MipLevels"),
573 (UINT, "FirstArraySlice"),
574 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100575])
576
José Fonsecaee590be2012-04-16 13:25:06 +0100577D3D11_TEX2D_SRV = Struct("D3D11_TEX2D_SRV", [
578 (UINT, "MostDetailedMip"),
579 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100580])
581
José Fonsecaee590be2012-04-16 13:25:06 +0100582D3D11_TEX2D_ARRAY_SRV = Struct("D3D11_TEX2D_ARRAY_SRV", [
583 (UINT, "MostDetailedMip"),
584 (UINT, "MipLevels"),
585 (UINT, "FirstArraySlice"),
586 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100587])
588
José Fonsecaee590be2012-04-16 13:25:06 +0100589D3D11_TEX3D_SRV = Struct("D3D11_TEX3D_SRV", [
590 (UINT, "MostDetailedMip"),
591 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100592])
593
José Fonsecaee590be2012-04-16 13:25:06 +0100594D3D11_TEXCUBE_SRV = Struct("D3D11_TEXCUBE_SRV", [
595 (UINT, "MostDetailedMip"),
596 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100597])
598
José Fonsecaee590be2012-04-16 13:25:06 +0100599D3D11_TEXCUBE_ARRAY_SRV = Struct("D3D11_TEXCUBE_ARRAY_SRV", [
600 (UINT, "MostDetailedMip"),
601 (UINT, "MipLevels"),
602 (UINT, "First2DArrayFace"),
603 (UINT, "NumCubes"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100604])
605
José Fonsecaee590be2012-04-16 13:25:06 +0100606D3D11_TEX2DMS_SRV = Struct("D3D11_TEX2DMS_SRV", [
607 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100608])
609
José Fonsecaee590be2012-04-16 13:25:06 +0100610D3D11_TEX2DMS_ARRAY_SRV = Struct("D3D11_TEX2DMS_ARRAY_SRV", [
611 (UINT, "FirstArraySlice"),
612 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100613])
614
José Fonsecaee590be2012-04-16 13:25:06 +0100615D3D11_SHADER_RESOURCE_VIEW_DESC = Struct("D3D11_SHADER_RESOURCE_VIEW_DESC", [
616 (DXGI_FORMAT, "Format"),
617 (D3D11_SRV_DIMENSION, "ViewDimension"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100618 (Union(None, [
José Fonsecaee590be2012-04-16 13:25:06 +0100619 (D3D11_BUFFER_SRV, "Buffer"),
620 (D3D11_TEX1D_SRV, "Texture1D"),
621 (D3D11_TEX1D_ARRAY_SRV, "Texture1DArray"),
622 (D3D11_TEX2D_SRV, "Texture2D"),
623 (D3D11_TEX2D_ARRAY_SRV, "Texture2DArray"),
624 (D3D11_TEX2DMS_SRV, "Texture2DMS"),
625 (D3D11_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
626 (D3D11_TEX3D_SRV, "Texture3D"),
627 (D3D11_TEXCUBE_SRV, "TextureCube"),
628 (D3D11_TEXCUBE_ARRAY_SRV, "TextureCubeArray"),
629 (D3D11_BUFFEREX_SRV, "BufferEx"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100630 ]), None),
631])
632
633ID3D11ShaderResourceView.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100634 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100635]
636
José Fonsecaee590be2012-04-16 13:25:06 +0100637D3D11_BUFFER_RTV = Struct("D3D11_BUFFER_RTV", [
638 (Union(None, [(UINT, "FirstElement"), (UINT, "ElementOffset")]), None),
639 (Union(None, [(UINT, "NumElements"), (UINT, "ElementWidth")]), None),
José Fonseca5b6fb752012-04-14 14:56:45 +0100640])
641
José Fonsecaee590be2012-04-16 13:25:06 +0100642D3D11_TEX1D_RTV = Struct("D3D11_TEX1D_RTV", [
643 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100644])
645
José Fonsecaee590be2012-04-16 13:25:06 +0100646D3D11_TEX1D_ARRAY_RTV = Struct("D3D11_TEX1D_ARRAY_RTV", [
647 (UINT, "MipSlice"),
648 (UINT, "FirstArraySlice"),
649 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100650])
651
José Fonsecaee590be2012-04-16 13:25:06 +0100652D3D11_TEX2D_RTV = Struct("D3D11_TEX2D_RTV", [
653 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100654])
655
José Fonsecaee590be2012-04-16 13:25:06 +0100656D3D11_TEX2DMS_RTV = Struct("D3D11_TEX2DMS_RTV", [
657 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100658])
659
José Fonsecaee590be2012-04-16 13:25:06 +0100660D3D11_TEX2D_ARRAY_RTV = Struct("D3D11_TEX2D_ARRAY_RTV", [
661 (UINT, "MipSlice"),
662 (UINT, "FirstArraySlice"),
663 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100664])
665
José Fonsecaee590be2012-04-16 13:25:06 +0100666D3D11_TEX2DMS_ARRAY_RTV = Struct("D3D11_TEX2DMS_ARRAY_RTV", [
667 (UINT, "FirstArraySlice"),
668 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100669])
670
José Fonsecaee590be2012-04-16 13:25:06 +0100671D3D11_TEX3D_RTV = Struct("D3D11_TEX3D_RTV", [
672 (UINT, "MipSlice"),
673 (UINT, "FirstWSlice"),
674 (UINT, "WSize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100675])
676
José Fonsecaee590be2012-04-16 13:25:06 +0100677D3D11_RENDER_TARGET_VIEW_DESC = Struct("D3D11_RENDER_TARGET_VIEW_DESC", [
678 (DXGI_FORMAT, "Format"),
679 (D3D11_RTV_DIMENSION, "ViewDimension"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100680 (Union(None, [
José Fonsecaee590be2012-04-16 13:25:06 +0100681 (D3D11_BUFFER_RTV, "Buffer"),
682 (D3D11_TEX1D_RTV, "Texture1D"),
683 (D3D11_TEX1D_ARRAY_RTV, "Texture1DArray"),
684 (D3D11_TEX2D_RTV, "Texture2D"),
685 (D3D11_TEX2D_ARRAY_RTV, "Texture2DArray"),
686 (D3D11_TEX2DMS_RTV, "Texture2DMS"),
687 (D3D11_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
688 (D3D11_TEX3D_RTV, "Texture3D"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100689 ]), None),
690])
691
692ID3D11RenderTargetView.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100693 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100694]
695
José Fonsecaee590be2012-04-16 13:25:06 +0100696D3D11_TEX1D_DSV = Struct("D3D11_TEX1D_DSV", [
697 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100698])
699
José Fonsecaee590be2012-04-16 13:25:06 +0100700D3D11_TEX1D_ARRAY_DSV = Struct("D3D11_TEX1D_ARRAY_DSV", [
701 (UINT, "MipSlice"),
702 (UINT, "FirstArraySlice"),
703 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100704])
705
José Fonsecaee590be2012-04-16 13:25:06 +0100706D3D11_TEX2D_DSV = Struct("D3D11_TEX2D_DSV", [
707 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100708])
709
José Fonsecaee590be2012-04-16 13:25:06 +0100710D3D11_TEX2D_ARRAY_DSV = Struct("D3D11_TEX2D_ARRAY_DSV", [
711 (UINT, "MipSlice"),
712 (UINT, "FirstArraySlice"),
713 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100714])
715
José Fonsecaee590be2012-04-16 13:25:06 +0100716D3D11_TEX2DMS_DSV = Struct("D3D11_TEX2DMS_DSV", [
717 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100718])
719
José Fonsecaee590be2012-04-16 13:25:06 +0100720D3D11_TEX2DMS_ARRAY_DSV = Struct("D3D11_TEX2DMS_ARRAY_DSV", [
721 (UINT, "FirstArraySlice"),
722 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100723])
724
725D3D11_DSV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100726 "D3D11_DSV_READ_ONLY_DEPTH",
727 "D3D11_DSV_READ_ONLY_STENCIL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100728])
729
José Fonsecaee590be2012-04-16 13:25:06 +0100730D3D11_DEPTH_STENCIL_VIEW_DESC = Struct("D3D11_DEPTH_STENCIL_VIEW_DESC", [
731 (DXGI_FORMAT, "Format"),
732 (D3D11_DSV_DIMENSION, "ViewDimension"),
733 (D3D11_DSV_FLAG, "Flags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100734 (Union(None, [
José Fonsecaee590be2012-04-16 13:25:06 +0100735 (D3D11_TEX1D_DSV, "Texture1D"),
736 (D3D11_TEX1D_ARRAY_DSV, "Texture1DArray"),
737 (D3D11_TEX2D_DSV, "Texture2D"),
738 (D3D11_TEX2D_ARRAY_DSV, "Texture2DArray"),
739 (D3D11_TEX2DMS_DSV, "Texture2DMS"),
740 (D3D11_TEX2DMS_ARRAY_DSV, "Texture2DMSArray"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100741 ]), None),
742])
743
744ID3D11DepthStencilView.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100745 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_DEPTH_STENCIL_VIEW_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100746]
747
748D3D11_BUFFER_UAV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100749 "D3D11_BUFFER_UAV_FLAG_RAW",
750 "D3D11_BUFFER_UAV_FLAG_APPEND",
751 "D3D11_BUFFER_UAV_FLAG_COUNTER",
José Fonseca5b6fb752012-04-14 14:56:45 +0100752])
753
José Fonsecaee590be2012-04-16 13:25:06 +0100754D3D11_BUFFER_UAV = Struct("D3D11_BUFFER_UAV", [
755 (UINT, "FirstElement"),
756 (UINT, "NumElements"),
757 (D3D11_BUFFER_UAV_FLAG, "Flags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100758])
759
José Fonsecaee590be2012-04-16 13:25:06 +0100760D3D11_TEX1D_UAV = Struct("D3D11_TEX1D_UAV", [
761 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100762])
763
José Fonsecaee590be2012-04-16 13:25:06 +0100764D3D11_TEX1D_ARRAY_UAV = Struct("D3D11_TEX1D_ARRAY_UAV", [
765 (UINT, "MipSlice"),
766 (UINT, "FirstArraySlice"),
767 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100768])
769
José Fonsecaee590be2012-04-16 13:25:06 +0100770D3D11_TEX2D_UAV = Struct("D3D11_TEX2D_UAV", [
771 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100772])
773
José Fonsecaee590be2012-04-16 13:25:06 +0100774D3D11_TEX2D_ARRAY_UAV = Struct("D3D11_TEX2D_ARRAY_UAV", [
775 (UINT, "MipSlice"),
776 (UINT, "FirstArraySlice"),
777 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100778])
779
José Fonsecaee590be2012-04-16 13:25:06 +0100780D3D11_TEX3D_UAV = Struct("D3D11_TEX3D_UAV", [
781 (UINT, "MipSlice"),
782 (UINT, "FirstWSlice"),
783 (UINT, "WSize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100784])
785
José Fonsecaee590be2012-04-16 13:25:06 +0100786D3D11_UNORDERED_ACCESS_VIEW_DESC = Struct("D3D11_UNORDERED_ACCESS_VIEW_DESC", [
787 (DXGI_FORMAT, "Format"),
788 (D3D11_UAV_DIMENSION, "ViewDimension"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100789 (Union(None, [
José Fonsecaee590be2012-04-16 13:25:06 +0100790 (D3D11_BUFFER_UAV, "Buffer"),
791 (D3D11_TEX1D_UAV, "Texture1D"),
792 (D3D11_TEX1D_ARRAY_UAV, "Texture1DArray"),
793 (D3D11_TEX2D_UAV, "Texture2D"),
794 (D3D11_TEX2D_ARRAY_UAV, "Texture2DArray"),
795 (D3D11_TEX3D_UAV, "Texture3D"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100796 ]), None),
797])
798
799ID3D11UnorderedAccessView.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100800 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100801]
802
José Fonsecaee590be2012-04-16 13:25:06 +0100803D3D11_FILTER = Enum("D3D11_FILTER", [
804 "D3D11_FILTER_MIN_MAG_MIP_POINT",
805 "D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR",
806 "D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT",
807 "D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR",
808 "D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT",
809 "D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
810 "D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT",
811 "D3D11_FILTER_MIN_MAG_MIP_LINEAR",
812 "D3D11_FILTER_ANISOTROPIC",
813 "D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT",
814 "D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR",
815 "D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT",
816 "D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR",
817 "D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT",
818 "D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
819 "D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT",
820 "D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR",
821 "D3D11_FILTER_COMPARISON_ANISOTROPIC",
José Fonseca5b6fb752012-04-14 14:56:45 +0100822])
823
José Fonsecaee590be2012-04-16 13:25:06 +0100824D3D11_FILTER_TYPE = Enum("D3D11_FILTER_TYPE", [
825 "D3D11_FILTER_TYPE_POINT",
826 "D3D11_FILTER_TYPE_LINEAR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100827])
828
José Fonsecaee590be2012-04-16 13:25:06 +0100829D3D11_TEXTURE_ADDRESS_MODE = Enum("D3D11_TEXTURE_ADDRESS_MODE", [
830 "D3D11_TEXTURE_ADDRESS_WRAP",
831 "D3D11_TEXTURE_ADDRESS_MIRROR",
832 "D3D11_TEXTURE_ADDRESS_CLAMP",
833 "D3D11_TEXTURE_ADDRESS_BORDER",
834 "D3D11_TEXTURE_ADDRESS_MIRROR_ONCE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100835])
836
José Fonsecaee590be2012-04-16 13:25:06 +0100837D3D11_SAMPLER_DESC = Struct("D3D11_SAMPLER_DESC", [
838 (D3D11_FILTER, "Filter"),
839 (D3D11_TEXTURE_ADDRESS_MODE, "AddressU"),
840 (D3D11_TEXTURE_ADDRESS_MODE, "AddressV"),
841 (D3D11_TEXTURE_ADDRESS_MODE, "AddressW"),
842 (FLOAT, "MipLODBias"),
843 (UINT, "MaxAnisotropy"),
844 (D3D11_COMPARISON_FUNC, "ComparisonFunc"),
845 (Array(FLOAT, 4), "BorderColor"),
846 (FLOAT, "MinLOD"),
847 (FLOAT, "MaxLOD"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100848])
849
850ID3D11SamplerState.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100851 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_SAMPLER_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100852]
853
José Fonsecaee590be2012-04-16 13:25:06 +0100854D3D11_FORMAT_SUPPORT = Flags(UINT, [
855 "D3D11_FORMAT_SUPPORT_BUFFER",
856 "D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER",
857 "D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER",
858 "D3D11_FORMAT_SUPPORT_SO_BUFFER",
859 "D3D11_FORMAT_SUPPORT_TEXTURE1D",
860 "D3D11_FORMAT_SUPPORT_TEXTURE2D",
861 "D3D11_FORMAT_SUPPORT_TEXTURE3D",
862 "D3D11_FORMAT_SUPPORT_TEXTURECUBE",
863 "D3D11_FORMAT_SUPPORT_SHADER_LOAD",
864 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE",
865 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON",
866 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT",
867 "D3D11_FORMAT_SUPPORT_MIP",
868 "D3D11_FORMAT_SUPPORT_MIP_AUTOGEN",
869 "D3D11_FORMAT_SUPPORT_RENDER_TARGET",
870 "D3D11_FORMAT_SUPPORT_BLENDABLE",
871 "D3D11_FORMAT_SUPPORT_DEPTH_STENCIL",
872 "D3D11_FORMAT_SUPPORT_CPU_LOCKABLE",
873 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE",
874 "D3D11_FORMAT_SUPPORT_DISPLAY",
875 "D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT",
876 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET",
877 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD",
878 "D3D11_FORMAT_SUPPORT_SHADER_GATHER",
879 "D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST",
880 "D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW",
881 "D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON",
José Fonseca5b6fb752012-04-14 14:56:45 +0100882])
883
José Fonsecaee590be2012-04-16 13:25:06 +0100884D3D11_FORMAT_SUPPORT2 = Enum("D3D11_FORMAT_SUPPORT2", [
885 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD",
886 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS",
887 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE",
888 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE",
889 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX",
890 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX",
891 "D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD",
892 "D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100893])
894
895ID3D11Asynchronous.methods += [
José Fonsecabc10e452012-11-08 10:24:45 +0000896 StdMethod(UINT, "GetDataSize", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100897]
898
899D3D11_ASYNC_GETDATA_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100900 "D3D11_ASYNC_GETDATA_DONOTFLUSH",
José Fonseca5b6fb752012-04-14 14:56:45 +0100901])
902
José Fonsecaee590be2012-04-16 13:25:06 +0100903D3D11_QUERY = Enum("D3D11_QUERY", [
904 "D3D11_QUERY_EVENT",
905 "D3D11_QUERY_OCCLUSION",
906 "D3D11_QUERY_TIMESTAMP",
907 "D3D11_QUERY_TIMESTAMP_DISJOINT",
908 "D3D11_QUERY_PIPELINE_STATISTICS",
909 "D3D11_QUERY_OCCLUSION_PREDICATE",
910 "D3D11_QUERY_SO_STATISTICS",
911 "D3D11_QUERY_SO_OVERFLOW_PREDICATE",
912 "D3D11_QUERY_SO_STATISTICS_STREAM0",
913 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0",
914 "D3D11_QUERY_SO_STATISTICS_STREAM1",
915 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1",
916 "D3D11_QUERY_SO_STATISTICS_STREAM2",
917 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2",
918 "D3D11_QUERY_SO_STATISTICS_STREAM3",
919 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3",
José Fonseca5b6fb752012-04-14 14:56:45 +0100920])
921
922D3D11_QUERY_MISC_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100923 "D3D11_QUERY_MISC_PREDICATEHINT",
José Fonseca5b6fb752012-04-14 14:56:45 +0100924])
925
José Fonsecaee590be2012-04-16 13:25:06 +0100926D3D11_QUERY_DESC = Struct("D3D11_QUERY_DESC", [
927 (D3D11_QUERY, "Query"),
928 (D3D11_QUERY_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100929])
930
931ID3D11Query.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100932 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_QUERY_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100933]
934
José Fonsecaee590be2012-04-16 13:25:06 +0100935D3D11_QUERY_DATA_TIMESTAMP_DISJOINT = Struct("D3D11_QUERY_DATA_TIMESTAMP_DISJOINT", [
936 (UINT64, "Frequency"),
937 (BOOL, "Disjoint"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100938])
939
José Fonsecaee590be2012-04-16 13:25:06 +0100940D3D11_QUERY_DATA_PIPELINE_STATISTICS = Struct("D3D11_QUERY_DATA_PIPELINE_STATISTICS", [
941 (UINT64, "IAVertices"),
942 (UINT64, "IAPrimitives"),
943 (UINT64, "VSInvocations"),
944 (UINT64, "GSInvocations"),
945 (UINT64, "GSPrimitives"),
946 (UINT64, "CInvocations"),
947 (UINT64, "CPrimitives"),
948 (UINT64, "PSInvocations"),
949 (UINT64, "HSInvocations"),
950 (UINT64, "DSInvocations"),
951 (UINT64, "CSInvocations"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100952])
953
José Fonsecaee590be2012-04-16 13:25:06 +0100954D3D11_QUERY_DATA_SO_STATISTICS = Struct("D3D11_QUERY_DATA_SO_STATISTICS", [
955 (UINT64, "NumPrimitivesWritten"),
956 (UINT64, "PrimitivesStorageNeeded"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100957])
958
José Fonsecaee590be2012-04-16 13:25:06 +0100959D3D11_COUNTER = Enum("D3D11_COUNTER", [
960 "D3D11_COUNTER_DEVICE_DEPENDENT_0",
José Fonseca5b6fb752012-04-14 14:56:45 +0100961])
962
José Fonsecaee590be2012-04-16 13:25:06 +0100963D3D11_COUNTER_TYPE = Enum("D3D11_COUNTER_TYPE", [
964 "D3D11_COUNTER_TYPE_FLOAT32",
965 "D3D11_COUNTER_TYPE_UINT16",
966 "D3D11_COUNTER_TYPE_UINT32",
967 "D3D11_COUNTER_TYPE_UINT64",
José Fonseca5b6fb752012-04-14 14:56:45 +0100968])
969
José Fonsecaee590be2012-04-16 13:25:06 +0100970D3D11_COUNTER_DESC = Struct("D3D11_COUNTER_DESC", [
971 (D3D11_COUNTER, "Counter"),
972 (UINT, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100973])
974
José Fonsecaee590be2012-04-16 13:25:06 +0100975D3D11_COUNTER_INFO = Struct("D3D11_COUNTER_INFO", [
976 (D3D11_COUNTER, "LastDeviceDependentCounter"),
977 (UINT, "NumSimultaneousCounters"),
978 (UINT8, "NumDetectableParallelUnits"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100979])
980
981ID3D11Counter.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100982 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_COUNTER_DESC), "pDesc")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100983]
984
José Fonsecaee590be2012-04-16 13:25:06 +0100985D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS = Enum("D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS", [
986 "D3D11_STANDARD_MULTISAMPLE_PATTERN",
987 "D3D11_CENTER_MULTISAMPLE_PATTERN",
José Fonseca5b6fb752012-04-14 14:56:45 +0100988])
989
José Fonsecaee590be2012-04-16 13:25:06 +0100990D3D11_DEVICE_CONTEXT_TYPE = Enum("D3D11_DEVICE_CONTEXT_TYPE", [
991 "D3D11_DEVICE_CONTEXT_IMMEDIATE",
992 "D3D11_DEVICE_CONTEXT_DEFERRED",
José Fonseca5b6fb752012-04-14 14:56:45 +0100993])
994
José Fonsecaee590be2012-04-16 13:25:06 +0100995D3D11_CLASS_INSTANCE_DESC = Struct("D3D11_CLASS_INSTANCE_DESC", [
996 (UINT, "InstanceId"),
997 (UINT, "InstanceIndex"),
998 (UINT, "TypeId"),
999 (UINT, "ConstantBuffer"),
1000 (UINT, "BaseConstantBufferOffset"),
1001 (UINT, "BaseTexture"),
1002 (UINT, "BaseSampler"),
1003 (BOOL, "Created"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001004])
1005
1006
1007ID3D11ClassInstance.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001008 StdMethod(Void, "GetClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001009 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), "pDesc")], sideeffects=False),
1010 StdMethod(Void, "GetInstanceName", [Out(LPSTR, "pInstanceName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
1011 StdMethod(Void, "GetTypeName", [Out(LPSTR, "pTypeName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001012]
1013
1014ID3D11ClassLinkage.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001015 StdMethod(HRESULT, "GetClassInstance", [(LPCSTR, "pClassInstanceName"), (UINT, "InstanceIndex"), Out(Pointer(ObjPointer(ID3D11ClassInstance)), "ppInstance")]),
1016 StdMethod(HRESULT, "CreateClassInstance", [(LPCSTR, "pClassTypeName"), (UINT, "ConstantBufferOffset"), (UINT, "ConstantVectorOffset"), (UINT, "TextureOffset"), (UINT, "SamplerOffset"), Out(Pointer(ObjPointer(ID3D11ClassInstance)), "ppInstance")]),
José Fonseca5b6fb752012-04-14 14:56:45 +01001017]
1018
1019ID3D11CommandList.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001020 StdMethod(UINT, "GetContextFlags", []),
José Fonseca5b6fb752012-04-14 14:56:45 +01001021]
1022
José Fonsecaee590be2012-04-16 13:25:06 +01001023D3D11_FEATURE_DATA_THREADING = Struct("D3D11_FEATURE_DATA_THREADING", [
1024 (BOOL, "DriverConcurrentCreates"),
1025 (BOOL, "DriverCommandLists"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001026])
1027
José Fonsecaee590be2012-04-16 13:25:06 +01001028D3D11_FEATURE_DATA_DOUBLES = Struct("D3D11_FEATURE_DATA_DOUBLES", [
1029 (BOOL, "DoublePrecisionFloatShaderOps"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001030])
1031
José Fonsecaee590be2012-04-16 13:25:06 +01001032D3D11_FEATURE_DATA_FORMAT_SUPPORT = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT", [
1033 (DXGI_FORMAT, "InFormat"),
1034 (D3D11_FORMAT_SUPPORT, "OutFormatSupport"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001035])
1036
José Fonsecaee590be2012-04-16 13:25:06 +01001037D3D11_FEATURE_DATA_FORMAT_SUPPORT2 = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT2", [
1038 (DXGI_FORMAT, "InFormat"),
1039 (D3D11_FORMAT_SUPPORT2, "OutFormatSupport2"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001040])
1041
José Fonsecaee590be2012-04-16 13:25:06 +01001042D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS", [
1043 (BOOL, "ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001044])
1045
José Fonsecab95e3722012-04-16 14:01:15 +01001046D3D11_FEATURE, D3D11_FEATURE_DATA = EnumPolymorphic("D3D11_FEATURE", "Feature", [
1047 ("D3D11_FEATURE_THREADING", Pointer(D3D11_FEATURE_DATA_THREADING)),
1048 ("D3D11_FEATURE_DOUBLES", Pointer(D3D11_FEATURE_DATA_DOUBLES)),
1049 ("D3D11_FEATURE_FORMAT_SUPPORT", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT)),
1050 ("D3D11_FEATURE_FORMAT_SUPPORT2", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT2)),
1051 ("D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS)),
1052], Blob(Void, "FeatureSupportDataSize"), False)
1053
José Fonseca5b6fb752012-04-14 14:56:45 +01001054ID3D11DeviceContext.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001055 StdMethod(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1056 StdMethod(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1057 StdMethod(Void, "PSSetShader", [(ObjPointer(ID3D11PixelShader), "pPixelShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1058 StdMethod(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1059 StdMethod(Void, "VSSetShader", [(ObjPointer(ID3D11VertexShader), "pVertexShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1060 StdMethod(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
1061 StdMethod(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
1062 StdMethod(HRESULT, "Map", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource"), (D3D11_MAP, "MapType"), (D3D11_MAP_FLAG, "MapFlags"), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), "pMappedResource")]),
1063 StdMethod(Void, "Unmap", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource")]),
1064 StdMethod(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1065 StdMethod(Void, "IASetInputLayout", [(ObjPointer(ID3D11InputLayout), "pInputLayout")]),
1066 StdMethod(Void, "IASetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppVertexBuffers"), (Pointer(Const(UINT)), "pStrides"), (Pointer(Const(UINT)), "pOffsets")]),
1067 StdMethod(Void, "IASetIndexBuffer", [(ObjPointer(ID3D11Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
1068 StdMethod(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
1069 StdMethod(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
1070 StdMethod(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1071 StdMethod(Void, "GSSetShader", [(ObjPointer(ID3D11GeometryShader), "pShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1072 StdMethod(Void, "IASetPrimitiveTopology", [(D3D11_PRIMITIVE_TOPOLOGY, "Topology")]),
1073 StdMethod(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1074 StdMethod(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1075 StdMethod(Void, "Begin", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
1076 StdMethod(Void, "End", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001077 StdMethod(HRESULT, "GetData", [(ObjPointer(ID3D11Asynchronous), "pAsync"), Out(OpaqueBlob(Void, "DataSize"), "pData"), (UINT, "DataSize"), (D3D11_ASYNC_GETDATA_FLAG, "GetDataFlags")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001078 StdMethod(Void, "SetPredication", [(ObjPointer(ID3D11Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
1079 StdMethod(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1080 StdMethod(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1081 StdMethod(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView")]),
1082 StdMethod(Void, "OMSetRenderTargetsAndUnorderedAccessViews", [(UINT, "NumRTVs"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumRTVs"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (UINT, "UAVStartSlot"), (UINT, "NumUAVs"), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), "NumUAVs"), "ppUnorderedAccessViews"), (Pointer(Const(UINT)), "pUAVInitialCounts")]),
1083 StdMethod(Void, "OMSetBlendState", [(ObjPointer(ID3D11BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (UINT, "SampleMask")]),
1084 StdMethod(Void, "OMSetDepthStencilState", [(ObjPointer(ID3D11DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
1085 StdMethod(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppSOTargets"), (Pointer(Const(UINT)), "pOffsets")]),
1086 StdMethod(Void, "DrawAuto", []),
1087 StdMethod(Void, "DrawIndexedInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1088 StdMethod(Void, "DrawInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1089 StdMethod(Void, "Dispatch", [(UINT, "ThreadGroupCountX"), (UINT, "ThreadGroupCountY"), (UINT, "ThreadGroupCountZ")]),
1090 StdMethod(Void, "DispatchIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1091 StdMethod(Void, "RSSetState", [(ObjPointer(ID3D11RasterizerState), "pRasterizerState")]),
1092 StdMethod(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D11_VIEWPORT), "NumViewports"), "pViewports")]),
1093 StdMethod(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D11_RECT), "NumRects"), "pRects")]),
1094 StdMethod(Void, "CopySubresourceRegion", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")]),
1095 StdMethod(Void, "CopyResource", [(ObjPointer(ID3D11Resource), "pDstResource"), (ObjPointer(ID3D11Resource), "pSrcResource")]),
José Fonsecacc9abd72012-11-08 10:47:18 +00001096 StdMethod(Void, "UpdateSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D11_BOX)), "pDstBox"), (Blob(Const(Void), "_calcSubresourceSize(pDstResource, DstSubresource, pDstBox, SrcRowPitch, SrcDepthPitch)"), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001097 StdMethod(Void, "CopyStructureCount", [(ObjPointer(ID3D11Buffer), "pDstBuffer"), (UINT, "DstAlignedByteOffset"), (ObjPointer(ID3D11UnorderedAccessView), "pSrcView")]),
1098 StdMethod(Void, "ClearRenderTargetView", [(ObjPointer(ID3D11RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
1099 StdMethod(Void, "ClearUnorderedAccessViewUint", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(UINT), 4), "Values")]),
1100 StdMethod(Void, "ClearUnorderedAccessViewFloat", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(FLOAT), 4), "Values")]),
1101 StdMethod(Void, "ClearDepthStencilView", [(ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (D3D11_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
1102 StdMethod(Void, "GenerateMips", [(ObjPointer(ID3D11ShaderResourceView), "pShaderResourceView")]),
1103 StdMethod(Void, "SetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource"), (FLOAT, "MinLOD")]),
1104 StdMethod(FLOAT, "GetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource")]),
1105 StdMethod(Void, "ResolveSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
1106 StdMethod(Void, "ExecuteCommandList", [(ObjPointer(ID3D11CommandList), "pCommandList"), (BOOL, "RestoreContextState")]),
1107 StdMethod(Void, "HSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1108 StdMethod(Void, "HSSetShader", [(ObjPointer(ID3D11HullShader), "pHullShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1109 StdMethod(Void, "HSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1110 StdMethod(Void, "HSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1111 StdMethod(Void, "DSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1112 StdMethod(Void, "DSSetShader", [(ObjPointer(ID3D11DomainShader), "pDomainShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1113 StdMethod(Void, "DSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1114 StdMethod(Void, "DSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1115 StdMethod(Void, "CSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1116 StdMethod(Void, "CSSetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), "NumUAVs"), "ppUnorderedAccessViews"), (Pointer(Const(UINT)), "pUAVInitialCounts")]),
1117 StdMethod(Void, "CSSetShader", [(ObjPointer(ID3D11ComputeShader), "pComputeShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1118 StdMethod(Void, "CSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1119 StdMethod(Void, "CSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1120 StdMethod(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1121 StdMethod(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1122 StdMethod(Void, "PSGetShader", [Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1123 StdMethod(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1124 StdMethod(Void, "VSGetShader", [Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1125 StdMethod(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1126 StdMethod(Void, "IAGetInputLayout", [Out(Pointer(ObjPointer(ID3D11InputLayout)), "ppInputLayout")]),
1127 StdMethod(Void, "IAGetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppVertexBuffers"), Out(Pointer(UINT), "pStrides"), Out(Pointer(UINT), "pOffsets")]),
1128 StdMethod(Void, "IAGetIndexBuffer", [Out(Pointer(ObjPointer(ID3D11Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
1129 StdMethod(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1130 StdMethod(Void, "GSGetShader", [Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1131 StdMethod(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), "pTopology")]),
1132 StdMethod(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1133 StdMethod(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1134 StdMethod(Void, "GetPredication", [Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
1135 StdMethod(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1136 StdMethod(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1137 StdMethod(Void, "OMGetRenderTargets", [(UINT, "NumViews"), (Array(ObjPointer(ID3D11RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1138 StdMethod(Void, "OMGetRenderTargetsAndUnorderedAccessViews", [(UINT, "NumRTVs"), (Array(ObjPointer(ID3D11RenderTargetView), "NumRTVs"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView"), (UINT, "UAVStartSlot"), (UINT, "NumUAVs"), (Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
1139 StdMethod(Void, "OMGetBlendState", [Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(UINT), "pSampleMask")]),
1140 StdMethod(Void, "OMGetDepthStencilState", [Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
1141 StdMethod(Void, "SOGetTargets", [(UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppSOTargets")]),
1142 StdMethod(Void, "RSGetState", [Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
1143 StdMethod(Void, "RSGetViewports", [Out(Pointer(UINT), "pNumViewports"), Out(Array(D3D11_VIEWPORT, "*pNumViewports"), "pViewports")]),
1144 StdMethod(Void, "RSGetScissorRects", [Out(Pointer(UINT), "pNumRects"), Out(Array(D3D11_RECT, "*pNumRects"), "pRects")]),
1145 StdMethod(Void, "HSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1146 StdMethod(Void, "HSGetShader", [Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1147 StdMethod(Void, "HSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1148 StdMethod(Void, "HSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1149 StdMethod(Void, "DSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1150 StdMethod(Void, "DSGetShader", [Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1151 StdMethod(Void, "DSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1152 StdMethod(Void, "DSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1153 StdMethod(Void, "CSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1154 StdMethod(Void, "CSGetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), (Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
1155 StdMethod(Void, "CSGetShader", [Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), Out(Pointer(UINT), "pNumClassInstances")]),
1156 StdMethod(Void, "CSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1157 StdMethod(Void, "CSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1158 StdMethod(Void, "ClearState", []),
1159 StdMethod(Void, "Flush", []),
1160 StdMethod(D3D11_DEVICE_CONTEXT_TYPE, "GetType", []),
1161 StdMethod(UINT, "GetContextFlags", []),
1162 StdMethod(HRESULT, "FinishCommandList", [(BOOL, "RestoreDeferredContextState"), Out(Pointer(ObjPointer(ID3D11CommandList)), "ppCommandList")]),
José Fonseca5b6fb752012-04-14 14:56:45 +01001163]
1164
1165D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001166 "D3D11_CREATE_DEVICE_SINGLETHREADED",
1167 "D3D11_CREATE_DEVICE_DEBUG",
1168 "D3D11_CREATE_DEVICE_SWITCH_TO_REF",
1169 "D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS",
1170 "D3D11_CREATE_DEVICE_BGRA_SUPPORT",
José Fonseca5b6fb752012-04-14 14:56:45 +01001171])
1172
1173ID3D11Device.methods += [
José Fonseca8f6e0e32012-11-07 19:22:20 +00001174 StdMethod(HRESULT, "CreateBuffer", [(Pointer(Const(D3D11_BUFFER_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "1"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Buffer)), "ppBuffer")]),
1175 StdMethod(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D11_TEXTURE1D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture1D)), "ppTexture1D")]),
1176 StdMethod(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D11_TEXTURE2D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D)), "ppTexture2D")]),
1177 StdMethod(HRESULT, "CreateTexture3D", [(Pointer(Const(D3D11_TEXTURE3D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture3D)), "ppTexture3D")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001178 StdMethod(HRESULT, "CreateShaderResourceView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView)), "ppSRView")]),
1179 StdMethod(HRESULT, "CreateUnorderedAccessView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView)), "ppUAView")]),
1180 StdMethod(HRESULT, "CreateRenderTargetView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11RenderTargetView)), "ppRTView")]),
1181 StdMethod(HRESULT, "CreateDepthStencilView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1182 StdMethod(HRESULT, "CreateInputLayout", [(Array(Const(D3D11_INPUT_ELEMENT_DESC), "NumElements"), "pInputElementDescs"), (UINT, "NumElements"), (Blob(Const(Void), "BytecodeLength"), "pShaderBytecodeWithInputSignature"), (SIZE_T, "BytecodeLength"), Out(Pointer(ObjPointer(ID3D11InputLayout)), "ppInputLayout")]),
1183 StdMethod(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader")]),
1184 StdMethod(HRESULT, "CreateGeometryShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader")]),
1185 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"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader")]),
1186 StdMethod(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader")]),
1187 StdMethod(HRESULT, "CreateHullShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader")]),
1188 StdMethod(HRESULT, "CreateDomainShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader")]),
1189 StdMethod(HRESULT, "CreateComputeShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader")]),
1190 StdMethod(HRESULT, "CreateClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
1191 StdMethod(HRESULT, "CreateBlendState", [(Pointer(Const(D3D11_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState")]),
1192 StdMethod(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState")]),
1193 StdMethod(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D11_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
1194 StdMethod(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D11_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(ObjPointer(ID3D11SamplerState)), "ppSamplerState")]),
1195 StdMethod(HRESULT, "CreateQuery", [(Pointer(Const(D3D11_QUERY_DESC)), "pQueryDesc"), Out(Pointer(ObjPointer(ID3D11Query)), "ppQuery")]),
1196 StdMethod(HRESULT, "CreatePredicate", [(Pointer(Const(D3D11_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate")]),
1197 StdMethod(HRESULT, "CreateCounter", [(Pointer(Const(D3D11_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(ObjPointer(ID3D11Counter)), "ppCounter")]),
1198 StdMethod(HRESULT, "CreateDeferredContext", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppDeferredContext")]),
1199 StdMethod(HRESULT, "OpenSharedResource", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
1200 StdMethod(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_FORMAT_SUPPORT), "pFormatSupport")]),
1201 StdMethod(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")]),
1202 StdMethod(Void, "CheckCounterInfo", [Out(Pointer(D3D11_COUNTER_INFO), "pCounterInfo")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001203 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")], sideeffects=False),
1204 StdMethod(HRESULT, "CheckFeatureSupport", [(D3D11_FEATURE, "Feature"), Out(D3D11_FEATURE_DATA, "pFeatureSupportData"), (UINT, "FeatureSupportDataSize")], sideeffects=False),
1205 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
1206 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")], sideeffects=False),
1207 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001208 StdMethod(D3D_FEATURE_LEVEL, "GetFeatureLevel", []),
1209 StdMethod(D3D11_CREATE_DEVICE_FLAG, "GetCreationFlags", []),
1210 StdMethod(HRESULT, "GetDeviceRemovedReason", []),
1211 StdMethod(Void, "GetImmediateContext", [Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
1212 StdMethod(HRESULT, "SetExceptionMode", [(D3D11_RAISE_FLAG, "RaiseFlags")]),
1213 StdMethod(UINT, "GetExceptionMode", []),
José Fonseca5b6fb752012-04-14 14:56:45 +01001214]
1215
1216d3d11 = API("d3d11")
1217
1218d3d11.addFunctions([
José Fonsecaee590be2012-04-16 13:25:06 +01001219 StdFunction(HRESULT, "D3D11CreateDevice", [(ObjPointer(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(ObjPointer(ID3D11Device)), "ppDevice"), Out(Pointer(D3D_FEATURE_LEVEL), "pFeatureLevel"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
1220 StdFunction(HRESULT, "D3D11CreateDeviceAndSwapChain", [(ObjPointer(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(ObjPointer(IDXGISwapChain)), "ppSwapChain"), Out(Pointer(ObjPointer(ID3D11Device)), "ppDevice"), Out(Pointer(D3D_FEATURE_LEVEL), "pFeatureLevel"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
José Fonseca84cea3b2012-05-09 21:12:30 +01001221
1222 # XXX: Undocumented functions, called by d3d11sdklayers.dll when D3D11_CREATE_DEVICE_DEBUG is set
1223 StdFunction(HRESULT, "D3D11CoreRegisterLayers", [LPCVOID, DWORD], internal=True),
1224 StdFunction(SIZE_T, "D3D11CoreGetLayeredDeviceSize", [LPCVOID, DWORD], internal=True),
1225 StdFunction(HRESULT, "D3D11CoreCreateLayeredDevice", [LPCVOID, DWORD, LPCVOID, (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppvObj")], internal=True),
1226 StdFunction(HRESULT, "D3D11CoreCreateDevice", [DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD], internal=True),
José Fonseca5b6fb752012-04-14 14:56:45 +01001227])
1228
1229d3d11.addInterfaces([
José Fonseca24019a12012-04-16 21:02:17 +01001230 IDXGIAdapter1,
José Fonsecaca55d162012-04-16 13:05:47 +01001231 IDXGIDevice1,
José Fonseca24019a12012-04-16 21:02:17 +01001232 IDXGIResource,
José Fonseca5b6fb752012-04-14 14:56:45 +01001233 ID3D11Debug,
José Fonsecaf17f4642012-04-16 13:06:44 +01001234 ID3D11InfoQueue,
1235 ID3D11SwitchToRef,
José Fonseca5b6fb752012-04-14 14:56:45 +01001236])