blob: ac68ea36fb25db56bdeebe774c14f62f5da9f4e8 [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 *
José Fonseca5b6fb752012-04-14 14:56:45 +010028from d3d11sdklayers import *
29
30
José Fonseca73841ad2012-04-16 20:47:56 +010031HRESULT = MAKE_HRESULT([
José Fonseca5b6fb752012-04-14 14:56:45 +010032 "D3D11_ERROR_FILE_NOT_FOUND",
33 "D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS",
34 "D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS",
35 "D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD",
36 "D3DERR_INVALIDCALL",
37 "D3DERR_WASSTILLDRAWING",
José Fonseca5b6fb752012-04-14 14:56:45 +010038])
39
40
José Fonsecaee590be2012-04-16 13:25:06 +010041ID3D11DepthStencilState = Interface("ID3D11DepthStencilState", ID3D11DeviceChild)
42ID3D11BlendState = Interface("ID3D11BlendState", ID3D11DeviceChild)
43ID3D11RasterizerState = Interface("ID3D11RasterizerState", ID3D11DeviceChild)
44ID3D11Resource = Interface("ID3D11Resource", ID3D11DeviceChild)
45ID3D11Buffer = Interface("ID3D11Buffer", ID3D11Resource)
46ID3D11Texture1D = Interface("ID3D11Texture1D", ID3D11Resource)
47ID3D11Texture2D = Interface("ID3D11Texture2D", ID3D11Resource)
48ID3D11Texture3D = Interface("ID3D11Texture3D", ID3D11Resource)
49ID3D11View = Interface("ID3D11View", ID3D11DeviceChild)
50ID3D11ShaderResourceView = Interface("ID3D11ShaderResourceView", ID3D11View)
51ID3D11RenderTargetView = Interface("ID3D11RenderTargetView", ID3D11View)
52ID3D11DepthStencilView = Interface("ID3D11DepthStencilView", ID3D11View)
53ID3D11UnorderedAccessView = Interface("ID3D11UnorderedAccessView", ID3D11View)
54ID3D11VertexShader = Interface("ID3D11VertexShader", ID3D11DeviceChild)
55ID3D11HullShader = Interface("ID3D11HullShader", ID3D11DeviceChild)
56ID3D11DomainShader = Interface("ID3D11DomainShader", ID3D11DeviceChild)
57ID3D11GeometryShader = Interface("ID3D11GeometryShader", ID3D11DeviceChild)
58ID3D11PixelShader = Interface("ID3D11PixelShader", ID3D11DeviceChild)
59ID3D11ComputeShader = Interface("ID3D11ComputeShader", ID3D11DeviceChild)
60ID3D11InputLayout = Interface("ID3D11InputLayout", ID3D11DeviceChild)
61ID3D11SamplerState = Interface("ID3D11SamplerState", ID3D11DeviceChild)
62ID3D11Asynchronous = Interface("ID3D11Asynchronous", ID3D11DeviceChild)
63ID3D11Query = Interface("ID3D11Query", ID3D11Asynchronous)
64ID3D11Predicate = Interface("ID3D11Predicate", ID3D11Query)
65ID3D11Counter = Interface("ID3D11Counter", ID3D11Asynchronous)
66ID3D11ClassInstance = Interface("ID3D11ClassInstance", ID3D11DeviceChild)
67ID3D11ClassLinkage = Interface("ID3D11ClassLinkage", ID3D11DeviceChild)
68ID3D11CommandList = Interface("ID3D11CommandList", ID3D11DeviceChild)
69ID3D11Device = Interface("ID3D11Device", IUnknown)
José Fonseca5b6fb752012-04-14 14:56:45 +010070
71
Jose Fonseca5f5181d2015-07-17 12:06:23 +010072D3D11_PRIMITIVE_TOPOLOGY = Enum("D3D11_PRIMITIVE_TOPOLOGY", [
73 "D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED",
74 "D3D11_PRIMITIVE_TOPOLOGY_POINTLIST",
75 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST",
76 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP",
77 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST",
78 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP",
79 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ",
80 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ",
81 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ",
82 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ",
83 "D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST",
84 "D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST",
85 "D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST",
86 "D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST",
87 "D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST",
88 "D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST",
89 "D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST",
90 "D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST",
91 "D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST",
92 "D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST",
93 "D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST",
94 "D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST",
95 "D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST",
96 "D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST",
97 "D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST",
98 "D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST",
99 "D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST",
100 "D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST",
101 "D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST",
102 "D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST",
103 "D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST",
104 "D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST",
105 "D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST",
106 "D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST",
107 "D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST",
108 "D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST",
109 "D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST",
110 "D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST",
111 "D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST",
112 "D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST",
113 "D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST",
114 "D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST",
115])
116
José Fonsecaee590be2012-04-16 13:25:06 +0100117D3D11_INPUT_CLASSIFICATION = Enum("D3D11_INPUT_CLASSIFICATION", [
118 "D3D11_INPUT_PER_VERTEX_DATA",
119 "D3D11_INPUT_PER_INSTANCE_DATA",
José Fonseca5b6fb752012-04-14 14:56:45 +0100120])
121
122D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET = FakeEnum(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100123 "D3D11_APPEND_ALIGNED_ELEMENT",
José Fonseca5b6fb752012-04-14 14:56:45 +0100124])
125
José Fonsecaee590be2012-04-16 13:25:06 +0100126D3D11_INPUT_ELEMENT_DESC = Struct("D3D11_INPUT_ELEMENT_DESC", [
127 (LPCSTR, "SemanticName"),
128 (UINT, "SemanticIndex"),
129 (DXGI_FORMAT, "Format"),
130 (UINT, "InputSlot"),
131 (D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET, "AlignedByteOffset"),
132 (D3D11_INPUT_CLASSIFICATION, "InputSlotClass"),
133 (UINT, "InstanceDataStepRate"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100134])
135
José Fonsecaee590be2012-04-16 13:25:06 +0100136D3D11_FILL_MODE = Enum("D3D11_FILL_MODE", [
137 "D3D11_FILL_WIREFRAME",
138 "D3D11_FILL_SOLID",
José Fonseca5b6fb752012-04-14 14:56:45 +0100139])
140
José Fonsecaee590be2012-04-16 13:25:06 +0100141D3D11_PRIMITIVE_TOPOLOGY = Enum("D3D11_PRIMITIVE_TOPOLOGY", [
142 "D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED",
143 "D3D11_PRIMITIVE_TOPOLOGY_POINTLIST",
144 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST",
145 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP",
146 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST",
147 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP",
148 "D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ",
149 "D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ",
150 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ",
151 "D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ",
152 "D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST",
153 "D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST",
154 "D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST",
155 "D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST",
156 "D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST",
157 "D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST",
158 "D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST",
159 "D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST",
160 "D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST",
161 "D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST",
162 "D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST",
163 "D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST",
164 "D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST",
165 "D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST",
166 "D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST",
167 "D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST",
168 "D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST",
169 "D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST",
170 "D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST",
171 "D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST",
172 "D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST",
173 "D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST",
174 "D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST",
175 "D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST",
176 "D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST",
177 "D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST",
178 "D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST",
179 "D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST",
180 "D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST",
181 "D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST",
182 "D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST",
183 "D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST",
José Fonseca5b6fb752012-04-14 14:56:45 +0100184])
185
José Fonsecaee590be2012-04-16 13:25:06 +0100186D3D11_PRIMITIVE = Enum("D3D11_PRIMITIVE", [
187 "D3D11_PRIMITIVE_UNDEFINED",
188 "D3D11_PRIMITIVE_POINT",
189 "D3D11_PRIMITIVE_LINE",
190 "D3D11_PRIMITIVE_TRIANGLE",
191 "D3D11_PRIMITIVE_LINE_ADJ",
192 "D3D11_PRIMITIVE_TRIANGLE_ADJ",
193 "D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH",
194 "D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH",
195 "D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH",
196 "D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH",
197 "D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH",
198 "D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH",
199 "D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH",
200 "D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH",
201 "D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH",
202 "D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH",
203 "D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH",
204 "D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH",
205 "D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH",
206 "D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH",
207 "D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH",
208 "D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH",
209 "D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH",
210 "D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH",
211 "D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH",
212 "D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH",
213 "D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH",
214 "D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH",
215 "D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH",
216 "D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH",
217 "D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH",
218 "D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH",
219 "D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH",
220 "D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH",
221 "D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH",
222 "D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH",
223 "D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH",
224 "D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH",
José Fonseca5b6fb752012-04-14 14:56:45 +0100225])
226
José Fonsecaee590be2012-04-16 13:25:06 +0100227D3D11_CULL_MODE = Enum("D3D11_CULL_MODE", [
228 "D3D11_CULL_NONE",
229 "D3D11_CULL_FRONT",
230 "D3D11_CULL_BACK",
José Fonseca5b6fb752012-04-14 14:56:45 +0100231])
232
José Fonsecaee590be2012-04-16 13:25:06 +0100233D3D11_SO_DECLARATION_ENTRY = Struct("D3D11_SO_DECLARATION_ENTRY", [
234 (UINT, "Stream"),
235 (LPCSTR, "SemanticName"),
236 (UINT, "SemanticIndex"),
237 (BYTE, "StartComponent"),
238 (BYTE, "ComponentCount"),
239 (BYTE, "OutputSlot"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100240])
241
José Fonsecaee590be2012-04-16 13:25:06 +0100242D3D11_VIEWPORT = Struct("D3D11_VIEWPORT", [
243 (FLOAT, "TopLeftX"),
244 (FLOAT, "TopLeftY"),
245 (FLOAT, "Width"),
246 (FLOAT, "Height"),
247 (FLOAT, "MinDepth"),
248 (FLOAT, "MaxDepth"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100249])
250
José Fonsecaee590be2012-04-16 13:25:06 +0100251D3D11_RESOURCE_DIMENSION = Enum("D3D11_RESOURCE_DIMENSION", [
252 "D3D11_RESOURCE_DIMENSION_UNKNOWN",
253 "D3D11_RESOURCE_DIMENSION_BUFFER",
254 "D3D11_RESOURCE_DIMENSION_TEXTURE1D",
255 "D3D11_RESOURCE_DIMENSION_TEXTURE2D",
256 "D3D11_RESOURCE_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100257])
258
José Fonsecaee590be2012-04-16 13:25:06 +0100259D3D11_SRV_DIMENSION = Enum("D3D11_SRV_DIMENSION", [
260 "D3D11_SRV_DIMENSION_UNKNOWN",
261 "D3D11_SRV_DIMENSION_BUFFER",
262 "D3D11_SRV_DIMENSION_TEXTURE1D",
263 "D3D11_SRV_DIMENSION_TEXTURE1DARRAY",
264 "D3D11_SRV_DIMENSION_TEXTURE2D",
265 "D3D11_SRV_DIMENSION_TEXTURE2DARRAY",
266 "D3D11_SRV_DIMENSION_TEXTURE2DMS",
267 "D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY",
268 "D3D11_SRV_DIMENSION_TEXTURE3D",
269 "D3D11_SRV_DIMENSION_TEXTURECUBE",
270 "D3D11_SRV_DIMENSION_TEXTURECUBEARRAY",
271 "D3D11_SRV_DIMENSION_BUFFEREX",
José Fonseca5b6fb752012-04-14 14:56:45 +0100272])
273
José Fonsecaee590be2012-04-16 13:25:06 +0100274D3D11_DSV_DIMENSION = Enum("D3D11_DSV_DIMENSION", [
275 "D3D11_DSV_DIMENSION_UNKNOWN",
276 "D3D11_DSV_DIMENSION_TEXTURE1D",
277 "D3D11_DSV_DIMENSION_TEXTURE1DARRAY",
278 "D3D11_DSV_DIMENSION_TEXTURE2D",
279 "D3D11_DSV_DIMENSION_TEXTURE2DARRAY",
280 "D3D11_DSV_DIMENSION_TEXTURE2DMS",
281 "D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY",
José Fonseca5b6fb752012-04-14 14:56:45 +0100282])
283
José Fonsecaee590be2012-04-16 13:25:06 +0100284D3D11_RTV_DIMENSION = Enum("D3D11_RTV_DIMENSION", [
285 "D3D11_RTV_DIMENSION_UNKNOWN",
286 "D3D11_RTV_DIMENSION_BUFFER",
287 "D3D11_RTV_DIMENSION_TEXTURE1D",
288 "D3D11_RTV_DIMENSION_TEXTURE1DARRAY",
289 "D3D11_RTV_DIMENSION_TEXTURE2D",
290 "D3D11_RTV_DIMENSION_TEXTURE2DARRAY",
291 "D3D11_RTV_DIMENSION_TEXTURE2DMS",
292 "D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY",
293 "D3D11_RTV_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100294])
295
José Fonsecaee590be2012-04-16 13:25:06 +0100296D3D11_UAV_DIMENSION = Enum("D3D11_UAV_DIMENSION", [
297 "D3D11_UAV_DIMENSION_UNKNOWN",
298 "D3D11_UAV_DIMENSION_BUFFER",
299 "D3D11_UAV_DIMENSION_TEXTURE1D",
300 "D3D11_UAV_DIMENSION_TEXTURE1DARRAY",
301 "D3D11_UAV_DIMENSION_TEXTURE2D",
302 "D3D11_UAV_DIMENSION_TEXTURE2DARRAY",
303 "D3D11_UAV_DIMENSION_TEXTURE3D",
José Fonseca5b6fb752012-04-14 14:56:45 +0100304])
305
José Fonsecaee590be2012-04-16 13:25:06 +0100306D3D11_USAGE = Enum("D3D11_USAGE", [
307 "D3D11_USAGE_DEFAULT",
308 "D3D11_USAGE_IMMUTABLE",
309 "D3D11_USAGE_DYNAMIC",
310 "D3D11_USAGE_STAGING",
José Fonseca5b6fb752012-04-14 14:56:45 +0100311])
312
313D3D11_BIND_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100314 "D3D11_BIND_VERTEX_BUFFER",
315 "D3D11_BIND_INDEX_BUFFER",
316 "D3D11_BIND_CONSTANT_BUFFER",
317 "D3D11_BIND_SHADER_RESOURCE",
318 "D3D11_BIND_STREAM_OUTPUT",
319 "D3D11_BIND_RENDER_TARGET",
320 "D3D11_BIND_DEPTH_STENCIL",
321 "D3D11_BIND_UNORDERED_ACCESS",
Jose Fonseca503fde92015-07-16 17:00:30 +0100322 "D3D11_BIND_DECODER",
323 "D3D11_BIND_VIDEO_ENCODER",
José Fonseca5b6fb752012-04-14 14:56:45 +0100324])
325
326D3D11_CPU_ACCESS_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100327 "D3D11_CPU_ACCESS_WRITE",
328 "D3D11_CPU_ACCESS_READ",
José Fonseca5b6fb752012-04-14 14:56:45 +0100329])
330
331D3D11_RESOURCE_MISC_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100332 "D3D11_RESOURCE_MISC_GENERATE_MIPS",
333 "D3D11_RESOURCE_MISC_SHARED",
334 "D3D11_RESOURCE_MISC_TEXTURECUBE",
335 "D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS",
336 "D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS",
337 "D3D11_RESOURCE_MISC_BUFFER_STRUCTURED",
338 "D3D11_RESOURCE_MISC_RESOURCE_CLAMP",
339 "D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX",
340 "D3D11_RESOURCE_MISC_GDI_COMPATIBLE",
José Fonsecaf7b8d572014-09-26 10:38:43 +0100341 "D3D11_RESOURCE_MISC_SHARED_NTHANDLE",
342 "D3D11_RESOURCE_MISC_RESTRICTED_CONTENT",
343 "D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE",
344 "D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER",
345 "D3D11_RESOURCE_MISC_GUARDED",
346 "D3D11_RESOURCE_MISC_TILE_POOL",
347 "D3D11_RESOURCE_MISC_TILED",
Jose Fonseca4713c3b2015-08-12 11:06:34 +0100348 "D3D11_RESOURCE_MISC_HW_PROTECTED",
José Fonseca5b6fb752012-04-14 14:56:45 +0100349])
350
José Fonsecaee590be2012-04-16 13:25:06 +0100351D3D11_MAP = Enum("D3D11_MAP", [
352 "D3D11_MAP_READ",
353 "D3D11_MAP_WRITE",
354 "D3D11_MAP_READ_WRITE",
355 "D3D11_MAP_WRITE_DISCARD",
356 "D3D11_MAP_WRITE_NO_OVERWRITE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100357])
358
359D3D11_MAP_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100360 "D3D11_MAP_FLAG_DO_NOT_WAIT",
José Fonseca5b6fb752012-04-14 14:56:45 +0100361])
362
363D3D11_RAISE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100364 "D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100365])
366
367D3D11_CLEAR_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100368 "D3D11_CLEAR_DEPTH",
369 "D3D11_CLEAR_STENCIL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100370])
371
José Fonsecaee590be2012-04-16 13:25:06 +0100372D3D11_RECT = Alias("D3D11_RECT", RECT)
373D3D11_BOX = Struct("D3D11_BOX", [
374 (UINT, "left"),
375 (UINT, "top"),
376 (UINT, "front"),
377 (UINT, "right"),
378 (UINT, "bottom"),
379 (UINT, "back"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100380])
381
382ID3D11DeviceChild.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100383 StdMethod(Void, "GetDevice", [Out(Pointer(ObjPointer(ID3D11Device)), "ppDevice")]),
José Fonseca9eec9342014-10-03 22:24:50 +0100384 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), InOut(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
José Fonseca3be2c672015-02-06 15:36:40 +0000385 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
José Fonsecabc10e452012-11-08 10:24:45 +0000386 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100387]
388
José Fonsecaee590be2012-04-16 13:25:06 +0100389D3D11_COMPARISON_FUNC = Enum("D3D11_COMPARISON_FUNC", [
390 "D3D11_COMPARISON_NEVER",
391 "D3D11_COMPARISON_LESS",
392 "D3D11_COMPARISON_EQUAL",
393 "D3D11_COMPARISON_LESS_EQUAL",
394 "D3D11_COMPARISON_GREATER",
395 "D3D11_COMPARISON_NOT_EQUAL",
396 "D3D11_COMPARISON_GREATER_EQUAL",
397 "D3D11_COMPARISON_ALWAYS",
José Fonseca5b6fb752012-04-14 14:56:45 +0100398])
399
José Fonsecaee590be2012-04-16 13:25:06 +0100400D3D11_DEPTH_WRITE_MASK = Enum("D3D11_DEPTH_WRITE_MASK", [
401 "D3D11_DEPTH_WRITE_MASK_ZERO",
402 "D3D11_DEPTH_WRITE_MASK_ALL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100403])
404
José Fonsecaee590be2012-04-16 13:25:06 +0100405D3D11_STENCIL_OP = Enum("D3D11_STENCIL_OP", [
406 "D3D11_STENCIL_OP_KEEP",
407 "D3D11_STENCIL_OP_ZERO",
408 "D3D11_STENCIL_OP_REPLACE",
409 "D3D11_STENCIL_OP_INCR_SAT",
410 "D3D11_STENCIL_OP_DECR_SAT",
411 "D3D11_STENCIL_OP_INVERT",
412 "D3D11_STENCIL_OP_INCR",
413 "D3D11_STENCIL_OP_DECR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100414])
415
José Fonsecaee590be2012-04-16 13:25:06 +0100416D3D11_DEPTH_STENCILOP_DESC = Struct("D3D11_DEPTH_STENCILOP_DESC", [
417 (D3D11_STENCIL_OP, "StencilFailOp"),
418 (D3D11_STENCIL_OP, "StencilDepthFailOp"),
419 (D3D11_STENCIL_OP, "StencilPassOp"),
420 (D3D11_COMPARISON_FUNC, "StencilFunc"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100421])
422
José Fonsecaee590be2012-04-16 13:25:06 +0100423D3D11_DEPTH_STENCIL_DESC = Struct("D3D11_DEPTH_STENCIL_DESC", [
424 (BOOL, "DepthEnable"),
425 (D3D11_DEPTH_WRITE_MASK, "DepthWriteMask"),
426 (D3D11_COMPARISON_FUNC, "DepthFunc"),
427 (BOOL, "StencilEnable"),
428 (UINT8, "StencilReadMask"),
429 (UINT8, "StencilWriteMask"),
430 (D3D11_DEPTH_STENCILOP_DESC, "FrontFace"),
431 (D3D11_DEPTH_STENCILOP_DESC, "BackFace"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100432])
433
434ID3D11DepthStencilState.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000435 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_DEPTH_STENCIL_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100436]
437
José Fonsecaee590be2012-04-16 13:25:06 +0100438D3D11_BLEND = Enum("D3D11_BLEND", [
439 "D3D11_BLEND_ZERO",
440 "D3D11_BLEND_ONE",
441 "D3D11_BLEND_SRC_COLOR",
442 "D3D11_BLEND_INV_SRC_COLOR",
443 "D3D11_BLEND_SRC_ALPHA",
444 "D3D11_BLEND_INV_SRC_ALPHA",
445 "D3D11_BLEND_DEST_ALPHA",
446 "D3D11_BLEND_INV_DEST_ALPHA",
447 "D3D11_BLEND_DEST_COLOR",
448 "D3D11_BLEND_INV_DEST_COLOR",
449 "D3D11_BLEND_SRC_ALPHA_SAT",
450 "D3D11_BLEND_BLEND_FACTOR",
451 "D3D11_BLEND_INV_BLEND_FACTOR",
452 "D3D11_BLEND_SRC1_COLOR",
453 "D3D11_BLEND_INV_SRC1_COLOR",
454 "D3D11_BLEND_SRC1_ALPHA",
455 "D3D11_BLEND_INV_SRC1_ALPHA",
José Fonseca5b6fb752012-04-14 14:56:45 +0100456])
457
José Fonsecaee590be2012-04-16 13:25:06 +0100458D3D11_BLEND_OP = Enum("D3D11_BLEND_OP", [
459 "D3D11_BLEND_OP_ADD",
460 "D3D11_BLEND_OP_SUBTRACT",
461 "D3D11_BLEND_OP_REV_SUBTRACT",
462 "D3D11_BLEND_OP_MIN",
463 "D3D11_BLEND_OP_MAX",
José Fonseca5b6fb752012-04-14 14:56:45 +0100464])
465
José Fonsecaee590be2012-04-16 13:25:06 +0100466D3D11_COLOR_WRITE_ENABLE = Enum("D3D11_COLOR_WRITE_ENABLE", [
467 "D3D11_COLOR_WRITE_ENABLE_ALL",
468 "D3D11_COLOR_WRITE_ENABLE_RED",
469 "D3D11_COLOR_WRITE_ENABLE_GREEN",
470 "D3D11_COLOR_WRITE_ENABLE_BLUE",
471 "D3D11_COLOR_WRITE_ENABLE_ALPHA",
José Fonseca5b6fb752012-04-14 14:56:45 +0100472])
473
José Fonsecaee590be2012-04-16 13:25:06 +0100474D3D11_RENDER_TARGET_BLEND_DESC = Struct("D3D11_RENDER_TARGET_BLEND_DESC", [
475 (BOOL, "BlendEnable"),
476 (D3D11_BLEND, "SrcBlend"),
477 (D3D11_BLEND, "DestBlend"),
478 (D3D11_BLEND_OP, "BlendOp"),
479 (D3D11_BLEND, "SrcBlendAlpha"),
480 (D3D11_BLEND, "DestBlendAlpha"),
481 (D3D11_BLEND_OP, "BlendOpAlpha"),
482 (UINT8, "RenderTargetWriteMask"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100483])
484
José Fonsecaee590be2012-04-16 13:25:06 +0100485D3D11_BLEND_DESC = Struct("D3D11_BLEND_DESC", [
486 (BOOL, "AlphaToCoverageEnable"),
487 (BOOL, "IndependentBlendEnable"),
488 (Array(D3D11_RENDER_TARGET_BLEND_DESC, 8), "RenderTarget"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100489])
490
491ID3D11BlendState.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000492 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_BLEND_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100493]
494
José Fonsecaee590be2012-04-16 13:25:06 +0100495D3D11_RASTERIZER_DESC = Struct("D3D11_RASTERIZER_DESC", [
496 (D3D11_FILL_MODE, "FillMode"),
497 (D3D11_CULL_MODE, "CullMode"),
498 (BOOL, "FrontCounterClockwise"),
499 (INT, "DepthBias"),
500 (FLOAT, "DepthBiasClamp"),
501 (FLOAT, "SlopeScaledDepthBias"),
502 (BOOL, "DepthClipEnable"),
503 (BOOL, "ScissorEnable"),
504 (BOOL, "MultisampleEnable"),
505 (BOOL, "AntialiasedLineEnable"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100506])
507
508ID3D11RasterizerState.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000509 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_RASTERIZER_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100510]
511
José Fonsecaee590be2012-04-16 13:25:06 +0100512D3D11_SUBRESOURCE_DATA = Struct("D3D11_SUBRESOURCE_DATA", [
José Fonseca8f6e0e32012-11-07 19:22:20 +0000513 (Blob(Const(Void), "_calcSubresourceSize(pDesc, {i}, {self}.SysMemPitch, {self}.SysMemSlicePitch)"), "pSysMem"),
José Fonsecaee590be2012-04-16 13:25:06 +0100514 (UINT, "SysMemPitch"),
515 (UINT, "SysMemSlicePitch"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100516])
517
José Fonsecaee590be2012-04-16 13:25:06 +0100518D3D11_MAPPED_SUBRESOURCE = Struct("D3D11_MAPPED_SUBRESOURCE", [
José Fonsecae6bde442012-11-14 08:45:58 +0000519 (LinearPointer(Void, "_MappedSize"), "pData"),
José Fonsecaee590be2012-04-16 13:25:06 +0100520 (UINT, "RowPitch"),
521 (UINT, "DepthPitch"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100522])
523
524ID3D11Resource.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000525 StdMethod(Void, "GetType", [Out(Pointer(D3D11_RESOURCE_DIMENSION), "pResourceDimension")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +0100526 StdMethod(Void, "SetEvictionPriority", [(UINT, "EvictionPriority")]),
José Fonseca2b807452012-11-10 09:50:10 +0000527 StdMethod(UINT, "GetEvictionPriority", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100528]
529
José Fonsecaee590be2012-04-16 13:25:06 +0100530D3D11_BUFFER_DESC = Struct("D3D11_BUFFER_DESC", [
531 (UINT, "ByteWidth"),
532 (D3D11_USAGE, "Usage"),
533 (D3D11_BIND_FLAG, "BindFlags"),
534 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
535 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
536 (UINT, "StructureByteStride"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100537])
538
539ID3D11Buffer.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000540 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_BUFFER_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100541]
542
José Fonsecaee590be2012-04-16 13:25:06 +0100543D3D11_TEXTURE1D_DESC = Struct("D3D11_TEXTURE1D_DESC", [
544 (UINT, "Width"),
545 (UINT, "MipLevels"),
546 (UINT, "ArraySize"),
547 (DXGI_FORMAT, "Format"),
548 (D3D11_USAGE, "Usage"),
549 (D3D11_BIND_FLAG, "BindFlags"),
550 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
551 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100552])
553
554ID3D11Texture1D.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000555 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE1D_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100556]
557
José Fonsecaee590be2012-04-16 13:25:06 +0100558D3D11_TEXTURE2D_DESC = Struct("D3D11_TEXTURE2D_DESC", [
559 (UINT, "Width"),
560 (UINT, "Height"),
561 (UINT, "MipLevels"),
562 (UINT, "ArraySize"),
563 (DXGI_FORMAT, "Format"),
564 (DXGI_SAMPLE_DESC, "SampleDesc"),
565 (D3D11_USAGE, "Usage"),
566 (D3D11_BIND_FLAG, "BindFlags"),
567 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
568 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100569])
570
571ID3D11Texture2D.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000572 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE2D_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100573]
574
José Fonsecaee590be2012-04-16 13:25:06 +0100575D3D11_TEXTURE3D_DESC = Struct("D3D11_TEXTURE3D_DESC", [
576 (UINT, "Width"),
577 (UINT, "Height"),
578 (UINT, "Depth"),
579 (UINT, "MipLevels"),
580 (DXGI_FORMAT, "Format"),
581 (D3D11_USAGE, "Usage"),
582 (D3D11_BIND_FLAG, "BindFlags"),
583 (D3D11_CPU_ACCESS_FLAG, "CPUAccessFlags"),
584 (D3D11_RESOURCE_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100585])
586
587ID3D11Texture3D.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000588 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_TEXTURE3D_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100589]
590
José Fonsecaee590be2012-04-16 13:25:06 +0100591D3D11_TEXTURECUBE_FACE = Enum("D3D11_TEXTURECUBE_FACE", [
592 "D3D11_TEXTURECUBE_FACE_POSITIVE_X",
593 "D3D11_TEXTURECUBE_FACE_NEGATIVE_X",
594 "D3D11_TEXTURECUBE_FACE_POSITIVE_Y",
595 "D3D11_TEXTURECUBE_FACE_NEGATIVE_Y",
596 "D3D11_TEXTURECUBE_FACE_POSITIVE_Z",
597 "D3D11_TEXTURECUBE_FACE_NEGATIVE_Z",
José Fonseca5b6fb752012-04-14 14:56:45 +0100598])
599
600ID3D11View.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +0100601 StdMethod(Void, "GetResource", [Out(Pointer(ObjPointer(ID3D11Resource)), "ppResource")]),
José Fonseca5b6fb752012-04-14 14:56:45 +0100602]
603
José Fonsecaee590be2012-04-16 13:25:06 +0100604D3D11_BUFFER_SRV = Struct("D3D11_BUFFER_SRV", [
José Fonseca5f4b6e32012-11-20 10:47:10 +0000605 (UINT, "FirstElement"),
606 (UINT, "NumElements"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100607])
608
609D3D11_BUFFEREX_SRV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100610 "D3D11_BUFFEREX_SRV_FLAG_RAW",
José Fonseca5b6fb752012-04-14 14:56:45 +0100611])
612
José Fonsecaee590be2012-04-16 13:25:06 +0100613D3D11_BUFFEREX_SRV = Struct("D3D11_BUFFEREX_SRV", [
614 (UINT, "FirstElement"),
615 (UINT, "NumElements"),
616 (D3D11_BUFFEREX_SRV_FLAG, "Flags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100617])
618
José Fonsecaee590be2012-04-16 13:25:06 +0100619D3D11_TEX1D_SRV = Struct("D3D11_TEX1D_SRV", [
620 (UINT, "MostDetailedMip"),
621 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100622])
623
José Fonsecaee590be2012-04-16 13:25:06 +0100624D3D11_TEX1D_ARRAY_SRV = Struct("D3D11_TEX1D_ARRAY_SRV", [
625 (UINT, "MostDetailedMip"),
626 (UINT, "MipLevels"),
627 (UINT, "FirstArraySlice"),
628 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100629])
630
José Fonsecaee590be2012-04-16 13:25:06 +0100631D3D11_TEX2D_SRV = Struct("D3D11_TEX2D_SRV", [
632 (UINT, "MostDetailedMip"),
633 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100634])
635
José Fonsecaee590be2012-04-16 13:25:06 +0100636D3D11_TEX2D_ARRAY_SRV = Struct("D3D11_TEX2D_ARRAY_SRV", [
637 (UINT, "MostDetailedMip"),
638 (UINT, "MipLevels"),
639 (UINT, "FirstArraySlice"),
640 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100641])
642
José Fonsecaee590be2012-04-16 13:25:06 +0100643D3D11_TEX3D_SRV = Struct("D3D11_TEX3D_SRV", [
644 (UINT, "MostDetailedMip"),
645 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100646])
647
José Fonsecaee590be2012-04-16 13:25:06 +0100648D3D11_TEXCUBE_SRV = Struct("D3D11_TEXCUBE_SRV", [
649 (UINT, "MostDetailedMip"),
650 (UINT, "MipLevels"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100651])
652
José Fonsecaee590be2012-04-16 13:25:06 +0100653D3D11_TEXCUBE_ARRAY_SRV = Struct("D3D11_TEXCUBE_ARRAY_SRV", [
654 (UINT, "MostDetailedMip"),
655 (UINT, "MipLevels"),
656 (UINT, "First2DArrayFace"),
657 (UINT, "NumCubes"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100658])
659
José Fonsecaee590be2012-04-16 13:25:06 +0100660D3D11_TEX2DMS_SRV = Struct("D3D11_TEX2DMS_SRV", [
661 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100662])
663
José Fonsecaee590be2012-04-16 13:25:06 +0100664D3D11_TEX2DMS_ARRAY_SRV = Struct("D3D11_TEX2DMS_ARRAY_SRV", [
665 (UINT, "FirstArraySlice"),
666 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100667])
668
José Fonsecaee590be2012-04-16 13:25:06 +0100669D3D11_SHADER_RESOURCE_VIEW_DESC = Struct("D3D11_SHADER_RESOURCE_VIEW_DESC", [
670 (DXGI_FORMAT, "Format"),
671 (D3D11_SRV_DIMENSION, "ViewDimension"),
José Fonsecadbf714b2012-11-20 17:03:43 +0000672 (Union("{self}.ViewDimension", [
673 ("D3D11_SRV_DIMENSION_BUFFER", D3D11_BUFFER_SRV, "Buffer"),
674 ("D3D11_SRV_DIMENSION_TEXTURE1D", D3D11_TEX1D_SRV, "Texture1D"),
675 ("D3D11_SRV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_SRV, "Texture1DArray"),
Jose Fonseca4713c3b2015-08-12 11:06:34 +0100676 ("D3D11_SRV_DIMENSION_TEXTURE2D", D3D11_TEX2D_SRV, "Texture2D"),
José Fonsecadbf714b2012-11-20 17:03:43 +0000677 ("D3D11_SRV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_SRV, "Texture2DArray"),
678 ("D3D11_SRV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_SRV, "Texture2DMS"),
679 ("D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
680 ("D3D11_SRV_DIMENSION_TEXTURE3D", D3D11_TEX3D_SRV, "Texture3D"),
681 ("D3D11_SRV_DIMENSION_TEXTURECUBE", D3D11_TEXCUBE_SRV, "TextureCube"),
682 ("D3D11_SRV_DIMENSION_TEXTURECUBEARRAY", D3D11_TEXCUBE_ARRAY_SRV, "TextureCubeArray"),
683 ("D3D11_SRV_DIMENSION_BUFFEREX", D3D11_BUFFEREX_SRV, "BufferEx"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100684 ]), None),
685])
686
687ID3D11ShaderResourceView.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000688 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100689]
690
José Fonsecaee590be2012-04-16 13:25:06 +0100691D3D11_BUFFER_RTV = Struct("D3D11_BUFFER_RTV", [
José Fonseca5f4b6e32012-11-20 10:47:10 +0000692 (UINT, "FirstElement"),
693 (UINT, "NumElements"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100694])
695
José Fonsecaee590be2012-04-16 13:25:06 +0100696D3D11_TEX1D_RTV = Struct("D3D11_TEX1D_RTV", [
697 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100698])
699
José Fonsecaee590be2012-04-16 13:25:06 +0100700D3D11_TEX1D_ARRAY_RTV = Struct("D3D11_TEX1D_ARRAY_RTV", [
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_RTV = Struct("D3D11_TEX2D_RTV", [
707 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100708])
709
José Fonsecaee590be2012-04-16 13:25:06 +0100710D3D11_TEX2DMS_RTV = Struct("D3D11_TEX2DMS_RTV", [
711 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100712])
713
José Fonsecaee590be2012-04-16 13:25:06 +0100714D3D11_TEX2D_ARRAY_RTV = Struct("D3D11_TEX2D_ARRAY_RTV", [
715 (UINT, "MipSlice"),
716 (UINT, "FirstArraySlice"),
717 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100718])
719
José Fonsecaee590be2012-04-16 13:25:06 +0100720D3D11_TEX2DMS_ARRAY_RTV = Struct("D3D11_TEX2DMS_ARRAY_RTV", [
721 (UINT, "FirstArraySlice"),
722 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100723])
724
José Fonsecaee590be2012-04-16 13:25:06 +0100725D3D11_TEX3D_RTV = Struct("D3D11_TEX3D_RTV", [
726 (UINT, "MipSlice"),
727 (UINT, "FirstWSlice"),
728 (UINT, "WSize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100729])
730
José Fonsecaee590be2012-04-16 13:25:06 +0100731D3D11_RENDER_TARGET_VIEW_DESC = Struct("D3D11_RENDER_TARGET_VIEW_DESC", [
732 (DXGI_FORMAT, "Format"),
733 (D3D11_RTV_DIMENSION, "ViewDimension"),
José Fonsecadbf714b2012-11-20 17:03:43 +0000734 (Union("{self}.ViewDimension", [
José Fonsecaeb216e62012-11-20 11:08:08 +0000735 ("D3D11_RTV_DIMENSION_BUFFER", D3D11_BUFFER_RTV, "Buffer"),
736 ("D3D11_RTV_DIMENSION_TEXTURE1D", D3D11_TEX1D_RTV, "Texture1D"),
737 ("D3D11_RTV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_RTV, "Texture1DArray"),
738 ("D3D11_RTV_DIMENSION_TEXTURE2D", D3D11_TEX2D_RTV, "Texture2D"),
739 ("D3D11_RTV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_RTV, "Texture2DArray"),
740 ("D3D11_RTV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_RTV, "Texture2DMS"),
741 ("D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
742 ("D3D11_RTV_DIMENSION_TEXTURE3D", D3D11_TEX3D_RTV, "Texture3D"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100743 ]), None),
744])
745
746ID3D11RenderTargetView.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000747 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100748]
749
José Fonsecaee590be2012-04-16 13:25:06 +0100750D3D11_TEX1D_DSV = Struct("D3D11_TEX1D_DSV", [
751 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100752])
753
José Fonsecaee590be2012-04-16 13:25:06 +0100754D3D11_TEX1D_ARRAY_DSV = Struct("D3D11_TEX1D_ARRAY_DSV", [
755 (UINT, "MipSlice"),
756 (UINT, "FirstArraySlice"),
757 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100758])
759
José Fonsecaee590be2012-04-16 13:25:06 +0100760D3D11_TEX2D_DSV = Struct("D3D11_TEX2D_DSV", [
761 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100762])
763
José Fonsecaee590be2012-04-16 13:25:06 +0100764D3D11_TEX2D_ARRAY_DSV = Struct("D3D11_TEX2D_ARRAY_DSV", [
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_TEX2DMS_DSV = Struct("D3D11_TEX2DMS_DSV", [
771 (UINT, "UnusedField_NothingToDefine"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100772])
773
José Fonsecaee590be2012-04-16 13:25:06 +0100774D3D11_TEX2DMS_ARRAY_DSV = Struct("D3D11_TEX2DMS_ARRAY_DSV", [
775 (UINT, "FirstArraySlice"),
776 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100777])
778
779D3D11_DSV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100780 "D3D11_DSV_READ_ONLY_DEPTH",
781 "D3D11_DSV_READ_ONLY_STENCIL",
José Fonseca5b6fb752012-04-14 14:56:45 +0100782])
783
José Fonsecaee590be2012-04-16 13:25:06 +0100784D3D11_DEPTH_STENCIL_VIEW_DESC = Struct("D3D11_DEPTH_STENCIL_VIEW_DESC", [
785 (DXGI_FORMAT, "Format"),
786 (D3D11_DSV_DIMENSION, "ViewDimension"),
787 (D3D11_DSV_FLAG, "Flags"),
José Fonsecadbf714b2012-11-20 17:03:43 +0000788 (Union("{self}.ViewDimension", [
789 ("D3D11_DSV_DIMENSION_TEXTURE1D", D3D11_TEX1D_DSV, "Texture1D"),
790 ("D3D11_DSV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_DSV, "Texture1DArray"),
791 ("D3D11_DSV_DIMENSION_TEXTURE2D", D3D11_TEX2D_DSV, "Texture2D"),
792 ("D3D11_DSV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_DSV, "Texture2DArray"),
793 ("D3D11_DSV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_DSV, "Texture2DMS"),
794 ("D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_DSV, "Texture2DMSArray"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100795 ]), None),
796])
797
798ID3D11DepthStencilView.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000799 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_DEPTH_STENCIL_VIEW_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100800]
801
802D3D11_BUFFER_UAV_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100803 "D3D11_BUFFER_UAV_FLAG_RAW",
804 "D3D11_BUFFER_UAV_FLAG_APPEND",
805 "D3D11_BUFFER_UAV_FLAG_COUNTER",
José Fonseca5b6fb752012-04-14 14:56:45 +0100806])
807
José Fonsecaee590be2012-04-16 13:25:06 +0100808D3D11_BUFFER_UAV = Struct("D3D11_BUFFER_UAV", [
809 (UINT, "FirstElement"),
810 (UINT, "NumElements"),
811 (D3D11_BUFFER_UAV_FLAG, "Flags"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100812])
813
José Fonsecaee590be2012-04-16 13:25:06 +0100814D3D11_TEX1D_UAV = Struct("D3D11_TEX1D_UAV", [
815 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100816])
817
José Fonsecaee590be2012-04-16 13:25:06 +0100818D3D11_TEX1D_ARRAY_UAV = Struct("D3D11_TEX1D_ARRAY_UAV", [
819 (UINT, "MipSlice"),
820 (UINT, "FirstArraySlice"),
821 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100822])
823
José Fonsecaee590be2012-04-16 13:25:06 +0100824D3D11_TEX2D_UAV = Struct("D3D11_TEX2D_UAV", [
825 (UINT, "MipSlice"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100826])
827
José Fonsecaee590be2012-04-16 13:25:06 +0100828D3D11_TEX2D_ARRAY_UAV = Struct("D3D11_TEX2D_ARRAY_UAV", [
829 (UINT, "MipSlice"),
830 (UINT, "FirstArraySlice"),
831 (UINT, "ArraySize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100832])
833
José Fonsecaee590be2012-04-16 13:25:06 +0100834D3D11_TEX3D_UAV = Struct("D3D11_TEX3D_UAV", [
835 (UINT, "MipSlice"),
836 (UINT, "FirstWSlice"),
837 (UINT, "WSize"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100838])
839
José Fonsecaee590be2012-04-16 13:25:06 +0100840D3D11_UNORDERED_ACCESS_VIEW_DESC = Struct("D3D11_UNORDERED_ACCESS_VIEW_DESC", [
841 (DXGI_FORMAT, "Format"),
842 (D3D11_UAV_DIMENSION, "ViewDimension"),
José Fonsecadbf714b2012-11-20 17:03:43 +0000843 (Union("{self}.ViewDimension", [
844 ("D3D11_UAV_DIMENSION_BUFFER", D3D11_BUFFER_UAV, "Buffer"),
845 ("D3D11_UAV_DIMENSION_TEXTURE1D", D3D11_TEX1D_UAV, "Texture1D"),
846 ("D3D11_UAV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_UAV, "Texture1DArray"),
847 ("D3D11_UAV_DIMENSION_TEXTURE2D", D3D11_TEX2D_UAV, "Texture2D"),
848 ("D3D11_UAV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_UAV, "Texture2DArray"),
849 ("D3D11_UAV_DIMENSION_TEXTURE3D", D3D11_TEX3D_UAV, "Texture3D"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100850 ]), None),
851])
852
853ID3D11UnorderedAccessView.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000854 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100855]
856
José Fonsecaee590be2012-04-16 13:25:06 +0100857D3D11_FILTER = Enum("D3D11_FILTER", [
858 "D3D11_FILTER_MIN_MAG_MIP_POINT",
859 "D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR",
860 "D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT",
861 "D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR",
862 "D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT",
863 "D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
864 "D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT",
865 "D3D11_FILTER_MIN_MAG_MIP_LINEAR",
866 "D3D11_FILTER_ANISOTROPIC",
867 "D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT",
868 "D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR",
869 "D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT",
870 "D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR",
871 "D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT",
872 "D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
873 "D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT",
874 "D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR",
875 "D3D11_FILTER_COMPARISON_ANISOTROPIC",
Jose Fonseca503fde92015-07-16 17:00:30 +0100876 "D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT",
877 "D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR",
878 "D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT",
879 "D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR",
880 "D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT",
881 "D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
882 "D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT",
883 "D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR",
884 "D3D11_FILTER_MINIMUM_ANISOTROPIC",
885 "D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT",
886 "D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR",
887 "D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT",
888 "D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR",
889 "D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT",
890 "D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR",
891 "D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT",
892 "D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR",
893 "D3D11_FILTER_MAXIMUM_ANISOTROPIC",
José Fonseca5b6fb752012-04-14 14:56:45 +0100894])
895
José Fonsecaee590be2012-04-16 13:25:06 +0100896D3D11_FILTER_TYPE = Enum("D3D11_FILTER_TYPE", [
897 "D3D11_FILTER_TYPE_POINT",
898 "D3D11_FILTER_TYPE_LINEAR",
José Fonseca5b6fb752012-04-14 14:56:45 +0100899])
900
José Fonsecaee590be2012-04-16 13:25:06 +0100901D3D11_TEXTURE_ADDRESS_MODE = Enum("D3D11_TEXTURE_ADDRESS_MODE", [
902 "D3D11_TEXTURE_ADDRESS_WRAP",
903 "D3D11_TEXTURE_ADDRESS_MIRROR",
904 "D3D11_TEXTURE_ADDRESS_CLAMP",
905 "D3D11_TEXTURE_ADDRESS_BORDER",
906 "D3D11_TEXTURE_ADDRESS_MIRROR_ONCE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100907])
908
José Fonsecaee590be2012-04-16 13:25:06 +0100909D3D11_SAMPLER_DESC = Struct("D3D11_SAMPLER_DESC", [
910 (D3D11_FILTER, "Filter"),
911 (D3D11_TEXTURE_ADDRESS_MODE, "AddressU"),
912 (D3D11_TEXTURE_ADDRESS_MODE, "AddressV"),
913 (D3D11_TEXTURE_ADDRESS_MODE, "AddressW"),
914 (FLOAT, "MipLODBias"),
915 (UINT, "MaxAnisotropy"),
916 (D3D11_COMPARISON_FUNC, "ComparisonFunc"),
917 (Array(FLOAT, 4), "BorderColor"),
918 (FLOAT, "MinLOD"),
919 (FLOAT, "MaxLOD"),
José Fonseca5b6fb752012-04-14 14:56:45 +0100920])
921
922ID3D11SamplerState.methods += [
José Fonseca2b807452012-11-10 09:50:10 +0000923 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_SAMPLER_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100924]
925
José Fonsecaee590be2012-04-16 13:25:06 +0100926D3D11_FORMAT_SUPPORT = Flags(UINT, [
927 "D3D11_FORMAT_SUPPORT_BUFFER",
928 "D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER",
929 "D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER",
930 "D3D11_FORMAT_SUPPORT_SO_BUFFER",
931 "D3D11_FORMAT_SUPPORT_TEXTURE1D",
932 "D3D11_FORMAT_SUPPORT_TEXTURE2D",
933 "D3D11_FORMAT_SUPPORT_TEXTURE3D",
934 "D3D11_FORMAT_SUPPORT_TEXTURECUBE",
935 "D3D11_FORMAT_SUPPORT_SHADER_LOAD",
936 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE",
937 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON",
938 "D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT",
939 "D3D11_FORMAT_SUPPORT_MIP",
940 "D3D11_FORMAT_SUPPORT_MIP_AUTOGEN",
941 "D3D11_FORMAT_SUPPORT_RENDER_TARGET",
942 "D3D11_FORMAT_SUPPORT_BLENDABLE",
943 "D3D11_FORMAT_SUPPORT_DEPTH_STENCIL",
944 "D3D11_FORMAT_SUPPORT_CPU_LOCKABLE",
945 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE",
946 "D3D11_FORMAT_SUPPORT_DISPLAY",
947 "D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT",
948 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET",
949 "D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD",
950 "D3D11_FORMAT_SUPPORT_SHADER_GATHER",
951 "D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST",
952 "D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW",
953 "D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON",
Jose Fonseca503fde92015-07-16 17:00:30 +0100954 "D3D11_FORMAT_SUPPORT_DECODER_OUTPUT",
955 "D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT",
956 "D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT",
957 "D3D11_FORMAT_SUPPORT_VIDEO_ENCODER",
José Fonseca5b6fb752012-04-14 14:56:45 +0100958])
959
José Fonsecaee590be2012-04-16 13:25:06 +0100960D3D11_FORMAT_SUPPORT2 = Enum("D3D11_FORMAT_SUPPORT2", [
961 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD",
962 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS",
963 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE",
964 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE",
965 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX",
966 "D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX",
967 "D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD",
968 "D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE",
Jose Fonseca503fde92015-07-16 17:00:30 +0100969 "D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP",
970 "D3D11_FORMAT_SUPPORT2_TILED",
971 "D3D11_FORMAT_SUPPORT2_SHAREABLE",
José Fonseca5b6fb752012-04-14 14:56:45 +0100972])
973
974ID3D11Asynchronous.methods += [
José Fonsecabc10e452012-11-08 10:24:45 +0000975 StdMethod(UINT, "GetDataSize", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +0100976]
977
978D3D11_ASYNC_GETDATA_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +0100979 "D3D11_ASYNC_GETDATA_DONOTFLUSH",
José Fonseca5b6fb752012-04-14 14:56:45 +0100980])
981
José Fonsecaee590be2012-04-16 13:25:06 +0100982D3D11_QUERY = Enum("D3D11_QUERY", [
983 "D3D11_QUERY_EVENT",
984 "D3D11_QUERY_OCCLUSION",
985 "D3D11_QUERY_TIMESTAMP",
986 "D3D11_QUERY_TIMESTAMP_DISJOINT",
987 "D3D11_QUERY_PIPELINE_STATISTICS",
988 "D3D11_QUERY_OCCLUSION_PREDICATE",
989 "D3D11_QUERY_SO_STATISTICS",
990 "D3D11_QUERY_SO_OVERFLOW_PREDICATE",
991 "D3D11_QUERY_SO_STATISTICS_STREAM0",
992 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0",
993 "D3D11_QUERY_SO_STATISTICS_STREAM1",
994 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1",
995 "D3D11_QUERY_SO_STATISTICS_STREAM2",
996 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2",
997 "D3D11_QUERY_SO_STATISTICS_STREAM3",
998 "D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3",
José Fonseca5b6fb752012-04-14 14:56:45 +0100999])
1000
1001D3D11_QUERY_MISC_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001002 "D3D11_QUERY_MISC_PREDICATEHINT",
José Fonseca5b6fb752012-04-14 14:56:45 +01001003])
1004
José Fonsecaee590be2012-04-16 13:25:06 +01001005D3D11_QUERY_DESC = Struct("D3D11_QUERY_DESC", [
1006 (D3D11_QUERY, "Query"),
1007 (D3D11_QUERY_MISC_FLAG, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001008])
1009
1010ID3D11Query.methods += [
José Fonseca2b807452012-11-10 09:50:10 +00001011 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_QUERY_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001012]
1013
José Fonsecaee590be2012-04-16 13:25:06 +01001014D3D11_QUERY_DATA_TIMESTAMP_DISJOINT = Struct("D3D11_QUERY_DATA_TIMESTAMP_DISJOINT", [
1015 (UINT64, "Frequency"),
1016 (BOOL, "Disjoint"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001017])
1018
José Fonsecaee590be2012-04-16 13:25:06 +01001019D3D11_QUERY_DATA_PIPELINE_STATISTICS = Struct("D3D11_QUERY_DATA_PIPELINE_STATISTICS", [
1020 (UINT64, "IAVertices"),
1021 (UINT64, "IAPrimitives"),
1022 (UINT64, "VSInvocations"),
1023 (UINT64, "GSInvocations"),
1024 (UINT64, "GSPrimitives"),
1025 (UINT64, "CInvocations"),
1026 (UINT64, "CPrimitives"),
1027 (UINT64, "PSInvocations"),
1028 (UINT64, "HSInvocations"),
1029 (UINT64, "DSInvocations"),
1030 (UINT64, "CSInvocations"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001031])
1032
José Fonsecaee590be2012-04-16 13:25:06 +01001033D3D11_QUERY_DATA_SO_STATISTICS = Struct("D3D11_QUERY_DATA_SO_STATISTICS", [
1034 (UINT64, "NumPrimitivesWritten"),
1035 (UINT64, "PrimitivesStorageNeeded"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001036])
1037
José Fonsecadbc46f02014-08-15 17:04:17 +01001038D3D11_QUERY_DATA = Polymorphic("_getQueryType(pAsync)", [
1039 ("D3D11_QUERY_EVENT", Pointer(BOOL)),
1040 ("D3D11_QUERY_OCCLUSION", Pointer(UINT64)),
1041 ("D3D11_QUERY_TIMESTAMP", Pointer(UINT64)),
1042 ("D3D11_QUERY_TIMESTAMP_DISJOINT", Pointer(D3D11_QUERY_DATA_TIMESTAMP_DISJOINT)),
1043 ("D3D11_QUERY_PIPELINE_STATISTICS", Pointer(D3D11_QUERY_DATA_PIPELINE_STATISTICS)),
1044 ("D3D11_QUERY_OCCLUSION_PREDICATE", Pointer(BOOL)),
1045 ("D3D11_QUERY_SO_STATISTICS", Pointer(D3D11_QUERY_DATA_SO_STATISTICS)),
1046 ("D3D11_QUERY_SO_OVERFLOW_PREDICATE", Pointer(BOOL)),
1047 ("D3D11_QUERY_SO_STATISTICS_STREAM0", Pointer(D3D11_QUERY_DATA_SO_STATISTICS)),
1048 ("D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0", Pointer(BOOL)),
1049 ("D3D11_QUERY_SO_STATISTICS_STREAM1", Pointer(D3D11_QUERY_DATA_SO_STATISTICS)),
1050 ("D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1", Pointer(BOOL)),
1051 ("D3D11_QUERY_SO_STATISTICS_STREAM2", Pointer(D3D11_QUERY_DATA_SO_STATISTICS)),
1052 ("D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2", Pointer(BOOL)),
1053 ("D3D11_QUERY_SO_STATISTICS_STREAM3", Pointer(D3D11_QUERY_DATA_SO_STATISTICS)),
1054 ("D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3", Pointer(BOOL)),
1055], Blob(Void, "DataSize"), contextLess=False)
1056
José Fonsecaee590be2012-04-16 13:25:06 +01001057D3D11_COUNTER = Enum("D3D11_COUNTER", [
1058 "D3D11_COUNTER_DEVICE_DEPENDENT_0",
José Fonseca5b6fb752012-04-14 14:56:45 +01001059])
1060
José Fonsecaee590be2012-04-16 13:25:06 +01001061D3D11_COUNTER_TYPE = Enum("D3D11_COUNTER_TYPE", [
1062 "D3D11_COUNTER_TYPE_FLOAT32",
1063 "D3D11_COUNTER_TYPE_UINT16",
1064 "D3D11_COUNTER_TYPE_UINT32",
1065 "D3D11_COUNTER_TYPE_UINT64",
José Fonseca5b6fb752012-04-14 14:56:45 +01001066])
1067
José Fonsecaee590be2012-04-16 13:25:06 +01001068D3D11_COUNTER_DESC = Struct("D3D11_COUNTER_DESC", [
1069 (D3D11_COUNTER, "Counter"),
1070 (UINT, "MiscFlags"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001071])
1072
José Fonsecaee590be2012-04-16 13:25:06 +01001073D3D11_COUNTER_INFO = Struct("D3D11_COUNTER_INFO", [
1074 (D3D11_COUNTER, "LastDeviceDependentCounter"),
1075 (UINT, "NumSimultaneousCounters"),
1076 (UINT8, "NumDetectableParallelUnits"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001077])
1078
1079ID3D11Counter.methods += [
José Fonseca2b807452012-11-10 09:50:10 +00001080 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_COUNTER_DESC), "pDesc")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001081]
1082
Jose Fonsecad5d61982017-08-13 13:08:13 +01001083D3D11_QUALITY_LEVEL = FakeEnum(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001084 "D3D11_STANDARD_MULTISAMPLE_PATTERN",
1085 "D3D11_CENTER_MULTISAMPLE_PATTERN",
José Fonseca5b6fb752012-04-14 14:56:45 +01001086])
Jose Fonsecad5d61982017-08-13 13:08:13 +01001087assert DXGI_SAMPLE_DESC.members[1][1] == "Quality"
1088DXGI_SAMPLE_DESC.members[1] = (D3D11_QUALITY_LEVEL, "Quality")
José Fonseca5b6fb752012-04-14 14:56:45 +01001089
José Fonsecaee590be2012-04-16 13:25:06 +01001090D3D11_DEVICE_CONTEXT_TYPE = Enum("D3D11_DEVICE_CONTEXT_TYPE", [
1091 "D3D11_DEVICE_CONTEXT_IMMEDIATE",
1092 "D3D11_DEVICE_CONTEXT_DEFERRED",
José Fonseca5b6fb752012-04-14 14:56:45 +01001093])
1094
José Fonsecaee590be2012-04-16 13:25:06 +01001095D3D11_CLASS_INSTANCE_DESC = Struct("D3D11_CLASS_INSTANCE_DESC", [
1096 (UINT, "InstanceId"),
1097 (UINT, "InstanceIndex"),
1098 (UINT, "TypeId"),
1099 (UINT, "ConstantBuffer"),
1100 (UINT, "BaseConstantBufferOffset"),
1101 (UINT, "BaseTexture"),
1102 (UINT, "BaseSampler"),
1103 (BOOL, "Created"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001104])
1105
1106
1107ID3D11ClassInstance.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001108 StdMethod(Void, "GetClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001109 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), "pDesc")], sideeffects=False),
1110 StdMethod(Void, "GetInstanceName", [Out(LPSTR, "pInstanceName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
1111 StdMethod(Void, "GetTypeName", [Out(LPSTR, "pTypeName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001112]
1113
1114ID3D11ClassLinkage.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001115 StdMethod(HRESULT, "GetClassInstance", [(LPCSTR, "pClassInstanceName"), (UINT, "InstanceIndex"), Out(Pointer(ObjPointer(ID3D11ClassInstance)), "ppInstance")]),
1116 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 +01001117]
1118
1119ID3D11CommandList.methods += [
José Fonseca2b807452012-11-10 09:50:10 +00001120 StdMethod(UINT, "GetContextFlags", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001121]
1122
José Fonsecaee590be2012-04-16 13:25:06 +01001123D3D11_FEATURE_DATA_THREADING = Struct("D3D11_FEATURE_DATA_THREADING", [
1124 (BOOL, "DriverConcurrentCreates"),
1125 (BOOL, "DriverCommandLists"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001126])
1127
José Fonsecaee590be2012-04-16 13:25:06 +01001128D3D11_FEATURE_DATA_DOUBLES = Struct("D3D11_FEATURE_DATA_DOUBLES", [
1129 (BOOL, "DoublePrecisionFloatShaderOps"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001130])
1131
José Fonsecaee590be2012-04-16 13:25:06 +01001132D3D11_FEATURE_DATA_FORMAT_SUPPORT = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT", [
1133 (DXGI_FORMAT, "InFormat"),
1134 (D3D11_FORMAT_SUPPORT, "OutFormatSupport"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001135])
1136
José Fonsecaee590be2012-04-16 13:25:06 +01001137D3D11_FEATURE_DATA_FORMAT_SUPPORT2 = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT2", [
1138 (DXGI_FORMAT, "InFormat"),
1139 (D3D11_FORMAT_SUPPORT2, "OutFormatSupport2"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001140])
1141
José Fonsecaee590be2012-04-16 13:25:06 +01001142D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS", [
1143 (BOOL, "ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001144])
1145
José Fonseca9a8d0cf2014-10-03 15:38:14 +01001146D3D11_FEATURE_DATA_D3D11_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS", [
1147 (BOOL, "OutputMergerLogicOp"),
1148 (BOOL, "UAVOnlyRenderingForcedSampleCount"),
1149 (BOOL, "DiscardAPIsSeenByDriver"),
1150 (BOOL, "FlagsForUpdateAndCopySeenByDriver"),
1151 (BOOL, "ClearView"),
1152 (BOOL, "CopyWithOverlap"),
1153 (BOOL, "ConstantBufferPartialUpdate"),
1154 (BOOL, "ConstantBufferOffsetting"),
1155 (BOOL, "MapNoOverwriteOnDynamicConstantBuffer"),
1156 (BOOL, "MapNoOverwriteOnDynamicBufferSRV"),
1157 (BOOL, "MultisampleRTVWithForcedSampleCountOne"),
1158 (BOOL, "SAD4ShaderInstructions"),
1159 (BOOL, "ExtendedDoublesShaderInstructions"),
1160 (BOOL, "ExtendedResourceSharing"),
1161])
1162
1163D3D11_FEATURE_DATA_ARCHITECTURE_INFO = Struct("D3D11_FEATURE_DATA_ARCHITECTURE_INFO", [
1164 (BOOL, "TileBasedDeferredRenderer"),
1165])
1166
1167D3D11_FEATURE_DATA_D3D9_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D9_OPTIONS", [
1168 (BOOL, "FullNonPow2TextureSupport"),
1169])
1170
1171D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT = Struct("D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT", [
1172 (BOOL, "SupportsDepthAsTextureWithLessEqualComparisonFilter"),
1173])
1174
1175D3D11_SHADER_MIN_PRECISION_SUPPORT = Enum("D3D11_SHADER_MIN_PRECISION_SUPPORT", [
1176 "D3D11_SHADER_MIN_PRECISION_10_BIT",
1177 "D3D11_SHADER_MIN_PRECISION_16_BIT",
1178])
1179
1180D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT = Struct("D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT", [
1181 (UINT, "PixelShaderMinPrecision"),
1182 (UINT, "AllOtherShaderStagesMinPrecision"),
1183])
1184
1185D3D11_TILED_RESOURCES_TIER = Enum("D3D11_TILED_RESOURCES_TIER", [
1186 "D3D11_TILED_RESOURCES_NOT_SUPPORTED",
1187 "D3D11_TILED_RESOURCES_TIER_1",
1188 "D3D11_TILED_RESOURCES_TIER_2",
1189])
1190
1191D3D11_FEATURE_DATA_D3D11_OPTIONS1 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS1", [
1192 (D3D11_TILED_RESOURCES_TIER, "TiledResourcesTier"),
1193 (BOOL, "MinMaxFiltering"),
1194 (BOOL, "ClearViewAlsoSupportsDepthOnlyFormats"),
1195 (BOOL, "MapOnDefaultBuffers"),
1196])
1197
1198D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT = Struct("D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT", [
1199 (BOOL, "SimpleInstancingSupported"),
1200])
1201
1202D3D11_FEATURE_DATA_MARKER_SUPPORT = Struct("D3D11_FEATURE_DATA_MARKER_SUPPORT", [
1203 (BOOL, "Profile"),
1204])
1205
1206D3D11_FEATURE_DATA_D3D9_OPTIONS1 = Struct("D3D11_FEATURE_DATA_D3D9_OPTIONS1", [
1207 (BOOL, "FullNonPow2TextureSupported"),
1208 (BOOL, "DepthAsTextureWithLessEqualComparisonFilterSupported"),
1209 (BOOL, "SimpleInstancingSupported"),
1210 (BOOL, "TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported"),
1211])
1212
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001213D3D11_CONSERVATIVE_RASTERIZATION_TIER = Enum("D3D11_CONSERVATIVE_RASTERIZATION_TIER", [
1214 "D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED",
1215 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_1",
1216 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_2",
1217 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_3",
1218])
1219
1220D3D11_FEATURE_DATA_D3D11_OPTIONS2 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS2", [
1221 (BOOL, "PSSpecifiedStencilRefSupported"),
1222 (BOOL, "TypedUAVLoadAdditionalFormats"),
1223 (BOOL, "ROVsSupported"),
1224 (D3D11_CONSERVATIVE_RASTERIZATION_TIER, "ConservativeRasterizationTier"),
1225 (D3D11_TILED_RESOURCES_TIER, "TiledResourcesTier"),
1226 (BOOL, "MapOnDefaultTextures"),
1227 (BOOL, "StandardSwizzle"),
1228 (BOOL, "UnifiedMemoryArchitecture"),
1229])
1230
1231D3D11_FEATURE_DATA_D3D11_OPTIONS3 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS3", [
1232 (BOOL, "VPAndRTArrayIndexFromAnyShaderFeedingRasterizer"),
1233])
1234
1235D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT = Struct("D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT", [
1236 (UINT, "MaxGPUVirtualAddressBitsPerResource"),
1237 (UINT, "MaxGPUVirtualAddressBitsPerProcess"),
1238])
1239
Jose Fonseca65113392017-09-26 16:46:11 +01001240D3D11_FEATURE_DATA_D3D11_OPTIONS4 = Struct('D3D11_FEATURE_DATA_D3D11_OPTIONS4', [
1241 (BOOL, 'ExtendedNV12SharedTextureSupported'),
1242])
1243
José Fonsecab95e3722012-04-16 14:01:15 +01001244D3D11_FEATURE, D3D11_FEATURE_DATA = EnumPolymorphic("D3D11_FEATURE", "Feature", [
1245 ("D3D11_FEATURE_THREADING", Pointer(D3D11_FEATURE_DATA_THREADING)),
1246 ("D3D11_FEATURE_DOUBLES", Pointer(D3D11_FEATURE_DATA_DOUBLES)),
1247 ("D3D11_FEATURE_FORMAT_SUPPORT", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT)),
1248 ("D3D11_FEATURE_FORMAT_SUPPORT2", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT2)),
1249 ("D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS)),
José Fonseca9a8d0cf2014-10-03 15:38:14 +01001250 ("D3D11_FEATURE_D3D11_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS)),
1251 ("D3D11_FEATURE_ARCHITECTURE_INFO", Pointer(D3D11_FEATURE_DATA_ARCHITECTURE_INFO)),
1252 ("D3D11_FEATURE_D3D9_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS)),
1253 ("D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT", Pointer(D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT)),
1254 ("D3D11_FEATURE_D3D9_SHADOW_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT)),
1255 ("D3D11_FEATURE_D3D11_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS1)),
1256 ("D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT)),
1257 ("D3D11_FEATURE_MARKER_SUPPORT", Pointer(D3D11_FEATURE_DATA_MARKER_SUPPORT)),
1258 ("D3D11_FEATURE_D3D9_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS1)),
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001259 ("D3D11_FEATURE_D3D11_OPTIONS2", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS2)),
1260 ("D3D11_FEATURE_D3D11_OPTIONS3", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS3)),
1261 ("D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT", Pointer(D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT)),
Jose Fonseca65113392017-09-26 16:46:11 +01001262 ("D3D11_FEATURE_D3D11_OPTIONS4", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS4)),
José Fonsecab95e3722012-04-16 14:01:15 +01001263], Blob(Void, "FeatureSupportDataSize"), False)
1264
José Fonseca5b6fb752012-04-14 14:56:45 +01001265ID3D11DeviceContext.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001266 StdMethod(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1267 StdMethod(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1268 StdMethod(Void, "PSSetShader", [(ObjPointer(ID3D11PixelShader), "pPixelShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1269 StdMethod(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1270 StdMethod(Void, "VSSetShader", [(ObjPointer(ID3D11VertexShader), "pVertexShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1271 StdMethod(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
1272 StdMethod(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
1273 StdMethod(HRESULT, "Map", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource"), (D3D11_MAP, "MapType"), (D3D11_MAP_FLAG, "MapFlags"), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), "pMappedResource")]),
1274 StdMethod(Void, "Unmap", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource")]),
1275 StdMethod(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1276 StdMethod(Void, "IASetInputLayout", [(ObjPointer(ID3D11InputLayout), "pInputLayout")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001277 StdMethod(Void, "IASetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppVertexBuffers"), (Array(Const(UINT), "NumBuffers"), "pStrides"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001278 StdMethod(Void, "IASetIndexBuffer", [(ObjPointer(ID3D11Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
1279 StdMethod(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
1280 StdMethod(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
1281 StdMethod(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1282 StdMethod(Void, "GSSetShader", [(ObjPointer(ID3D11GeometryShader), "pShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1283 StdMethod(Void, "IASetPrimitiveTopology", [(D3D11_PRIMITIVE_TOPOLOGY, "Topology")]),
1284 StdMethod(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1285 StdMethod(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1286 StdMethod(Void, "Begin", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
1287 StdMethod(Void, "End", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
Jose Fonseca60e65142017-06-09 13:06:32 +01001288 StdMethod(HRESULT, "GetData", [(ObjPointer(ID3D11Asynchronous), "pAsync"), Out(D3D11_QUERY_DATA, "pData"), (UINT, "DataSize"), (D3D11_ASYNC_GETDATA_FLAG, "GetDataFlags")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001289 StdMethod(Void, "SetPredication", [(ObjPointer(ID3D11Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
1290 StdMethod(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1291 StdMethod(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1292 StdMethod(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001293 StdMethod(Void, "OMSetRenderTargetsAndUnorderedAccessViews", [(UINT, "NumRTVs"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumRTVs"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (UINT, "UAVStartSlot"), (UINT, "NumUAVs"), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), "NumUAVs"), "ppUnorderedAccessViews"), (Array(Const(UINT), "NumUAVs"), "pUAVInitialCounts")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001294 StdMethod(Void, "OMSetBlendState", [(ObjPointer(ID3D11BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (UINT, "SampleMask")]),
1295 StdMethod(Void, "OMSetDepthStencilState", [(ObjPointer(ID3D11DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001296 StdMethod(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001297 StdMethod(Void, "DrawAuto", []),
1298 StdMethod(Void, "DrawIndexedInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1299 StdMethod(Void, "DrawInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1300 StdMethod(Void, "Dispatch", [(UINT, "ThreadGroupCountX"), (UINT, "ThreadGroupCountY"), (UINT, "ThreadGroupCountZ")]),
1301 StdMethod(Void, "DispatchIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1302 StdMethod(Void, "RSSetState", [(ObjPointer(ID3D11RasterizerState), "pRasterizerState")]),
1303 StdMethod(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D11_VIEWPORT), "NumViewports"), "pViewports")]),
1304 StdMethod(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D11_RECT), "NumRects"), "pRects")]),
1305 StdMethod(Void, "CopySubresourceRegion", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")]),
1306 StdMethod(Void, "CopyResource", [(ObjPointer(ID3D11Resource), "pDstResource"), (ObjPointer(ID3D11Resource), "pSrcResource")]),
José Fonsecacc9abd72012-11-08 10:47:18 +00001307 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 +01001308 StdMethod(Void, "CopyStructureCount", [(ObjPointer(ID3D11Buffer), "pDstBuffer"), (UINT, "DstAlignedByteOffset"), (ObjPointer(ID3D11UnorderedAccessView), "pSrcView")]),
1309 StdMethod(Void, "ClearRenderTargetView", [(ObjPointer(ID3D11RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
1310 StdMethod(Void, "ClearUnorderedAccessViewUint", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(UINT), 4), "Values")]),
1311 StdMethod(Void, "ClearUnorderedAccessViewFloat", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(FLOAT), 4), "Values")]),
1312 StdMethod(Void, "ClearDepthStencilView", [(ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (D3D11_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
1313 StdMethod(Void, "GenerateMips", [(ObjPointer(ID3D11ShaderResourceView), "pShaderResourceView")]),
1314 StdMethod(Void, "SetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource"), (FLOAT, "MinLOD")]),
José Fonseca2b807452012-11-10 09:50:10 +00001315 StdMethod(FLOAT, "GetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001316 StdMethod(Void, "ResolveSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
1317 StdMethod(Void, "ExecuteCommandList", [(ObjPointer(ID3D11CommandList), "pCommandList"), (BOOL, "RestoreContextState")]),
1318 StdMethod(Void, "HSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1319 StdMethod(Void, "HSSetShader", [(ObjPointer(ID3D11HullShader), "pHullShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1320 StdMethod(Void, "HSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1321 StdMethod(Void, "HSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1322 StdMethod(Void, "DSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1323 StdMethod(Void, "DSSetShader", [(ObjPointer(ID3D11DomainShader), "pDomainShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1324 StdMethod(Void, "DSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1325 StdMethod(Void, "DSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1326 StdMethod(Void, "CSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001327 StdMethod(Void, "CSSetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), "NumUAVs"), "ppUnorderedAccessViews"), (Array(Const(UINT), "NumUAVs"), "pUAVInitialCounts")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001328 StdMethod(Void, "CSSetShader", [(ObjPointer(ID3D11ComputeShader), "pComputeShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1329 StdMethod(Void, "CSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1330 StdMethod(Void, "CSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001331 StdMethod(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1332 StdMethod(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001333 StdMethod(Void, "PSGetShader", [Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001334 StdMethod(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001335 StdMethod(Void, "VSGetShader", [Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001336 StdMethod(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001337 StdMethod(Void, "IAGetInputLayout", [Out(Pointer(ObjPointer(ID3D11InputLayout)), "ppInputLayout")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001338 StdMethod(Void, "IAGetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppVertexBuffers"), Out(Array(UINT, "NumBuffers"), "pStrides"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001339 StdMethod(Void, "IAGetIndexBuffer", [Out(Pointer(ObjPointer(ID3D11Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001340 StdMethod(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001341 StdMethod(Void, "GSGetShader", [Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca2b807452012-11-10 09:50:10 +00001342 StdMethod(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), "pTopology")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001343 StdMethod(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1344 StdMethod(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001345 StdMethod(Void, "GetPredication", [Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001346 StdMethod(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1347 StdMethod(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1348 StdMethod(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(ObjPointer(ID3D11RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1349 StdMethod(Void, "OMGetRenderTargetsAndUnorderedAccessViews", [(UINT, "NumRTVs"), Out(Array(ObjPointer(ID3D11RenderTargetView), "NumRTVs"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView"), (UINT, "UAVStartSlot"), (UINT, "NumUAVs"), Out(Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001350 StdMethod(Void, "OMGetBlendState", [Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(UINT), "pSampleMask")]),
1351 StdMethod(Void, "OMGetDepthStencilState", [Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001352 StdMethod(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppSOTargets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001353 StdMethod(Void, "RSGetState", [Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
José Fonseca00b9aba2014-08-13 13:18:48 +01001354 StdMethod(Void, "RSGetViewports", [InOut(Pointer(UINT), "pNumViewports"), Out(Array(D3D11_VIEWPORT, "*pNumViewports"), "pViewports")], sideeffects=False),
1355 StdMethod(Void, "RSGetScissorRects", [InOut(Pointer(UINT), "pNumRects"), Out(Array(D3D11_RECT, "*pNumRects"), "pRects")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001356 StdMethod(Void, "HSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001357 StdMethod(Void, "HSGetShader", [Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001358 StdMethod(Void, "HSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1359 StdMethod(Void, "HSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1360 StdMethod(Void, "DSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001361 StdMethod(Void, "DSGetShader", [Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001362 StdMethod(Void, "DSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1363 StdMethod(Void, "DSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1364 StdMethod(Void, "CSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1365 StdMethod(Void, "CSGetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), Out(Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001366 StdMethod(Void, "CSGetShader", [Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader"), Out(Array(ObjPointer(ID3D11ClassInstance), "*pNumClassInstances"), "ppClassInstances"), InOut(Pointer(UINT), "pNumClassInstances")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001367 StdMethod(Void, "CSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1368 StdMethod(Void, "CSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001369 StdMethod(Void, "ClearState", []),
1370 StdMethod(Void, "Flush", []),
José Fonseca2b807452012-11-10 09:50:10 +00001371 StdMethod(D3D11_DEVICE_CONTEXT_TYPE, "GetType", [], sideeffects=False),
1372 StdMethod(UINT, "GetContextFlags", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001373 StdMethod(HRESULT, "FinishCommandList", [(BOOL, "RestoreDeferredContextState"), Out(Pointer(ObjPointer(ID3D11CommandList)), "ppCommandList")]),
José Fonseca5b6fb752012-04-14 14:56:45 +01001374]
1375
1376D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001377 "D3D11_CREATE_DEVICE_SINGLETHREADED",
1378 "D3D11_CREATE_DEVICE_DEBUG",
1379 "D3D11_CREATE_DEVICE_SWITCH_TO_REF",
1380 "D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS",
1381 "D3D11_CREATE_DEVICE_BGRA_SUPPORT",
José Fonseca40b82ca2015-02-07 22:55:49 +00001382 "D3D11_CREATE_DEVICE_DEBUGGABLE",
1383 "D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY",
1384 "D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT",
1385 "D3D11_CREATE_DEVICE_VIDEO_SUPPORT",
José Fonseca5b6fb752012-04-14 14:56:45 +01001386])
1387
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001388D3D_FEATURE_LEVEL = Enum("D3D_FEATURE_LEVEL", [
1389 "D3D_FEATURE_LEVEL_9_1",
1390 "D3D_FEATURE_LEVEL_9_2",
1391 "D3D_FEATURE_LEVEL_9_3",
1392 "D3D_FEATURE_LEVEL_10_0",
1393 "D3D_FEATURE_LEVEL_10_1",
1394 "D3D_FEATURE_LEVEL_11_0",
1395 "D3D_FEATURE_LEVEL_11_1",
1396])
1397
Jose Fonsecabf638b72017-12-06 22:46:34 +00001398D3D11_RASTERIZED_STREAM = FakeEnum(UINT, [
1399 "D3D11_SO_NO_RASTERIZED_STREAM",
1400])
1401
José Fonseca5b6fb752012-04-14 14:56:45 +01001402ID3D11Device.methods += [
Jose Fonsecaa9b61382015-06-10 22:04:45 +01001403 StdMethod(HRESULT, "CreateBuffer", [(Pointer(Const(D3D11_BUFFER_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), 1), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Buffer)), "ppBuffer")]),
José Fonseca8f6e0e32012-11-07 19:22:20 +00001404 StdMethod(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D11_TEXTURE1D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture1D)), "ppTexture1D")]),
1405 StdMethod(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D11_TEXTURE2D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D)), "ppTexture2D")]),
1406 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 +01001407 StdMethod(HRESULT, "CreateShaderResourceView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView)), "ppSRView")]),
1408 StdMethod(HRESULT, "CreateUnorderedAccessView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView)), "ppUAView")]),
1409 StdMethod(HRESULT, "CreateRenderTargetView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11RenderTargetView)), "ppRTView")]),
1410 StdMethod(HRESULT, "CreateDepthStencilView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1411 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")]),
1412 StdMethod(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader")]),
1413 StdMethod(HRESULT, "CreateGeometryShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader")]),
Jose Fonsecabf638b72017-12-06 22:46:34 +00001414 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"), (D3D11_RASTERIZED_STREAM, "RasterizedStream"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11GeometryShader)), "ppGeometryShader")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001415 StdMethod(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader")]),
1416 StdMethod(HRESULT, "CreateHullShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader")]),
1417 StdMethod(HRESULT, "CreateDomainShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader")]),
1418 StdMethod(HRESULT, "CreateComputeShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader")]),
1419 StdMethod(HRESULT, "CreateClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
1420 StdMethod(HRESULT, "CreateBlendState", [(Pointer(Const(D3D11_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState")]),
1421 StdMethod(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState")]),
1422 StdMethod(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D11_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
1423 StdMethod(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D11_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(ObjPointer(ID3D11SamplerState)), "ppSamplerState")]),
1424 StdMethod(HRESULT, "CreateQuery", [(Pointer(Const(D3D11_QUERY_DESC)), "pQueryDesc"), Out(Pointer(ObjPointer(ID3D11Query)), "ppQuery")]),
1425 StdMethod(HRESULT, "CreatePredicate", [(Pointer(Const(D3D11_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate")]),
1426 StdMethod(HRESULT, "CreateCounter", [(Pointer(Const(D3D11_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(ObjPointer(ID3D11Counter)), "ppCounter")]),
1427 StdMethod(HRESULT, "CreateDeferredContext", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppDeferredContext")]),
Jose Fonseca559b5f82015-07-17 16:58:50 +01001428 StdMethod(HRESULT, "OpenSharedResource", [(RAW_HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
José Fonsecae088e5c2012-11-16 20:05:54 +00001429 StdMethod(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_FORMAT_SUPPORT), "pFormatSupport")], sideeffects=False),
1430 StdMethod(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
1431 StdMethod(Void, "CheckCounterInfo", [Out(Pointer(D3D11_COUNTER_INFO), "pCounterInfo")], sideeffects=False),
José Fonsecabc10e452012-11-08 10:24:45 +00001432 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),
1433 StdMethod(HRESULT, "CheckFeatureSupport", [(D3D11_FEATURE, "Feature"), Out(D3D11_FEATURE_DATA, "pFeatureSupportData"), (UINT, "FeatureSupportDataSize")], sideeffects=False),
José Fonseca9eec9342014-10-03 22:24:50 +01001434 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), InOut(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
José Fonseca3be2c672015-02-06 15:36:40 +00001435 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001436 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonseca2b807452012-11-10 09:50:10 +00001437 StdMethod(D3D_FEATURE_LEVEL, "GetFeatureLevel", [], sideeffects=False),
1438 StdMethod(D3D11_CREATE_DEVICE_FLAG, "GetCreationFlags", [], sideeffects=False),
1439 StdMethod(HRESULT, "GetDeviceRemovedReason", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001440 StdMethod(Void, "GetImmediateContext", [Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
1441 StdMethod(HRESULT, "SetExceptionMode", [(D3D11_RAISE_FLAG, "RaiseFlags")]),
José Fonseca5c05fdb2014-08-13 13:19:32 +01001442 StdMethod(D3D11_RAISE_FLAG, "GetExceptionMode", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001443]
1444
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001445
1446D3D_DRIVER_TYPE = Enum("D3D_DRIVER_TYPE", [
1447 "D3D_DRIVER_TYPE_UNKNOWN",
1448 "D3D_DRIVER_TYPE_HARDWARE",
1449 "D3D_DRIVER_TYPE_REFERENCE",
1450 "D3D_DRIVER_TYPE_NULL",
1451 "D3D_DRIVER_TYPE_SOFTWARE",
1452 "D3D_DRIVER_TYPE_WARP",
1453])
1454
1455
José Fonseca81301932012-11-11 00:10:20 +00001456d3d11 = Module("d3d11")
José Fonseca5b6fb752012-04-14 14:56:45 +01001457
1458d3d11.addFunctions([
José Fonsecaee590be2012-04-16 13:25:06 +01001459 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")]),
1460 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é Fonseca5b6fb752012-04-14 14:56:45 +01001461])
1462
1463d3d11.addInterfaces([
José Fonseca5b6fb752012-04-14 14:56:45 +01001464 ID3D11Debug,
José Fonsecaf17f4642012-04-16 13:06:44 +01001465 ID3D11InfoQueue,
1466 ID3D11SwitchToRef,
José Fonseca5b6fb752012-04-14 14:56:45 +01001467])
José Fonsecafc58d052014-06-13 12:47:19 +01001468
José Fonseca50bee952015-02-07 22:32:19 +00001469
Jose Fonseca503fde92015-07-16 17:00:30 +01001470#
1471# D3D11 Video
1472#
1473
1474D3D11_VIDEO_DECODER_DESC = Struct("D3D11_VIDEO_DECODER_DESC", [
1475 (GUID, "Guid"),
1476 (UINT, "SampleWidth"),
1477 (UINT, "SampleHeight"),
1478 (DXGI_FORMAT, "OutputFormat"),
1479])
1480
1481D3D11_VIDEO_DECODER_CONFIG = Struct("D3D11_VIDEO_DECODER_CONFIG", [
1482 (GUID, "guidConfigBitstreamEncryption"),
1483 (GUID, "guidConfigMBcontrolEncryption"),
1484 (GUID, "guidConfigResidDiffEncryption"),
1485 (UINT, "ConfigBitstreamRaw"),
1486 (UINT, "ConfigMBcontrolRasterOrder"),
1487 (UINT, "ConfigResidDiffHost"),
1488 (UINT, "ConfigSpatialResid8"),
1489 (UINT, "ConfigResid8Subtraction"),
1490 (UINT, "ConfigSpatialHost8or9Clipping"),
1491 (UINT, "ConfigSpatialResidInterleaved"),
1492 (UINT, "ConfigIntraResidUnsigned"),
1493 (UINT, "ConfigResidDiffAccelerator"),
1494 (UINT, "ConfigHostInverseScan"),
1495 (UINT, "ConfigSpecificIDCT"),
1496 (UINT, "Config4GroupedCoefs"),
1497 (USHORT, "ConfigMinRenderTargetBuffCount"),
1498 (USHORT, "ConfigDecoderSpecific"),
1499])
1500
1501D3D11_VIDEO_DECODER_BUFFER_TYPE = Enum("D3D11_VIDEO_DECODER_BUFFER_TYPE", [
1502 "D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS",
1503 "D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL",
1504 "D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE",
1505 "D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL",
1506 "D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX",
1507 "D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL",
1508 "D3D11_VIDEO_DECODER_BUFFER_BITSTREAM",
1509 "D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR",
1510 "D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN",
1511])
1512
1513D3D11_AES_CTR_IV = Struct("D3D11_AES_CTR_IV", [
1514 (UINT64, "IV"),
1515 (UINT64, "Count"),
1516])
1517
1518D3D11_ENCRYPTED_BLOCK_INFO = Struct("D3D11_ENCRYPTED_BLOCK_INFO", [
1519 (UINT, "NumEncryptedBytesAtBeginning"),
1520 (UINT, "NumBytesInSkipPattern"),
1521 (UINT, "NumBytesInEncryptPattern"),
1522])
1523
1524D3D11_VIDEO_DECODER_BUFFER_DESC = Struct("D3D11_VIDEO_DECODER_BUFFER_DESC", [
1525 (D3D11_VIDEO_DECODER_BUFFER_TYPE, "BufferType"),
1526 (UINT, "BufferIndex"),
1527 (UINT, "DataOffset"),
1528 (UINT, "DataSize"),
1529 (UINT, "FirstMBaddress"),
1530 (UINT, "NumMBsInBuffer"),
1531 (UINT, "Width"),
1532 (UINT, "Height"),
1533 (UINT, "Stride"),
1534 (UINT, "ReservedBits"),
1535 (Blob(Void, "{self}.IVSize"), "pIV"),
1536 (UINT, "IVSize"),
1537 (BOOL, "PartialEncryption"),
1538 (D3D11_ENCRYPTED_BLOCK_INFO, "EncryptedBlockInfo"),
1539])
1540
1541D3D11_VIDEO_DECODER_EXTENSION = Struct("D3D11_VIDEO_DECODER_EXTENSION", [
1542 (UINT, "Function"),
1543 (Blob(Void, "{self}.PrivateInputDataSize"), "pPrivateInputData"),
1544 (UINT, "PrivateInputDataSize"),
1545 (Blob(Void, "{self}.PrivateOutputDataSize"), "pPrivateOutputData"),
1546 (UINT, "PrivateOutputDataSize"),
1547 (UINT, "ResourceCount"),
1548 (Array(ObjPointer(ID3D11Resource), "{self}.ResourceCount"), "ppResourceList"),
1549])
1550
1551ID3D11VideoDecoder = Interface("ID3D11VideoDecoder", ID3D11DeviceChild)
1552ID3D11VideoDecoder.methods += [
1553 StdMethod(HRESULT, "GetCreationParameters", [Out(Pointer(D3D11_VIDEO_DECODER_DESC), "pVideoDesc"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
1554 StdMethod(HRESULT, "GetDriverHandle", [Out(Pointer(HANDLE), "pDriverHandle")]),
1555]
1556
1557D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT = Flags(UINT, [
1558 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT",
1559 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT",
1560])
1561
1562D3D11_VIDEO_PROCESSOR_DEVICE_CAPS = Flags(UINT, [
1563 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE",
1564 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC",
1565 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION",
1566 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION",
1567 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE",
1568])
1569
1570D3D11_VIDEO_PROCESSOR_FEATURE_CAPS = Flags(UINT, [
1571 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL",
1572 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION",
1573 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY",
1574 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE",
1575 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY",
1576 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO",
1577 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION",
1578 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM",
1579 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001580 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR",
1581 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE",
Jose Fonseca503fde92015-07-16 17:00:30 +01001582])
1583
1584D3D11_VIDEO_PROCESSOR_FILTER_CAPS = Flags(UINT, [
1585 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS",
1586 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST",
1587 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE",
1588 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION",
1589 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION",
1590 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT",
1591 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING",
1592 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT",
1593])
1594
1595D3D11_VIDEO_PROCESSOR_FORMAT_CAPS = Flags(UINT, [
1596 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED",
1597 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP",
1598 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY",
1599 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED",
1600])
1601
1602D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS = Flags(UINT, [
1603 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE",
1604 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING",
1605 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT",
1606 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION",
1607 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING",
1608 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION",
1609 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION",
1610 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING",
1611])
1612
1613D3D11_VIDEO_PROCESSOR_STEREO_CAPS = Flags(UINT, [
1614 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET",
1615 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED",
1616 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED",
1617 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD",
1618 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE",
1619])
1620
1621D3D11_VIDEO_PROCESSOR_CAPS = Struct("D3D11_VIDEO_PROCESSOR_CAPS", [
1622 (D3D11_VIDEO_PROCESSOR_DEVICE_CAPS, "DeviceCaps"),
1623 (D3D11_VIDEO_PROCESSOR_FEATURE_CAPS, "FeatureCaps"),
1624 (D3D11_VIDEO_PROCESSOR_FILTER_CAPS, "FilterCaps"),
1625 (D3D11_VIDEO_PROCESSOR_FORMAT_CAPS, "InputFormatCaps"),
1626 (D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS, "AutoStreamCaps"),
1627 (D3D11_VIDEO_PROCESSOR_STEREO_CAPS, "StereoCaps"),
1628 (UINT, "RateConversionCapsCount"),
1629 (UINT, "MaxInputStreams"),
1630 (UINT, "MaxStreamStates"),
1631])
1632
1633D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS = Flags(UINT, [
1634 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND",
1635 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB",
1636 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE",
1637 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION",
1638 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE",
1639 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION",
1640])
1641
1642D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS = Flags(UINT, [
1643 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32",
1644 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22",
1645 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224",
1646 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332",
1647 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322",
1648 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55",
1649 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64",
1650 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87",
1651 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223",
1652 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER",
1653])
1654
1655D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS = Struct("D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS", [
1656 (UINT, "PastFrames"),
1657 (UINT, "FutureFrames"),
1658 (D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS, "ProcessorCaps"),
1659 (D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS, "ITelecineCaps"),
1660 (UINT, "CustomRateCount"),
1661])
1662
1663D3D11_CONTENT_PROTECTION_CAPS = Flags(UINT, [
1664 "D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE",
1665 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE",
1666 "D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON",
1667 "D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION",
1668 "D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY",
1669 "D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY",
1670 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK",
1671 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY",
1672 "D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV",
1673 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY",
1674 "D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001675 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED",
1676 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE",
1677 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN",
1678 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION",
Jose Fonseca503fde92015-07-16 17:00:30 +01001679])
1680
1681D3D11_VIDEO_CONTENT_PROTECTION_CAPS = Struct("D3D11_VIDEO_CONTENT_PROTECTION_CAPS", [
1682 (D3D11_CONTENT_PROTECTION_CAPS, "Caps"),
1683 (UINT, "KeyExchangeTypeCount"),
1684 (UINT, "BlockAlignmentSize"),
1685 (ULONGLONG, "ProtectedMemorySize"),
1686])
1687
1688D3D11_VIDEO_PROCESSOR_CUSTOM_RATE = Struct("D3D11_VIDEO_PROCESSOR_CUSTOM_RATE", [
1689 (DXGI_RATIONAL, "CustomRate"),
1690 (UINT, "OutputFrames"),
1691 (BOOL, "InputInterlaced"),
1692 (UINT, "InputFramesOrFields"),
1693])
1694
1695D3D11_VIDEO_PROCESSOR_FILTER = Enum("D3D11_VIDEO_PROCESSOR_FILTER", [
1696 "D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS",
1697 "D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST",
1698 "D3D11_VIDEO_PROCESSOR_FILTER_HUE",
1699 "D3D11_VIDEO_PROCESSOR_FILTER_SATURATION",
1700 "D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION",
1701 "D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT",
1702 "D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING",
1703 "D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT",
1704])
1705
1706D3D11_VIDEO_PROCESSOR_FILTER_RANGE = Struct("D3D11_VIDEO_PROCESSOR_FILTER_RANGE", [
1707 (Int, "Minimum"),
1708 (Int, "Maximum"),
1709 (Int, "Default"),
1710 (Float, "Multiplier"),
1711])
1712
1713D3D11_VIDEO_FRAME_FORMAT = Enum("D3D11_VIDEO_FRAME_FORMAT", [
1714 "D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE",
1715 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST",
1716 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST",
1717])
1718
1719D3D11_VIDEO_USAGE = Enum("D3D11_VIDEO_USAGE", [
1720 "D3D11_VIDEO_USAGE_PLAYBACK_NORMAL",
1721 "D3D11_VIDEO_USAGE_OPTIMAL_SPEED",
1722 "D3D11_VIDEO_USAGE_OPTIMAL_QUALITY",
1723])
1724
1725D3D11_VIDEO_PROCESSOR_CONTENT_DESC = Struct("D3D11_VIDEO_PROCESSOR_CONTENT_DESC", [
1726 (D3D11_VIDEO_FRAME_FORMAT, "InputFrameFormat"),
1727 (DXGI_RATIONAL, "InputFrameRate"),
1728 (UINT, "InputWidth"),
1729 (UINT, "InputHeight"),
1730 (DXGI_RATIONAL, "OutputFrameRate"),
1731 (UINT, "OutputWidth"),
1732 (UINT, "OutputHeight"),
1733 (D3D11_VIDEO_USAGE, "Usage"),
1734])
1735
1736ID3D11VideoProcessorEnumerator = Interface("ID3D11VideoProcessorEnumerator", ID3D11DeviceChild)
1737ID3D11VideoProcessorEnumerator.methods += [
1738 StdMethod(HRESULT, "GetVideoProcessorContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pContentDesc")], sideeffects=False),
1739 StdMethod(HRESULT, "CheckVideoProcessorFormat", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT), "pFlags")], sideeffects=False),
1740 StdMethod(HRESULT, "GetVideoProcessorCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CAPS), "pCaps")], sideeffects=False),
1741 StdMethod(HRESULT, "GetVideoProcessorRateConversionCaps", [(UINT, "TypeIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1742 StdMethod(HRESULT, "GetVideoProcessorCustomRate", [(UINT, "TypeIndex"), (UINT, "CustomRateIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_CUSTOM_RATE), "pRate")], sideeffects=False),
1743 StdMethod(HRESULT, "GetVideoProcessorFilterRange", [(D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FILTER_RANGE), "pRange")], sideeffects=False),
1744]
1745
1746D3D11_VIDEO_COLOR_RGBA = Struct("D3D11_VIDEO_COLOR_RGBA", [
1747 (Float, "R"),
1748 (Float, "G"),
1749 (Float, "B"),
1750 (Float, "A"),
1751])
1752
1753D3D11_VIDEO_COLOR_YCbCrA = Struct("D3D11_VIDEO_COLOR_YCbCrA", [
1754 (Float, "Y"),
1755 (Float, "Cb"),
1756 (Float, "Cr"),
1757 (Float, "A"),
1758])
1759
1760D3D11_VIDEO_COLOR = Struct("D3D11_VIDEO_COLOR", [
1761 (D3D11_VIDEO_COLOR_YCbCrA, "YCbCr"),
1762 #(D3D11_VIDEO_COLOR_RGBA, "RGBA"),
1763])
1764
1765D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE = FakeEnum(UINT, [
1766 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED",
1767 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235",
1768 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255",
1769])
1770
1771D3D11_VIDEO_PROCESSOR_COLOR_SPACE = Struct("D3D11_VIDEO_PROCESSOR_COLOR_SPACE", [
1772 (UINT, "Usage"),
1773 (UINT, "RGB_Range"),
1774 (UINT, "YCbCr_Matrix"),
1775 (UINT, "YCbCr_xvYCC"),
1776 (D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE, "Nominal_Range"),
1777 (UINT, "Reserved"),
1778])
1779
1780D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE = Enum("D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE", [
1781 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE",
1782 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND",
1783 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION",
1784 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM",
1785])
1786
1787D3D11_VIDEO_PROCESSOR_OUTPUT_RATE = Enum("D3D11_VIDEO_PROCESSOR_OUTPUT_RATE", [
1788 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL",
1789 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF",
1790 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM",
1791])
1792
1793D3D11_VIDEO_PROCESSOR_STEREO_FORMAT = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FORMAT", [
1794 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO",
1795 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL",
1796 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL",
1797 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE",
1798 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET",
1799 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED",
1800 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED",
1801 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD",
1802])
1803
1804D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE", [
1805 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE",
1806 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0",
1807 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1",
1808])
1809
1810D3D11_VIDEO_PROCESSOR_ROTATION = Enum("D3D11_VIDEO_PROCESSOR_ROTATION", [
1811 "D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY",
1812 "D3D11_VIDEO_PROCESSOR_ROTATION_90",
1813 "D3D11_VIDEO_PROCESSOR_ROTATION_180",
1814 "D3D11_VIDEO_PROCESSOR_ROTATION_270",
1815])
1816
1817ID3D11VideoProcessorInputView = Interface("ID3D11VideoProcessorInputView", ID3D11View)
1818
1819D3D11_VIDEO_PROCESSOR_STREAM = Struct("D3D11_VIDEO_PROCESSOR_STREAM", [
1820 (BOOL, "Enable"),
1821 (UINT, "OutputIndex"),
1822 (UINT, "InputFrameOrField"),
1823 (UINT, "PastFrames"),
1824 (UINT, "FutureFrames"),
1825 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfaces"),
1826 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurface"),
1827 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfaces"),
1828 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfacesRight"),
1829 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurfaceRight"),
1830 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfacesRight"),
1831])
1832
1833ID3D11VideoProcessor = Interface("ID3D11VideoProcessor", ID3D11DeviceChild)
1834ID3D11VideoProcessor.methods += [
1835 StdMethod(Void, "GetContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pDesc")], sideeffects=False),
1836 StdMethod(Void, "GetRateConversionCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1837]
1838
1839D3D11_OMAC = Struct("D3D11_OMAC", [
1840 (Array(BYTE, 16), "Omac"),
1841])
1842
1843D3D11_AUTHENTICATED_CHANNEL_TYPE = Enum("D3D11_AUTHENTICATED_CHANNEL_TYPE", [
1844 "D3D11_AUTHENTICATED_CHANNEL_D3D11",
1845 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE",
1846 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE",
1847])
1848
1849ID3D11AuthenticatedChannel = Interface("ID3D11AuthenticatedChannel", ID3D11DeviceChild)
1850ID3D11AuthenticatedChannel.methods += [
1851 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
1852 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Array(BYTE, "CertificateSize"), "pCertificate")], sideeffects=False),
1853 StdMethod(Void, "GetChannelHandle", [Out(Pointer(HANDLE), "pChannelHandle")]),
1854]
1855
1856D3D11_AUTHENTICATED_QUERY_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_INPUT", [
1857 (GUID, "QueryType"),
1858 (HANDLE, "hChannel"),
1859 (UINT, "SequenceNumber"),
1860])
1861
1862D3D11_AUTHENTICATED_QUERY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT", [
1863 (D3D11_OMAC, "omac"),
1864 (GUID, "QueryType"),
1865 (HANDLE, "hChannel"),
1866 (UINT, "SequenceNumber"),
1867 (HRESULT, "ReturnCode"),
1868])
1869
1870D3D11_AUTHENTICATED_PROTECTION_FLAGS = Struct("D3D11_AUTHENTICATED_PROTECTION_FLAGS", [
1871 (UINT, "ProtectionEnabled"),
1872 (UINT, "OverlayOrFullscreenRequired"),
1873 (UINT, "Reserved"),
1874])
1875
1876D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT", [
1877 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1878 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "ProtectionFlags"),
1879])
1880
1881D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT", [
1882 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1883 (D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"),
1884])
1885
1886D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT", [
1887 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1888 (HANDLE, "DeviceHandle"),
1889])
1890
1891D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT", [
1892 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1893 (HANDLE, "DecoderHandle"),
1894])
1895
1896D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT", [
1897 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1898 (HANDLE, "DecoderHandle"),
1899 (HANDLE, "CryptoSessionHandle"),
1900 (HANDLE, "DeviceHandle"),
1901])
1902
1903D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT", [
1904 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1905 (UINT, "RestrictedSharedResourceProcessCount"),
1906])
1907
1908D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT", [
1909 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1910 (UINT, "ProcessIndex"),
1911])
1912
1913D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE = Enum("D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE", [
1914 "D3D11_PROCESSIDTYPE_UNKNOWN",
1915 "D3D11_PROCESSIDTYPE_DWM",
1916 "D3D11_PROCESSIDTYPE_HANDLE",
1917])
1918
1919D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT", [
1920 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1921 (UINT, "ProcessIndex"),
1922 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessIdentifier"),
1923 (HANDLE, "ProcessHandle"),
1924])
1925
1926D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT", [
1927 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1928 (UINT, "UnrestrictedProtectedSharedResourceCount"),
1929])
1930
1931D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT", [
1932 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1933 (HANDLE, "DeviceHandle"),
1934 (HANDLE, "CryptoSessionHandle"),
1935])
1936
1937D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT", [
1938 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1939 (HANDLE, "DeviceHandle"),
1940 (HANDLE, "CryptoSessionHandle"),
1941 (UINT, "OutputIDCount"),
1942])
1943
1944D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT", [
1945 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1946 (HANDLE, "DeviceHandle"),
1947 (HANDLE, "CryptoSessionHandle"),
1948 (UINT, "OutputIDIndex"),
1949])
1950
1951D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT", [
1952 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1953 (HANDLE, "DeviceHandle"),
1954 (HANDLE, "CryptoSessionHandle"),
1955 (UINT, "OutputIDIndex"),
1956 (UINT64, "OutputID"),
1957])
1958
1959D3D11_BUS_TYPE = Enum("D3D11_BUS_TYPE", [
1960 "D3D11_BUS_TYPE_OTHER",
1961 "D3D11_BUS_TYPE_PCI",
1962 "D3D11_BUS_TYPE_PCIX",
1963 "D3D11_BUS_TYPE_AGP",
1964 "D3D11_BUS_TYPE_PCIEXPRESS",
1965 # XXX: Flags
1966 "D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET",
1967 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP",
1968 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET",
1969 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR",
1970 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE",
1971 "D3D11_BUS_IMPL_MODIFIER_NON_STANDARD",
1972])
1973
1974D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT", [
1975 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1976 (D3D11_BUS_TYPE, "BusType"),
1977 (BOOL, "AccessibleInContiguousBlocks"),
1978 (BOOL, "AccessibleInNonContiguousBlocks"),
1979])
1980
1981D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT", [
1982 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1983 (UINT, "EncryptionGuidCount"),
1984])
1985
1986D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT", [
1987 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1988 (UINT, "EncryptionGuidIndex"),
1989])
1990
1991D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT", [
1992 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1993 (UINT, "EncryptionGuidIndex"),
1994 (GUID, "EncryptionGuid"),
1995])
1996
1997D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT", [
1998 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1999 (GUID, "EncryptionGuid"),
2000])
2001
2002D3D11_AUTHENTICATED_CONFIGURE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INPUT", [
2003 (D3D11_OMAC, "omac"),
2004 (GUID, "ConfigureType"),
2005 (HANDLE, "hChannel"),
2006 (UINT, "SequenceNumber"),
2007])
2008
2009D3D11_AUTHENTICATED_CONFIGURE_OUTPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_OUTPUT", [
2010 (D3D11_OMAC, "omac"),
2011 (GUID, "ConfigureType"),
2012 (HANDLE, "hChannel"),
2013 (UINT, "SequenceNumber"),
2014 (HRESULT, "ReturnCode"),
2015])
2016
2017D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT", [
2018 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2019 (UINT, "StartSequenceQuery"),
2020 (UINT, "StartSequenceConfigure"),
2021])
2022
2023D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT", [
2024 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2025 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "Protections"),
2026])
2027
2028D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT", [
2029 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2030 (HANDLE, "DecoderHandle"),
2031 (HANDLE, "CryptoSessionHandle"),
2032 (HANDLE, "DeviceHandle"),
2033])
2034
2035D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT", [
2036 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2037 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessType"),
2038 (HANDLE, "ProcessHandle"),
2039 (BOOL, "AllowAccess"),
2040])
2041
2042D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT", [
2043 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2044 (GUID, "EncryptionGuid"),
2045])
2046
2047ID3D11CryptoSession = Interface("ID3D11CryptoSession", ID3D11DeviceChild)
2048ID3D11CryptoSession.methods += [
2049 StdMethod(Void, "GetCryptoType", [Out(Pointer(GUID), "pCryptoType")], sideeffects=False),
2050 StdMethod(Void, "GetDecoderProfile", [Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2051 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
2052 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Pointer(BYTE), "pCertificate")], sideeffects=False),
2053 StdMethod(Void, "GetCryptoSessionHandle", [Out(Pointer(HANDLE), "pCryptoSessionHandle")]),
2054]
2055
2056D3D11_VDOV_DIMENSION = Enum("D3D11_VDOV_DIMENSION", [
2057 "D3D11_VDOV_DIMENSION_UNKNOWN",
2058 "D3D11_VDOV_DIMENSION_TEXTURE2D",
2059])
2060
2061D3D11_TEX2D_VDOV = Struct("D3D11_TEX2D_VDOV", [
2062 (UINT, "ArraySlice"),
2063])
2064
2065D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC", [
2066 (GUID, "DecodeProfile"),
2067 (D3D11_VDOV_DIMENSION, "ViewDimension"),
2068 (Union("{self}.ViewDimension", [
2069 ("D3D11_VDOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VDOV, "Texture2D"),
2070 ]), None),
2071])
2072
2073ID3D11VideoDecoderOutputView = Interface("ID3D11VideoDecoderOutputView", ID3D11View)
2074ID3D11VideoDecoderOutputView.methods += [
2075 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2076]
2077
2078D3D11_VPIV_DIMENSION = Enum("D3D11_VPIV_DIMENSION", [
2079 "D3D11_VPIV_DIMENSION_UNKNOWN",
2080 "D3D11_VPIV_DIMENSION_TEXTURE2D",
2081])
2082
2083D3D11_TEX2D_VPIV = Struct("D3D11_TEX2D_VPIV", [
2084 (UINT, "MipSlice"),
2085 (UINT, "ArraySlice"),
2086])
2087
2088D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC", [
2089 (UINT, "FourCC"),
2090 (D3D11_VPIV_DIMENSION, "ViewDimension"),
2091 (Union("{self}.ViewDimension", [
2092 ("D3D11_VPIV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPIV, "Texture2D"),
2093 ]), None),
2094])
2095
2096ID3D11VideoProcessorInputView.methods += [
2097 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2098]
2099
2100D3D11_VPOV_DIMENSION = Enum("D3D11_VPOV_DIMENSION", [
2101 "D3D11_VPOV_DIMENSION_UNKNOWN",
2102 "D3D11_VPOV_DIMENSION_TEXTURE2D",
2103 "D3D11_VPOV_DIMENSION_TEXTURE2DARRAY",
2104])
2105
2106D3D11_TEX2D_VPOV = Struct("D3D11_TEX2D_VPOV", [
2107 (UINT, "MipSlice"),
2108])
2109
2110D3D11_TEX2D_ARRAY_VPOV = Struct("D3D11_TEX2D_ARRAY_VPOV", [
2111 (UINT, "MipSlice"),
2112 (UINT, "FirstArraySlice"),
2113 (UINT, "ArraySize"),
2114])
2115
2116D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC", [
2117 (D3D11_VPOV_DIMENSION, "ViewDimension"),
2118 (Union("{self}.ViewDimension", [
2119 ("D3D11_VPOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPOV, "Texture2D"),
2120 ("D3D11_VPOV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_VPOV, "Texture2DArray"),
2121 ]), None),
2122])
2123
2124ID3D11VideoProcessorOutputView = Interface("ID3D11VideoProcessorOutputView", ID3D11View)
2125ID3D11VideoProcessorOutputView.methods += [
2126 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2127]
2128
2129ID3D11VideoContext = Interface("ID3D11VideoContext", ID3D11DeviceChild)
2130ID3D11VideoContext.methods += [
Jose Fonseca91403b62016-05-19 15:10:03 +01002131 StdMethod(HRESULT, "GetDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type"), Out(Pointer(UINT), "pBufferSize"), Out(Pointer(LinearPointer(Void, "*pBufferSize")), "ppBuffer")]),
Jose Fonseca503fde92015-07-16 17:00:30 +01002132 StdMethod(HRESULT, "ReleaseDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type")]),
2133 StdMethod(HRESULT, "DecoderBeginFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (ObjPointer(ID3D11VideoDecoderOutputView), "pView"), (UINT, "ContentKeySize"), (Blob(Const(Void), "ContentKeySize"), "pContentKey")]),
2134 StdMethod(HRESULT, "DecoderEndFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder")]),
Jose Fonseca91403b62016-05-19 15:10:03 +01002135 StdMethod(HRESULT, "SubmitDecoderBuffers", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (UINT, "NumBuffers"), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC), "NumBuffers"), "pBufferDesc")]),
Jose Fonseca503fde92015-07-16 17:00:30 +01002136 StdMethod(HRESULT, "DecoderExtension", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (Pointer(Const(D3D11_VIDEO_DECODER_EXTENSION)), "pExtensionData")]),
2137 StdMethod(Void, "VideoProcessorSetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2138 StdMethod(Void, "VideoProcessorSetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "YCbCr"), (Pointer(Const(D3D11_VIDEO_COLOR)), "pColor")]),
2139 StdMethod(Void, "VideoProcessorSetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2140 StdMethod(Void, "VideoProcessorSetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE, "AlphaFillMode"), (UINT, "StreamIndex")]),
2141 StdMethod(Void, "VideoProcessorSetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (SIZE, "Size")]),
2142 StdMethod(Void, "VideoProcessorSetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable")]),
2143 StdMethod(HRESULT, "VideoProcessorSetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2144 StdMethod(Void, "VideoProcessorGetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "Enabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2145 StdMethod(Void, "VideoProcessorGetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pYCbCr"), Out(Pointer(D3D11_VIDEO_COLOR), "pColor")], sideeffects=False),
2146 StdMethod(Void, "VideoProcessorGetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2147 StdMethod(Void, "VideoProcessorGetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE), "pAlphaFillMode"), Out(Pointer(UINT), "pStreamIndex")], sideeffects=False),
2148 StdMethod(Void, "VideoProcessorGetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(SIZE), "pSize")], sideeffects=False),
2149 StdMethod(Void, "VideoProcessorGetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2150 StdMethod(HRESULT, "VideoProcessorGetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False),
2151 StdMethod(Void, "VideoProcessorSetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_FRAME_FORMAT, "FrameFormat")]),
2152 StdMethod(Void, "VideoProcessorSetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2153 StdMethod(Void, "VideoProcessorSetStreamOutputRate", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE, "OutputRate"), (BOOL, "RepeatFrame"), (Pointer(Const(DXGI_RATIONAL)), "pCustomRate")]),
2154 StdMethod(Void, "VideoProcessorSetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2155 StdMethod(Void, "VideoProcessorSetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2156 StdMethod(Void, "VideoProcessorSetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Alpha")]),
2157 StdMethod(Void, "VideoProcessorSetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), (Pointer(Const(UINT)), "pEntries")]),
2158 StdMethod(Void, "VideoProcessorSetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(DXGI_RATIONAL)), "pSourceAspectRatio"), (Pointer(Const(DXGI_RATIONAL)), "pDestinationAspectRatio")]),
2159 StdMethod(Void, "VideoProcessorSetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Lower"), (FLOAT, "Upper")]),
2160 StdMethod(Void, "VideoProcessorSetStreamStereoFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (D3D11_VIDEO_PROCESSOR_STEREO_FORMAT, "Format"), (BOOL, "LeftViewFrame0"), (BOOL, "BaseViewFrame0"), (D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE, "FlipMode"), (Int, "MonoOffset")]),
2161 StdMethod(Void, "VideoProcessorSetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable")]),
2162 StdMethod(Void, "VideoProcessorSetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), (BOOL, "Enable"), (Int, "Level")]),
2163 StdMethod(HRESULT, "VideoProcessorSetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2164 StdMethod(Void, "VideoProcessorGetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_FRAME_FORMAT), "pFrameFormat")], sideeffects=False),
2165 StdMethod(Void, "VideoProcessorGetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2166 StdMethod(Void, "VideoProcessorGetStreamOutputRate", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_OUTPUT_RATE), "pOutputRate"), Out(Pointer(BOOL), "pRepeatFrame"), Out(Pointer(DXGI_RATIONAL), "pCustomRate")], sideeffects=False),
2167 StdMethod(Void, "VideoProcessorGetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2168 StdMethod(Void, "VideoProcessorGetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2169 StdMethod(Void, "VideoProcessorGetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pAlpha")], sideeffects=False),
2170 StdMethod(Void, "VideoProcessorGetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), Out(Array(UINT, "Count"), "pEntries")], sideeffects=False),
2171 StdMethod(Void, "VideoProcessorGetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(DXGI_RATIONAL), "pSourceAspectRatio"), Out(Pointer(DXGI_RATIONAL), "pDestinationAspectRatio")], sideeffects=False),
2172 StdMethod(Void, "VideoProcessorGetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pLower"), Out(Pointer(FLOAT), "pUpper")], sideeffects=False),
2173 StdMethod(Void, "VideoProcessorGetStreamStereoFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnable"), Out(Pointer(D3D11_VIDEO_PROCESSOR_STEREO_FORMAT), "pFormat"), Out(Pointer(BOOL), "pLeftViewFrame0"), Out(Pointer(BOOL), "pBaseViewFrame0"), Out(Pointer(D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE), "pFlipMode"), Out(Pointer(Int), "MonoOffset")], sideeffects=False),
2174 StdMethod(Void, "VideoProcessorGetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2175 StdMethod(Void, "VideoProcessorGetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(Int), "pLevel")], sideeffects=False),
2176 StdMethod(HRESULT, "VideoProcessorGetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2177 StdMethod(HRESULT, "VideoProcessorBlt", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (ObjPointer(ID3D11VideoProcessorOutputView), "pView"), (UINT, "OutputFrame"), (UINT, "StreamCount"), (Array(Const(D3D11_VIDEO_PROCESSOR_STREAM), "StreamCount"), "pStreams")]),
2178 StdMethod(HRESULT, "NegotiateCryptoSessionKeyExchange", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2179 StdMethod(Void, "EncryptionBlt", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (ObjPointer(ID3D11Texture2D), "pSrcSurface"), (ObjPointer(ID3D11Texture2D), "pDstSurface"), (UINT, "IVSize"), Out(OpaqueBlob(Void, "IVSize"), "pIV")], sideeffects=False), # FIXME
2180 StdMethod(Void, "DecryptionBlt", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (ObjPointer(ID3D11Texture2D), "pSrcSurface"), (ObjPointer(ID3D11Texture2D), "pDstSurface"), (Pointer(D3D11_ENCRYPTED_BLOCK_INFO), "pEncryptedBlockInfo"), (UINT, "ContentKeySize"), (Blob(Const(Void), "ContentKeySize"), "pContentKey"), (UINT, "IVSize"), Out(OpaqueBlob(Void, "IVSize"), "pIV")], sideeffects=False), # FIXME
2181 StdMethod(Void, "StartSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "RandomNumberSize"), Out(OpaqueBlob(Void, "RandomNumberSize"), "pRandomNumber")], sideeffects=False), # FIXME
2182 StdMethod(Void, "FinishSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession")]),
2183 StdMethod(HRESULT, "GetEncryptionBltKey", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "KeySize"), Out(OpaqueBlob(Void, "KeySize"), "pReadbackKey")], sideeffects=False), # FIXME
2184 StdMethod(HRESULT, "NegotiateAuthenticatedChannelKeyExchange", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2185 StdMethod(HRESULT, "QueryAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), (UINT, "OutputSize"), Out(OpaqueBlob(Void, "OutputSize"), "pOutput")], sideeffects=False), # FIXME
2186 StdMethod(HRESULT, "ConfigureAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), Out(Pointer(D3D11_AUTHENTICATED_CONFIGURE_OUTPUT), "pOutput")]),
2187 StdMethod(Void, "VideoProcessorSetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (D3D11_VIDEO_PROCESSOR_ROTATION, "Rotation")]),
2188 StdMethod(Void, "VideoProcessorGetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnable"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ROTATION), "pRotation")], sideeffects=False),
2189]
2190
2191ID3D11VideoDevice = Interface("ID3D11VideoDevice", IUnknown)
2192ID3D11VideoDevice.methods += [
2193 StdMethod(HRESULT, "CreateVideoDecoder", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pVideoDesc"), (Pointer(Const(D3D11_VIDEO_DECODER_CONFIG)), "pConfig"), Out(Pointer(ObjPointer(ID3D11VideoDecoder)), "ppDecoder")]),
2194 StdMethod(HRESULT, "CreateVideoProcessor", [(ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (UINT, "RateConversionIndex"), Out(Pointer(ObjPointer(ID3D11VideoProcessor)), "ppVideoProcessor")]),
2195 StdMethod(HRESULT, "CreateAuthenticatedChannel", [(D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"), Out(Pointer(ObjPointer(ID3D11AuthenticatedChannel)), "ppAuthenticatedChannel")]),
2196 StdMethod(HRESULT, "CreateCryptoSession", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), (Pointer(Const(GUID)), "pKeyExchangeType"), (Pointer(ObjPointer(ID3D11CryptoSession)), "ppCryptoSession")]),
2197 StdMethod(HRESULT, "CreateVideoDecoderOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoDecoderOutputView)), "ppVDOVView")]),
2198 StdMethod(HRESULT, "CreateVideoProcessorInputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorInputView)), "ppVPIView")]),
2199 StdMethod(HRESULT, "CreateVideoProcessorOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorOutputView)), "ppVPOView")]),
2200 StdMethod(HRESULT, "CreateVideoProcessorEnumerator", [(Pointer(Const(D3D11_VIDEO_PROCESSOR_CONTENT_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorEnumerator)), "ppEnum")]),
2201 StdMethod(UINT, "GetVideoDecoderProfileCount", [], sideeffects=False),
2202 StdMethod(HRESULT, "GetVideoDecoderProfile", [(UINT, "Index"), Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2203 StdMethod(HRESULT, "CheckVideoDecoderFormat", [(Pointer(Const(GUID)), "pDecoderProfile"), (DXGI_FORMAT, "Format"), Out(Pointer(BOOL), "pSupported")], sideeffects=False),
2204 StdMethod(HRESULT, "GetVideoDecoderConfigCount", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), Out(Pointer(UINT), "pCount")]),
2205 StdMethod(HRESULT, "GetVideoDecoderConfig", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), (UINT, "Index"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
2206 StdMethod(HRESULT, "GetContentProtectionCaps", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), Out(Pointer(D3D11_VIDEO_CONTENT_PROTECTION_CAPS), "pCaps")], sideeffects=False),
2207 StdMethod(HRESULT, "CheckCryptoKeyExchange", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), (UINT, "Index"), Out(Pointer(GUID), "pKeyExchangeType")]),
2208 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
2209 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
2210]
2211
2212d3d11.addInterfaces([
2213 ID3D11VideoContext,
2214 ID3D11VideoDevice,
2215])
2216
2217
José Fonseca50bee952015-02-07 22:32:19 +00002218
2219#
2220# D3D11.1
2221#
2222
José Fonseca50bee952015-02-07 22:32:19 +00002223D3D_MIN_PRECISION = Enum("D3D_MIN_PRECISION", [
2224 "D3D_MIN_PRECISION_DEFAULT",
2225 "D3D_MIN_PRECISION_FLOAT_16",
2226 "D3D_MIN_PRECISION_FLOAT_2_8",
2227 "D3D_MIN_PRECISION_RESERVED",
2228 "D3D_MIN_PRECISION_SINT_16",
2229 "D3D_MIN_PRECISION_UINT_16",
2230 "D3D_MIN_PRECISION_ANY_16",
2231 "D3D_MIN_PRECISION_ANY_10",
2232])
2233
Jose Fonsecaf0009142017-10-12 14:19:26 +01002234D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK = Struct('D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK', [
2235 (UINT, 'ClearSize'),
2236 (UINT, 'EncryptedSize'),
2237])
2238
2239D3D11_VIDEO_DECODER_BUFFER_DESC1 = Struct('D3D11_VIDEO_DECODER_BUFFER_DESC1', [
2240 (D3D11_VIDEO_DECODER_BUFFER_TYPE, 'BufferType'),
2241 (UINT, 'DataOffset'),
2242 (UINT, 'DataSize'),
2243 (Blob(Void, "{self}.IVSize"), "pIV"),
2244 (UINT, 'IVSize'),
2245 (Pointer(D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK), 'pSubSampleMappingBlock'),
2246 (UINT, 'SubSampleMappingCount'),
2247])
2248
2249D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION = Struct('D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION', [
2250 (Pointer(ID3D11CryptoSession), 'pCryptoSession'),
2251 (UINT, 'BlobSize'),
2252 (Blob(Void, '{self}.BlobSize'), 'pBlob'),
2253 (Pointer(GUID), 'pKeyInfoId'),
2254 (UINT, 'PrivateDataSize'),
2255 (Blob(Void, '{self}.PrivateDataSize'), 'pPrivateData'),
2256])
2257
2258D3D11_VIDEO_DECODER_CAPS = Enum('D3D11_VIDEO_DECODER_CAPS', [
2259 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE',
2260 'D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME',
2261 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC',
2262 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED',
2263 'D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED',
2264])
2265
2266D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS = Enum('D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS', [
2267 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION',
2268 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE',
2269 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION',
2270 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT',
2271])
2272
2273D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT = Struct('D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT', [
2274 (BOOL, 'Enable'),
2275 (UINT, 'Width'),
2276 (UINT, 'Height'),
2277 (DXGI_FORMAT, 'Format'),
2278])
2279
2280D3D11_CRYPTO_SESSION_STATUS = Enum('D3D11_CRYPTO_SESSION_STATUS', [
2281 'D3D11_CRYPTO_SESSION_STATUS_OK',
2282 'D3D11_CRYPTO_SESSION_STATUS_KEY_LOST',
2283 'D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST',
2284])
2285
2286D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA', [
2287 (UINT, 'PrivateDataSize'),
2288 (UINT, 'HWProtectionDataSize'),
2289 (Array(BYTE, 4), 'pbInput'),
2290])
2291
2292D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA', [
2293 (UINT, 'PrivateDataSize'),
2294 (UINT, 'MaxHWProtectionDataSize'),
2295 (UINT, 'HWProtectionDataSize'),
2296 (UINT64, 'TransportTime'),
2297 (UINT64, 'ExecutionTime'),
2298 (Array(BYTE, 4), 'pbOutput'),
2299])
2300
2301D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA', [
2302 (UINT, 'HWProtectionFunctionID'),
2303 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA), 'pInputData'),
2304 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA), 'pOutputData'),
2305 (HRESULT, 'Status'),
2306])
2307
2308D3D11_VIDEO_SAMPLE_DESC = Struct('D3D11_VIDEO_SAMPLE_DESC', [
2309 (UINT, 'Width'),
2310 (UINT, 'Height'),
2311 (DXGI_FORMAT, 'Format'),
2312 (DXGI_COLOR_SPACE_TYPE, 'ColorSpace'),
2313])
2314
José Fonseca50bee952015-02-07 22:32:19 +00002315ID3D11BlendState1 = Interface("ID3D11BlendState1", ID3D11BlendState)
2316ID3D11RasterizerState1 = Interface("ID3D11RasterizerState1", ID3D11RasterizerState)
2317ID3DDeviceContextState = Interface("ID3DDeviceContextState", ID3D11DeviceChild)
2318ID3D11DeviceContext1 = Interface("ID3D11DeviceContext1", ID3D11DeviceContext)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002319ID3D11VideoContext1 = Interface('ID3D11VideoContext1', ID3D11VideoContext)
2320ID3D11VideoDevice1 = Interface('ID3D11VideoDevice1', ID3D11VideoDevice)
2321ID3D11VideoProcessorEnumerator1 = Interface('ID3D11VideoProcessorEnumerator1', ID3D11VideoProcessorEnumerator)
José Fonseca50bee952015-02-07 22:32:19 +00002322ID3D11Device1 = Interface("ID3D11Device1", ID3D11Device)
2323ID3DUserDefinedAnnotation = Interface("ID3DUserDefinedAnnotation", IUnknown)
2324
José Fonseca50bee952015-02-07 22:32:19 +00002325D3D11_COPY_FLAGS = Flags(UINT, [
2326 "D3D11_COPY_NO_OVERWRITE",
2327 "D3D11_COPY_DISCARD",
2328])
2329
2330D3D11_LOGIC_OP = Enum("D3D11_LOGIC_OP", [
2331 "D3D11_LOGIC_OP_CLEAR",
2332 "D3D11_LOGIC_OP_SET",
2333 "D3D11_LOGIC_OP_COPY",
2334 "D3D11_LOGIC_OP_COPY_INVERTED",
2335 "D3D11_LOGIC_OP_NOOP",
2336 "D3D11_LOGIC_OP_INVERT",
2337 "D3D11_LOGIC_OP_AND",
2338 "D3D11_LOGIC_OP_NAND",
2339 "D3D11_LOGIC_OP_OR",
2340 "D3D11_LOGIC_OP_NOR",
2341 "D3D11_LOGIC_OP_XOR",
2342 "D3D11_LOGIC_OP_EQUIV",
2343 "D3D11_LOGIC_OP_AND_REVERSE",
2344 "D3D11_LOGIC_OP_AND_INVERTED",
2345 "D3D11_LOGIC_OP_OR_REVERSE",
2346 "D3D11_LOGIC_OP_OR_INVERTED",
2347])
2348
2349D3D11_RENDER_TARGET_BLEND_DESC1 = Struct("D3D11_RENDER_TARGET_BLEND_DESC1", [
2350 (BOOL, "BlendEnable"),
2351 (BOOL, "LogicOpEnable"),
2352 (D3D11_BLEND, "SrcBlend"),
2353 (D3D11_BLEND, "DestBlend"),
2354 (D3D11_BLEND_OP, "BlendOp"),
2355 (D3D11_BLEND, "SrcBlendAlpha"),
2356 (D3D11_BLEND, "DestBlendAlpha"),
2357 (D3D11_BLEND_OP, "BlendOpAlpha"),
2358 (D3D11_LOGIC_OP, "LogicOp"),
2359 (UINT8, "RenderTargetWriteMask"),
2360])
2361
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002362D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8
2363
José Fonseca50bee952015-02-07 22:32:19 +00002364D3D11_BLEND_DESC1 = Struct("D3D11_BLEND_DESC1", [
2365 (BOOL, "AlphaToCoverageEnable"),
2366 (BOOL, "IndependentBlendEnable"),
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002367 (Array(D3D11_RENDER_TARGET_BLEND_DESC1, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT), "RenderTarget"),
José Fonseca50bee952015-02-07 22:32:19 +00002368])
2369
2370ID3D11BlendState1.methods += [
2371 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_BLEND_DESC1), "pDesc")], sideeffects=False),
2372]
2373
2374D3D11_RASTERIZER_DESC1 = Struct("D3D11_RASTERIZER_DESC1", [
2375 (D3D11_FILL_MODE, "FillMode"),
2376 (D3D11_CULL_MODE, "CullMode"),
2377 (BOOL, "FrontCounterClockwise"),
2378 (INT, "DepthBias"),
2379 (FLOAT, "DepthBiasClamp"),
2380 (FLOAT, "SlopeScaledDepthBias"),
2381 (BOOL, "DepthClipEnable"),
2382 (BOOL, "ScissorEnable"),
2383 (BOOL, "MultisampleEnable"),
2384 (BOOL, "AntialiasedLineEnable"),
2385 (UINT, "ForcedSampleCount"),
2386])
2387
2388ID3D11RasterizerState1.methods += [
2389 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RASTERIZER_DESC1), "pDesc")], sideeffects=False),
2390]
2391
2392D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG = Flags(UINT, [
2393 "D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED",
2394])
2395
2396ID3D11DeviceContext1.methods += [
2397 StdMethod(Void, "CopySubresourceRegion1", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox"), (D3D11_COPY_FLAGS, "CopyFlags")]),
2398 StdMethod(Void, "UpdateSubresource1", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D11_BOX)), "pDstBox"), (Blob(Const(Void), "_calcSubresourceSize(pDstResource, DstSubresource, pDstBox, SrcRowPitch, SrcDepthPitch)"), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch"), (D3D11_COPY_FLAGS, "CopyFlags")]),
2399 StdMethod(Void, "DiscardResource", [(ObjPointer(ID3D11Resource), "pResource")]),
2400 StdMethod(Void, "DiscardView", [(ObjPointer(ID3D11View), "pResourceView")]),
2401 StdMethod(Void, "DiscardView1", [(ObjPointer(ID3D11View), "pResourceView"), (Array(Const(D3D11_RECT), "NumRects"), "pRect"), (UINT, "NumRects")]),
2402 StdMethod(Void, "VSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2403 StdMethod(Void, "HSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2404 StdMethod(Void, "DSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2405 StdMethod(Void, "GSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2406 StdMethod(Void, "PSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2407 StdMethod(Void, "CSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2408 StdMethod(Void, "VSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2409 StdMethod(Void, "HSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2410 StdMethod(Void, "DSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2411 StdMethod(Void, "GSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2412 StdMethod(Void, "PSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2413 StdMethod(Void, "CSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2414 StdMethod(Void, "SwapDeviceContextState", [(ObjPointer(ID3DDeviceContextState), "pState"), Out(Pointer(ObjPointer(ID3DDeviceContextState)), "ppPreviousState")]),
Jose Fonseca4ccc8772015-05-20 17:18:31 +01002415 StdMethod(Void, "ClearView", [(ObjPointer(ID3D11View), "pView"), (Array(Const(FLOAT), 4), "Color"), (Array(Const(D3D11_RECT), "NumRects"), "pRect"), (UINT, "NumRects")]),
José Fonseca50bee952015-02-07 22:32:19 +00002416]
2417
Jose Fonsecaf0009142017-10-12 14:19:26 +01002418ID3D11VideoContext1.methods += [
2419 StdMethod(HRESULT, 'SubmitDecoderBuffers1', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (UINT, 'NumBuffers'), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC1), 'NumBuffers'), 'pBufferDesc')]),
2420 StdMethod(HRESULT, 'GetDataForNewHardwareKey', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), (UINT, 'PrivateInputSize'), (Blob(Const(Void), 'PrivateInputSize'), 'pPrivatInputData'), Out(Pointer(UINT64), 'pPrivateOutputData')]),
2421 StdMethod(HRESULT, 'CheckCryptoSessionStatus', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), Out(Pointer(D3D11_CRYPTO_SESSION_STATUS), 'pStatus')]),
2422 StdMethod(HRESULT, 'DecoderEnableDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc'), (UINT, 'ReferenceFrameCount')]),
2423 StdMethod(HRESULT, 'DecoderUpdateDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc')]),
2424 StdMethod(Void, 'VideoProcessorSetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2425 StdMethod(Void, 'VideoProcessorSetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (BOOL, 'ShaderUsage')]),
2426 StdMethod(Void, 'VideoProcessorGetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2427 StdMethod(Void, 'VideoProcessorGetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(BOOL), 'pShaderUsage')], sideeffects=False),
2428 StdMethod(Void, 'VideoProcessorSetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2429 StdMethod(Void, 'VideoProcessorSetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (BOOL, 'Enable'), (BOOL, 'FlipHorizontal'), (BOOL, 'FlipVertical')]),
2430 StdMethod(Void, 'VideoProcessorGetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2431 StdMethod(Void, 'VideoProcessorGetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(BOOL), 'pEnable'), Out(Pointer(BOOL), 'pFlipHorizontal'), Out(Pointer(BOOL), 'pFlipVertical')]),
2432 StdMethod(HRESULT, 'VideoProcessorGetBehaviorHints', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'OutputWidth'), (UINT, 'OutputHeight'), (DXGI_FORMAT, 'OutputFormat'), (UINT, 'StreamCount'), (Pointer(Const(D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT)), 'pStreams'), Out(Pointer(UINT), 'pBehaviorHints')], sideeffects=False),
2433]
2434
2435ID3D11VideoDevice1.methods += [
2436 StdMethod(HRESULT, 'GetCryptoSessionPrivateDataSize', [(Pointer(Const(GUID)), 'pCryptoType'), (Pointer(Const(GUID)), 'pDecoderProfile'), (Pointer(Const(GUID)), 'pKeyExchangeType'), Out(Pointer(UINT), 'pPrivateInputSize'), Out(Pointer(UINT), 'pPrivateOutputSize')], sideeffects=False),
2437 StdMethod(HRESULT, 'GetVideoDecoderCaps', [(Pointer(Const(GUID)), 'pDecoderProfile'), (UINT, 'SampleWidth'), (UINT, 'SampleHeight'), (Pointer(Const(DXGI_RATIONAL)), 'pFrameRate'), (UINT, 'BitRate'), (Pointer(Const(GUID)), 'pCryptoType'), Out(Pointer(UINT), 'pDecoderCaps')], sideeffects=False),
2438 StdMethod(HRESULT, 'CheckVideoDecoderDownsampling', [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), 'pInputDesc'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (Pointer(Const(D3D11_VIDEO_DECODER_CONFIG)), 'pInputConfig'), (Pointer(Const(DXGI_RATIONAL)), 'pFrameRate'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc'), Out(Pointer(BOOL), 'pSupported'), Out(Pointer(BOOL), 'pRealTimeHint')], sideeffects=False),
2439 StdMethod(HRESULT, 'RecommendVideoDecoderDownsampleParameters', [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), 'pInputDesc'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (Pointer(Const(D3D11_VIDEO_DECODER_CONFIG)), 'pInputConfig'), (Pointer(Const(DXGI_RATIONAL)), 'pFrameRate'), Out(Pointer(D3D11_VIDEO_SAMPLE_DESC), 'pRecommendedOutputDesc')], sideeffects=False),
2440]
2441
2442ID3D11VideoProcessorEnumerator1.methods += [
2443 StdMethod(HRESULT, 'CheckVideoProcessorFormatConversion', [(DXGI_FORMAT, 'InputFormat'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (DXGI_FORMAT, 'OutputFormat'), (DXGI_COLOR_SPACE_TYPE, 'OutputColorSpace'), Out(Pointer(BOOL), 'pSupported')], sideeffects=False),
2444]
José Fonseca50bee952015-02-07 22:32:19 +00002445
2446ID3D11Device1.methods += [
2447 StdMethod(Void, "GetImmediateContext1", [Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppImmediateContext")]),
2448 StdMethod(HRESULT, "CreateDeferredContext1", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppDeferredContext")]),
2449 StdMethod(HRESULT, "CreateBlendState1", [(Pointer(Const(D3D11_BLEND_DESC1)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState1)), "ppBlendState")]),
2450 StdMethod(HRESULT, "CreateRasterizerState1", [(Pointer(Const(D3D11_RASTERIZER_DESC1)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState1)), "ppRasterizerState")]),
2451 StdMethod(HRESULT, "CreateDeviceContextState", [(D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG, "Flags"), (Array(Const(D3D_FEATURE_LEVEL), "FeatureLevels"), "pFeatureLevels"), (UINT, "FeatureLevels"), (UINT, "SDKVersion"), (REFIID, "EmulatedInterface"), Out(Pointer(D3D_FEATURE_LEVEL), "pChosenFeatureLevel"), Out(Pointer(ObjPointer(ID3DDeviceContextState)), "ppContextState")]),
2452 StdMethod(HRESULT, "OpenSharedResource1", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2453 StdMethod(HRESULT, "OpenSharedResourceByName", [(LPCWSTR, "lpName"), (DXGI_SHARED_RESOURCE_FLAG, "dwDesiredAccess"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2454]
2455
2456ID3DUserDefinedAnnotation.methods += [
2457 StdMethod(INT, "BeginEvent", [(LPCWSTR, "Name")], sideeffects=False),
2458 StdMethod(INT, "EndEvent", [], sideeffects=False),
2459 StdMethod(Void, "SetMarker", [(LPCWSTR, "Name")], sideeffects=False),
2460 StdMethod(BOOL, "GetStatus", [], sideeffects=False),
2461]
2462
2463d3d11.addInterfaces([
2464 ID3D11Device1,
2465 ID3DUserDefinedAnnotation,
2466])
José Fonseca40b82ca2015-02-07 22:55:49 +00002467
2468
2469
2470#
2471# D3D11.2
2472#
2473
2474D3D11_TILED_RESOURCE_COORDINATE = Struct("D3D11_TILED_RESOURCE_COORDINATE", [
2475 (UINT, "X"),
2476 (UINT, "Y"),
2477 (UINT, "Z"),
2478 (UINT, "Subresource"),
2479])
2480
2481D3D11_TILE_REGION_SIZE = Struct("D3D11_TILE_REGION_SIZE", [
2482 (UINT, "NumTiles"),
2483 (BOOL, "bUseBox"),
2484 (UINT, "Width"),
2485 (UINT16, "Height"),
2486 (UINT16, "Depth"),
2487])
2488
2489D3D11_TILE_MAPPING_FLAG = Flags(UINT, [
2490 "D3D11_TILE_MAPPING_NO_OVERWRITE",
2491])
2492
2493D3D11_TILE_RANGE_FLAG = Flags(UINT, [
2494 "D3D11_TILE_RANGE_NULL",
2495 "D3D11_TILE_RANGE_SKIP",
2496 "D3D11_TILE_RANGE_REUSE_SINGLE_TILE",
2497])
2498
2499D3D11_SUBRESOURCE_TILING = Struct("D3D11_SUBRESOURCE_TILING", [
2500 (UINT, "WidthInTiles"),
2501 (UINT16, "HeightInTiles"),
2502 (UINT16, "DepthInTiles"),
2503 (FakeEnum(UINT, ["D3D11_PACKED_TILE"]), "StartTileIndexInOverallResource"),
2504])
2505
2506D3D11_TILE_SHAPE = Struct("D3D11_TILE_SHAPE", [
2507 (UINT, "WidthInTexels"),
2508 (UINT, "HeightInTexels"),
2509 (UINT, "DepthInTexels"),
2510])
2511
2512D3D11_PACKED_MIP_DESC = Struct("D3D11_PACKED_MIP_DESC", [
2513 (UINT8, "NumStandardMips"),
2514 (UINT8, "NumPackedMips"),
2515 (UINT, "NumTilesForPackedMips"),
2516 (UINT, "StartTileIndexInOverallResource"),
2517])
2518
2519D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = Flags(UINT, [
2520 "D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE",
2521])
2522
2523D3D11_TILE_COPY_FLAG = Flags(UINT, [
2524 "D3D11_TILE_COPY_NO_OVERWRITE",
2525 "D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE",
2526 "D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER",
2527])
2528
2529ID3D11DeviceContext2 = Interface("ID3D11DeviceContext2", ID3D11DeviceContext1)
2530ID3D11DeviceContext2.methods += [
2531 StdMethod(HRESULT, "UpdateTileMappings", [(ObjPointer(ID3D11Resource), "pTiledResource"), (UINT, "NumTiledResourceRegions"), (Array(Const(D3D11_TILED_RESOURCE_COORDINATE), "NumTiledResourceRegions"), "pTiledResourceRegionStartCoordinates"), (Array(Const(D3D11_TILE_REGION_SIZE), "NumTiledResourceRegions"), "pTiledResourceRegionSizes"), (ObjPointer(ID3D11Buffer), "pTilePool"), (UINT, "NumRanges"), (Array(Const(D3D11_TILE_RANGE_FLAG), "NumRanges"), "pRangeFlags"), (Array(Const(UINT), "NumRanges"), "pTilePoolStartOffsets"), (Array(Const(UINT), "NumRanges"), "pRangeTileCounts"), (D3D11_TILE_MAPPING_FLAG, "Flags")]),
2532 StdMethod(HRESULT, "CopyTileMappings", [(ObjPointer(ID3D11Resource), "pDestTiledResource"), (Pointer(Const(D3D11_TILED_RESOURCE_COORDINATE)), "pDestRegionStartCoordinate"), (ObjPointer(ID3D11Resource), "pSourceTiledResource"), (Pointer(Const(D3D11_TILED_RESOURCE_COORDINATE)), "pSourceRegionStartCoordinate"), (Pointer(Const(D3D11_TILE_REGION_SIZE)), "pTileRegionSize"), (D3D11_TILE_MAPPING_FLAG, "Flags")]),
2533 StdMethod(Void, "CopyTiles", [(ObjPointer(ID3D11Resource), "pTiledResource"), (Pointer(Const(D3D11_TILED_RESOURCE_COORDINATE)), "pTileRegionStartCoordinate"), (Pointer(Const(D3D11_TILE_REGION_SIZE)), "pTileRegionSize"), (ObjPointer(ID3D11Buffer), "pBuffer"), (UINT64, "BufferStartOffsetInBytes"), (D3D11_TILE_COPY_FLAG, "Flags")]),
2534 StdMethod(Void, "UpdateTiles", [(ObjPointer(ID3D11Resource), "pDestTiledResource"), (Pointer(Const(D3D11_TILED_RESOURCE_COORDINATE)), "pDestTileRegionStartCoordinate"), (Pointer(Const(D3D11_TILE_REGION_SIZE)), "pDestTileRegionSize"), (OpaquePointer(Const(Void)), "pSourceTileData"), (D3D11_TILE_COPY_FLAG, "Flags")]), # FIXME
2535 StdMethod(HRESULT, "ResizeTilePool", [(ObjPointer(ID3D11Buffer), "pTilePool"), (UINT64, "NewSizeInBytes")]),
2536 StdMethod(Void, "TiledResourceBarrier", [(ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessBeforeBarrier"), (ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessAfterBarrier")]),
2537 StdMethod(BOOL, "IsAnnotationEnabled", [], sideeffects=False),
2538 StdMethod(Void, "SetMarkerInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2539 StdMethod(Void, "BeginEventInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2540 StdMethod(Void, "EndEvent", []),
2541]
2542
2543ID3D11Device2 = Interface("ID3D11Device2", ID3D11Device1)
2544ID3D11Device2.methods += [
2545 StdMethod(Void, "GetImmediateContext2", [Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppImmediateContext")]),
2546 StdMethod(HRESULT, "CreateDeferredContext2", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppDeferredContext")]),
2547 StdMethod(Void, "GetResourceTiling", [(ObjPointer(ID3D11Resource), "pTiledResource"), Out(Pointer(UINT), "pNumTilesForEntireResource"), Out(Pointer(D3D11_PACKED_MIP_DESC), "pPackedMipDesc"), Out(Pointer(D3D11_TILE_SHAPE), "pStandardTileShapeForNonPackedMips"), Out(Pointer(UINT), "pNumSubresourceTilings"), (UINT, "FirstSubresourceTilingToGet"), Out(Pointer(D3D11_SUBRESOURCE_TILING), "pSubresourceTilingsForNonPackedMips")]),
2548 StdMethod(HRESULT, "CheckMultisampleQualityLevels1", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), (D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG, "Flags"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
2549]
2550
2551d3d11.addInterfaces([
2552 ID3D11Device2,
2553 ID3D11DeviceContext2,
2554])
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002555
2556
2557
2558#
2559# D3D11.3
2560#
2561
2562D3D11_CONTEXT_TYPE = Enum("D3D11_CONTEXT_TYPE", [
2563 "D3D11_CONTEXT_TYPE_ALL",
2564 "D3D11_CONTEXT_TYPE_3D",
2565 "D3D11_CONTEXT_TYPE_COMPUTE",
2566 "D3D11_CONTEXT_TYPE_COPY",
2567 "D3D11_CONTEXT_TYPE_VIDEO",
2568])
2569
2570D3D11_TEXTURE_LAYOUT = Enum("D3D11_TEXTURE_LAYOUT", [
2571 "D3D11_TEXTURE_LAYOUT_UNDEFINED",
2572 "D3D11_TEXTURE_LAYOUT_ROW_MAJOR",
2573 "D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE",
2574])
2575
2576D3D11_TEXTURE2D_DESC1 = Struct("D3D11_TEXTURE2D_DESC1", [
2577 (UINT, "Width"),
2578 (UINT, "Height"),
2579 (UINT, "MipLevels"),
2580 (UINT, "ArraySize"),
2581 (DXGI_FORMAT, "Format"),
2582 (DXGI_SAMPLE_DESC, "SampleDesc"),
2583 (D3D11_USAGE, "Usage"),
2584 (UINT, "BindFlags"),
2585 (UINT, "CPUAccessFlags"),
2586 (UINT, "MiscFlags"),
2587 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2588])
2589
2590ID3D11Texture2D1 = Interface("ID3D11Texture2D1", ID3D11Texture2D)
2591ID3D11Texture2D1.methods += [
2592 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE2D_DESC1), "pDesc")], sideeffects=False),
2593]
2594D3D11_TEXTURE3D_DESC1 = Struct("D3D11_TEXTURE3D_DESC1", [
2595 (UINT, "Width"),
2596 (UINT, "Height"),
2597 (UINT, "Depth"),
2598 (UINT, "MipLevels"),
2599 (DXGI_FORMAT, "Format"),
2600 (D3D11_USAGE, "Usage"),
2601 (UINT, "BindFlags"),
2602 (UINT, "CPUAccessFlags"),
2603 (UINT, "MiscFlags"),
2604 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2605])
2606
2607ID3D11Texture3D1 = Interface("ID3D11Texture3D1", ID3D11Texture3D)
2608ID3D11Texture3D1.methods += [
2609 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE3D_DESC1), "pDesc")], sideeffects=False),
2610]
2611
2612D3D11_CONSERVATIVE_RASTERIZATION_MODE = Enum("D3D11_CONSERVATIVE_RASTERIZATION_MODE", [
2613 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF",
2614 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON",
2615])
2616
2617D3D11_RASTERIZER_DESC2 = Struct("D3D11_RASTERIZER_DESC2", [
2618 (D3D11_FILL_MODE, "FillMode"),
2619 (D3D11_CULL_MODE, "CullMode"),
2620 (BOOL, "FrontCounterClockwise"),
2621 (INT, "DepthBias"),
2622 (FLOAT, "DepthBiasClamp"),
2623 (FLOAT, "SlopeScaledDepthBias"),
2624 (BOOL, "DepthClipEnable"),
2625 (BOOL, "ScissorEnable"),
2626 (BOOL, "MultisampleEnable"),
2627 (BOOL, "AntialiasedLineEnable"),
2628 (UINT, "ForcedSampleCount"),
2629 (D3D11_CONSERVATIVE_RASTERIZATION_MODE, "ConservativeRaster"),
2630])
2631
2632ID3D11RasterizerState2 = Interface("ID3D11RasterizerState2", ID3D11RasterizerState1)
2633ID3D11RasterizerState2.methods += [
2634 StdMethod(Void, "GetDesc2", [Out(Pointer(D3D11_RASTERIZER_DESC2), "pDesc")], sideeffects=False),
2635]
2636
2637D3D11_TEX2D_SRV1 = Struct("D3D11_TEX2D_SRV1", [
2638 (UINT, "MostDetailedMip"),
2639 (UINT, "MipLevels"),
2640 (UINT, "PlaneSlice"),
2641])
2642
2643D3D11_TEX2D_ARRAY_SRV1 = Struct("D3D11_TEX2D_ARRAY_SRV1", [
2644 (UINT, "MostDetailedMip"),
2645 (UINT, "MipLevels"),
2646 (UINT, "FirstArraySlice"),
2647 (UINT, "ArraySize"),
2648 (UINT, "PlaneSlice"),
2649])
2650
2651D3D11_SHADER_RESOURCE_VIEW_DESC1 = Struct("D3D11_SHADER_RESOURCE_VIEW_DESC1", [
2652 (DXGI_FORMAT, "Format"),
2653 (D3D11_SRV_DIMENSION, "ViewDimension"),
2654 (Union("{self}.ViewDimension", [
2655 ("D3D11_SRV_DIMENSION_BUFFER", D3D11_BUFFER_SRV, "Buffer"),
2656 ("D3D11_SRV_DIMENSION_TEXTURE1D", D3D11_TEX1D_SRV, "Texture1D"),
2657 ("D3D11_SRV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_SRV, "Texture1DArray"),
2658 ("D3D11_SRV_DIMENSION_TEXTURE2D", D3D11_TEX2D_SRV1, "Texture2D"),
2659 ("D3D11_SRV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_SRV1, "Texture2DArray"),
2660 ("D3D11_SRV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_SRV, "Texture2DMS"),
2661 ("D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
2662 ("D3D11_SRV_DIMENSION_TEXTURE3D", D3D11_TEX3D_SRV, "Texture3D"),
2663 ("D3D11_SRV_DIMENSION_TEXTURECUBE", D3D11_TEXCUBE_SRV, "TextureCube"),
2664 ("D3D11_SRV_DIMENSION_TEXTURECUBEARRAY", D3D11_TEXCUBE_ARRAY_SRV, "TextureCubeArray"),
2665 ("D3D11_SRV_DIMENSION_BUFFEREX", D3D11_BUFFEREX_SRV, "BufferEx"),
2666 ]), None),
2667])
2668
2669
2670ID3D11ShaderResourceView1 = Interface("ID3D11ShaderResourceView1", ID3D11ShaderResourceView)
2671ID3D11ShaderResourceView1.methods += [
2672 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC1), "pDesc1")], sideeffects=False),
2673]
2674
2675D3D11_TEX2D_RTV1 = Struct("D3D11_TEX2D_RTV1", [
2676 (UINT, "MipSlice"),
2677 (UINT, "PlaneSlice"),
2678])
2679
2680D3D11_TEX2D_ARRAY_RTV1 = Struct("D3D11_TEX2D_ARRAY_RTV1", [
2681 (UINT, "MipSlice"),
2682 (UINT, "FirstArraySlice"),
2683 (UINT, "ArraySize"),
2684 (UINT, "PlaneSlice"),
2685])
2686
2687D3D11_RENDER_TARGET_VIEW_DESC1 = Struct("D3D11_RENDER_TARGET_VIEW_DESC1", [
2688 (DXGI_FORMAT, "Format"),
2689 (D3D11_RTV_DIMENSION, "ViewDimension"),
2690 (Union("{self}.ViewDimension", [
2691 ("D3D11_RTV_DIMENSION_BUFFER", D3D11_BUFFER_RTV, "Buffer"),
2692 ("D3D11_RTV_DIMENSION_TEXTURE1D", D3D11_TEX1D_RTV, "Texture1D"),
2693 ("D3D11_RTV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_RTV, "Texture1DArray"),
2694 ("D3D11_RTV_DIMENSION_TEXTURE2D", D3D11_TEX2D_RTV1, "Texture2D"),
2695 ("D3D11_RTV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_RTV1, "Texture2DArray"),
2696 ("D3D11_RTV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_RTV, "Texture2DMS"),
2697 ("D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
2698 ("D3D11_RTV_DIMENSION_TEXTURE3D", D3D11_TEX3D_RTV, "Texture3D"),
2699 ]), None),
2700])
2701
2702ID3D11RenderTargetView1 = Interface("ID3D11RenderTargetView1", ID3D11RenderTargetView)
2703ID3D11RenderTargetView1.methods += [
2704 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC1), "pDesc1")], sideeffects=False),
2705]
2706
2707D3D11_TEX2D_UAV1 = Struct("D3D11_TEX2D_UAV1", [
2708 (UINT, "MipSlice"),
2709 (UINT, "PlaneSlice"),
2710])
2711
2712D3D11_TEX2D_ARRAY_UAV1 = Struct("D3D11_TEX2D_ARRAY_UAV1", [
2713 (UINT, "MipSlice"),
2714 (UINT, "FirstArraySlice"),
2715 (UINT, "ArraySize"),
2716 (UINT, "PlaneSlice"),
2717])
2718
2719D3D11_UNORDERED_ACCESS_VIEW_DESC1 = Struct("D3D11_UNORDERED_ACCESS_VIEW_DESC1", [
2720 (DXGI_FORMAT, "Format"),
2721 (D3D11_UAV_DIMENSION, "ViewDimension"),
2722 (Union("{self}.ViewDimension", [
2723 ("D3D11_UAV_DIMENSION_BUFFER", D3D11_BUFFER_UAV, "Buffer"),
2724 ("D3D11_UAV_DIMENSION_TEXTURE1D", D3D11_TEX1D_UAV, "Texture1D"),
2725 ("D3D11_UAV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_UAV, "Texture1DArray"),
2726 ("D3D11_UAV_DIMENSION_TEXTURE2D", D3D11_TEX2D_UAV1, "Texture2D"),
2727 ("D3D11_UAV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_UAV1, "Texture2DArray"),
2728 ("D3D11_UAV_DIMENSION_TEXTURE3D", D3D11_TEX3D_UAV, "Texture3D"),
2729 ]), None),
2730])
2731
2732ID3D11UnorderedAccessView1 = Interface("ID3D11UnorderedAccessView1", ID3D11UnorderedAccessView)
2733ID3D11UnorderedAccessView1.methods += [
2734 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC1), "pDesc1")], sideeffects=False),
2735]
2736
2737D3D11_QUERY_DESC1 = Struct("D3D11_QUERY_DESC1", [
2738 (D3D11_QUERY, "Query"),
2739 (D3D11_QUERY_MISC_FLAG, "MiscFlags"),
2740 (D3D11_CONTEXT_TYPE, "ContextType"),
2741])
2742
2743ID3D11Query1 = Interface("ID3D11Query1", ID3D11Query)
2744ID3D11Query1.methods += [
2745 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_QUERY_DESC1), "pDesc1")], sideeffects=False),
2746]
2747
2748ID3D11DeviceContext3 = Interface("ID3D11DeviceContext3", ID3D11DeviceContext2)
2749ID3D11DeviceContext3.methods += [
2750 StdMethod(Void, "Flush1", [(D3D11_CONTEXT_TYPE, "ContextType"), (HANDLE, "hEvent")]),
2751 StdMethod(Void, "SetHardwareProtectionState", [(BOOL, "HwProtectionEnable")]),
2752 StdMethod(Void, "GetHardwareProtectionState", [Out(Pointer(BOOL), "pHwProtectionEnable")], sideeffects=False),
2753]
2754
Jose Fonseca05cf1b52017-10-10 21:56:42 +01002755ID3D11Fence = Interface('ID3D11Fence', ID3D11DeviceChild)
2756ID3D11Fence.methods += [
2757 StdMethod(HRESULT, 'CreateSharedHandle', [(Pointer(Const(SECURITY_ATTRIBUTES)), 'pAttributes'), (DWORD, 'dwAccess'), (LPCWSTR, 'lpName'), Out(Pointer(HANDLE), 'pHandle')]),
2758 StdMethod(UINT64, 'GetCompletedValue', []),
2759 StdMethod(HRESULT, 'SetEventOnCompletion', [(UINT64, 'Value'), (HANDLE, 'hEvent')]),
2760]
2761
2762ID3D11DeviceContext4 = Interface('ID3D11DeviceContext4', ID3D11DeviceContext3)
2763ID3D11DeviceContext4.methods += [
2764 StdMethod(HRESULT, 'Signal', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2765 StdMethod(HRESULT, 'Wait', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2766]
2767
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002768ID3D11Device3 = Interface("ID3D11Device3", ID3D11Device2)
2769ID3D11Device3.methods += [
2770 StdMethod(HRESULT, "CreateTexture2D1", [(Pointer(Const(D3D11_TEXTURE2D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D1)), "ppTexture2D")]),
2771 StdMethod(HRESULT, "CreateTexture3D1", [(Pointer(Const(D3D11_TEXTURE3D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture3D1)), "ppTexture3D")]),
2772 StdMethod(HRESULT, "CreateRasterizerState2", [(Pointer(Const(D3D11_RASTERIZER_DESC2)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState2)), "ppRasterizerState")]),
2773 StdMethod(HRESULT, "CreateShaderResourceView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView1)), "ppSRView1")]),
2774 StdMethod(HRESULT, "CreateUnorderedAccessView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView1)), "ppUAView1")]),
2775 StdMethod(HRESULT, "CreateRenderTargetView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11RenderTargetView1)), "ppRTView1")]),
2776 StdMethod(HRESULT, "CreateQuery1", [(Pointer(Const(D3D11_QUERY_DESC1)), "pQueryDesc1"), Out(Pointer(ObjPointer(ID3D11Query1)), "ppQuery1")]),
2777 StdMethod(Void, "GetImmediateContext3", [Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppImmediateContext")]),
2778 StdMethod(HRESULT, "CreateDeferredContext3", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppDeferredContext")]),
Jose Fonsecae82b4a12016-05-18 15:23:41 +01002779 StdMethod(Void, "WriteToSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D11_BOX)), "pDstBox"), (Blob(Const(Void), '_calcSubresourceSize(pDstResource, DstSubresource, pDstBox, SrcRowPitch, SrcDepthPitch)'), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch")]),
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002780 StdMethod(Void, "ReadFromSubresource", [Out(OpaquePointer(Void), "pDstData"), (UINT, "DstRowPitch"), (UINT, "DstDepthPitch"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")], sideeffects=False), # FIXME
2781]
2782
2783d3d11.addInterfaces([
2784 ID3D11Device3,
2785 ID3D11DeviceContext3,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002786 ID3D11DeviceContext4, # Requires Windows 10.0.15021 SDK
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002787])
Jose Fonseca65113392017-09-26 16:46:11 +01002788
2789
2790#
2791# D3D11.4
2792#
2793
2794D3D11_FENCE_FLAG = Enum('D3D11_FENCE_FLAG', [
2795 'D3D11_FENCE_FLAG_NONE',
2796 'D3D11_FENCE_FLAG_SHARED',
2797 'D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER',
2798])
2799
2800ID3D11Device4 = Interface('ID3D11Device4', ID3D11Device3)
2801ID3D11Device5 = Interface('ID3D11Device5', ID3D11Device4)
2802ID3D11Multithread = Interface('ID3D11Multithread', IUnknown)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002803ID3D11VideoContext2 = Interface('ID3D11VideoContext2', ID3D11VideoContext1)
Jose Fonseca65113392017-09-26 16:46:11 +01002804
2805ID3D11Device4.methods += [
2806 StdMethod(HRESULT, 'RegisterDeviceRemovedEvent', [(HANDLE, 'hEvent'), Out(Pointer(DWORD), 'pdwCookie')]),
2807 StdMethod(Void, 'UnregisterDeviceRemoved', [(DWORD, 'dwCookie')]),
2808]
2809
2810ID3D11Device5.methods += [
2811 StdMethod(HRESULT, 'OpenSharedFence', [(HANDLE, 'hFence'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2812 StdMethod(HRESULT, 'CreateFence', [(UINT64, 'InitialValue'), (D3D11_FENCE_FLAG, 'Flags'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2813]
Jose Fonsecaf0009142017-10-12 14:19:26 +01002814
Jose Fonseca65113392017-09-26 16:46:11 +01002815ID3D11Multithread.methods += [
2816 StdMethod(Void, 'Enter', []),
2817 StdMethod(Void, 'Leave', []),
2818 StdMethod(BOOL, 'SetMultithreadProtected', [(BOOL, 'bMTProtect')]),
2819 StdMethod(BOOL, 'GetMultithreadProtected', [], sideeffects=False),
2820]
2821
Jose Fonsecaf0009142017-10-12 14:19:26 +01002822ID3D11VideoContext2.methods += [
2823 StdMethod(Void, 'VideoProcessorSetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2824 StdMethod(Void, 'VideoProcessorGetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(OpaqueBlob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2825 StdMethod(Void, 'VideoProcessorSetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2826 StdMethod(Void, 'VideoProcessorGetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(Blob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2827]
Jose Fonseca65113392017-09-26 16:46:11 +01002828
2829PFN_DESTRUCTION_CALLBACK = Opaque("PFN_DESTRUCTION_CALLBACK")
2830
2831ID3DDestructionNotifier = Interface('ID3DDestructionNotifier', IUnknown)
2832
2833ID3DDestructionNotifier.methods += [
2834 StdMethod(HRESULT, 'RegisterDestructionCallback', [(PFN_DESTRUCTION_CALLBACK, 'callbackFn'), (OpaquePointer(Void), 'pData'), Out(Pointer(UINT), 'pCallbackID')], sideeffects=False),
2835 StdMethod(HRESULT, 'UnregisterDestructionCallback', [(UINT, 'callbackID')], sideeffects=False),
2836]
2837
Jose Fonseca7c76b902017-10-09 18:00:42 +01002838IUseCounted = Interface('IUseCounted', IUnknown)
2839IUseCounted.methods += [
2840 StdMethod(ULONG, 'UCAddUse', []),
2841 StdMethod(ULONG, 'UCReleaseUse', []),
2842 StdMethod(Void, 'UCBreakCyclicReferences', []),
2843 StdMethod(Void, 'UCEstablishCyclicReferences', []),
2844 StdMethod(Void, 'UCDestroy', []),
2845]
2846
2847ILayeredUseCounted = Interface('ILayeredUseCounted', IUseCounted)
2848
2849ID3D11LayeredUseCounted = Interface('ID3D11LayeredUseCounted', ILayeredUseCounted)
2850
2851IUseCounted2 = Interface('IUseCounted2', IUseCounted)
2852IUseCounted2.methods += [
2853 StdMethod(HRESULT, 'UCQueryInterface', [(UINT, 'flags'), (REFIID, 'riid'), Out(Pointer(ObjPointer(Void)), 'ppvObj')]),
2854]
2855
Jose Fonseca65113392017-09-26 16:46:11 +01002856d3d11.addInterfaces([
Jose Fonseca93da5d22017-10-12 14:09:37 +01002857 ID3D11Device4,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002858 ID3D11Device5, # Requires Windows 10.0.15021 SDK
Jose Fonseca65113392017-09-26 16:46:11 +01002859 ID3D11Multithread,
Jose Fonsecaf0009142017-10-12 14:19:26 +01002860 ID3D11VideoContext2,
Jose Fonseca7c76b902017-10-09 18:00:42 +01002861 ID3DDestructionNotifier,
2862 ID3D11LayeredUseCounted,
2863 IUseCounted2,
Jose Fonseca65113392017-09-26 16:46:11 +01002864])