blob: 375932ff64cd1d718cd2eb57ac26e99ec4635a70 [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
Piotr Podsiadły0b8b0192019-01-03 20:39:55 +010027from .dxgi import *
28from .d3d11sdklayers import *
José Fonseca5b6fb752012-04-14 14:56:45 +010029
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
José Fonsecaee590be2012-04-16 13:25:06 +01001083D3D11_DEVICE_CONTEXT_TYPE = Enum("D3D11_DEVICE_CONTEXT_TYPE", [
1084 "D3D11_DEVICE_CONTEXT_IMMEDIATE",
1085 "D3D11_DEVICE_CONTEXT_DEFERRED",
José Fonseca5b6fb752012-04-14 14:56:45 +01001086])
1087
José Fonsecaee590be2012-04-16 13:25:06 +01001088D3D11_CLASS_INSTANCE_DESC = Struct("D3D11_CLASS_INSTANCE_DESC", [
1089 (UINT, "InstanceId"),
1090 (UINT, "InstanceIndex"),
1091 (UINT, "TypeId"),
1092 (UINT, "ConstantBuffer"),
1093 (UINT, "BaseConstantBufferOffset"),
1094 (UINT, "BaseTexture"),
1095 (UINT, "BaseSampler"),
1096 (BOOL, "Created"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001097])
1098
1099
1100ID3D11ClassInstance.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001101 StdMethod(Void, "GetClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001102 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), "pDesc")], sideeffects=False),
1103 StdMethod(Void, "GetInstanceName", [Out(LPSTR, "pInstanceName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
1104 StdMethod(Void, "GetTypeName", [Out(LPSTR, "pTypeName"), Out(Pointer(SIZE_T), "pBufferLength")], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001105]
1106
1107ID3D11ClassLinkage.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001108 StdMethod(HRESULT, "GetClassInstance", [(LPCSTR, "pClassInstanceName"), (UINT, "InstanceIndex"), Out(Pointer(ObjPointer(ID3D11ClassInstance)), "ppInstance")]),
1109 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 +01001110]
1111
1112ID3D11CommandList.methods += [
José Fonseca2b807452012-11-10 09:50:10 +00001113 StdMethod(UINT, "GetContextFlags", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001114]
1115
José Fonsecaee590be2012-04-16 13:25:06 +01001116D3D11_FEATURE_DATA_THREADING = Struct("D3D11_FEATURE_DATA_THREADING", [
1117 (BOOL, "DriverConcurrentCreates"),
1118 (BOOL, "DriverCommandLists"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001119])
1120
José Fonsecaee590be2012-04-16 13:25:06 +01001121D3D11_FEATURE_DATA_DOUBLES = Struct("D3D11_FEATURE_DATA_DOUBLES", [
1122 (BOOL, "DoublePrecisionFloatShaderOps"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001123])
1124
José Fonsecaee590be2012-04-16 13:25:06 +01001125D3D11_FEATURE_DATA_FORMAT_SUPPORT = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT", [
1126 (DXGI_FORMAT, "InFormat"),
1127 (D3D11_FORMAT_SUPPORT, "OutFormatSupport"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001128])
1129
José Fonsecaee590be2012-04-16 13:25:06 +01001130D3D11_FEATURE_DATA_FORMAT_SUPPORT2 = Struct("D3D11_FEATURE_DATA_FORMAT_SUPPORT2", [
1131 (DXGI_FORMAT, "InFormat"),
1132 (D3D11_FORMAT_SUPPORT2, "OutFormatSupport2"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001133])
1134
José Fonsecaee590be2012-04-16 13:25:06 +01001135D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS", [
1136 (BOOL, "ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x"),
José Fonseca5b6fb752012-04-14 14:56:45 +01001137])
1138
José Fonseca9a8d0cf2014-10-03 15:38:14 +01001139D3D11_FEATURE_DATA_D3D11_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS", [
1140 (BOOL, "OutputMergerLogicOp"),
1141 (BOOL, "UAVOnlyRenderingForcedSampleCount"),
1142 (BOOL, "DiscardAPIsSeenByDriver"),
1143 (BOOL, "FlagsForUpdateAndCopySeenByDriver"),
1144 (BOOL, "ClearView"),
1145 (BOOL, "CopyWithOverlap"),
1146 (BOOL, "ConstantBufferPartialUpdate"),
1147 (BOOL, "ConstantBufferOffsetting"),
1148 (BOOL, "MapNoOverwriteOnDynamicConstantBuffer"),
1149 (BOOL, "MapNoOverwriteOnDynamicBufferSRV"),
1150 (BOOL, "MultisampleRTVWithForcedSampleCountOne"),
1151 (BOOL, "SAD4ShaderInstructions"),
1152 (BOOL, "ExtendedDoublesShaderInstructions"),
1153 (BOOL, "ExtendedResourceSharing"),
1154])
1155
1156D3D11_FEATURE_DATA_ARCHITECTURE_INFO = Struct("D3D11_FEATURE_DATA_ARCHITECTURE_INFO", [
1157 (BOOL, "TileBasedDeferredRenderer"),
1158])
1159
1160D3D11_FEATURE_DATA_D3D9_OPTIONS = Struct("D3D11_FEATURE_DATA_D3D9_OPTIONS", [
1161 (BOOL, "FullNonPow2TextureSupport"),
1162])
1163
1164D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT = Struct("D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT", [
1165 (BOOL, "SupportsDepthAsTextureWithLessEqualComparisonFilter"),
1166])
1167
1168D3D11_SHADER_MIN_PRECISION_SUPPORT = Enum("D3D11_SHADER_MIN_PRECISION_SUPPORT", [
1169 "D3D11_SHADER_MIN_PRECISION_10_BIT",
1170 "D3D11_SHADER_MIN_PRECISION_16_BIT",
1171])
1172
1173D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT = Struct("D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT", [
1174 (UINT, "PixelShaderMinPrecision"),
1175 (UINT, "AllOtherShaderStagesMinPrecision"),
1176])
1177
1178D3D11_TILED_RESOURCES_TIER = Enum("D3D11_TILED_RESOURCES_TIER", [
1179 "D3D11_TILED_RESOURCES_NOT_SUPPORTED",
1180 "D3D11_TILED_RESOURCES_TIER_1",
1181 "D3D11_TILED_RESOURCES_TIER_2",
1182])
1183
1184D3D11_FEATURE_DATA_D3D11_OPTIONS1 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS1", [
1185 (D3D11_TILED_RESOURCES_TIER, "TiledResourcesTier"),
1186 (BOOL, "MinMaxFiltering"),
1187 (BOOL, "ClearViewAlsoSupportsDepthOnlyFormats"),
1188 (BOOL, "MapOnDefaultBuffers"),
1189])
1190
1191D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT = Struct("D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT", [
1192 (BOOL, "SimpleInstancingSupported"),
1193])
1194
1195D3D11_FEATURE_DATA_MARKER_SUPPORT = Struct("D3D11_FEATURE_DATA_MARKER_SUPPORT", [
1196 (BOOL, "Profile"),
1197])
1198
1199D3D11_FEATURE_DATA_D3D9_OPTIONS1 = Struct("D3D11_FEATURE_DATA_D3D9_OPTIONS1", [
1200 (BOOL, "FullNonPow2TextureSupported"),
1201 (BOOL, "DepthAsTextureWithLessEqualComparisonFilterSupported"),
1202 (BOOL, "SimpleInstancingSupported"),
1203 (BOOL, "TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported"),
1204])
1205
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001206D3D11_CONSERVATIVE_RASTERIZATION_TIER = Enum("D3D11_CONSERVATIVE_RASTERIZATION_TIER", [
1207 "D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED",
1208 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_1",
1209 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_2",
1210 "D3D11_CONSERVATIVE_RASTERIZATION_TIER_3",
1211])
1212
1213D3D11_FEATURE_DATA_D3D11_OPTIONS2 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS2", [
1214 (BOOL, "PSSpecifiedStencilRefSupported"),
1215 (BOOL, "TypedUAVLoadAdditionalFormats"),
1216 (BOOL, "ROVsSupported"),
1217 (D3D11_CONSERVATIVE_RASTERIZATION_TIER, "ConservativeRasterizationTier"),
1218 (D3D11_TILED_RESOURCES_TIER, "TiledResourcesTier"),
1219 (BOOL, "MapOnDefaultTextures"),
1220 (BOOL, "StandardSwizzle"),
1221 (BOOL, "UnifiedMemoryArchitecture"),
1222])
1223
1224D3D11_FEATURE_DATA_D3D11_OPTIONS3 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS3", [
1225 (BOOL, "VPAndRTArrayIndexFromAnyShaderFeedingRasterizer"),
1226])
1227
1228D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT = Struct("D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT", [
1229 (UINT, "MaxGPUVirtualAddressBitsPerResource"),
1230 (UINT, "MaxGPUVirtualAddressBitsPerProcess"),
1231])
1232
Jose Fonseca65113392017-09-26 16:46:11 +01001233D3D11_FEATURE_DATA_D3D11_OPTIONS4 = Struct('D3D11_FEATURE_DATA_D3D11_OPTIONS4', [
1234 (BOOL, 'ExtendedNV12SharedTextureSupported'),
1235])
1236
José Fonsecab95e3722012-04-16 14:01:15 +01001237D3D11_FEATURE, D3D11_FEATURE_DATA = EnumPolymorphic("D3D11_FEATURE", "Feature", [
1238 ("D3D11_FEATURE_THREADING", Pointer(D3D11_FEATURE_DATA_THREADING)),
1239 ("D3D11_FEATURE_DOUBLES", Pointer(D3D11_FEATURE_DATA_DOUBLES)),
1240 ("D3D11_FEATURE_FORMAT_SUPPORT", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT)),
1241 ("D3D11_FEATURE_FORMAT_SUPPORT2", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT2)),
1242 ("D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS)),
José Fonseca9a8d0cf2014-10-03 15:38:14 +01001243 ("D3D11_FEATURE_D3D11_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS)),
1244 ("D3D11_FEATURE_ARCHITECTURE_INFO", Pointer(D3D11_FEATURE_DATA_ARCHITECTURE_INFO)),
1245 ("D3D11_FEATURE_D3D9_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS)),
1246 ("D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT", Pointer(D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT)),
1247 ("D3D11_FEATURE_D3D9_SHADOW_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT)),
1248 ("D3D11_FEATURE_D3D11_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS1)),
1249 ("D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT)),
1250 ("D3D11_FEATURE_MARKER_SUPPORT", Pointer(D3D11_FEATURE_DATA_MARKER_SUPPORT)),
1251 ("D3D11_FEATURE_D3D9_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS1)),
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001252 ("D3D11_FEATURE_D3D11_OPTIONS2", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS2)),
1253 ("D3D11_FEATURE_D3D11_OPTIONS3", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS3)),
1254 ("D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT", Pointer(D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT)),
Jose Fonseca65113392017-09-26 16:46:11 +01001255 ("D3D11_FEATURE_D3D11_OPTIONS4", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS4)),
José Fonsecab95e3722012-04-16 14:01:15 +01001256], Blob(Void, "FeatureSupportDataSize"), False)
1257
Jose Fonseca51b3df52018-11-16 14:45:29 +00001258D3D11_NUM_RTVS = FakeEnum(UINT, [
1259 "D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL",
1260])
1261
1262D3D11_NUM_UAVS = FakeEnum(UINT, [
1263 "D3D11_KEEP_UNORDERED_ACCESS_VIEWS",
1264])
1265
Jose Fonsecaf42d6552019-01-15 14:53:35 +00001266D3D11_SAMPLE_MASK = FakeEnum(UINT, [
1267 "D3D11_DEFAULT_SAMPLE_MASK"
1268])
1269
José Fonseca5b6fb752012-04-14 14:56:45 +01001270ID3D11DeviceContext.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001271 StdMethod(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1272 StdMethod(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1273 StdMethod(Void, "PSSetShader", [(ObjPointer(ID3D11PixelShader), "pPixelShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1274 StdMethod(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1275 StdMethod(Void, "VSSetShader", [(ObjPointer(ID3D11VertexShader), "pVertexShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1276 StdMethod(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
1277 StdMethod(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
1278 StdMethod(HRESULT, "Map", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource"), (D3D11_MAP, "MapType"), (D3D11_MAP_FLAG, "MapFlags"), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), "pMappedResource")]),
1279 StdMethod(Void, "Unmap", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource")]),
1280 StdMethod(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1281 StdMethod(Void, "IASetInputLayout", [(ObjPointer(ID3D11InputLayout), "pInputLayout")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001282 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 +01001283 StdMethod(Void, "IASetIndexBuffer", [(ObjPointer(ID3D11Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
1284 StdMethod(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
1285 StdMethod(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
1286 StdMethod(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1287 StdMethod(Void, "GSSetShader", [(ObjPointer(ID3D11GeometryShader), "pShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1288 StdMethod(Void, "IASetPrimitiveTopology", [(D3D11_PRIMITIVE_TOPOLOGY, "Topology")]),
1289 StdMethod(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1290 StdMethod(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1291 StdMethod(Void, "Begin", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
1292 StdMethod(Void, "End", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
Jose Fonseca60e65142017-06-09 13:06:32 +01001293 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 +01001294 StdMethod(Void, "SetPredication", [(ObjPointer(ID3D11Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
1295 StdMethod(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1296 StdMethod(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1297 StdMethod(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView")]),
Jose Fonseca51b3df52018-11-16 14:45:29 +00001298 StdMethod(Void, "OMSetRenderTargetsAndUnorderedAccessViews", [(UINT, "NumRTVs"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumRTVs == D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ? 0 : NumRTVs"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (UINT, "UAVStartSlot"), (UINT, "NumUAVs"), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), "NumUAVs == D3D11_KEEP_UNORDERED_ACCESS_VIEWS ? 0 : NumUAVs"), "ppUnorderedAccessViews"), (Array(Const(UINT), "NumUAVs"), "pUAVInitialCounts")]),
Jose Fonsecaf42d6552019-01-15 14:53:35 +00001299 StdMethod(Void, "OMSetBlendState", [(ObjPointer(ID3D11BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (D3D11_SAMPLE_MASK, "SampleMask")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001300 StdMethod(Void, "OMSetDepthStencilState", [(ObjPointer(ID3D11DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001301 StdMethod(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001302 StdMethod(Void, "DrawAuto", []),
1303 StdMethod(Void, "DrawIndexedInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1304 StdMethod(Void, "DrawInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1305 StdMethod(Void, "Dispatch", [(UINT, "ThreadGroupCountX"), (UINT, "ThreadGroupCountY"), (UINT, "ThreadGroupCountZ")]),
1306 StdMethod(Void, "DispatchIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1307 StdMethod(Void, "RSSetState", [(ObjPointer(ID3D11RasterizerState), "pRasterizerState")]),
1308 StdMethod(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D11_VIEWPORT), "NumViewports"), "pViewports")]),
1309 StdMethod(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D11_RECT), "NumRects"), "pRects")]),
1310 StdMethod(Void, "CopySubresourceRegion", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")]),
1311 StdMethod(Void, "CopyResource", [(ObjPointer(ID3D11Resource), "pDstResource"), (ObjPointer(ID3D11Resource), "pSrcResource")]),
José Fonsecacc9abd72012-11-08 10:47:18 +00001312 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 +01001313 StdMethod(Void, "CopyStructureCount", [(ObjPointer(ID3D11Buffer), "pDstBuffer"), (UINT, "DstAlignedByteOffset"), (ObjPointer(ID3D11UnorderedAccessView), "pSrcView")]),
1314 StdMethod(Void, "ClearRenderTargetView", [(ObjPointer(ID3D11RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
1315 StdMethod(Void, "ClearUnorderedAccessViewUint", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(UINT), 4), "Values")]),
1316 StdMethod(Void, "ClearUnorderedAccessViewFloat", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(FLOAT), 4), "Values")]),
1317 StdMethod(Void, "ClearDepthStencilView", [(ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (D3D11_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
1318 StdMethod(Void, "GenerateMips", [(ObjPointer(ID3D11ShaderResourceView), "pShaderResourceView")]),
1319 StdMethod(Void, "SetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource"), (FLOAT, "MinLOD")]),
José Fonseca2b807452012-11-10 09:50:10 +00001320 StdMethod(FLOAT, "GetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001321 StdMethod(Void, "ResolveSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
1322 StdMethod(Void, "ExecuteCommandList", [(ObjPointer(ID3D11CommandList), "pCommandList"), (BOOL, "RestoreContextState")]),
1323 StdMethod(Void, "HSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1324 StdMethod(Void, "HSSetShader", [(ObjPointer(ID3D11HullShader), "pHullShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1325 StdMethod(Void, "HSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1326 StdMethod(Void, "HSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1327 StdMethod(Void, "DSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1328 StdMethod(Void, "DSSetShader", [(ObjPointer(ID3D11DomainShader), "pDomainShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1329 StdMethod(Void, "DSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1330 StdMethod(Void, "DSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1331 StdMethod(Void, "CSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001332 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 +01001333 StdMethod(Void, "CSSetShader", [(ObjPointer(ID3D11ComputeShader), "pComputeShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1334 StdMethod(Void, "CSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1335 StdMethod(Void, "CSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001336 StdMethod(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1337 StdMethod(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001338 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 +00001339 StdMethod(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001340 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 +00001341 StdMethod(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001342 StdMethod(Void, "IAGetInputLayout", [Out(Pointer(ObjPointer(ID3D11InputLayout)), "ppInputLayout")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001343 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 +01001344 StdMethod(Void, "IAGetIndexBuffer", [Out(Pointer(ObjPointer(ID3D11Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001345 StdMethod(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001346 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 +00001347 StdMethod(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), "pTopology")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001348 StdMethod(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1349 StdMethod(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001350 StdMethod(Void, "GetPredication", [Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001351 StdMethod(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1352 StdMethod(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1353 StdMethod(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(ObjPointer(ID3D11RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
Jose Fonseca51b3df52018-11-16 14:45:29 +00001354 StdMethod(Void, "OMGetRenderTargetsAndUnorderedAccessViews", [(D3D11_NUM_RTVS, "NumRTVs"), Out(Array(ObjPointer(ID3D11RenderTargetView), "NumRTVs"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView"), (UINT, "UAVStartSlot"), (D3D11_NUM_UAVS, "NumUAVs"), Out(Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
Jose Fonsecaf42d6552019-01-15 14:53:35 +00001355 StdMethod(Void, "OMGetBlendState", [Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(D3D11_SAMPLE_MASK), "pSampleMask")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001356 StdMethod(Void, "OMGetDepthStencilState", [Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001357 StdMethod(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppSOTargets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001358 StdMethod(Void, "RSGetState", [Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
José Fonseca00b9aba2014-08-13 13:18:48 +01001359 StdMethod(Void, "RSGetViewports", [InOut(Pointer(UINT), "pNumViewports"), Out(Array(D3D11_VIEWPORT, "*pNumViewports"), "pViewports")], sideeffects=False),
1360 StdMethod(Void, "RSGetScissorRects", [InOut(Pointer(UINT), "pNumRects"), Out(Array(D3D11_RECT, "*pNumRects"), "pRects")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001361 StdMethod(Void, "HSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001362 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 +00001363 StdMethod(Void, "HSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1364 StdMethod(Void, "HSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1365 StdMethod(Void, "DSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001366 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 +00001367 StdMethod(Void, "DSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1368 StdMethod(Void, "DSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1369 StdMethod(Void, "CSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1370 StdMethod(Void, "CSGetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), Out(Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001371 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 +00001372 StdMethod(Void, "CSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1373 StdMethod(Void, "CSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001374 StdMethod(Void, "ClearState", []),
1375 StdMethod(Void, "Flush", []),
José Fonseca2b807452012-11-10 09:50:10 +00001376 StdMethod(D3D11_DEVICE_CONTEXT_TYPE, "GetType", [], sideeffects=False),
1377 StdMethod(UINT, "GetContextFlags", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001378 StdMethod(HRESULT, "FinishCommandList", [(BOOL, "RestoreDeferredContextState"), Out(Pointer(ObjPointer(ID3D11CommandList)), "ppCommandList")]),
José Fonseca5b6fb752012-04-14 14:56:45 +01001379]
1380
1381D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001382 "D3D11_CREATE_DEVICE_SINGLETHREADED",
1383 "D3D11_CREATE_DEVICE_DEBUG",
1384 "D3D11_CREATE_DEVICE_SWITCH_TO_REF",
1385 "D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS",
1386 "D3D11_CREATE_DEVICE_BGRA_SUPPORT",
José Fonseca40b82ca2015-02-07 22:55:49 +00001387 "D3D11_CREATE_DEVICE_DEBUGGABLE",
1388 "D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY",
1389 "D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT",
1390 "D3D11_CREATE_DEVICE_VIDEO_SUPPORT",
José Fonseca5b6fb752012-04-14 14:56:45 +01001391])
1392
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001393D3D_FEATURE_LEVEL = Enum("D3D_FEATURE_LEVEL", [
1394 "D3D_FEATURE_LEVEL_9_1",
1395 "D3D_FEATURE_LEVEL_9_2",
1396 "D3D_FEATURE_LEVEL_9_3",
1397 "D3D_FEATURE_LEVEL_10_0",
1398 "D3D_FEATURE_LEVEL_10_1",
1399 "D3D_FEATURE_LEVEL_11_0",
1400 "D3D_FEATURE_LEVEL_11_1",
Jose Fonsecaad051de2019-06-28 12:35:10 +01001401 "D3D_FEATURE_LEVEL_12_0",
1402 "D3D_FEATURE_LEVEL_12_1",
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001403])
1404
Jose Fonsecabf638b72017-12-06 22:46:34 +00001405D3D11_RASTERIZED_STREAM = FakeEnum(UINT, [
1406 "D3D11_SO_NO_RASTERIZED_STREAM",
1407])
1408
José Fonseca5b6fb752012-04-14 14:56:45 +01001409ID3D11Device.methods += [
Jose Fonsecaa9b61382015-06-10 22:04:45 +01001410 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 +00001411 StdMethod(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D11_TEXTURE1D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture1D)), "ppTexture1D")]),
1412 StdMethod(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D11_TEXTURE2D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D)), "ppTexture2D")]),
1413 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 +01001414 StdMethod(HRESULT, "CreateShaderResourceView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView)), "ppSRView")]),
1415 StdMethod(HRESULT, "CreateUnorderedAccessView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView)), "ppUAView")]),
1416 StdMethod(HRESULT, "CreateRenderTargetView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11RenderTargetView)), "ppRTView")]),
1417 StdMethod(HRESULT, "CreateDepthStencilView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1418 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")]),
1419 StdMethod(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader")]),
1420 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 +00001421 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 +01001422 StdMethod(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader")]),
1423 StdMethod(HRESULT, "CreateHullShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader")]),
1424 StdMethod(HRESULT, "CreateDomainShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader")]),
1425 StdMethod(HRESULT, "CreateComputeShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader")]),
1426 StdMethod(HRESULT, "CreateClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
1427 StdMethod(HRESULT, "CreateBlendState", [(Pointer(Const(D3D11_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState")]),
1428 StdMethod(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState")]),
1429 StdMethod(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D11_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
1430 StdMethod(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D11_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(ObjPointer(ID3D11SamplerState)), "ppSamplerState")]),
1431 StdMethod(HRESULT, "CreateQuery", [(Pointer(Const(D3D11_QUERY_DESC)), "pQueryDesc"), Out(Pointer(ObjPointer(ID3D11Query)), "ppQuery")]),
1432 StdMethod(HRESULT, "CreatePredicate", [(Pointer(Const(D3D11_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate")]),
1433 StdMethod(HRESULT, "CreateCounter", [(Pointer(Const(D3D11_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(ObjPointer(ID3D11Counter)), "ppCounter")]),
1434 StdMethod(HRESULT, "CreateDeferredContext", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppDeferredContext")]),
Jose Fonseca559b5f82015-07-17 16:58:50 +01001435 StdMethod(HRESULT, "OpenSharedResource", [(RAW_HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
José Fonsecae088e5c2012-11-16 20:05:54 +00001436 StdMethod(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_FORMAT_SUPPORT), "pFormatSupport")], sideeffects=False),
1437 StdMethod(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
1438 StdMethod(Void, "CheckCounterInfo", [Out(Pointer(D3D11_COUNTER_INFO), "pCounterInfo")], sideeffects=False),
José Fonsecabc10e452012-11-08 10:24:45 +00001439 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),
1440 StdMethod(HRESULT, "CheckFeatureSupport", [(D3D11_FEATURE, "Feature"), Out(D3D11_FEATURE_DATA, "pFeatureSupportData"), (UINT, "FeatureSupportDataSize")], sideeffects=False),
José Fonseca9eec9342014-10-03 22:24:50 +01001441 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), InOut(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
José Fonseca3be2c672015-02-06 15:36:40 +00001442 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001443 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonseca2b807452012-11-10 09:50:10 +00001444 StdMethod(D3D_FEATURE_LEVEL, "GetFeatureLevel", [], sideeffects=False),
1445 StdMethod(D3D11_CREATE_DEVICE_FLAG, "GetCreationFlags", [], sideeffects=False),
1446 StdMethod(HRESULT, "GetDeviceRemovedReason", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001447 StdMethod(Void, "GetImmediateContext", [Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
1448 StdMethod(HRESULT, "SetExceptionMode", [(D3D11_RAISE_FLAG, "RaiseFlags")]),
José Fonseca5c05fdb2014-08-13 13:19:32 +01001449 StdMethod(D3D11_RAISE_FLAG, "GetExceptionMode", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001450]
1451
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001452
1453D3D_DRIVER_TYPE = Enum("D3D_DRIVER_TYPE", [
1454 "D3D_DRIVER_TYPE_UNKNOWN",
1455 "D3D_DRIVER_TYPE_HARDWARE",
1456 "D3D_DRIVER_TYPE_REFERENCE",
1457 "D3D_DRIVER_TYPE_NULL",
1458 "D3D_DRIVER_TYPE_SOFTWARE",
1459 "D3D_DRIVER_TYPE_WARP",
1460])
1461
1462
José Fonseca81301932012-11-11 00:10:20 +00001463d3d11 = Module("d3d11")
José Fonseca5b6fb752012-04-14 14:56:45 +01001464
1465d3d11.addFunctions([
José Fonsecaee590be2012-04-16 13:25:06 +01001466 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")]),
1467 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 +01001468])
1469
1470d3d11.addInterfaces([
José Fonseca5b6fb752012-04-14 14:56:45 +01001471 ID3D11Debug,
José Fonsecaf17f4642012-04-16 13:06:44 +01001472 ID3D11InfoQueue,
1473 ID3D11SwitchToRef,
José Fonseca5b6fb752012-04-14 14:56:45 +01001474])
José Fonsecafc58d052014-06-13 12:47:19 +01001475
José Fonseca50bee952015-02-07 22:32:19 +00001476
Jose Fonseca503fde92015-07-16 17:00:30 +01001477#
1478# D3D11 Video
1479#
1480
1481D3D11_VIDEO_DECODER_DESC = Struct("D3D11_VIDEO_DECODER_DESC", [
1482 (GUID, "Guid"),
1483 (UINT, "SampleWidth"),
1484 (UINT, "SampleHeight"),
1485 (DXGI_FORMAT, "OutputFormat"),
1486])
1487
1488D3D11_VIDEO_DECODER_CONFIG = Struct("D3D11_VIDEO_DECODER_CONFIG", [
1489 (GUID, "guidConfigBitstreamEncryption"),
1490 (GUID, "guidConfigMBcontrolEncryption"),
1491 (GUID, "guidConfigResidDiffEncryption"),
1492 (UINT, "ConfigBitstreamRaw"),
1493 (UINT, "ConfigMBcontrolRasterOrder"),
1494 (UINT, "ConfigResidDiffHost"),
1495 (UINT, "ConfigSpatialResid8"),
1496 (UINT, "ConfigResid8Subtraction"),
1497 (UINT, "ConfigSpatialHost8or9Clipping"),
1498 (UINT, "ConfigSpatialResidInterleaved"),
1499 (UINT, "ConfigIntraResidUnsigned"),
1500 (UINT, "ConfigResidDiffAccelerator"),
1501 (UINT, "ConfigHostInverseScan"),
1502 (UINT, "ConfigSpecificIDCT"),
1503 (UINT, "Config4GroupedCoefs"),
1504 (USHORT, "ConfigMinRenderTargetBuffCount"),
1505 (USHORT, "ConfigDecoderSpecific"),
1506])
1507
1508D3D11_VIDEO_DECODER_BUFFER_TYPE = Enum("D3D11_VIDEO_DECODER_BUFFER_TYPE", [
1509 "D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS",
1510 "D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL",
1511 "D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE",
1512 "D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL",
1513 "D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX",
1514 "D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL",
1515 "D3D11_VIDEO_DECODER_BUFFER_BITSTREAM",
1516 "D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR",
1517 "D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN",
1518])
1519
1520D3D11_AES_CTR_IV = Struct("D3D11_AES_CTR_IV", [
1521 (UINT64, "IV"),
1522 (UINT64, "Count"),
1523])
1524
1525D3D11_ENCRYPTED_BLOCK_INFO = Struct("D3D11_ENCRYPTED_BLOCK_INFO", [
1526 (UINT, "NumEncryptedBytesAtBeginning"),
1527 (UINT, "NumBytesInSkipPattern"),
1528 (UINT, "NumBytesInEncryptPattern"),
1529])
1530
1531D3D11_VIDEO_DECODER_BUFFER_DESC = Struct("D3D11_VIDEO_DECODER_BUFFER_DESC", [
1532 (D3D11_VIDEO_DECODER_BUFFER_TYPE, "BufferType"),
1533 (UINT, "BufferIndex"),
1534 (UINT, "DataOffset"),
1535 (UINT, "DataSize"),
1536 (UINT, "FirstMBaddress"),
1537 (UINT, "NumMBsInBuffer"),
1538 (UINT, "Width"),
1539 (UINT, "Height"),
1540 (UINT, "Stride"),
1541 (UINT, "ReservedBits"),
1542 (Blob(Void, "{self}.IVSize"), "pIV"),
1543 (UINT, "IVSize"),
1544 (BOOL, "PartialEncryption"),
1545 (D3D11_ENCRYPTED_BLOCK_INFO, "EncryptedBlockInfo"),
1546])
1547
1548D3D11_VIDEO_DECODER_EXTENSION = Struct("D3D11_VIDEO_DECODER_EXTENSION", [
1549 (UINT, "Function"),
1550 (Blob(Void, "{self}.PrivateInputDataSize"), "pPrivateInputData"),
1551 (UINT, "PrivateInputDataSize"),
1552 (Blob(Void, "{self}.PrivateOutputDataSize"), "pPrivateOutputData"),
1553 (UINT, "PrivateOutputDataSize"),
1554 (UINT, "ResourceCount"),
1555 (Array(ObjPointer(ID3D11Resource), "{self}.ResourceCount"), "ppResourceList"),
1556])
1557
1558ID3D11VideoDecoder = Interface("ID3D11VideoDecoder", ID3D11DeviceChild)
1559ID3D11VideoDecoder.methods += [
1560 StdMethod(HRESULT, "GetCreationParameters", [Out(Pointer(D3D11_VIDEO_DECODER_DESC), "pVideoDesc"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
1561 StdMethod(HRESULT, "GetDriverHandle", [Out(Pointer(HANDLE), "pDriverHandle")]),
1562]
1563
1564D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT = Flags(UINT, [
1565 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT",
1566 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT",
1567])
1568
1569D3D11_VIDEO_PROCESSOR_DEVICE_CAPS = Flags(UINT, [
1570 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE",
1571 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC",
1572 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION",
1573 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION",
1574 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE",
1575])
1576
1577D3D11_VIDEO_PROCESSOR_FEATURE_CAPS = Flags(UINT, [
1578 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL",
1579 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION",
1580 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY",
1581 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE",
1582 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY",
1583 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO",
1584 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION",
1585 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM",
1586 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001587 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR",
1588 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE",
Jose Fonseca503fde92015-07-16 17:00:30 +01001589])
1590
1591D3D11_VIDEO_PROCESSOR_FILTER_CAPS = Flags(UINT, [
1592 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS",
1593 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST",
1594 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE",
1595 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION",
1596 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION",
1597 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT",
1598 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING",
1599 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT",
1600])
1601
1602D3D11_VIDEO_PROCESSOR_FORMAT_CAPS = Flags(UINT, [
1603 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED",
1604 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP",
1605 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY",
1606 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED",
1607])
1608
1609D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS = Flags(UINT, [
1610 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE",
1611 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING",
1612 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT",
1613 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION",
1614 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING",
1615 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION",
1616 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION",
1617 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING",
1618])
1619
1620D3D11_VIDEO_PROCESSOR_STEREO_CAPS = Flags(UINT, [
1621 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET",
1622 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED",
1623 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED",
1624 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD",
1625 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE",
1626])
1627
1628D3D11_VIDEO_PROCESSOR_CAPS = Struct("D3D11_VIDEO_PROCESSOR_CAPS", [
1629 (D3D11_VIDEO_PROCESSOR_DEVICE_CAPS, "DeviceCaps"),
1630 (D3D11_VIDEO_PROCESSOR_FEATURE_CAPS, "FeatureCaps"),
1631 (D3D11_VIDEO_PROCESSOR_FILTER_CAPS, "FilterCaps"),
1632 (D3D11_VIDEO_PROCESSOR_FORMAT_CAPS, "InputFormatCaps"),
1633 (D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS, "AutoStreamCaps"),
1634 (D3D11_VIDEO_PROCESSOR_STEREO_CAPS, "StereoCaps"),
1635 (UINT, "RateConversionCapsCount"),
1636 (UINT, "MaxInputStreams"),
1637 (UINT, "MaxStreamStates"),
1638])
1639
1640D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS = Flags(UINT, [
1641 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND",
1642 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB",
1643 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE",
1644 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION",
1645 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE",
1646 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION",
1647])
1648
1649D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS = Flags(UINT, [
1650 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32",
1651 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22",
1652 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224",
1653 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332",
1654 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322",
1655 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55",
1656 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64",
1657 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87",
1658 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223",
1659 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER",
1660])
1661
1662D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS = Struct("D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS", [
1663 (UINT, "PastFrames"),
1664 (UINT, "FutureFrames"),
1665 (D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS, "ProcessorCaps"),
1666 (D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS, "ITelecineCaps"),
1667 (UINT, "CustomRateCount"),
1668])
1669
1670D3D11_CONTENT_PROTECTION_CAPS = Flags(UINT, [
1671 "D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE",
1672 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE",
1673 "D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON",
1674 "D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION",
1675 "D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY",
1676 "D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY",
1677 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK",
1678 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY",
1679 "D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV",
1680 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY",
1681 "D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001682 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED",
1683 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE",
1684 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN",
1685 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION",
Jose Fonseca503fde92015-07-16 17:00:30 +01001686])
1687
1688D3D11_VIDEO_CONTENT_PROTECTION_CAPS = Struct("D3D11_VIDEO_CONTENT_PROTECTION_CAPS", [
1689 (D3D11_CONTENT_PROTECTION_CAPS, "Caps"),
1690 (UINT, "KeyExchangeTypeCount"),
1691 (UINT, "BlockAlignmentSize"),
1692 (ULONGLONG, "ProtectedMemorySize"),
1693])
1694
1695D3D11_VIDEO_PROCESSOR_CUSTOM_RATE = Struct("D3D11_VIDEO_PROCESSOR_CUSTOM_RATE", [
1696 (DXGI_RATIONAL, "CustomRate"),
1697 (UINT, "OutputFrames"),
1698 (BOOL, "InputInterlaced"),
1699 (UINT, "InputFramesOrFields"),
1700])
1701
1702D3D11_VIDEO_PROCESSOR_FILTER = Enum("D3D11_VIDEO_PROCESSOR_FILTER", [
1703 "D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS",
1704 "D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST",
1705 "D3D11_VIDEO_PROCESSOR_FILTER_HUE",
1706 "D3D11_VIDEO_PROCESSOR_FILTER_SATURATION",
1707 "D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION",
1708 "D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT",
1709 "D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING",
1710 "D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT",
1711])
1712
1713D3D11_VIDEO_PROCESSOR_FILTER_RANGE = Struct("D3D11_VIDEO_PROCESSOR_FILTER_RANGE", [
1714 (Int, "Minimum"),
1715 (Int, "Maximum"),
1716 (Int, "Default"),
1717 (Float, "Multiplier"),
1718])
1719
1720D3D11_VIDEO_FRAME_FORMAT = Enum("D3D11_VIDEO_FRAME_FORMAT", [
1721 "D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE",
1722 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST",
1723 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST",
1724])
1725
1726D3D11_VIDEO_USAGE = Enum("D3D11_VIDEO_USAGE", [
1727 "D3D11_VIDEO_USAGE_PLAYBACK_NORMAL",
1728 "D3D11_VIDEO_USAGE_OPTIMAL_SPEED",
1729 "D3D11_VIDEO_USAGE_OPTIMAL_QUALITY",
1730])
1731
1732D3D11_VIDEO_PROCESSOR_CONTENT_DESC = Struct("D3D11_VIDEO_PROCESSOR_CONTENT_DESC", [
1733 (D3D11_VIDEO_FRAME_FORMAT, "InputFrameFormat"),
1734 (DXGI_RATIONAL, "InputFrameRate"),
1735 (UINT, "InputWidth"),
1736 (UINT, "InputHeight"),
1737 (DXGI_RATIONAL, "OutputFrameRate"),
1738 (UINT, "OutputWidth"),
1739 (UINT, "OutputHeight"),
1740 (D3D11_VIDEO_USAGE, "Usage"),
1741])
1742
1743ID3D11VideoProcessorEnumerator = Interface("ID3D11VideoProcessorEnumerator", ID3D11DeviceChild)
1744ID3D11VideoProcessorEnumerator.methods += [
1745 StdMethod(HRESULT, "GetVideoProcessorContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pContentDesc")], sideeffects=False),
1746 StdMethod(HRESULT, "CheckVideoProcessorFormat", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT), "pFlags")], sideeffects=False),
1747 StdMethod(HRESULT, "GetVideoProcessorCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CAPS), "pCaps")], sideeffects=False),
1748 StdMethod(HRESULT, "GetVideoProcessorRateConversionCaps", [(UINT, "TypeIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1749 StdMethod(HRESULT, "GetVideoProcessorCustomRate", [(UINT, "TypeIndex"), (UINT, "CustomRateIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_CUSTOM_RATE), "pRate")], sideeffects=False),
1750 StdMethod(HRESULT, "GetVideoProcessorFilterRange", [(D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FILTER_RANGE), "pRange")], sideeffects=False),
1751]
1752
1753D3D11_VIDEO_COLOR_RGBA = Struct("D3D11_VIDEO_COLOR_RGBA", [
1754 (Float, "R"),
1755 (Float, "G"),
1756 (Float, "B"),
1757 (Float, "A"),
1758])
1759
1760D3D11_VIDEO_COLOR_YCbCrA = Struct("D3D11_VIDEO_COLOR_YCbCrA", [
1761 (Float, "Y"),
1762 (Float, "Cb"),
1763 (Float, "Cr"),
1764 (Float, "A"),
1765])
1766
1767D3D11_VIDEO_COLOR = Struct("D3D11_VIDEO_COLOR", [
1768 (D3D11_VIDEO_COLOR_YCbCrA, "YCbCr"),
1769 #(D3D11_VIDEO_COLOR_RGBA, "RGBA"),
1770])
1771
1772D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE = FakeEnum(UINT, [
1773 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED",
1774 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235",
1775 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255",
1776])
1777
1778D3D11_VIDEO_PROCESSOR_COLOR_SPACE = Struct("D3D11_VIDEO_PROCESSOR_COLOR_SPACE", [
1779 (UINT, "Usage"),
1780 (UINT, "RGB_Range"),
1781 (UINT, "YCbCr_Matrix"),
1782 (UINT, "YCbCr_xvYCC"),
1783 (D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE, "Nominal_Range"),
1784 (UINT, "Reserved"),
1785])
1786
1787D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE = Enum("D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE", [
1788 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE",
1789 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND",
1790 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION",
1791 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM",
1792])
1793
1794D3D11_VIDEO_PROCESSOR_OUTPUT_RATE = Enum("D3D11_VIDEO_PROCESSOR_OUTPUT_RATE", [
1795 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL",
1796 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF",
1797 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM",
1798])
1799
1800D3D11_VIDEO_PROCESSOR_STEREO_FORMAT = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FORMAT", [
1801 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO",
1802 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL",
1803 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL",
1804 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE",
1805 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET",
1806 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED",
1807 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED",
1808 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD",
1809])
1810
1811D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE", [
1812 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE",
1813 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0",
1814 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1",
1815])
1816
1817D3D11_VIDEO_PROCESSOR_ROTATION = Enum("D3D11_VIDEO_PROCESSOR_ROTATION", [
1818 "D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY",
1819 "D3D11_VIDEO_PROCESSOR_ROTATION_90",
1820 "D3D11_VIDEO_PROCESSOR_ROTATION_180",
1821 "D3D11_VIDEO_PROCESSOR_ROTATION_270",
1822])
1823
1824ID3D11VideoProcessorInputView = Interface("ID3D11VideoProcessorInputView", ID3D11View)
1825
1826D3D11_VIDEO_PROCESSOR_STREAM = Struct("D3D11_VIDEO_PROCESSOR_STREAM", [
1827 (BOOL, "Enable"),
1828 (UINT, "OutputIndex"),
1829 (UINT, "InputFrameOrField"),
1830 (UINT, "PastFrames"),
1831 (UINT, "FutureFrames"),
1832 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfaces"),
1833 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurface"),
1834 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfaces"),
1835 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfacesRight"),
1836 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurfaceRight"),
1837 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfacesRight"),
1838])
1839
1840ID3D11VideoProcessor = Interface("ID3D11VideoProcessor", ID3D11DeviceChild)
1841ID3D11VideoProcessor.methods += [
1842 StdMethod(Void, "GetContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pDesc")], sideeffects=False),
1843 StdMethod(Void, "GetRateConversionCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1844]
1845
1846D3D11_OMAC = Struct("D3D11_OMAC", [
1847 (Array(BYTE, 16), "Omac"),
1848])
1849
1850D3D11_AUTHENTICATED_CHANNEL_TYPE = Enum("D3D11_AUTHENTICATED_CHANNEL_TYPE", [
1851 "D3D11_AUTHENTICATED_CHANNEL_D3D11",
1852 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE",
1853 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE",
1854])
1855
1856ID3D11AuthenticatedChannel = Interface("ID3D11AuthenticatedChannel", ID3D11DeviceChild)
1857ID3D11AuthenticatedChannel.methods += [
1858 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
1859 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Array(BYTE, "CertificateSize"), "pCertificate")], sideeffects=False),
1860 StdMethod(Void, "GetChannelHandle", [Out(Pointer(HANDLE), "pChannelHandle")]),
1861]
1862
1863D3D11_AUTHENTICATED_QUERY_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_INPUT", [
1864 (GUID, "QueryType"),
1865 (HANDLE, "hChannel"),
1866 (UINT, "SequenceNumber"),
1867])
1868
1869D3D11_AUTHENTICATED_QUERY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT", [
1870 (D3D11_OMAC, "omac"),
1871 (GUID, "QueryType"),
1872 (HANDLE, "hChannel"),
1873 (UINT, "SequenceNumber"),
1874 (HRESULT, "ReturnCode"),
1875])
1876
1877D3D11_AUTHENTICATED_PROTECTION_FLAGS = Struct("D3D11_AUTHENTICATED_PROTECTION_FLAGS", [
1878 (UINT, "ProtectionEnabled"),
1879 (UINT, "OverlayOrFullscreenRequired"),
1880 (UINT, "Reserved"),
1881])
1882
1883D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT", [
1884 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1885 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "ProtectionFlags"),
1886])
1887
1888D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT", [
1889 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1890 (D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"),
1891])
1892
1893D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT", [
1894 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1895 (HANDLE, "DeviceHandle"),
1896])
1897
1898D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT", [
1899 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1900 (HANDLE, "DecoderHandle"),
1901])
1902
1903D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT", [
1904 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1905 (HANDLE, "DecoderHandle"),
1906 (HANDLE, "CryptoSessionHandle"),
1907 (HANDLE, "DeviceHandle"),
1908])
1909
1910D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT", [
1911 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1912 (UINT, "RestrictedSharedResourceProcessCount"),
1913])
1914
1915D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT", [
1916 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1917 (UINT, "ProcessIndex"),
1918])
1919
1920D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE = Enum("D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE", [
1921 "D3D11_PROCESSIDTYPE_UNKNOWN",
1922 "D3D11_PROCESSIDTYPE_DWM",
1923 "D3D11_PROCESSIDTYPE_HANDLE",
1924])
1925
1926D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT", [
1927 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1928 (UINT, "ProcessIndex"),
1929 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessIdentifier"),
1930 (HANDLE, "ProcessHandle"),
1931])
1932
1933D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT", [
1934 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1935 (UINT, "UnrestrictedProtectedSharedResourceCount"),
1936])
1937
1938D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT", [
1939 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1940 (HANDLE, "DeviceHandle"),
1941 (HANDLE, "CryptoSessionHandle"),
1942])
1943
1944D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT", [
1945 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1946 (HANDLE, "DeviceHandle"),
1947 (HANDLE, "CryptoSessionHandle"),
1948 (UINT, "OutputIDCount"),
1949])
1950
1951D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT", [
1952 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1953 (HANDLE, "DeviceHandle"),
1954 (HANDLE, "CryptoSessionHandle"),
1955 (UINT, "OutputIDIndex"),
1956])
1957
1958D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT", [
1959 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1960 (HANDLE, "DeviceHandle"),
1961 (HANDLE, "CryptoSessionHandle"),
1962 (UINT, "OutputIDIndex"),
1963 (UINT64, "OutputID"),
1964])
1965
1966D3D11_BUS_TYPE = Enum("D3D11_BUS_TYPE", [
1967 "D3D11_BUS_TYPE_OTHER",
1968 "D3D11_BUS_TYPE_PCI",
1969 "D3D11_BUS_TYPE_PCIX",
1970 "D3D11_BUS_TYPE_AGP",
1971 "D3D11_BUS_TYPE_PCIEXPRESS",
1972 # XXX: Flags
1973 "D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET",
1974 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP",
1975 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET",
1976 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR",
1977 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE",
1978 "D3D11_BUS_IMPL_MODIFIER_NON_STANDARD",
1979])
1980
1981D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT", [
1982 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1983 (D3D11_BUS_TYPE, "BusType"),
1984 (BOOL, "AccessibleInContiguousBlocks"),
1985 (BOOL, "AccessibleInNonContiguousBlocks"),
1986])
1987
1988D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT", [
1989 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1990 (UINT, "EncryptionGuidCount"),
1991])
1992
1993D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT", [
1994 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1995 (UINT, "EncryptionGuidIndex"),
1996])
1997
1998D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT", [
1999 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2000 (UINT, "EncryptionGuidIndex"),
2001 (GUID, "EncryptionGuid"),
2002])
2003
2004D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT", [
2005 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2006 (GUID, "EncryptionGuid"),
2007])
2008
2009D3D11_AUTHENTICATED_CONFIGURE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INPUT", [
2010 (D3D11_OMAC, "omac"),
2011 (GUID, "ConfigureType"),
2012 (HANDLE, "hChannel"),
2013 (UINT, "SequenceNumber"),
2014])
2015
2016D3D11_AUTHENTICATED_CONFIGURE_OUTPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_OUTPUT", [
2017 (D3D11_OMAC, "omac"),
2018 (GUID, "ConfigureType"),
2019 (HANDLE, "hChannel"),
2020 (UINT, "SequenceNumber"),
2021 (HRESULT, "ReturnCode"),
2022])
2023
2024D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT", [
2025 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2026 (UINT, "StartSequenceQuery"),
2027 (UINT, "StartSequenceConfigure"),
2028])
2029
2030D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT", [
2031 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2032 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "Protections"),
2033])
2034
2035D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT", [
2036 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2037 (HANDLE, "DecoderHandle"),
2038 (HANDLE, "CryptoSessionHandle"),
2039 (HANDLE, "DeviceHandle"),
2040])
2041
2042D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT", [
2043 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2044 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessType"),
2045 (HANDLE, "ProcessHandle"),
2046 (BOOL, "AllowAccess"),
2047])
2048
2049D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT", [
2050 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2051 (GUID, "EncryptionGuid"),
2052])
2053
2054ID3D11CryptoSession = Interface("ID3D11CryptoSession", ID3D11DeviceChild)
2055ID3D11CryptoSession.methods += [
2056 StdMethod(Void, "GetCryptoType", [Out(Pointer(GUID), "pCryptoType")], sideeffects=False),
2057 StdMethod(Void, "GetDecoderProfile", [Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2058 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
2059 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Pointer(BYTE), "pCertificate")], sideeffects=False),
2060 StdMethod(Void, "GetCryptoSessionHandle", [Out(Pointer(HANDLE), "pCryptoSessionHandle")]),
2061]
2062
2063D3D11_VDOV_DIMENSION = Enum("D3D11_VDOV_DIMENSION", [
2064 "D3D11_VDOV_DIMENSION_UNKNOWN",
2065 "D3D11_VDOV_DIMENSION_TEXTURE2D",
2066])
2067
2068D3D11_TEX2D_VDOV = Struct("D3D11_TEX2D_VDOV", [
2069 (UINT, "ArraySlice"),
2070])
2071
2072D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC", [
2073 (GUID, "DecodeProfile"),
2074 (D3D11_VDOV_DIMENSION, "ViewDimension"),
2075 (Union("{self}.ViewDimension", [
2076 ("D3D11_VDOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VDOV, "Texture2D"),
2077 ]), None),
2078])
2079
2080ID3D11VideoDecoderOutputView = Interface("ID3D11VideoDecoderOutputView", ID3D11View)
2081ID3D11VideoDecoderOutputView.methods += [
2082 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2083]
2084
2085D3D11_VPIV_DIMENSION = Enum("D3D11_VPIV_DIMENSION", [
2086 "D3D11_VPIV_DIMENSION_UNKNOWN",
2087 "D3D11_VPIV_DIMENSION_TEXTURE2D",
2088])
2089
2090D3D11_TEX2D_VPIV = Struct("D3D11_TEX2D_VPIV", [
2091 (UINT, "MipSlice"),
2092 (UINT, "ArraySlice"),
2093])
2094
2095D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC", [
2096 (UINT, "FourCC"),
2097 (D3D11_VPIV_DIMENSION, "ViewDimension"),
2098 (Union("{self}.ViewDimension", [
2099 ("D3D11_VPIV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPIV, "Texture2D"),
2100 ]), None),
2101])
2102
2103ID3D11VideoProcessorInputView.methods += [
2104 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2105]
2106
2107D3D11_VPOV_DIMENSION = Enum("D3D11_VPOV_DIMENSION", [
2108 "D3D11_VPOV_DIMENSION_UNKNOWN",
2109 "D3D11_VPOV_DIMENSION_TEXTURE2D",
2110 "D3D11_VPOV_DIMENSION_TEXTURE2DARRAY",
2111])
2112
2113D3D11_TEX2D_VPOV = Struct("D3D11_TEX2D_VPOV", [
2114 (UINT, "MipSlice"),
2115])
2116
2117D3D11_TEX2D_ARRAY_VPOV = Struct("D3D11_TEX2D_ARRAY_VPOV", [
2118 (UINT, "MipSlice"),
2119 (UINT, "FirstArraySlice"),
2120 (UINT, "ArraySize"),
2121])
2122
2123D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC", [
2124 (D3D11_VPOV_DIMENSION, "ViewDimension"),
2125 (Union("{self}.ViewDimension", [
2126 ("D3D11_VPOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPOV, "Texture2D"),
2127 ("D3D11_VPOV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_VPOV, "Texture2DArray"),
2128 ]), None),
2129])
2130
2131ID3D11VideoProcessorOutputView = Interface("ID3D11VideoProcessorOutputView", ID3D11View)
2132ID3D11VideoProcessorOutputView.methods += [
2133 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2134]
2135
2136ID3D11VideoContext = Interface("ID3D11VideoContext", ID3D11DeviceChild)
2137ID3D11VideoContext.methods += [
Jose Fonseca91403b62016-05-19 15:10:03 +01002138 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 +01002139 StdMethod(HRESULT, "ReleaseDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type")]),
2140 StdMethod(HRESULT, "DecoderBeginFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (ObjPointer(ID3D11VideoDecoderOutputView), "pView"), (UINT, "ContentKeySize"), (Blob(Const(Void), "ContentKeySize"), "pContentKey")]),
2141 StdMethod(HRESULT, "DecoderEndFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder")]),
Jose Fonseca91403b62016-05-19 15:10:03 +01002142 StdMethod(HRESULT, "SubmitDecoderBuffers", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (UINT, "NumBuffers"), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC), "NumBuffers"), "pBufferDesc")]),
Jose Fonseca503fde92015-07-16 17:00:30 +01002143 StdMethod(HRESULT, "DecoderExtension", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (Pointer(Const(D3D11_VIDEO_DECODER_EXTENSION)), "pExtensionData")]),
2144 StdMethod(Void, "VideoProcessorSetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2145 StdMethod(Void, "VideoProcessorSetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "YCbCr"), (Pointer(Const(D3D11_VIDEO_COLOR)), "pColor")]),
2146 StdMethod(Void, "VideoProcessorSetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2147 StdMethod(Void, "VideoProcessorSetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE, "AlphaFillMode"), (UINT, "StreamIndex")]),
2148 StdMethod(Void, "VideoProcessorSetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (SIZE, "Size")]),
2149 StdMethod(Void, "VideoProcessorSetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable")]),
2150 StdMethod(HRESULT, "VideoProcessorSetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2151 StdMethod(Void, "VideoProcessorGetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "Enabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2152 StdMethod(Void, "VideoProcessorGetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pYCbCr"), Out(Pointer(D3D11_VIDEO_COLOR), "pColor")], sideeffects=False),
2153 StdMethod(Void, "VideoProcessorGetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2154 StdMethod(Void, "VideoProcessorGetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE), "pAlphaFillMode"), Out(Pointer(UINT), "pStreamIndex")], sideeffects=False),
2155 StdMethod(Void, "VideoProcessorGetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(SIZE), "pSize")], sideeffects=False),
2156 StdMethod(Void, "VideoProcessorGetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2157 StdMethod(HRESULT, "VideoProcessorGetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False),
2158 StdMethod(Void, "VideoProcessorSetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_FRAME_FORMAT, "FrameFormat")]),
2159 StdMethod(Void, "VideoProcessorSetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2160 StdMethod(Void, "VideoProcessorSetStreamOutputRate", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE, "OutputRate"), (BOOL, "RepeatFrame"), (Pointer(Const(DXGI_RATIONAL)), "pCustomRate")]),
2161 StdMethod(Void, "VideoProcessorSetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2162 StdMethod(Void, "VideoProcessorSetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2163 StdMethod(Void, "VideoProcessorSetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Alpha")]),
2164 StdMethod(Void, "VideoProcessorSetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), (Pointer(Const(UINT)), "pEntries")]),
2165 StdMethod(Void, "VideoProcessorSetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(DXGI_RATIONAL)), "pSourceAspectRatio"), (Pointer(Const(DXGI_RATIONAL)), "pDestinationAspectRatio")]),
2166 StdMethod(Void, "VideoProcessorSetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Lower"), (FLOAT, "Upper")]),
2167 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")]),
2168 StdMethod(Void, "VideoProcessorSetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable")]),
2169 StdMethod(Void, "VideoProcessorSetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), (BOOL, "Enable"), (Int, "Level")]),
2170 StdMethod(HRESULT, "VideoProcessorSetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2171 StdMethod(Void, "VideoProcessorGetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_FRAME_FORMAT), "pFrameFormat")], sideeffects=False),
2172 StdMethod(Void, "VideoProcessorGetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2173 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),
2174 StdMethod(Void, "VideoProcessorGetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2175 StdMethod(Void, "VideoProcessorGetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2176 StdMethod(Void, "VideoProcessorGetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pAlpha")], sideeffects=False),
2177 StdMethod(Void, "VideoProcessorGetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), Out(Array(UINT, "Count"), "pEntries")], sideeffects=False),
2178 StdMethod(Void, "VideoProcessorGetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(DXGI_RATIONAL), "pSourceAspectRatio"), Out(Pointer(DXGI_RATIONAL), "pDestinationAspectRatio")], sideeffects=False),
2179 StdMethod(Void, "VideoProcessorGetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pLower"), Out(Pointer(FLOAT), "pUpper")], sideeffects=False),
2180 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),
2181 StdMethod(Void, "VideoProcessorGetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2182 StdMethod(Void, "VideoProcessorGetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(Int), "pLevel")], sideeffects=False),
2183 StdMethod(HRESULT, "VideoProcessorGetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2184 StdMethod(HRESULT, "VideoProcessorBlt", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (ObjPointer(ID3D11VideoProcessorOutputView), "pView"), (UINT, "OutputFrame"), (UINT, "StreamCount"), (Array(Const(D3D11_VIDEO_PROCESSOR_STREAM), "StreamCount"), "pStreams")]),
2185 StdMethod(HRESULT, "NegotiateCryptoSessionKeyExchange", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2186 StdMethod(Void, "EncryptionBlt", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (ObjPointer(ID3D11Texture2D), "pSrcSurface"), (ObjPointer(ID3D11Texture2D), "pDstSurface"), (UINT, "IVSize"), Out(OpaqueBlob(Void, "IVSize"), "pIV")], sideeffects=False), # FIXME
2187 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
2188 StdMethod(Void, "StartSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "RandomNumberSize"), Out(OpaqueBlob(Void, "RandomNumberSize"), "pRandomNumber")], sideeffects=False), # FIXME
2189 StdMethod(Void, "FinishSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession")]),
2190 StdMethod(HRESULT, "GetEncryptionBltKey", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "KeySize"), Out(OpaqueBlob(Void, "KeySize"), "pReadbackKey")], sideeffects=False), # FIXME
2191 StdMethod(HRESULT, "NegotiateAuthenticatedChannelKeyExchange", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2192 StdMethod(HRESULT, "QueryAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), (UINT, "OutputSize"), Out(OpaqueBlob(Void, "OutputSize"), "pOutput")], sideeffects=False), # FIXME
2193 StdMethod(HRESULT, "ConfigureAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), Out(Pointer(D3D11_AUTHENTICATED_CONFIGURE_OUTPUT), "pOutput")]),
2194 StdMethod(Void, "VideoProcessorSetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (D3D11_VIDEO_PROCESSOR_ROTATION, "Rotation")]),
2195 StdMethod(Void, "VideoProcessorGetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnable"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ROTATION), "pRotation")], sideeffects=False),
2196]
2197
2198ID3D11VideoDevice = Interface("ID3D11VideoDevice", IUnknown)
2199ID3D11VideoDevice.methods += [
2200 StdMethod(HRESULT, "CreateVideoDecoder", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pVideoDesc"), (Pointer(Const(D3D11_VIDEO_DECODER_CONFIG)), "pConfig"), Out(Pointer(ObjPointer(ID3D11VideoDecoder)), "ppDecoder")]),
2201 StdMethod(HRESULT, "CreateVideoProcessor", [(ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (UINT, "RateConversionIndex"), Out(Pointer(ObjPointer(ID3D11VideoProcessor)), "ppVideoProcessor")]),
2202 StdMethod(HRESULT, "CreateAuthenticatedChannel", [(D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"), Out(Pointer(ObjPointer(ID3D11AuthenticatedChannel)), "ppAuthenticatedChannel")]),
Robert Tarasov6ccf5bb2020-01-10 12:31:25 -08002203 StdMethod(HRESULT, "CreateCryptoSession", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), (Pointer(Const(GUID)), "pKeyExchangeType"), Out(Pointer(ObjPointer(ID3D11CryptoSession)), "ppCryptoSession")]),
Jose Fonseca503fde92015-07-16 17:00:30 +01002204 StdMethod(HRESULT, "CreateVideoDecoderOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoDecoderOutputView)), "ppVDOVView")]),
2205 StdMethod(HRESULT, "CreateVideoProcessorInputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorInputView)), "ppVPIView")]),
2206 StdMethod(HRESULT, "CreateVideoProcessorOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorOutputView)), "ppVPOView")]),
2207 StdMethod(HRESULT, "CreateVideoProcessorEnumerator", [(Pointer(Const(D3D11_VIDEO_PROCESSOR_CONTENT_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorEnumerator)), "ppEnum")]),
2208 StdMethod(UINT, "GetVideoDecoderProfileCount", [], sideeffects=False),
2209 StdMethod(HRESULT, "GetVideoDecoderProfile", [(UINT, "Index"), Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2210 StdMethod(HRESULT, "CheckVideoDecoderFormat", [(Pointer(Const(GUID)), "pDecoderProfile"), (DXGI_FORMAT, "Format"), Out(Pointer(BOOL), "pSupported")], sideeffects=False),
2211 StdMethod(HRESULT, "GetVideoDecoderConfigCount", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), Out(Pointer(UINT), "pCount")]),
2212 StdMethod(HRESULT, "GetVideoDecoderConfig", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), (UINT, "Index"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
2213 StdMethod(HRESULT, "GetContentProtectionCaps", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), Out(Pointer(D3D11_VIDEO_CONTENT_PROTECTION_CAPS), "pCaps")], sideeffects=False),
2214 StdMethod(HRESULT, "CheckCryptoKeyExchange", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), (UINT, "Index"), Out(Pointer(GUID), "pKeyExchangeType")]),
2215 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
2216 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
2217]
2218
2219d3d11.addInterfaces([
2220 ID3D11VideoContext,
2221 ID3D11VideoDevice,
2222])
2223
2224
José Fonseca50bee952015-02-07 22:32:19 +00002225
2226#
2227# D3D11.1
2228#
2229
José Fonseca50bee952015-02-07 22:32:19 +00002230D3D_MIN_PRECISION = Enum("D3D_MIN_PRECISION", [
2231 "D3D_MIN_PRECISION_DEFAULT",
2232 "D3D_MIN_PRECISION_FLOAT_16",
2233 "D3D_MIN_PRECISION_FLOAT_2_8",
2234 "D3D_MIN_PRECISION_RESERVED",
2235 "D3D_MIN_PRECISION_SINT_16",
2236 "D3D_MIN_PRECISION_UINT_16",
2237 "D3D_MIN_PRECISION_ANY_16",
2238 "D3D_MIN_PRECISION_ANY_10",
2239])
2240
Jose Fonsecaf0009142017-10-12 14:19:26 +01002241D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK = Struct('D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK', [
2242 (UINT, 'ClearSize'),
2243 (UINT, 'EncryptedSize'),
2244])
2245
2246D3D11_VIDEO_DECODER_BUFFER_DESC1 = Struct('D3D11_VIDEO_DECODER_BUFFER_DESC1', [
2247 (D3D11_VIDEO_DECODER_BUFFER_TYPE, 'BufferType'),
2248 (UINT, 'DataOffset'),
2249 (UINT, 'DataSize'),
2250 (Blob(Void, "{self}.IVSize"), "pIV"),
2251 (UINT, 'IVSize'),
2252 (Pointer(D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK), 'pSubSampleMappingBlock'),
2253 (UINT, 'SubSampleMappingCount'),
2254])
2255
2256D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION = Struct('D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION', [
2257 (Pointer(ID3D11CryptoSession), 'pCryptoSession'),
2258 (UINT, 'BlobSize'),
2259 (Blob(Void, '{self}.BlobSize'), 'pBlob'),
2260 (Pointer(GUID), 'pKeyInfoId'),
2261 (UINT, 'PrivateDataSize'),
2262 (Blob(Void, '{self}.PrivateDataSize'), 'pPrivateData'),
2263])
2264
2265D3D11_VIDEO_DECODER_CAPS = Enum('D3D11_VIDEO_DECODER_CAPS', [
2266 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE',
2267 'D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME',
2268 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC',
2269 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED',
2270 'D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED',
2271])
2272
2273D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS = Enum('D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS', [
2274 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION',
2275 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE',
2276 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION',
2277 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT',
2278])
2279
2280D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT = Struct('D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT', [
2281 (BOOL, 'Enable'),
2282 (UINT, 'Width'),
2283 (UINT, 'Height'),
2284 (DXGI_FORMAT, 'Format'),
2285])
2286
2287D3D11_CRYPTO_SESSION_STATUS = Enum('D3D11_CRYPTO_SESSION_STATUS', [
2288 'D3D11_CRYPTO_SESSION_STATUS_OK',
2289 'D3D11_CRYPTO_SESSION_STATUS_KEY_LOST',
2290 'D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST',
2291])
2292
2293D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA', [
2294 (UINT, 'PrivateDataSize'),
2295 (UINT, 'HWProtectionDataSize'),
2296 (Array(BYTE, 4), 'pbInput'),
2297])
2298
2299D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA', [
2300 (UINT, 'PrivateDataSize'),
2301 (UINT, 'MaxHWProtectionDataSize'),
2302 (UINT, 'HWProtectionDataSize'),
2303 (UINT64, 'TransportTime'),
2304 (UINT64, 'ExecutionTime'),
2305 (Array(BYTE, 4), 'pbOutput'),
2306])
2307
2308D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA', [
2309 (UINT, 'HWProtectionFunctionID'),
2310 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA), 'pInputData'),
2311 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA), 'pOutputData'),
2312 (HRESULT, 'Status'),
2313])
2314
2315D3D11_VIDEO_SAMPLE_DESC = Struct('D3D11_VIDEO_SAMPLE_DESC', [
2316 (UINT, 'Width'),
2317 (UINT, 'Height'),
2318 (DXGI_FORMAT, 'Format'),
2319 (DXGI_COLOR_SPACE_TYPE, 'ColorSpace'),
2320])
2321
José Fonseca50bee952015-02-07 22:32:19 +00002322ID3D11BlendState1 = Interface("ID3D11BlendState1", ID3D11BlendState)
2323ID3D11RasterizerState1 = Interface("ID3D11RasterizerState1", ID3D11RasterizerState)
2324ID3DDeviceContextState = Interface("ID3DDeviceContextState", ID3D11DeviceChild)
2325ID3D11DeviceContext1 = Interface("ID3D11DeviceContext1", ID3D11DeviceContext)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002326ID3D11VideoContext1 = Interface('ID3D11VideoContext1', ID3D11VideoContext)
2327ID3D11VideoDevice1 = Interface('ID3D11VideoDevice1', ID3D11VideoDevice)
2328ID3D11VideoProcessorEnumerator1 = Interface('ID3D11VideoProcessorEnumerator1', ID3D11VideoProcessorEnumerator)
José Fonseca50bee952015-02-07 22:32:19 +00002329ID3D11Device1 = Interface("ID3D11Device1", ID3D11Device)
2330ID3DUserDefinedAnnotation = Interface("ID3DUserDefinedAnnotation", IUnknown)
2331
José Fonseca50bee952015-02-07 22:32:19 +00002332D3D11_COPY_FLAGS = Flags(UINT, [
2333 "D3D11_COPY_NO_OVERWRITE",
2334 "D3D11_COPY_DISCARD",
2335])
2336
2337D3D11_LOGIC_OP = Enum("D3D11_LOGIC_OP", [
2338 "D3D11_LOGIC_OP_CLEAR",
2339 "D3D11_LOGIC_OP_SET",
2340 "D3D11_LOGIC_OP_COPY",
2341 "D3D11_LOGIC_OP_COPY_INVERTED",
2342 "D3D11_LOGIC_OP_NOOP",
2343 "D3D11_LOGIC_OP_INVERT",
2344 "D3D11_LOGIC_OP_AND",
2345 "D3D11_LOGIC_OP_NAND",
2346 "D3D11_LOGIC_OP_OR",
2347 "D3D11_LOGIC_OP_NOR",
2348 "D3D11_LOGIC_OP_XOR",
2349 "D3D11_LOGIC_OP_EQUIV",
2350 "D3D11_LOGIC_OP_AND_REVERSE",
2351 "D3D11_LOGIC_OP_AND_INVERTED",
2352 "D3D11_LOGIC_OP_OR_REVERSE",
2353 "D3D11_LOGIC_OP_OR_INVERTED",
2354])
2355
2356D3D11_RENDER_TARGET_BLEND_DESC1 = Struct("D3D11_RENDER_TARGET_BLEND_DESC1", [
2357 (BOOL, "BlendEnable"),
2358 (BOOL, "LogicOpEnable"),
2359 (D3D11_BLEND, "SrcBlend"),
2360 (D3D11_BLEND, "DestBlend"),
2361 (D3D11_BLEND_OP, "BlendOp"),
2362 (D3D11_BLEND, "SrcBlendAlpha"),
2363 (D3D11_BLEND, "DestBlendAlpha"),
2364 (D3D11_BLEND_OP, "BlendOpAlpha"),
2365 (D3D11_LOGIC_OP, "LogicOp"),
2366 (UINT8, "RenderTargetWriteMask"),
2367])
2368
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002369D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8
2370
José Fonseca50bee952015-02-07 22:32:19 +00002371D3D11_BLEND_DESC1 = Struct("D3D11_BLEND_DESC1", [
2372 (BOOL, "AlphaToCoverageEnable"),
2373 (BOOL, "IndependentBlendEnable"),
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002374 (Array(D3D11_RENDER_TARGET_BLEND_DESC1, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT), "RenderTarget"),
José Fonseca50bee952015-02-07 22:32:19 +00002375])
2376
2377ID3D11BlendState1.methods += [
2378 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_BLEND_DESC1), "pDesc")], sideeffects=False),
2379]
2380
2381D3D11_RASTERIZER_DESC1 = Struct("D3D11_RASTERIZER_DESC1", [
2382 (D3D11_FILL_MODE, "FillMode"),
2383 (D3D11_CULL_MODE, "CullMode"),
2384 (BOOL, "FrontCounterClockwise"),
2385 (INT, "DepthBias"),
2386 (FLOAT, "DepthBiasClamp"),
2387 (FLOAT, "SlopeScaledDepthBias"),
2388 (BOOL, "DepthClipEnable"),
2389 (BOOL, "ScissorEnable"),
2390 (BOOL, "MultisampleEnable"),
2391 (BOOL, "AntialiasedLineEnable"),
2392 (UINT, "ForcedSampleCount"),
2393])
2394
2395ID3D11RasterizerState1.methods += [
2396 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RASTERIZER_DESC1), "pDesc")], sideeffects=False),
2397]
2398
2399D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG = Flags(UINT, [
2400 "D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED",
2401])
2402
2403ID3D11DeviceContext1.methods += [
2404 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")]),
2405 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")]),
2406 StdMethod(Void, "DiscardResource", [(ObjPointer(ID3D11Resource), "pResource")]),
2407 StdMethod(Void, "DiscardView", [(ObjPointer(ID3D11View), "pResourceView")]),
2408 StdMethod(Void, "DiscardView1", [(ObjPointer(ID3D11View), "pResourceView"), (Array(Const(D3D11_RECT), "NumRects"), "pRect"), (UINT, "NumRects")]),
2409 StdMethod(Void, "VSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2410 StdMethod(Void, "HSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2411 StdMethod(Void, "DSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2412 StdMethod(Void, "GSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2413 StdMethod(Void, "PSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2414 StdMethod(Void, "CSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2415 StdMethod(Void, "VSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2416 StdMethod(Void, "HSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2417 StdMethod(Void, "DSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2418 StdMethod(Void, "GSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2419 StdMethod(Void, "PSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2420 StdMethod(Void, "CSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2421 StdMethod(Void, "SwapDeviceContextState", [(ObjPointer(ID3DDeviceContextState), "pState"), Out(Pointer(ObjPointer(ID3DDeviceContextState)), "ppPreviousState")]),
Jose Fonseca4ccc8772015-05-20 17:18:31 +01002422 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 +00002423]
2424
Jose Fonsecaf0009142017-10-12 14:19:26 +01002425ID3D11VideoContext1.methods += [
2426 StdMethod(HRESULT, 'SubmitDecoderBuffers1', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (UINT, 'NumBuffers'), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC1), 'NumBuffers'), 'pBufferDesc')]),
2427 StdMethod(HRESULT, 'GetDataForNewHardwareKey', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), (UINT, 'PrivateInputSize'), (Blob(Const(Void), 'PrivateInputSize'), 'pPrivatInputData'), Out(Pointer(UINT64), 'pPrivateOutputData')]),
2428 StdMethod(HRESULT, 'CheckCryptoSessionStatus', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), Out(Pointer(D3D11_CRYPTO_SESSION_STATUS), 'pStatus')]),
2429 StdMethod(HRESULT, 'DecoderEnableDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc'), (UINT, 'ReferenceFrameCount')]),
2430 StdMethod(HRESULT, 'DecoderUpdateDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc')]),
2431 StdMethod(Void, 'VideoProcessorSetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2432 StdMethod(Void, 'VideoProcessorSetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (BOOL, 'ShaderUsage')]),
2433 StdMethod(Void, 'VideoProcessorGetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2434 StdMethod(Void, 'VideoProcessorGetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(BOOL), 'pShaderUsage')], sideeffects=False),
2435 StdMethod(Void, 'VideoProcessorSetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2436 StdMethod(Void, 'VideoProcessorSetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (BOOL, 'Enable'), (BOOL, 'FlipHorizontal'), (BOOL, 'FlipVertical')]),
2437 StdMethod(Void, 'VideoProcessorGetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2438 StdMethod(Void, 'VideoProcessorGetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(BOOL), 'pEnable'), Out(Pointer(BOOL), 'pFlipHorizontal'), Out(Pointer(BOOL), 'pFlipVertical')]),
2439 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),
2440]
2441
2442ID3D11VideoDevice1.methods += [
2443 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),
2444 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),
2445 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),
2446 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),
2447]
2448
2449ID3D11VideoProcessorEnumerator1.methods += [
2450 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),
2451]
José Fonseca50bee952015-02-07 22:32:19 +00002452
2453ID3D11Device1.methods += [
2454 StdMethod(Void, "GetImmediateContext1", [Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppImmediateContext")]),
2455 StdMethod(HRESULT, "CreateDeferredContext1", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppDeferredContext")]),
2456 StdMethod(HRESULT, "CreateBlendState1", [(Pointer(Const(D3D11_BLEND_DESC1)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState1)), "ppBlendState")]),
2457 StdMethod(HRESULT, "CreateRasterizerState1", [(Pointer(Const(D3D11_RASTERIZER_DESC1)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState1)), "ppRasterizerState")]),
2458 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")]),
2459 StdMethod(HRESULT, "OpenSharedResource1", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2460 StdMethod(HRESULT, "OpenSharedResourceByName", [(LPCWSTR, "lpName"), (DXGI_SHARED_RESOURCE_FLAG, "dwDesiredAccess"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2461]
2462
2463ID3DUserDefinedAnnotation.methods += [
2464 StdMethod(INT, "BeginEvent", [(LPCWSTR, "Name")], sideeffects=False),
2465 StdMethod(INT, "EndEvent", [], sideeffects=False),
2466 StdMethod(Void, "SetMarker", [(LPCWSTR, "Name")], sideeffects=False),
2467 StdMethod(BOOL, "GetStatus", [], sideeffects=False),
2468]
2469
Jose Fonseca550c98d2018-02-13 12:59:31 +00002470ID3D11DebugTest = Interface('ID3D11DebugTest', IUnknown)
2471ID3D11DebugTest.methods += [
2472 StdMethod(Void, 'PreventFurtherExecutionOnError', [(BOOL, 'Enable')]),
2473 StdMethod(Void, 'VSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2474 StdMethod(Void, 'HSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2475 StdMethod(Void, 'DSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2476 StdMethod(Void, 'GSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2477 StdMethod(Void, 'PSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2478 StdMethod(Void, 'CSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2479]
2480
José Fonseca50bee952015-02-07 22:32:19 +00002481d3d11.addInterfaces([
2482 ID3D11Device1,
2483 ID3DUserDefinedAnnotation,
Jose Fonseca550c98d2018-02-13 12:59:31 +00002484 ID3D11DebugTest,
José Fonseca50bee952015-02-07 22:32:19 +00002485])
José Fonseca40b82ca2015-02-07 22:55:49 +00002486
2487
2488
2489#
2490# D3D11.2
2491#
2492
2493D3D11_TILED_RESOURCE_COORDINATE = Struct("D3D11_TILED_RESOURCE_COORDINATE", [
2494 (UINT, "X"),
2495 (UINT, "Y"),
2496 (UINT, "Z"),
2497 (UINT, "Subresource"),
2498])
2499
2500D3D11_TILE_REGION_SIZE = Struct("D3D11_TILE_REGION_SIZE", [
2501 (UINT, "NumTiles"),
2502 (BOOL, "bUseBox"),
2503 (UINT, "Width"),
2504 (UINT16, "Height"),
2505 (UINT16, "Depth"),
2506])
2507
2508D3D11_TILE_MAPPING_FLAG = Flags(UINT, [
2509 "D3D11_TILE_MAPPING_NO_OVERWRITE",
2510])
2511
2512D3D11_TILE_RANGE_FLAG = Flags(UINT, [
2513 "D3D11_TILE_RANGE_NULL",
2514 "D3D11_TILE_RANGE_SKIP",
2515 "D3D11_TILE_RANGE_REUSE_SINGLE_TILE",
2516])
2517
2518D3D11_SUBRESOURCE_TILING = Struct("D3D11_SUBRESOURCE_TILING", [
2519 (UINT, "WidthInTiles"),
2520 (UINT16, "HeightInTiles"),
2521 (UINT16, "DepthInTiles"),
2522 (FakeEnum(UINT, ["D3D11_PACKED_TILE"]), "StartTileIndexInOverallResource"),
2523])
2524
2525D3D11_TILE_SHAPE = Struct("D3D11_TILE_SHAPE", [
2526 (UINT, "WidthInTexels"),
2527 (UINT, "HeightInTexels"),
2528 (UINT, "DepthInTexels"),
2529])
2530
2531D3D11_PACKED_MIP_DESC = Struct("D3D11_PACKED_MIP_DESC", [
2532 (UINT8, "NumStandardMips"),
2533 (UINT8, "NumPackedMips"),
2534 (UINT, "NumTilesForPackedMips"),
2535 (UINT, "StartTileIndexInOverallResource"),
2536])
2537
2538D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = Flags(UINT, [
2539 "D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE",
2540])
2541
2542D3D11_TILE_COPY_FLAG = Flags(UINT, [
2543 "D3D11_TILE_COPY_NO_OVERWRITE",
2544 "D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE",
2545 "D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER",
2546])
2547
2548ID3D11DeviceContext2 = Interface("ID3D11DeviceContext2", ID3D11DeviceContext1)
2549ID3D11DeviceContext2.methods += [
2550 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")]),
2551 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")]),
2552 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")]),
2553 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
2554 StdMethod(HRESULT, "ResizeTilePool", [(ObjPointer(ID3D11Buffer), "pTilePool"), (UINT64, "NewSizeInBytes")]),
2555 StdMethod(Void, "TiledResourceBarrier", [(ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessBeforeBarrier"), (ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessAfterBarrier")]),
2556 StdMethod(BOOL, "IsAnnotationEnabled", [], sideeffects=False),
2557 StdMethod(Void, "SetMarkerInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2558 StdMethod(Void, "BeginEventInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2559 StdMethod(Void, "EndEvent", []),
2560]
2561
2562ID3D11Device2 = Interface("ID3D11Device2", ID3D11Device1)
2563ID3D11Device2.methods += [
2564 StdMethod(Void, "GetImmediateContext2", [Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppImmediateContext")]),
2565 StdMethod(HRESULT, "CreateDeferredContext2", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppDeferredContext")]),
2566 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")]),
2567 StdMethod(HRESULT, "CheckMultisampleQualityLevels1", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), (D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG, "Flags"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
2568]
2569
2570d3d11.addInterfaces([
2571 ID3D11Device2,
2572 ID3D11DeviceContext2,
2573])
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002574
2575
2576
2577#
2578# D3D11.3
2579#
2580
2581D3D11_CONTEXT_TYPE = Enum("D3D11_CONTEXT_TYPE", [
2582 "D3D11_CONTEXT_TYPE_ALL",
2583 "D3D11_CONTEXT_TYPE_3D",
2584 "D3D11_CONTEXT_TYPE_COMPUTE",
2585 "D3D11_CONTEXT_TYPE_COPY",
2586 "D3D11_CONTEXT_TYPE_VIDEO",
2587])
2588
2589D3D11_TEXTURE_LAYOUT = Enum("D3D11_TEXTURE_LAYOUT", [
2590 "D3D11_TEXTURE_LAYOUT_UNDEFINED",
2591 "D3D11_TEXTURE_LAYOUT_ROW_MAJOR",
2592 "D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE",
2593])
2594
2595D3D11_TEXTURE2D_DESC1 = Struct("D3D11_TEXTURE2D_DESC1", [
2596 (UINT, "Width"),
2597 (UINT, "Height"),
2598 (UINT, "MipLevels"),
2599 (UINT, "ArraySize"),
2600 (DXGI_FORMAT, "Format"),
2601 (DXGI_SAMPLE_DESC, "SampleDesc"),
2602 (D3D11_USAGE, "Usage"),
2603 (UINT, "BindFlags"),
2604 (UINT, "CPUAccessFlags"),
2605 (UINT, "MiscFlags"),
2606 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2607])
2608
2609ID3D11Texture2D1 = Interface("ID3D11Texture2D1", ID3D11Texture2D)
2610ID3D11Texture2D1.methods += [
2611 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE2D_DESC1), "pDesc")], sideeffects=False),
2612]
2613D3D11_TEXTURE3D_DESC1 = Struct("D3D11_TEXTURE3D_DESC1", [
2614 (UINT, "Width"),
2615 (UINT, "Height"),
2616 (UINT, "Depth"),
2617 (UINT, "MipLevels"),
2618 (DXGI_FORMAT, "Format"),
2619 (D3D11_USAGE, "Usage"),
2620 (UINT, "BindFlags"),
2621 (UINT, "CPUAccessFlags"),
2622 (UINT, "MiscFlags"),
2623 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2624])
2625
2626ID3D11Texture3D1 = Interface("ID3D11Texture3D1", ID3D11Texture3D)
2627ID3D11Texture3D1.methods += [
2628 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE3D_DESC1), "pDesc")], sideeffects=False),
2629]
2630
2631D3D11_CONSERVATIVE_RASTERIZATION_MODE = Enum("D3D11_CONSERVATIVE_RASTERIZATION_MODE", [
2632 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF",
2633 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON",
2634])
2635
2636D3D11_RASTERIZER_DESC2 = Struct("D3D11_RASTERIZER_DESC2", [
2637 (D3D11_FILL_MODE, "FillMode"),
2638 (D3D11_CULL_MODE, "CullMode"),
2639 (BOOL, "FrontCounterClockwise"),
2640 (INT, "DepthBias"),
2641 (FLOAT, "DepthBiasClamp"),
2642 (FLOAT, "SlopeScaledDepthBias"),
2643 (BOOL, "DepthClipEnable"),
2644 (BOOL, "ScissorEnable"),
2645 (BOOL, "MultisampleEnable"),
2646 (BOOL, "AntialiasedLineEnable"),
2647 (UINT, "ForcedSampleCount"),
2648 (D3D11_CONSERVATIVE_RASTERIZATION_MODE, "ConservativeRaster"),
2649])
2650
2651ID3D11RasterizerState2 = Interface("ID3D11RasterizerState2", ID3D11RasterizerState1)
2652ID3D11RasterizerState2.methods += [
2653 StdMethod(Void, "GetDesc2", [Out(Pointer(D3D11_RASTERIZER_DESC2), "pDesc")], sideeffects=False),
2654]
2655
2656D3D11_TEX2D_SRV1 = Struct("D3D11_TEX2D_SRV1", [
2657 (UINT, "MostDetailedMip"),
2658 (UINT, "MipLevels"),
2659 (UINT, "PlaneSlice"),
2660])
2661
2662D3D11_TEX2D_ARRAY_SRV1 = Struct("D3D11_TEX2D_ARRAY_SRV1", [
2663 (UINT, "MostDetailedMip"),
2664 (UINT, "MipLevels"),
2665 (UINT, "FirstArraySlice"),
2666 (UINT, "ArraySize"),
2667 (UINT, "PlaneSlice"),
2668])
2669
2670D3D11_SHADER_RESOURCE_VIEW_DESC1 = Struct("D3D11_SHADER_RESOURCE_VIEW_DESC1", [
2671 (DXGI_FORMAT, "Format"),
2672 (D3D11_SRV_DIMENSION, "ViewDimension"),
2673 (Union("{self}.ViewDimension", [
2674 ("D3D11_SRV_DIMENSION_BUFFER", D3D11_BUFFER_SRV, "Buffer"),
2675 ("D3D11_SRV_DIMENSION_TEXTURE1D", D3D11_TEX1D_SRV, "Texture1D"),
2676 ("D3D11_SRV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_SRV, "Texture1DArray"),
2677 ("D3D11_SRV_DIMENSION_TEXTURE2D", D3D11_TEX2D_SRV1, "Texture2D"),
2678 ("D3D11_SRV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_SRV1, "Texture2DArray"),
2679 ("D3D11_SRV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_SRV, "Texture2DMS"),
2680 ("D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
2681 ("D3D11_SRV_DIMENSION_TEXTURE3D", D3D11_TEX3D_SRV, "Texture3D"),
2682 ("D3D11_SRV_DIMENSION_TEXTURECUBE", D3D11_TEXCUBE_SRV, "TextureCube"),
2683 ("D3D11_SRV_DIMENSION_TEXTURECUBEARRAY", D3D11_TEXCUBE_ARRAY_SRV, "TextureCubeArray"),
2684 ("D3D11_SRV_DIMENSION_BUFFEREX", D3D11_BUFFEREX_SRV, "BufferEx"),
2685 ]), None),
2686])
2687
2688
2689ID3D11ShaderResourceView1 = Interface("ID3D11ShaderResourceView1", ID3D11ShaderResourceView)
2690ID3D11ShaderResourceView1.methods += [
2691 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC1), "pDesc1")], sideeffects=False),
2692]
2693
2694D3D11_TEX2D_RTV1 = Struct("D3D11_TEX2D_RTV1", [
2695 (UINT, "MipSlice"),
2696 (UINT, "PlaneSlice"),
2697])
2698
2699D3D11_TEX2D_ARRAY_RTV1 = Struct("D3D11_TEX2D_ARRAY_RTV1", [
2700 (UINT, "MipSlice"),
2701 (UINT, "FirstArraySlice"),
2702 (UINT, "ArraySize"),
2703 (UINT, "PlaneSlice"),
2704])
2705
2706D3D11_RENDER_TARGET_VIEW_DESC1 = Struct("D3D11_RENDER_TARGET_VIEW_DESC1", [
2707 (DXGI_FORMAT, "Format"),
2708 (D3D11_RTV_DIMENSION, "ViewDimension"),
2709 (Union("{self}.ViewDimension", [
2710 ("D3D11_RTV_DIMENSION_BUFFER", D3D11_BUFFER_RTV, "Buffer"),
2711 ("D3D11_RTV_DIMENSION_TEXTURE1D", D3D11_TEX1D_RTV, "Texture1D"),
2712 ("D3D11_RTV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_RTV, "Texture1DArray"),
2713 ("D3D11_RTV_DIMENSION_TEXTURE2D", D3D11_TEX2D_RTV1, "Texture2D"),
2714 ("D3D11_RTV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_RTV1, "Texture2DArray"),
2715 ("D3D11_RTV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_RTV, "Texture2DMS"),
2716 ("D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
2717 ("D3D11_RTV_DIMENSION_TEXTURE3D", D3D11_TEX3D_RTV, "Texture3D"),
2718 ]), None),
2719])
2720
2721ID3D11RenderTargetView1 = Interface("ID3D11RenderTargetView1", ID3D11RenderTargetView)
2722ID3D11RenderTargetView1.methods += [
2723 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC1), "pDesc1")], sideeffects=False),
2724]
2725
2726D3D11_TEX2D_UAV1 = Struct("D3D11_TEX2D_UAV1", [
2727 (UINT, "MipSlice"),
2728 (UINT, "PlaneSlice"),
2729])
2730
2731D3D11_TEX2D_ARRAY_UAV1 = Struct("D3D11_TEX2D_ARRAY_UAV1", [
2732 (UINT, "MipSlice"),
2733 (UINT, "FirstArraySlice"),
2734 (UINT, "ArraySize"),
2735 (UINT, "PlaneSlice"),
2736])
2737
2738D3D11_UNORDERED_ACCESS_VIEW_DESC1 = Struct("D3D11_UNORDERED_ACCESS_VIEW_DESC1", [
2739 (DXGI_FORMAT, "Format"),
2740 (D3D11_UAV_DIMENSION, "ViewDimension"),
2741 (Union("{self}.ViewDimension", [
2742 ("D3D11_UAV_DIMENSION_BUFFER", D3D11_BUFFER_UAV, "Buffer"),
2743 ("D3D11_UAV_DIMENSION_TEXTURE1D", D3D11_TEX1D_UAV, "Texture1D"),
2744 ("D3D11_UAV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_UAV, "Texture1DArray"),
2745 ("D3D11_UAV_DIMENSION_TEXTURE2D", D3D11_TEX2D_UAV1, "Texture2D"),
2746 ("D3D11_UAV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_UAV1, "Texture2DArray"),
2747 ("D3D11_UAV_DIMENSION_TEXTURE3D", D3D11_TEX3D_UAV, "Texture3D"),
2748 ]), None),
2749])
2750
2751ID3D11UnorderedAccessView1 = Interface("ID3D11UnorderedAccessView1", ID3D11UnorderedAccessView)
2752ID3D11UnorderedAccessView1.methods += [
2753 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC1), "pDesc1")], sideeffects=False),
2754]
2755
2756D3D11_QUERY_DESC1 = Struct("D3D11_QUERY_DESC1", [
2757 (D3D11_QUERY, "Query"),
2758 (D3D11_QUERY_MISC_FLAG, "MiscFlags"),
2759 (D3D11_CONTEXT_TYPE, "ContextType"),
2760])
2761
2762ID3D11Query1 = Interface("ID3D11Query1", ID3D11Query)
2763ID3D11Query1.methods += [
2764 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_QUERY_DESC1), "pDesc1")], sideeffects=False),
2765]
2766
2767ID3D11DeviceContext3 = Interface("ID3D11DeviceContext3", ID3D11DeviceContext2)
2768ID3D11DeviceContext3.methods += [
2769 StdMethod(Void, "Flush1", [(D3D11_CONTEXT_TYPE, "ContextType"), (HANDLE, "hEvent")]),
2770 StdMethod(Void, "SetHardwareProtectionState", [(BOOL, "HwProtectionEnable")]),
2771 StdMethod(Void, "GetHardwareProtectionState", [Out(Pointer(BOOL), "pHwProtectionEnable")], sideeffects=False),
2772]
2773
Jose Fonseca05cf1b52017-10-10 21:56:42 +01002774ID3D11Fence = Interface('ID3D11Fence', ID3D11DeviceChild)
2775ID3D11Fence.methods += [
2776 StdMethod(HRESULT, 'CreateSharedHandle', [(Pointer(Const(SECURITY_ATTRIBUTES)), 'pAttributes'), (DWORD, 'dwAccess'), (LPCWSTR, 'lpName'), Out(Pointer(HANDLE), 'pHandle')]),
2777 StdMethod(UINT64, 'GetCompletedValue', []),
2778 StdMethod(HRESULT, 'SetEventOnCompletion', [(UINT64, 'Value'), (HANDLE, 'hEvent')]),
2779]
2780
2781ID3D11DeviceContext4 = Interface('ID3D11DeviceContext4', ID3D11DeviceContext3)
2782ID3D11DeviceContext4.methods += [
2783 StdMethod(HRESULT, 'Signal', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2784 StdMethod(HRESULT, 'Wait', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2785]
2786
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002787ID3D11Device3 = Interface("ID3D11Device3", ID3D11Device2)
2788ID3D11Device3.methods += [
2789 StdMethod(HRESULT, "CreateTexture2D1", [(Pointer(Const(D3D11_TEXTURE2D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D1)), "ppTexture2D")]),
2790 StdMethod(HRESULT, "CreateTexture3D1", [(Pointer(Const(D3D11_TEXTURE3D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture3D1)), "ppTexture3D")]),
2791 StdMethod(HRESULT, "CreateRasterizerState2", [(Pointer(Const(D3D11_RASTERIZER_DESC2)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState2)), "ppRasterizerState")]),
2792 StdMethod(HRESULT, "CreateShaderResourceView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView1)), "ppSRView1")]),
2793 StdMethod(HRESULT, "CreateUnorderedAccessView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView1)), "ppUAView1")]),
2794 StdMethod(HRESULT, "CreateRenderTargetView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11RenderTargetView1)), "ppRTView1")]),
2795 StdMethod(HRESULT, "CreateQuery1", [(Pointer(Const(D3D11_QUERY_DESC1)), "pQueryDesc1"), Out(Pointer(ObjPointer(ID3D11Query1)), "ppQuery1")]),
2796 StdMethod(Void, "GetImmediateContext3", [Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppImmediateContext")]),
2797 StdMethod(HRESULT, "CreateDeferredContext3", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppDeferredContext")]),
Jose Fonsecae82b4a12016-05-18 15:23:41 +01002798 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 +01002799 StdMethod(Void, "ReadFromSubresource", [Out(OpaquePointer(Void), "pDstData"), (UINT, "DstRowPitch"), (UINT, "DstDepthPitch"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")], sideeffects=False), # FIXME
2800]
2801
2802d3d11.addInterfaces([
2803 ID3D11Device3,
2804 ID3D11DeviceContext3,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002805 ID3D11DeviceContext4, # Requires Windows 10.0.15021 SDK
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002806])
Jose Fonseca65113392017-09-26 16:46:11 +01002807
2808
2809#
2810# D3D11.4
2811#
2812
2813D3D11_FENCE_FLAG = Enum('D3D11_FENCE_FLAG', [
2814 'D3D11_FENCE_FLAG_NONE',
2815 'D3D11_FENCE_FLAG_SHARED',
2816 'D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER',
2817])
2818
2819ID3D11Device4 = Interface('ID3D11Device4', ID3D11Device3)
2820ID3D11Device5 = Interface('ID3D11Device5', ID3D11Device4)
2821ID3D11Multithread = Interface('ID3D11Multithread', IUnknown)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002822ID3D11VideoContext2 = Interface('ID3D11VideoContext2', ID3D11VideoContext1)
Jose Fonseca65113392017-09-26 16:46:11 +01002823
2824ID3D11Device4.methods += [
2825 StdMethod(HRESULT, 'RegisterDeviceRemovedEvent', [(HANDLE, 'hEvent'), Out(Pointer(DWORD), 'pdwCookie')]),
2826 StdMethod(Void, 'UnregisterDeviceRemoved', [(DWORD, 'dwCookie')]),
2827]
2828
2829ID3D11Device5.methods += [
2830 StdMethod(HRESULT, 'OpenSharedFence', [(HANDLE, 'hFence'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2831 StdMethod(HRESULT, 'CreateFence', [(UINT64, 'InitialValue'), (D3D11_FENCE_FLAG, 'Flags'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2832]
Jose Fonsecaf0009142017-10-12 14:19:26 +01002833
Jose Fonseca65113392017-09-26 16:46:11 +01002834ID3D11Multithread.methods += [
2835 StdMethod(Void, 'Enter', []),
2836 StdMethod(Void, 'Leave', []),
2837 StdMethod(BOOL, 'SetMultithreadProtected', [(BOOL, 'bMTProtect')]),
2838 StdMethod(BOOL, 'GetMultithreadProtected', [], sideeffects=False),
2839]
2840
Jose Fonsecaf0009142017-10-12 14:19:26 +01002841ID3D11VideoContext2.methods += [
2842 StdMethod(Void, 'VideoProcessorSetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2843 StdMethod(Void, 'VideoProcessorGetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(OpaqueBlob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2844 StdMethod(Void, 'VideoProcessorSetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2845 StdMethod(Void, 'VideoProcessorGetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(Blob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2846]
Jose Fonseca65113392017-09-26 16:46:11 +01002847
2848PFN_DESTRUCTION_CALLBACK = Opaque("PFN_DESTRUCTION_CALLBACK")
2849
2850ID3DDestructionNotifier = Interface('ID3DDestructionNotifier', IUnknown)
2851
2852ID3DDestructionNotifier.methods += [
2853 StdMethod(HRESULT, 'RegisterDestructionCallback', [(PFN_DESTRUCTION_CALLBACK, 'callbackFn'), (OpaquePointer(Void), 'pData'), Out(Pointer(UINT), 'pCallbackID')], sideeffects=False),
2854 StdMethod(HRESULT, 'UnregisterDestructionCallback', [(UINT, 'callbackID')], sideeffects=False),
2855]
2856
Jose Fonseca7c76b902017-10-09 18:00:42 +01002857IUseCounted = Interface('IUseCounted', IUnknown)
2858IUseCounted.methods += [
2859 StdMethod(ULONG, 'UCAddUse', []),
2860 StdMethod(ULONG, 'UCReleaseUse', []),
2861 StdMethod(Void, 'UCBreakCyclicReferences', []),
2862 StdMethod(Void, 'UCEstablishCyclicReferences', []),
2863 StdMethod(Void, 'UCDestroy', []),
2864]
2865
2866ILayeredUseCounted = Interface('ILayeredUseCounted', IUseCounted)
2867
2868ID3D11LayeredUseCounted = Interface('ID3D11LayeredUseCounted', ILayeredUseCounted)
2869
2870IUseCounted2 = Interface('IUseCounted2', IUseCounted)
2871IUseCounted2.methods += [
2872 StdMethod(HRESULT, 'UCQueryInterface', [(UINT, 'flags'), (REFIID, 'riid'), Out(Pointer(ObjPointer(Void)), 'ppvObj')]),
2873]
2874
Jose Fonseca65113392017-09-26 16:46:11 +01002875d3d11.addInterfaces([
Jose Fonseca93da5d22017-10-12 14:09:37 +01002876 ID3D11Device4,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002877 ID3D11Device5, # Requires Windows 10.0.15021 SDK
Jose Fonseca65113392017-09-26 16:46:11 +01002878 ID3D11Multithread,
Jose Fonsecaf0009142017-10-12 14:19:26 +01002879 ID3D11VideoContext2,
Jose Fonseca7c76b902017-10-09 18:00:42 +01002880 ID3DDestructionNotifier,
2881 ID3D11LayeredUseCounted,
2882 IUseCounted2,
Jose Fonseca65113392017-09-26 16:46:11 +01002883])