blob: 460be6515bb89e3eb17747d35a5ea14529906d22 [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
Jose Fonsecab155fa72020-05-21 09:16:48 +01001237D3D11_SHADER_CACHE_SUPPORT_FLAGS = FakeEnum(UINT, [
1238 "D3D11_SHADER_CACHE_SUPPORT_NONE",
1239 "D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE",
1240 "D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE",
1241])
1242
1243D3D11_FEATURE_DATA_SHADER_CACHE = Struct("D3D11_FEATURE_DATA_SHADER_CACHE", [
1244 (D3D11_SHADER_CACHE_SUPPORT_FLAGS, 'SupportFlags'),
1245])
1246
Jose Fonsecada81a3a2020-05-22 20:39:01 +01001247D3D11_SHARED_RESOURCE_TIER = Enum("D3D11_SHARED_RESOURCE_TIER", [
1248 "D3D11_SHARED_RESOURCE_TIER_0",
1249 "D3D11_SHARED_RESOURCE_TIER_1",
1250 "D3D11_SHARED_RESOURCE_TIER_2",
1251])
1252
1253D3D11_FEATURE_DATA_D3D11_OPTIONS5 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS5", [
1254 (D3D11_SHARED_RESOURCE_TIER, "SharedResourceTier"),
1255])
1256
1257
José Fonsecab95e3722012-04-16 14:01:15 +01001258D3D11_FEATURE, D3D11_FEATURE_DATA = EnumPolymorphic("D3D11_FEATURE", "Feature", [
1259 ("D3D11_FEATURE_THREADING", Pointer(D3D11_FEATURE_DATA_THREADING)),
1260 ("D3D11_FEATURE_DOUBLES", Pointer(D3D11_FEATURE_DATA_DOUBLES)),
1261 ("D3D11_FEATURE_FORMAT_SUPPORT", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT)),
1262 ("D3D11_FEATURE_FORMAT_SUPPORT2", Pointer(D3D11_FEATURE_DATA_FORMAT_SUPPORT2)),
1263 ("D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS)),
José Fonseca9a8d0cf2014-10-03 15:38:14 +01001264 ("D3D11_FEATURE_D3D11_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS)),
1265 ("D3D11_FEATURE_ARCHITECTURE_INFO", Pointer(D3D11_FEATURE_DATA_ARCHITECTURE_INFO)),
1266 ("D3D11_FEATURE_D3D9_OPTIONS", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS)),
1267 ("D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT", Pointer(D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT)),
1268 ("D3D11_FEATURE_D3D9_SHADOW_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT)),
1269 ("D3D11_FEATURE_D3D11_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS1)),
1270 ("D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT", Pointer(D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT)),
1271 ("D3D11_FEATURE_MARKER_SUPPORT", Pointer(D3D11_FEATURE_DATA_MARKER_SUPPORT)),
1272 ("D3D11_FEATURE_D3D9_OPTIONS1", Pointer(D3D11_FEATURE_DATA_D3D9_OPTIONS1)),
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001273 ("D3D11_FEATURE_D3D11_OPTIONS2", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS2)),
1274 ("D3D11_FEATURE_D3D11_OPTIONS3", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS3)),
1275 ("D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT", Pointer(D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT)),
Jose Fonseca65113392017-09-26 16:46:11 +01001276 ("D3D11_FEATURE_D3D11_OPTIONS4", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS4)),
Jose Fonsecab155fa72020-05-21 09:16:48 +01001277 ("D3D11_FEATURE_SHADER_CACHE", Pointer(D3D11_FEATURE_DATA_SHADER_CACHE)),
Jose Fonsecada81a3a2020-05-22 20:39:01 +01001278 ("D3D11_FEATURE_D3D11_OPTIONS5", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS5)),
José Fonsecab95e3722012-04-16 14:01:15 +01001279], Blob(Void, "FeatureSupportDataSize"), False)
1280
Jose Fonseca51b3df52018-11-16 14:45:29 +00001281D3D11_NUM_RTVS = FakeEnum(UINT, [
1282 "D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL",
1283])
1284
1285D3D11_NUM_UAVS = FakeEnum(UINT, [
1286 "D3D11_KEEP_UNORDERED_ACCESS_VIEWS",
1287])
1288
Jose Fonsecaf42d6552019-01-15 14:53:35 +00001289D3D11_SAMPLE_MASK = FakeEnum(UINT, [
1290 "D3D11_DEFAULT_SAMPLE_MASK"
1291])
1292
José Fonseca5b6fb752012-04-14 14:56:45 +01001293ID3D11DeviceContext.methods += [
José Fonsecaee590be2012-04-16 13:25:06 +01001294 StdMethod(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1295 StdMethod(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1296 StdMethod(Void, "PSSetShader", [(ObjPointer(ID3D11PixelShader), "pPixelShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1297 StdMethod(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1298 StdMethod(Void, "VSSetShader", [(ObjPointer(ID3D11VertexShader), "pVertexShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1299 StdMethod(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
1300 StdMethod(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
1301 StdMethod(HRESULT, "Map", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource"), (D3D11_MAP, "MapType"), (D3D11_MAP_FLAG, "MapFlags"), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), "pMappedResource")]),
1302 StdMethod(Void, "Unmap", [(ObjPointer(ID3D11Resource), "pResource"), (UINT, "Subresource")]),
1303 StdMethod(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1304 StdMethod(Void, "IASetInputLayout", [(ObjPointer(ID3D11InputLayout), "pInputLayout")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001305 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 +01001306 StdMethod(Void, "IASetIndexBuffer", [(ObjPointer(ID3D11Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
1307 StdMethod(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
1308 StdMethod(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
1309 StdMethod(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1310 StdMethod(Void, "GSSetShader", [(ObjPointer(ID3D11GeometryShader), "pShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1311 StdMethod(Void, "IASetPrimitiveTopology", [(D3D11_PRIMITIVE_TOPOLOGY, "Topology")]),
1312 StdMethod(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1313 StdMethod(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1314 StdMethod(Void, "Begin", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
1315 StdMethod(Void, "End", [(ObjPointer(ID3D11Asynchronous), "pAsync")]),
Jose Fonseca60e65142017-06-09 13:06:32 +01001316 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 +01001317 StdMethod(Void, "SetPredication", [(ObjPointer(ID3D11Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
1318 StdMethod(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1319 StdMethod(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1320 StdMethod(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (ObjPointer(ID3D11DepthStencilView), "pDepthStencilView")]),
Jose Fonseca51b3df52018-11-16 14:45:29 +00001321 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 +00001322 StdMethod(Void, "OMSetBlendState", [(ObjPointer(ID3D11BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (D3D11_SAMPLE_MASK, "SampleMask")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001323 StdMethod(Void, "OMSetDepthStencilState", [(ObjPointer(ID3D11DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001324 StdMethod(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001325 StdMethod(Void, "DrawAuto", []),
1326 StdMethod(Void, "DrawIndexedInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1327 StdMethod(Void, "DrawInstancedIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1328 StdMethod(Void, "Dispatch", [(UINT, "ThreadGroupCountX"), (UINT, "ThreadGroupCountY"), (UINT, "ThreadGroupCountZ")]),
1329 StdMethod(Void, "DispatchIndirect", [(ObjPointer(ID3D11Buffer), "pBufferForArgs"), (UINT, "AlignedByteOffsetForArgs")]),
1330 StdMethod(Void, "RSSetState", [(ObjPointer(ID3D11RasterizerState), "pRasterizerState")]),
1331 StdMethod(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D11_VIEWPORT), "NumViewports"), "pViewports")]),
1332 StdMethod(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D11_RECT), "NumRects"), "pRects")]),
1333 StdMethod(Void, "CopySubresourceRegion", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")]),
1334 StdMethod(Void, "CopyResource", [(ObjPointer(ID3D11Resource), "pDstResource"), (ObjPointer(ID3D11Resource), "pSrcResource")]),
José Fonsecacc9abd72012-11-08 10:47:18 +00001335 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 +01001336 StdMethod(Void, "CopyStructureCount", [(ObjPointer(ID3D11Buffer), "pDstBuffer"), (UINT, "DstAlignedByteOffset"), (ObjPointer(ID3D11UnorderedAccessView), "pSrcView")]),
1337 StdMethod(Void, "ClearRenderTargetView", [(ObjPointer(ID3D11RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
1338 StdMethod(Void, "ClearUnorderedAccessViewUint", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(UINT), 4), "Values")]),
1339 StdMethod(Void, "ClearUnorderedAccessViewFloat", [(ObjPointer(ID3D11UnorderedAccessView), "pUnorderedAccessView"), (Array(Const(FLOAT), 4), "Values")]),
1340 StdMethod(Void, "ClearDepthStencilView", [(ObjPointer(ID3D11DepthStencilView), "pDepthStencilView"), (D3D11_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
1341 StdMethod(Void, "GenerateMips", [(ObjPointer(ID3D11ShaderResourceView), "pShaderResourceView")]),
1342 StdMethod(Void, "SetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource"), (FLOAT, "MinLOD")]),
José Fonseca2b807452012-11-10 09:50:10 +00001343 StdMethod(FLOAT, "GetResourceMinLOD", [(ObjPointer(ID3D11Resource), "pResource")], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001344 StdMethod(Void, "ResolveSubresource", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
1345 StdMethod(Void, "ExecuteCommandList", [(ObjPointer(ID3D11CommandList), "pCommandList"), (BOOL, "RestoreContextState")]),
1346 StdMethod(Void, "HSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1347 StdMethod(Void, "HSSetShader", [(ObjPointer(ID3D11HullShader), "pHullShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1348 StdMethod(Void, "HSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1349 StdMethod(Void, "HSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1350 StdMethod(Void, "DSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
1351 StdMethod(Void, "DSSetShader", [(ObjPointer(ID3D11DomainShader), "pDomainShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1352 StdMethod(Void, "DSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1353 StdMethod(Void, "DSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
1354 StdMethod(Void, "CSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9243aa62012-11-16 19:13:20 +00001355 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 +01001356 StdMethod(Void, "CSSetShader", [(ObjPointer(ID3D11ComputeShader), "pComputeShader"), (Array(Const(ObjPointer(ID3D11ClassInstance)), "NumClassInstances"), "ppClassInstances"), (UINT, "NumClassInstances")]),
1357 StdMethod(Void, "CSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D11SamplerState)), "NumSamplers"), "ppSamplers")]),
1358 StdMethod(Void, "CSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001359 StdMethod(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1360 StdMethod(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001361 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 +00001362 StdMethod(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001363 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 +00001364 StdMethod(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001365 StdMethod(Void, "IAGetInputLayout", [Out(Pointer(ObjPointer(ID3D11InputLayout)), "ppInputLayout")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001366 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 +01001367 StdMethod(Void, "IAGetIndexBuffer", [Out(Pointer(ObjPointer(ID3D11Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001368 StdMethod(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001369 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 +00001370 StdMethod(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), "pTopology")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001371 StdMethod(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1372 StdMethod(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001373 StdMethod(Void, "GetPredication", [Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001374 StdMethod(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1375 StdMethod(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1376 StdMethod(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(ObjPointer(ID3D11RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
Jose Fonseca51b3df52018-11-16 14:45:29 +00001377 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 +00001378 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 +01001379 StdMethod(Void, "OMGetDepthStencilState", [Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
José Fonseca8ce19e42012-11-21 21:01:05 +00001380 StdMethod(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppSOTargets")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001381 StdMethod(Void, "RSGetState", [Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
José Fonseca00b9aba2014-08-13 13:18:48 +01001382 StdMethod(Void, "RSGetViewports", [InOut(Pointer(UINT), "pNumViewports"), Out(Array(D3D11_VIEWPORT, "*pNumViewports"), "pViewports")], sideeffects=False),
1383 StdMethod(Void, "RSGetScissorRects", [InOut(Pointer(UINT), "pNumRects"), Out(Array(D3D11_RECT, "*pNumRects"), "pRects")], sideeffects=False),
José Fonseca8ce19e42012-11-21 21:01:05 +00001384 StdMethod(Void, "HSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001385 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 +00001386 StdMethod(Void, "HSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1387 StdMethod(Void, "HSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1388 StdMethod(Void, "DSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001389 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 +00001390 StdMethod(Void, "DSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1391 StdMethod(Void, "DSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
1392 StdMethod(Void, "CSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D11ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
1393 StdMethod(Void, "CSGetUnorderedAccessViews", [(UINT, "StartSlot"), (UINT, "NumUAVs"), Out(Array(ObjPointer(ID3D11UnorderedAccessView), "NumUAVs"), "ppUnorderedAccessViews")]),
José Fonseca9eec9342014-10-03 22:24:50 +01001394 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 +00001395 StdMethod(Void, "CSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D11SamplerState), "NumSamplers"), "ppSamplers")]),
1396 StdMethod(Void, "CSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers")]),
José Fonsecaee590be2012-04-16 13:25:06 +01001397 StdMethod(Void, "ClearState", []),
1398 StdMethod(Void, "Flush", []),
José Fonseca2b807452012-11-10 09:50:10 +00001399 StdMethod(D3D11_DEVICE_CONTEXT_TYPE, "GetType", [], sideeffects=False),
1400 StdMethod(UINT, "GetContextFlags", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001401 StdMethod(HRESULT, "FinishCommandList", [(BOOL, "RestoreDeferredContextState"), Out(Pointer(ObjPointer(ID3D11CommandList)), "ppCommandList")]),
José Fonseca5b6fb752012-04-14 14:56:45 +01001402]
1403
1404D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
José Fonsecaee590be2012-04-16 13:25:06 +01001405 "D3D11_CREATE_DEVICE_SINGLETHREADED",
1406 "D3D11_CREATE_DEVICE_DEBUG",
1407 "D3D11_CREATE_DEVICE_SWITCH_TO_REF",
1408 "D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS",
1409 "D3D11_CREATE_DEVICE_BGRA_SUPPORT",
José Fonseca40b82ca2015-02-07 22:55:49 +00001410 "D3D11_CREATE_DEVICE_DEBUGGABLE",
1411 "D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY",
1412 "D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT",
1413 "D3D11_CREATE_DEVICE_VIDEO_SUPPORT",
José Fonseca5b6fb752012-04-14 14:56:45 +01001414])
1415
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001416D3D_FEATURE_LEVEL = Enum("D3D_FEATURE_LEVEL", [
1417 "D3D_FEATURE_LEVEL_9_1",
1418 "D3D_FEATURE_LEVEL_9_2",
1419 "D3D_FEATURE_LEVEL_9_3",
1420 "D3D_FEATURE_LEVEL_10_0",
1421 "D3D_FEATURE_LEVEL_10_1",
1422 "D3D_FEATURE_LEVEL_11_0",
1423 "D3D_FEATURE_LEVEL_11_1",
Jose Fonsecaad051de2019-06-28 12:35:10 +01001424 "D3D_FEATURE_LEVEL_12_0",
1425 "D3D_FEATURE_LEVEL_12_1",
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001426])
1427
Jose Fonsecabf638b72017-12-06 22:46:34 +00001428D3D11_RASTERIZED_STREAM = FakeEnum(UINT, [
1429 "D3D11_SO_NO_RASTERIZED_STREAM",
1430])
1431
José Fonseca5b6fb752012-04-14 14:56:45 +01001432ID3D11Device.methods += [
Jose Fonsecaa9b61382015-06-10 22:04:45 +01001433 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 +00001434 StdMethod(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D11_TEXTURE1D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture1D)), "ppTexture1D")]),
1435 StdMethod(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D11_TEXTURE2D_DESC)), "pDesc"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D)), "ppTexture2D")]),
1436 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 +01001437 StdMethod(HRESULT, "CreateShaderResourceView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView)), "ppSRView")]),
1438 StdMethod(HRESULT, "CreateUnorderedAccessView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView)), "ppUAView")]),
1439 StdMethod(HRESULT, "CreateRenderTargetView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11RenderTargetView)), "ppRTView")]),
1440 StdMethod(HRESULT, "CreateDepthStencilView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), "ppDepthStencilView")]),
1441 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")]),
1442 StdMethod(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11VertexShader)), "ppVertexShader")]),
1443 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 +00001444 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 +01001445 StdMethod(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11PixelShader)), "ppPixelShader")]),
1446 StdMethod(HRESULT, "CreateHullShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11HullShader)), "ppHullShader")]),
1447 StdMethod(HRESULT, "CreateDomainShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11DomainShader)), "ppDomainShader")]),
1448 StdMethod(HRESULT, "CreateComputeShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (ObjPointer(ID3D11ClassLinkage), "pClassLinkage"), Out(Pointer(ObjPointer(ID3D11ComputeShader)), "ppComputeShader")]),
1449 StdMethod(HRESULT, "CreateClassLinkage", [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), "ppLinkage")]),
1450 StdMethod(HRESULT, "CreateBlendState", [(Pointer(Const(D3D11_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState)), "ppBlendState")]),
1451 StdMethod(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(ObjPointer(ID3D11DepthStencilState)), "ppDepthStencilState")]),
1452 StdMethod(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D11_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState)), "ppRasterizerState")]),
1453 StdMethod(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D11_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(ObjPointer(ID3D11SamplerState)), "ppSamplerState")]),
1454 StdMethod(HRESULT, "CreateQuery", [(Pointer(Const(D3D11_QUERY_DESC)), "pQueryDesc"), Out(Pointer(ObjPointer(ID3D11Query)), "ppQuery")]),
1455 StdMethod(HRESULT, "CreatePredicate", [(Pointer(Const(D3D11_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(ObjPointer(ID3D11Predicate)), "ppPredicate")]),
1456 StdMethod(HRESULT, "CreateCounter", [(Pointer(Const(D3D11_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(ObjPointer(ID3D11Counter)), "ppCounter")]),
1457 StdMethod(HRESULT, "CreateDeferredContext", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppDeferredContext")]),
Jose Fonseca559b5f82015-07-17 16:58:50 +01001458 StdMethod(HRESULT, "OpenSharedResource", [(RAW_HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
José Fonsecae088e5c2012-11-16 20:05:54 +00001459 StdMethod(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_FORMAT_SUPPORT), "pFormatSupport")], sideeffects=False),
1460 StdMethod(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
1461 StdMethod(Void, "CheckCounterInfo", [Out(Pointer(D3D11_COUNTER_INFO), "pCounterInfo")], sideeffects=False),
José Fonsecabc10e452012-11-08 10:24:45 +00001462 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),
1463 StdMethod(HRESULT, "CheckFeatureSupport", [(D3D11_FEATURE, "Feature"), Out(D3D11_FEATURE_DATA, "pFeatureSupportData"), (UINT, "FeatureSupportDataSize")], sideeffects=False),
José Fonseca9eec9342014-10-03 22:24:50 +01001464 StdMethod(HRESULT, "GetPrivateData", [(REFGUID, "guid"), InOut(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")], sideeffects=False),
José Fonseca3be2c672015-02-06 15:36:40 +00001465 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
José Fonsecabc10e452012-11-08 10:24:45 +00001466 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
José Fonseca2b807452012-11-10 09:50:10 +00001467 StdMethod(D3D_FEATURE_LEVEL, "GetFeatureLevel", [], sideeffects=False),
1468 StdMethod(D3D11_CREATE_DEVICE_FLAG, "GetCreationFlags", [], sideeffects=False),
1469 StdMethod(HRESULT, "GetDeviceRemovedReason", [], sideeffects=False),
José Fonsecaee590be2012-04-16 13:25:06 +01001470 StdMethod(Void, "GetImmediateContext", [Out(Pointer(ObjPointer(ID3D11DeviceContext)), "ppImmediateContext")]),
1471 StdMethod(HRESULT, "SetExceptionMode", [(D3D11_RAISE_FLAG, "RaiseFlags")]),
José Fonseca5c05fdb2014-08-13 13:19:32 +01001472 StdMethod(D3D11_RAISE_FLAG, "GetExceptionMode", [], sideeffects=False),
José Fonseca5b6fb752012-04-14 14:56:45 +01001473]
1474
Jose Fonseca5f5181d2015-07-17 12:06:23 +01001475
1476D3D_DRIVER_TYPE = Enum("D3D_DRIVER_TYPE", [
1477 "D3D_DRIVER_TYPE_UNKNOWN",
1478 "D3D_DRIVER_TYPE_HARDWARE",
1479 "D3D_DRIVER_TYPE_REFERENCE",
1480 "D3D_DRIVER_TYPE_NULL",
1481 "D3D_DRIVER_TYPE_SOFTWARE",
1482 "D3D_DRIVER_TYPE_WARP",
1483])
1484
1485
José Fonseca81301932012-11-11 00:10:20 +00001486d3d11 = Module("d3d11")
José Fonseca5b6fb752012-04-14 14:56:45 +01001487
1488d3d11.addFunctions([
José Fonsecaee590be2012-04-16 13:25:06 +01001489 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")]),
1490 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 +01001491])
1492
1493d3d11.addInterfaces([
José Fonseca5b6fb752012-04-14 14:56:45 +01001494 ID3D11Debug,
José Fonsecaf17f4642012-04-16 13:06:44 +01001495 ID3D11InfoQueue,
1496 ID3D11SwitchToRef,
José Fonseca5b6fb752012-04-14 14:56:45 +01001497])
José Fonsecafc58d052014-06-13 12:47:19 +01001498
José Fonseca50bee952015-02-07 22:32:19 +00001499
Jose Fonseca503fde92015-07-16 17:00:30 +01001500#
1501# D3D11 Video
1502#
1503
1504D3D11_VIDEO_DECODER_DESC = Struct("D3D11_VIDEO_DECODER_DESC", [
1505 (GUID, "Guid"),
1506 (UINT, "SampleWidth"),
1507 (UINT, "SampleHeight"),
1508 (DXGI_FORMAT, "OutputFormat"),
1509])
1510
1511D3D11_VIDEO_DECODER_CONFIG = Struct("D3D11_VIDEO_DECODER_CONFIG", [
1512 (GUID, "guidConfigBitstreamEncryption"),
1513 (GUID, "guidConfigMBcontrolEncryption"),
1514 (GUID, "guidConfigResidDiffEncryption"),
1515 (UINT, "ConfigBitstreamRaw"),
1516 (UINT, "ConfigMBcontrolRasterOrder"),
1517 (UINT, "ConfigResidDiffHost"),
1518 (UINT, "ConfigSpatialResid8"),
1519 (UINT, "ConfigResid8Subtraction"),
1520 (UINT, "ConfigSpatialHost8or9Clipping"),
1521 (UINT, "ConfigSpatialResidInterleaved"),
1522 (UINT, "ConfigIntraResidUnsigned"),
1523 (UINT, "ConfigResidDiffAccelerator"),
1524 (UINT, "ConfigHostInverseScan"),
1525 (UINT, "ConfigSpecificIDCT"),
1526 (UINT, "Config4GroupedCoefs"),
1527 (USHORT, "ConfigMinRenderTargetBuffCount"),
1528 (USHORT, "ConfigDecoderSpecific"),
1529])
1530
1531D3D11_VIDEO_DECODER_BUFFER_TYPE = Enum("D3D11_VIDEO_DECODER_BUFFER_TYPE", [
1532 "D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS",
1533 "D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL",
1534 "D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE",
1535 "D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL",
1536 "D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX",
1537 "D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL",
1538 "D3D11_VIDEO_DECODER_BUFFER_BITSTREAM",
1539 "D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR",
1540 "D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN",
1541])
1542
1543D3D11_AES_CTR_IV = Struct("D3D11_AES_CTR_IV", [
1544 (UINT64, "IV"),
1545 (UINT64, "Count"),
1546])
1547
1548D3D11_ENCRYPTED_BLOCK_INFO = Struct("D3D11_ENCRYPTED_BLOCK_INFO", [
1549 (UINT, "NumEncryptedBytesAtBeginning"),
1550 (UINT, "NumBytesInSkipPattern"),
1551 (UINT, "NumBytesInEncryptPattern"),
1552])
1553
1554D3D11_VIDEO_DECODER_BUFFER_DESC = Struct("D3D11_VIDEO_DECODER_BUFFER_DESC", [
1555 (D3D11_VIDEO_DECODER_BUFFER_TYPE, "BufferType"),
1556 (UINT, "BufferIndex"),
1557 (UINT, "DataOffset"),
1558 (UINT, "DataSize"),
1559 (UINT, "FirstMBaddress"),
1560 (UINT, "NumMBsInBuffer"),
1561 (UINT, "Width"),
1562 (UINT, "Height"),
1563 (UINT, "Stride"),
1564 (UINT, "ReservedBits"),
1565 (Blob(Void, "{self}.IVSize"), "pIV"),
1566 (UINT, "IVSize"),
1567 (BOOL, "PartialEncryption"),
1568 (D3D11_ENCRYPTED_BLOCK_INFO, "EncryptedBlockInfo"),
1569])
1570
1571D3D11_VIDEO_DECODER_EXTENSION = Struct("D3D11_VIDEO_DECODER_EXTENSION", [
1572 (UINT, "Function"),
1573 (Blob(Void, "{self}.PrivateInputDataSize"), "pPrivateInputData"),
1574 (UINT, "PrivateInputDataSize"),
1575 (Blob(Void, "{self}.PrivateOutputDataSize"), "pPrivateOutputData"),
1576 (UINT, "PrivateOutputDataSize"),
1577 (UINT, "ResourceCount"),
1578 (Array(ObjPointer(ID3D11Resource), "{self}.ResourceCount"), "ppResourceList"),
1579])
1580
1581ID3D11VideoDecoder = Interface("ID3D11VideoDecoder", ID3D11DeviceChild)
1582ID3D11VideoDecoder.methods += [
1583 StdMethod(HRESULT, "GetCreationParameters", [Out(Pointer(D3D11_VIDEO_DECODER_DESC), "pVideoDesc"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
1584 StdMethod(HRESULT, "GetDriverHandle", [Out(Pointer(HANDLE), "pDriverHandle")]),
1585]
1586
1587D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT = Flags(UINT, [
1588 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT",
1589 "D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT",
1590])
1591
1592D3D11_VIDEO_PROCESSOR_DEVICE_CAPS = Flags(UINT, [
1593 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE",
1594 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC",
1595 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION",
1596 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION",
1597 "D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE",
1598])
1599
1600D3D11_VIDEO_PROCESSOR_FEATURE_CAPS = Flags(UINT, [
1601 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL",
1602 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION",
1603 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY",
1604 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE",
1605 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY",
1606 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO",
1607 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION",
1608 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM",
1609 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001610 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR",
1611 "D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE",
Jose Fonseca503fde92015-07-16 17:00:30 +01001612])
1613
1614D3D11_VIDEO_PROCESSOR_FILTER_CAPS = Flags(UINT, [
1615 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS",
1616 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST",
1617 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE",
1618 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION",
1619 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION",
1620 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT",
1621 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING",
1622 "D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT",
1623])
1624
1625D3D11_VIDEO_PROCESSOR_FORMAT_CAPS = Flags(UINT, [
1626 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED",
1627 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP",
1628 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY",
1629 "D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED",
1630])
1631
1632D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS = Flags(UINT, [
1633 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE",
1634 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING",
1635 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT",
1636 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION",
1637 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING",
1638 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION",
1639 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION",
1640 "D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING",
1641])
1642
1643D3D11_VIDEO_PROCESSOR_STEREO_CAPS = Flags(UINT, [
1644 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET",
1645 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED",
1646 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED",
1647 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD",
1648 "D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE",
1649])
1650
1651D3D11_VIDEO_PROCESSOR_CAPS = Struct("D3D11_VIDEO_PROCESSOR_CAPS", [
1652 (D3D11_VIDEO_PROCESSOR_DEVICE_CAPS, "DeviceCaps"),
1653 (D3D11_VIDEO_PROCESSOR_FEATURE_CAPS, "FeatureCaps"),
1654 (D3D11_VIDEO_PROCESSOR_FILTER_CAPS, "FilterCaps"),
1655 (D3D11_VIDEO_PROCESSOR_FORMAT_CAPS, "InputFormatCaps"),
1656 (D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS, "AutoStreamCaps"),
1657 (D3D11_VIDEO_PROCESSOR_STEREO_CAPS, "StereoCaps"),
1658 (UINT, "RateConversionCapsCount"),
1659 (UINT, "MaxInputStreams"),
1660 (UINT, "MaxStreamStates"),
1661])
1662
1663D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS = Flags(UINT, [
1664 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND",
1665 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB",
1666 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE",
1667 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION",
1668 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE",
1669 "D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION",
1670])
1671
1672D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS = Flags(UINT, [
1673 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32",
1674 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22",
1675 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224",
1676 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332",
1677 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322",
1678 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55",
1679 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64",
1680 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87",
1681 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223",
1682 "D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER",
1683])
1684
1685D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS = Struct("D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS", [
1686 (UINT, "PastFrames"),
1687 (UINT, "FutureFrames"),
1688 (D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS, "ProcessorCaps"),
1689 (D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS, "ITelecineCaps"),
1690 (UINT, "CustomRateCount"),
1691])
1692
1693D3D11_CONTENT_PROTECTION_CAPS = Flags(UINT, [
1694 "D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE",
1695 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE",
1696 "D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON",
1697 "D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION",
1698 "D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY",
1699 "D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY",
1700 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK",
1701 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY",
1702 "D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV",
1703 "D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY",
1704 "D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT",
Jose Fonseca4713c3b2015-08-12 11:06:34 +01001705 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED",
1706 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE",
1707 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN",
1708 "D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION",
Jose Fonseca503fde92015-07-16 17:00:30 +01001709])
1710
1711D3D11_VIDEO_CONTENT_PROTECTION_CAPS = Struct("D3D11_VIDEO_CONTENT_PROTECTION_CAPS", [
1712 (D3D11_CONTENT_PROTECTION_CAPS, "Caps"),
1713 (UINT, "KeyExchangeTypeCount"),
1714 (UINT, "BlockAlignmentSize"),
1715 (ULONGLONG, "ProtectedMemorySize"),
1716])
1717
1718D3D11_VIDEO_PROCESSOR_CUSTOM_RATE = Struct("D3D11_VIDEO_PROCESSOR_CUSTOM_RATE", [
1719 (DXGI_RATIONAL, "CustomRate"),
1720 (UINT, "OutputFrames"),
1721 (BOOL, "InputInterlaced"),
1722 (UINT, "InputFramesOrFields"),
1723])
1724
1725D3D11_VIDEO_PROCESSOR_FILTER = Enum("D3D11_VIDEO_PROCESSOR_FILTER", [
1726 "D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS",
1727 "D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST",
1728 "D3D11_VIDEO_PROCESSOR_FILTER_HUE",
1729 "D3D11_VIDEO_PROCESSOR_FILTER_SATURATION",
1730 "D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION",
1731 "D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT",
1732 "D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING",
1733 "D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT",
1734])
1735
1736D3D11_VIDEO_PROCESSOR_FILTER_RANGE = Struct("D3D11_VIDEO_PROCESSOR_FILTER_RANGE", [
1737 (Int, "Minimum"),
1738 (Int, "Maximum"),
1739 (Int, "Default"),
1740 (Float, "Multiplier"),
1741])
1742
1743D3D11_VIDEO_FRAME_FORMAT = Enum("D3D11_VIDEO_FRAME_FORMAT", [
1744 "D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE",
1745 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST",
1746 "D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST",
1747])
1748
1749D3D11_VIDEO_USAGE = Enum("D3D11_VIDEO_USAGE", [
1750 "D3D11_VIDEO_USAGE_PLAYBACK_NORMAL",
1751 "D3D11_VIDEO_USAGE_OPTIMAL_SPEED",
1752 "D3D11_VIDEO_USAGE_OPTIMAL_QUALITY",
1753])
1754
1755D3D11_VIDEO_PROCESSOR_CONTENT_DESC = Struct("D3D11_VIDEO_PROCESSOR_CONTENT_DESC", [
1756 (D3D11_VIDEO_FRAME_FORMAT, "InputFrameFormat"),
1757 (DXGI_RATIONAL, "InputFrameRate"),
1758 (UINT, "InputWidth"),
1759 (UINT, "InputHeight"),
1760 (DXGI_RATIONAL, "OutputFrameRate"),
1761 (UINT, "OutputWidth"),
1762 (UINT, "OutputHeight"),
1763 (D3D11_VIDEO_USAGE, "Usage"),
1764])
1765
1766ID3D11VideoProcessorEnumerator = Interface("ID3D11VideoProcessorEnumerator", ID3D11DeviceChild)
1767ID3D11VideoProcessorEnumerator.methods += [
1768 StdMethod(HRESULT, "GetVideoProcessorContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pContentDesc")], sideeffects=False),
1769 StdMethod(HRESULT, "CheckVideoProcessorFormat", [(DXGI_FORMAT, "Format"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT), "pFlags")], sideeffects=False),
1770 StdMethod(HRESULT, "GetVideoProcessorCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CAPS), "pCaps")], sideeffects=False),
1771 StdMethod(HRESULT, "GetVideoProcessorRateConversionCaps", [(UINT, "TypeIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1772 StdMethod(HRESULT, "GetVideoProcessorCustomRate", [(UINT, "TypeIndex"), (UINT, "CustomRateIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_CUSTOM_RATE), "pRate")], sideeffects=False),
1773 StdMethod(HRESULT, "GetVideoProcessorFilterRange", [(D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(D3D11_VIDEO_PROCESSOR_FILTER_RANGE), "pRange")], sideeffects=False),
1774]
1775
1776D3D11_VIDEO_COLOR_RGBA = Struct("D3D11_VIDEO_COLOR_RGBA", [
1777 (Float, "R"),
1778 (Float, "G"),
1779 (Float, "B"),
1780 (Float, "A"),
1781])
1782
1783D3D11_VIDEO_COLOR_YCbCrA = Struct("D3D11_VIDEO_COLOR_YCbCrA", [
1784 (Float, "Y"),
1785 (Float, "Cb"),
1786 (Float, "Cr"),
1787 (Float, "A"),
1788])
1789
1790D3D11_VIDEO_COLOR = Struct("D3D11_VIDEO_COLOR", [
1791 (D3D11_VIDEO_COLOR_YCbCrA, "YCbCr"),
1792 #(D3D11_VIDEO_COLOR_RGBA, "RGBA"),
1793])
1794
1795D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE = FakeEnum(UINT, [
1796 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED",
1797 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235",
1798 "D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255",
1799])
1800
1801D3D11_VIDEO_PROCESSOR_COLOR_SPACE = Struct("D3D11_VIDEO_PROCESSOR_COLOR_SPACE", [
1802 (UINT, "Usage"),
1803 (UINT, "RGB_Range"),
1804 (UINT, "YCbCr_Matrix"),
1805 (UINT, "YCbCr_xvYCC"),
1806 (D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE, "Nominal_Range"),
1807 (UINT, "Reserved"),
1808])
1809
1810D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE = Enum("D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE", [
1811 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE",
1812 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND",
1813 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION",
1814 "D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM",
1815])
1816
1817D3D11_VIDEO_PROCESSOR_OUTPUT_RATE = Enum("D3D11_VIDEO_PROCESSOR_OUTPUT_RATE", [
1818 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL",
1819 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF",
1820 "D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM",
1821])
1822
1823D3D11_VIDEO_PROCESSOR_STEREO_FORMAT = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FORMAT", [
1824 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO",
1825 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL",
1826 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL",
1827 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE",
1828 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET",
1829 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED",
1830 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED",
1831 "D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD",
1832])
1833
1834D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE = Enum("D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE", [
1835 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE",
1836 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0",
1837 "D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1",
1838])
1839
1840D3D11_VIDEO_PROCESSOR_ROTATION = Enum("D3D11_VIDEO_PROCESSOR_ROTATION", [
1841 "D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY",
1842 "D3D11_VIDEO_PROCESSOR_ROTATION_90",
1843 "D3D11_VIDEO_PROCESSOR_ROTATION_180",
1844 "D3D11_VIDEO_PROCESSOR_ROTATION_270",
1845])
1846
1847ID3D11VideoProcessorInputView = Interface("ID3D11VideoProcessorInputView", ID3D11View)
1848
1849D3D11_VIDEO_PROCESSOR_STREAM = Struct("D3D11_VIDEO_PROCESSOR_STREAM", [
1850 (BOOL, "Enable"),
1851 (UINT, "OutputIndex"),
1852 (UINT, "InputFrameOrField"),
1853 (UINT, "PastFrames"),
1854 (UINT, "FutureFrames"),
1855 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfaces"),
1856 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurface"),
1857 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfaces"),
1858 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.PastFrames"), "ppPastSurfacesRight"),
1859 (ObjPointer(ID3D11VideoProcessorInputView), "pInputSurfaceRight"),
1860 (Array(ObjPointer(ID3D11VideoProcessorInputView), "{self}.FutureFrames"), "ppFutureSurfacesRight"),
1861])
1862
1863ID3D11VideoProcessor = Interface("ID3D11VideoProcessor", ID3D11DeviceChild)
1864ID3D11VideoProcessor.methods += [
1865 StdMethod(Void, "GetContentDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_CONTENT_DESC), "pDesc")], sideeffects=False),
1866 StdMethod(Void, "GetRateConversionCaps", [Out(Pointer(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS), "pCaps")], sideeffects=False),
1867]
1868
1869D3D11_OMAC = Struct("D3D11_OMAC", [
1870 (Array(BYTE, 16), "Omac"),
1871])
1872
1873D3D11_AUTHENTICATED_CHANNEL_TYPE = Enum("D3D11_AUTHENTICATED_CHANNEL_TYPE", [
1874 "D3D11_AUTHENTICATED_CHANNEL_D3D11",
1875 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE",
1876 "D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE",
1877])
1878
1879ID3D11AuthenticatedChannel = Interface("ID3D11AuthenticatedChannel", ID3D11DeviceChild)
1880ID3D11AuthenticatedChannel.methods += [
1881 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
1882 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Array(BYTE, "CertificateSize"), "pCertificate")], sideeffects=False),
1883 StdMethod(Void, "GetChannelHandle", [Out(Pointer(HANDLE), "pChannelHandle")]),
1884]
1885
1886D3D11_AUTHENTICATED_QUERY_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_INPUT", [
1887 (GUID, "QueryType"),
1888 (HANDLE, "hChannel"),
1889 (UINT, "SequenceNumber"),
1890])
1891
1892D3D11_AUTHENTICATED_QUERY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT", [
1893 (D3D11_OMAC, "omac"),
1894 (GUID, "QueryType"),
1895 (HANDLE, "hChannel"),
1896 (UINT, "SequenceNumber"),
1897 (HRESULT, "ReturnCode"),
1898])
1899
1900D3D11_AUTHENTICATED_PROTECTION_FLAGS = Struct("D3D11_AUTHENTICATED_PROTECTION_FLAGS", [
1901 (UINT, "ProtectionEnabled"),
1902 (UINT, "OverlayOrFullscreenRequired"),
1903 (UINT, "Reserved"),
1904])
1905
1906D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT", [
1907 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1908 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "ProtectionFlags"),
1909])
1910
1911D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT", [
1912 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1913 (D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"),
1914])
1915
1916D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT", [
1917 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1918 (HANDLE, "DeviceHandle"),
1919])
1920
1921D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT", [
1922 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1923 (HANDLE, "DecoderHandle"),
1924])
1925
1926D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT", [
1927 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1928 (HANDLE, "DecoderHandle"),
1929 (HANDLE, "CryptoSessionHandle"),
1930 (HANDLE, "DeviceHandle"),
1931])
1932
1933D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT", [
1934 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1935 (UINT, "RestrictedSharedResourceProcessCount"),
1936])
1937
1938D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT", [
1939 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1940 (UINT, "ProcessIndex"),
1941])
1942
1943D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE = Enum("D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE", [
1944 "D3D11_PROCESSIDTYPE_UNKNOWN",
1945 "D3D11_PROCESSIDTYPE_DWM",
1946 "D3D11_PROCESSIDTYPE_HANDLE",
1947])
1948
1949D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT", [
1950 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1951 (UINT, "ProcessIndex"),
1952 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessIdentifier"),
1953 (HANDLE, "ProcessHandle"),
1954])
1955
1956D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT", [
1957 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1958 (UINT, "UnrestrictedProtectedSharedResourceCount"),
1959])
1960
1961D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT", [
1962 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1963 (HANDLE, "DeviceHandle"),
1964 (HANDLE, "CryptoSessionHandle"),
1965])
1966
1967D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT", [
1968 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1969 (HANDLE, "DeviceHandle"),
1970 (HANDLE, "CryptoSessionHandle"),
1971 (UINT, "OutputIDCount"),
1972])
1973
1974D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT", [
1975 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
1976 (HANDLE, "DeviceHandle"),
1977 (HANDLE, "CryptoSessionHandle"),
1978 (UINT, "OutputIDIndex"),
1979])
1980
1981D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT", [
1982 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
1983 (HANDLE, "DeviceHandle"),
1984 (HANDLE, "CryptoSessionHandle"),
1985 (UINT, "OutputIDIndex"),
1986 (UINT64, "OutputID"),
1987])
1988
1989D3D11_BUS_TYPE = Enum("D3D11_BUS_TYPE", [
1990 "D3D11_BUS_TYPE_OTHER",
1991 "D3D11_BUS_TYPE_PCI",
1992 "D3D11_BUS_TYPE_PCIX",
1993 "D3D11_BUS_TYPE_AGP",
1994 "D3D11_BUS_TYPE_PCIEXPRESS",
1995 # XXX: Flags
1996 "D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET",
1997 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP",
1998 "D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET",
1999 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR",
2000 "D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE",
2001 "D3D11_BUS_IMPL_MODIFIER_NON_STANDARD",
2002])
2003
2004D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT", [
2005 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2006 (D3D11_BUS_TYPE, "BusType"),
2007 (BOOL, "AccessibleInContiguousBlocks"),
2008 (BOOL, "AccessibleInNonContiguousBlocks"),
2009])
2010
2011D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT", [
2012 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2013 (UINT, "EncryptionGuidCount"),
2014])
2015
2016D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT", [
2017 (D3D11_AUTHENTICATED_QUERY_INPUT, "Input"),
2018 (UINT, "EncryptionGuidIndex"),
2019])
2020
2021D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT", [
2022 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2023 (UINT, "EncryptionGuidIndex"),
2024 (GUID, "EncryptionGuid"),
2025])
2026
2027D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT = Struct("D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT", [
2028 (D3D11_AUTHENTICATED_QUERY_OUTPUT, "Output"),
2029 (GUID, "EncryptionGuid"),
2030])
2031
2032D3D11_AUTHENTICATED_CONFIGURE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INPUT", [
2033 (D3D11_OMAC, "omac"),
2034 (GUID, "ConfigureType"),
2035 (HANDLE, "hChannel"),
2036 (UINT, "SequenceNumber"),
2037])
2038
2039D3D11_AUTHENTICATED_CONFIGURE_OUTPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_OUTPUT", [
2040 (D3D11_OMAC, "omac"),
2041 (GUID, "ConfigureType"),
2042 (HANDLE, "hChannel"),
2043 (UINT, "SequenceNumber"),
2044 (HRESULT, "ReturnCode"),
2045])
2046
2047D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT", [
2048 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2049 (UINT, "StartSequenceQuery"),
2050 (UINT, "StartSequenceConfigure"),
2051])
2052
2053D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT", [
2054 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2055 (D3D11_AUTHENTICATED_PROTECTION_FLAGS, "Protections"),
2056])
2057
2058D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT", [
2059 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2060 (HANDLE, "DecoderHandle"),
2061 (HANDLE, "CryptoSessionHandle"),
2062 (HANDLE, "DeviceHandle"),
2063])
2064
2065D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT", [
2066 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2067 (D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE, "ProcessType"),
2068 (HANDLE, "ProcessHandle"),
2069 (BOOL, "AllowAccess"),
2070])
2071
2072D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT = Struct("D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT", [
2073 (D3D11_AUTHENTICATED_CONFIGURE_INPUT, "Parameters"),
2074 (GUID, "EncryptionGuid"),
2075])
2076
2077ID3D11CryptoSession = Interface("ID3D11CryptoSession", ID3D11DeviceChild)
2078ID3D11CryptoSession.methods += [
2079 StdMethod(Void, "GetCryptoType", [Out(Pointer(GUID), "pCryptoType")], sideeffects=False),
2080 StdMethod(Void, "GetDecoderProfile", [Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2081 StdMethod(HRESULT, "GetCertificateSize", [Out(Pointer(UINT), "pCertificateSize")], sideeffects=False),
2082 StdMethod(HRESULT, "GetCertificate", [(UINT, "CertificateSize"), Out(Pointer(BYTE), "pCertificate")], sideeffects=False),
2083 StdMethod(Void, "GetCryptoSessionHandle", [Out(Pointer(HANDLE), "pCryptoSessionHandle")]),
2084]
2085
2086D3D11_VDOV_DIMENSION = Enum("D3D11_VDOV_DIMENSION", [
2087 "D3D11_VDOV_DIMENSION_UNKNOWN",
2088 "D3D11_VDOV_DIMENSION_TEXTURE2D",
2089])
2090
2091D3D11_TEX2D_VDOV = Struct("D3D11_TEX2D_VDOV", [
2092 (UINT, "ArraySlice"),
2093])
2094
2095D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC", [
2096 (GUID, "DecodeProfile"),
2097 (D3D11_VDOV_DIMENSION, "ViewDimension"),
2098 (Union("{self}.ViewDimension", [
2099 ("D3D11_VDOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VDOV, "Texture2D"),
2100 ]), None),
2101])
2102
2103ID3D11VideoDecoderOutputView = Interface("ID3D11VideoDecoderOutputView", ID3D11View)
2104ID3D11VideoDecoderOutputView.methods += [
2105 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2106]
2107
2108D3D11_VPIV_DIMENSION = Enum("D3D11_VPIV_DIMENSION", [
2109 "D3D11_VPIV_DIMENSION_UNKNOWN",
2110 "D3D11_VPIV_DIMENSION_TEXTURE2D",
2111])
2112
2113D3D11_TEX2D_VPIV = Struct("D3D11_TEX2D_VPIV", [
2114 (UINT, "MipSlice"),
2115 (UINT, "ArraySlice"),
2116])
2117
2118D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC", [
2119 (UINT, "FourCC"),
2120 (D3D11_VPIV_DIMENSION, "ViewDimension"),
2121 (Union("{self}.ViewDimension", [
2122 ("D3D11_VPIV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPIV, "Texture2D"),
2123 ]), None),
2124])
2125
2126ID3D11VideoProcessorInputView.methods += [
2127 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2128]
2129
2130D3D11_VPOV_DIMENSION = Enum("D3D11_VPOV_DIMENSION", [
2131 "D3D11_VPOV_DIMENSION_UNKNOWN",
2132 "D3D11_VPOV_DIMENSION_TEXTURE2D",
2133 "D3D11_VPOV_DIMENSION_TEXTURE2DARRAY",
2134])
2135
2136D3D11_TEX2D_VPOV = Struct("D3D11_TEX2D_VPOV", [
2137 (UINT, "MipSlice"),
2138])
2139
2140D3D11_TEX2D_ARRAY_VPOV = Struct("D3D11_TEX2D_ARRAY_VPOV", [
2141 (UINT, "MipSlice"),
2142 (UINT, "FirstArraySlice"),
2143 (UINT, "ArraySize"),
2144])
2145
2146D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC = Struct("D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC", [
2147 (D3D11_VPOV_DIMENSION, "ViewDimension"),
2148 (Union("{self}.ViewDimension", [
2149 ("D3D11_VPOV_DIMENSION_TEXTURE2D", D3D11_TEX2D_VPOV, "Texture2D"),
2150 ("D3D11_VPOV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_VPOV, "Texture2DArray"),
2151 ]), None),
2152])
2153
2154ID3D11VideoProcessorOutputView = Interface("ID3D11VideoProcessorOutputView", ID3D11View)
2155ID3D11VideoProcessorOutputView.methods += [
2156 StdMethod(Void, "GetDesc", [Out(Pointer(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC), "pDesc")], sideeffects=None),
2157]
2158
2159ID3D11VideoContext = Interface("ID3D11VideoContext", ID3D11DeviceChild)
2160ID3D11VideoContext.methods += [
Jose Fonseca91403b62016-05-19 15:10:03 +01002161 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 +01002162 StdMethod(HRESULT, "ReleaseDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type")]),
2163 StdMethod(HRESULT, "DecoderBeginFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (ObjPointer(ID3D11VideoDecoderOutputView), "pView"), (UINT, "ContentKeySize"), (Blob(Const(Void), "ContentKeySize"), "pContentKey")]),
2164 StdMethod(HRESULT, "DecoderEndFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder")]),
Jose Fonseca91403b62016-05-19 15:10:03 +01002165 StdMethod(HRESULT, "SubmitDecoderBuffers", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (UINT, "NumBuffers"), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC), "NumBuffers"), "pBufferDesc")]),
Jose Fonseca503fde92015-07-16 17:00:30 +01002166 StdMethod(HRESULT, "DecoderExtension", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (Pointer(Const(D3D11_VIDEO_DECODER_EXTENSION)), "pExtensionData")]),
2167 StdMethod(Void, "VideoProcessorSetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2168 StdMethod(Void, "VideoProcessorSetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "YCbCr"), (Pointer(Const(D3D11_VIDEO_COLOR)), "pColor")]),
2169 StdMethod(Void, "VideoProcessorSetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2170 StdMethod(Void, "VideoProcessorSetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE, "AlphaFillMode"), (UINT, "StreamIndex")]),
2171 StdMethod(Void, "VideoProcessorSetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (SIZE, "Size")]),
2172 StdMethod(Void, "VideoProcessorSetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable")]),
2173 StdMethod(HRESULT, "VideoProcessorSetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2174 StdMethod(Void, "VideoProcessorGetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "Enabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2175 StdMethod(Void, "VideoProcessorGetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pYCbCr"), Out(Pointer(D3D11_VIDEO_COLOR), "pColor")], sideeffects=False),
2176 StdMethod(Void, "VideoProcessorGetOutputColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2177 StdMethod(Void, "VideoProcessorGetOutputAlphaFillMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE), "pAlphaFillMode"), Out(Pointer(UINT), "pStreamIndex")], sideeffects=False),
2178 StdMethod(Void, "VideoProcessorGetOutputConstriction", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(SIZE), "pSize")], sideeffects=False),
2179 StdMethod(Void, "VideoProcessorGetOutputStereoMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2180 StdMethod(HRESULT, "VideoProcessorGetOutputExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False),
2181 StdMethod(Void, "VideoProcessorSetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_FRAME_FORMAT, "FrameFormat")]),
2182 StdMethod(Void, "VideoProcessorSetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_COLOR_SPACE)), "pColorSpace")]),
2183 StdMethod(Void, "VideoProcessorSetStreamOutputRate", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE, "OutputRate"), (BOOL, "RepeatFrame"), (Pointer(Const(DXGI_RATIONAL)), "pCustomRate")]),
2184 StdMethod(Void, "VideoProcessorSetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2185 StdMethod(Void, "VideoProcessorSetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]),
2186 StdMethod(Void, "VideoProcessorSetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Alpha")]),
2187 StdMethod(Void, "VideoProcessorSetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), (Pointer(Const(UINT)), "pEntries")]),
2188 StdMethod(Void, "VideoProcessorSetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (Pointer(Const(DXGI_RATIONAL)), "pSourceAspectRatio"), (Pointer(Const(DXGI_RATIONAL)), "pDestinationAspectRatio")]),
2189 StdMethod(Void, "VideoProcessorSetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (FLOAT, "Lower"), (FLOAT, "Upper")]),
2190 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")]),
2191 StdMethod(Void, "VideoProcessorSetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable")]),
2192 StdMethod(Void, "VideoProcessorSetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), (BOOL, "Enable"), (Int, "Level")]),
2193 StdMethod(HRESULT, "VideoProcessorSetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), (Blob(Void, "DataSize"), "pData")]),
2194 StdMethod(Void, "VideoProcessorGetStreamFrameFormat", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_FRAME_FORMAT), "pFrameFormat")], sideeffects=False),
2195 StdMethod(Void, "VideoProcessorGetStreamColorSpace", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(D3D11_VIDEO_PROCESSOR_COLOR_SPACE), "pColorSpace")], sideeffects=False),
2196 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),
2197 StdMethod(Void, "VideoProcessorGetStreamSourceRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2198 StdMethod(Void, "VideoProcessorGetStreamDestRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(RECT), "pRect")], sideeffects=False),
2199 StdMethod(Void, "VideoProcessorGetStreamAlpha", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pAlpha")], sideeffects=False),
2200 StdMethod(Void, "VideoProcessorGetStreamPalette", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (UINT, "Count"), Out(Array(UINT, "Count"), "pEntries")], sideeffects=False),
2201 StdMethod(Void, "VideoProcessorGetStreamPixelAspectRatio", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(DXGI_RATIONAL), "pSourceAspectRatio"), Out(Pointer(DXGI_RATIONAL), "pDestinationAspectRatio")], sideeffects=False),
2202 StdMethod(Void, "VideoProcessorGetStreamLumaKey", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(FLOAT), "pLower"), Out(Pointer(FLOAT), "pUpper")], sideeffects=False),
2203 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),
2204 StdMethod(Void, "VideoProcessorGetStreamAutoProcessingMode", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnabled")], sideeffects=False),
2205 StdMethod(Void, "VideoProcessorGetStreamFilter", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (D3D11_VIDEO_PROCESSOR_FILTER, "Filter"), Out(Pointer(BOOL), "pEnabled"), Out(Pointer(Int), "pLevel")], sideeffects=False),
2206 StdMethod(HRESULT, "VideoProcessorGetStreamExtension", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (Pointer(Const(GUID)), "pExtensionGuid"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2207 StdMethod(HRESULT, "VideoProcessorBlt", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (ObjPointer(ID3D11VideoProcessorOutputView), "pView"), (UINT, "OutputFrame"), (UINT, "StreamCount"), (Array(Const(D3D11_VIDEO_PROCESSOR_STREAM), "StreamCount"), "pStreams")]),
2208 StdMethod(HRESULT, "NegotiateCryptoSessionKeyExchange", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2209 StdMethod(Void, "EncryptionBlt", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (ObjPointer(ID3D11Texture2D), "pSrcSurface"), (ObjPointer(ID3D11Texture2D), "pDstSurface"), (UINT, "IVSize"), Out(OpaqueBlob(Void, "IVSize"), "pIV")], sideeffects=False), # FIXME
2210 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
2211 StdMethod(Void, "StartSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "RandomNumberSize"), Out(OpaqueBlob(Void, "RandomNumberSize"), "pRandomNumber")], sideeffects=False), # FIXME
2212 StdMethod(Void, "FinishSessionKeyRefresh", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession")]),
2213 StdMethod(HRESULT, "GetEncryptionBltKey", [(ObjPointer(ID3D11CryptoSession), "pCryptoSession"), (UINT, "KeySize"), Out(OpaqueBlob(Void, "KeySize"), "pReadbackKey")], sideeffects=False), # FIXME
2214 StdMethod(HRESULT, "NegotiateAuthenticatedChannelKeyExchange", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "DataSize"), Out(OpaqueBlob(Void, "DataSize"), "pData")], sideeffects=False), # FIXME
2215 StdMethod(HRESULT, "QueryAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), (UINT, "OutputSize"), Out(OpaqueBlob(Void, "OutputSize"), "pOutput")], sideeffects=False), # FIXME
2216 StdMethod(HRESULT, "ConfigureAuthenticatedChannel", [(ObjPointer(ID3D11AuthenticatedChannel), "pChannel"), (UINT, "InputSize"), (Blob(Const(Void), "InputSize"), "pInput"), Out(Pointer(D3D11_AUTHENTICATED_CONFIGURE_OUTPUT), "pOutput")]),
2217 StdMethod(Void, "VideoProcessorSetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), (BOOL, "Enable"), (D3D11_VIDEO_PROCESSOR_ROTATION, "Rotation")]),
2218 StdMethod(Void, "VideoProcessorGetStreamRotation", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (UINT, "StreamIndex"), Out(Pointer(BOOL), "pEnable"), Out(Pointer(D3D11_VIDEO_PROCESSOR_ROTATION), "pRotation")], sideeffects=False),
2219]
2220
2221ID3D11VideoDevice = Interface("ID3D11VideoDevice", IUnknown)
2222ID3D11VideoDevice.methods += [
2223 StdMethod(HRESULT, "CreateVideoDecoder", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pVideoDesc"), (Pointer(Const(D3D11_VIDEO_DECODER_CONFIG)), "pConfig"), Out(Pointer(ObjPointer(ID3D11VideoDecoder)), "ppDecoder")]),
2224 StdMethod(HRESULT, "CreateVideoProcessor", [(ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (UINT, "RateConversionIndex"), Out(Pointer(ObjPointer(ID3D11VideoProcessor)), "ppVideoProcessor")]),
2225 StdMethod(HRESULT, "CreateAuthenticatedChannel", [(D3D11_AUTHENTICATED_CHANNEL_TYPE, "ChannelType"), Out(Pointer(ObjPointer(ID3D11AuthenticatedChannel)), "ppAuthenticatedChannel")]),
Robert Tarasov6ccf5bb2020-01-10 12:31:25 -08002226 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 +01002227 StdMethod(HRESULT, "CreateVideoDecoderOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoDecoderOutputView)), "ppVDOVView")]),
2228 StdMethod(HRESULT, "CreateVideoProcessorInputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorInputView)), "ppVPIView")]),
2229 StdMethod(HRESULT, "CreateVideoProcessorOutputView", [(ObjPointer(ID3D11Resource), "pResource"), (ObjPointer(ID3D11VideoProcessorEnumerator), "pEnum"), (Pointer(Const(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorOutputView)), "ppVPOView")]),
2230 StdMethod(HRESULT, "CreateVideoProcessorEnumerator", [(Pointer(Const(D3D11_VIDEO_PROCESSOR_CONTENT_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D11VideoProcessorEnumerator)), "ppEnum")]),
2231 StdMethod(UINT, "GetVideoDecoderProfileCount", [], sideeffects=False),
2232 StdMethod(HRESULT, "GetVideoDecoderProfile", [(UINT, "Index"), Out(Pointer(GUID), "pDecoderProfile")], sideeffects=False),
2233 StdMethod(HRESULT, "CheckVideoDecoderFormat", [(Pointer(Const(GUID)), "pDecoderProfile"), (DXGI_FORMAT, "Format"), Out(Pointer(BOOL), "pSupported")], sideeffects=False),
2234 StdMethod(HRESULT, "GetVideoDecoderConfigCount", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), Out(Pointer(UINT), "pCount")]),
2235 StdMethod(HRESULT, "GetVideoDecoderConfig", [(Pointer(Const(D3D11_VIDEO_DECODER_DESC)), "pDesc"), (UINT, "Index"), Out(Pointer(D3D11_VIDEO_DECODER_CONFIG), "pConfig")], sideeffects=False),
2236 StdMethod(HRESULT, "GetContentProtectionCaps", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), Out(Pointer(D3D11_VIDEO_CONTENT_PROTECTION_CAPS), "pCaps")], sideeffects=False),
2237 StdMethod(HRESULT, "CheckCryptoKeyExchange", [(Pointer(Const(GUID)), "pCryptoType"), (Pointer(Const(GUID)), "pDecoderProfile"), (UINT, "Index"), Out(Pointer(GUID), "pKeyExchangeType")]),
2238 StdMethod(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
2239 StdMethod(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")], sideeffects=False),
2240]
2241
2242d3d11.addInterfaces([
2243 ID3D11VideoContext,
2244 ID3D11VideoDevice,
2245])
2246
2247
José Fonseca50bee952015-02-07 22:32:19 +00002248
2249#
2250# D3D11.1
2251#
2252
José Fonseca50bee952015-02-07 22:32:19 +00002253D3D_MIN_PRECISION = Enum("D3D_MIN_PRECISION", [
2254 "D3D_MIN_PRECISION_DEFAULT",
2255 "D3D_MIN_PRECISION_FLOAT_16",
2256 "D3D_MIN_PRECISION_FLOAT_2_8",
2257 "D3D_MIN_PRECISION_RESERVED",
2258 "D3D_MIN_PRECISION_SINT_16",
2259 "D3D_MIN_PRECISION_UINT_16",
2260 "D3D_MIN_PRECISION_ANY_16",
2261 "D3D_MIN_PRECISION_ANY_10",
2262])
2263
Jose Fonsecaf0009142017-10-12 14:19:26 +01002264D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK = Struct('D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK', [
2265 (UINT, 'ClearSize'),
2266 (UINT, 'EncryptedSize'),
2267])
2268
2269D3D11_VIDEO_DECODER_BUFFER_DESC1 = Struct('D3D11_VIDEO_DECODER_BUFFER_DESC1', [
2270 (D3D11_VIDEO_DECODER_BUFFER_TYPE, 'BufferType'),
2271 (UINT, 'DataOffset'),
2272 (UINT, 'DataSize'),
2273 (Blob(Void, "{self}.IVSize"), "pIV"),
2274 (UINT, 'IVSize'),
2275 (Pointer(D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK), 'pSubSampleMappingBlock'),
2276 (UINT, 'SubSampleMappingCount'),
2277])
2278
2279D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION = Struct('D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION', [
2280 (Pointer(ID3D11CryptoSession), 'pCryptoSession'),
2281 (UINT, 'BlobSize'),
2282 (Blob(Void, '{self}.BlobSize'), 'pBlob'),
2283 (Pointer(GUID), 'pKeyInfoId'),
2284 (UINT, 'PrivateDataSize'),
2285 (Blob(Void, '{self}.PrivateDataSize'), 'pPrivateData'),
2286])
2287
2288D3D11_VIDEO_DECODER_CAPS = Enum('D3D11_VIDEO_DECODER_CAPS', [
2289 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE',
2290 'D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME',
2291 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC',
2292 'D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED',
2293 'D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED',
2294])
2295
2296D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS = Enum('D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS', [
2297 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION',
2298 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE',
2299 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION',
2300 'D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT',
2301])
2302
2303D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT = Struct('D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT', [
2304 (BOOL, 'Enable'),
2305 (UINT, 'Width'),
2306 (UINT, 'Height'),
2307 (DXGI_FORMAT, 'Format'),
2308])
2309
2310D3D11_CRYPTO_SESSION_STATUS = Enum('D3D11_CRYPTO_SESSION_STATUS', [
2311 'D3D11_CRYPTO_SESSION_STATUS_OK',
2312 'D3D11_CRYPTO_SESSION_STATUS_KEY_LOST',
2313 'D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST',
2314])
2315
2316D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA', [
2317 (UINT, 'PrivateDataSize'),
2318 (UINT, 'HWProtectionDataSize'),
2319 (Array(BYTE, 4), 'pbInput'),
2320])
2321
2322D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA', [
2323 (UINT, 'PrivateDataSize'),
2324 (UINT, 'MaxHWProtectionDataSize'),
2325 (UINT, 'HWProtectionDataSize'),
2326 (UINT64, 'TransportTime'),
2327 (UINT64, 'ExecutionTime'),
2328 (Array(BYTE, 4), 'pbOutput'),
2329])
2330
2331D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA = Struct('D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA', [
2332 (UINT, 'HWProtectionFunctionID'),
2333 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA), 'pInputData'),
2334 (Pointer(D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA), 'pOutputData'),
2335 (HRESULT, 'Status'),
2336])
2337
2338D3D11_VIDEO_SAMPLE_DESC = Struct('D3D11_VIDEO_SAMPLE_DESC', [
2339 (UINT, 'Width'),
2340 (UINT, 'Height'),
2341 (DXGI_FORMAT, 'Format'),
2342 (DXGI_COLOR_SPACE_TYPE, 'ColorSpace'),
2343])
2344
José Fonseca50bee952015-02-07 22:32:19 +00002345ID3D11BlendState1 = Interface("ID3D11BlendState1", ID3D11BlendState)
2346ID3D11RasterizerState1 = Interface("ID3D11RasterizerState1", ID3D11RasterizerState)
2347ID3DDeviceContextState = Interface("ID3DDeviceContextState", ID3D11DeviceChild)
2348ID3D11DeviceContext1 = Interface("ID3D11DeviceContext1", ID3D11DeviceContext)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002349ID3D11VideoContext1 = Interface('ID3D11VideoContext1', ID3D11VideoContext)
2350ID3D11VideoDevice1 = Interface('ID3D11VideoDevice1', ID3D11VideoDevice)
2351ID3D11VideoProcessorEnumerator1 = Interface('ID3D11VideoProcessorEnumerator1', ID3D11VideoProcessorEnumerator)
José Fonseca50bee952015-02-07 22:32:19 +00002352ID3D11Device1 = Interface("ID3D11Device1", ID3D11Device)
2353ID3DUserDefinedAnnotation = Interface("ID3DUserDefinedAnnotation", IUnknown)
2354
José Fonseca50bee952015-02-07 22:32:19 +00002355D3D11_COPY_FLAGS = Flags(UINT, [
2356 "D3D11_COPY_NO_OVERWRITE",
2357 "D3D11_COPY_DISCARD",
2358])
2359
2360D3D11_LOGIC_OP = Enum("D3D11_LOGIC_OP", [
2361 "D3D11_LOGIC_OP_CLEAR",
2362 "D3D11_LOGIC_OP_SET",
2363 "D3D11_LOGIC_OP_COPY",
2364 "D3D11_LOGIC_OP_COPY_INVERTED",
2365 "D3D11_LOGIC_OP_NOOP",
2366 "D3D11_LOGIC_OP_INVERT",
2367 "D3D11_LOGIC_OP_AND",
2368 "D3D11_LOGIC_OP_NAND",
2369 "D3D11_LOGIC_OP_OR",
2370 "D3D11_LOGIC_OP_NOR",
2371 "D3D11_LOGIC_OP_XOR",
2372 "D3D11_LOGIC_OP_EQUIV",
2373 "D3D11_LOGIC_OP_AND_REVERSE",
2374 "D3D11_LOGIC_OP_AND_INVERTED",
2375 "D3D11_LOGIC_OP_OR_REVERSE",
2376 "D3D11_LOGIC_OP_OR_INVERTED",
2377])
2378
2379D3D11_RENDER_TARGET_BLEND_DESC1 = Struct("D3D11_RENDER_TARGET_BLEND_DESC1", [
2380 (BOOL, "BlendEnable"),
2381 (BOOL, "LogicOpEnable"),
2382 (D3D11_BLEND, "SrcBlend"),
2383 (D3D11_BLEND, "DestBlend"),
2384 (D3D11_BLEND_OP, "BlendOp"),
2385 (D3D11_BLEND, "SrcBlendAlpha"),
2386 (D3D11_BLEND, "DestBlendAlpha"),
2387 (D3D11_BLEND_OP, "BlendOpAlpha"),
2388 (D3D11_LOGIC_OP, "LogicOp"),
2389 (UINT8, "RenderTargetWriteMask"),
2390])
2391
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002392D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8
2393
José Fonseca50bee952015-02-07 22:32:19 +00002394D3D11_BLEND_DESC1 = Struct("D3D11_BLEND_DESC1", [
2395 (BOOL, "AlphaToCoverageEnable"),
2396 (BOOL, "IndependentBlendEnable"),
Jose Fonsecaa9b61382015-06-10 22:04:45 +01002397 (Array(D3D11_RENDER_TARGET_BLEND_DESC1, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT), "RenderTarget"),
José Fonseca50bee952015-02-07 22:32:19 +00002398])
2399
2400ID3D11BlendState1.methods += [
2401 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_BLEND_DESC1), "pDesc")], sideeffects=False),
2402]
2403
2404D3D11_RASTERIZER_DESC1 = Struct("D3D11_RASTERIZER_DESC1", [
2405 (D3D11_FILL_MODE, "FillMode"),
2406 (D3D11_CULL_MODE, "CullMode"),
2407 (BOOL, "FrontCounterClockwise"),
2408 (INT, "DepthBias"),
2409 (FLOAT, "DepthBiasClamp"),
2410 (FLOAT, "SlopeScaledDepthBias"),
2411 (BOOL, "DepthClipEnable"),
2412 (BOOL, "ScissorEnable"),
2413 (BOOL, "MultisampleEnable"),
2414 (BOOL, "AntialiasedLineEnable"),
2415 (UINT, "ForcedSampleCount"),
2416])
2417
2418ID3D11RasterizerState1.methods += [
2419 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RASTERIZER_DESC1), "pDesc")], sideeffects=False),
2420]
2421
2422D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG = Flags(UINT, [
2423 "D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED",
2424])
2425
2426ID3D11DeviceContext1.methods += [
2427 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")]),
2428 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")]),
2429 StdMethod(Void, "DiscardResource", [(ObjPointer(ID3D11Resource), "pResource")]),
2430 StdMethod(Void, "DiscardView", [(ObjPointer(ID3D11View), "pResourceView")]),
2431 StdMethod(Void, "DiscardView1", [(ObjPointer(ID3D11View), "pResourceView"), (Array(Const(D3D11_RECT), "NumRects"), "pRect"), (UINT, "NumRects")]),
2432 StdMethod(Void, "VSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2433 StdMethod(Void, "HSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2434 StdMethod(Void, "DSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2435 StdMethod(Void, "GSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2436 StdMethod(Void, "PSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2437 StdMethod(Void, "CSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]),
2438 StdMethod(Void, "VSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2439 StdMethod(Void, "HSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2440 StdMethod(Void, "DSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2441 StdMethod(Void, "GSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2442 StdMethod(Void, "PSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2443 StdMethod(Void, "CSGetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D11Buffer), "NumBuffers"), "ppConstantBuffers"), Out(Array(UINT, "NumBuffers"), "pFirstConstant"), Out(Array(UINT, "NumBuffers"), "pNumConstants")]),
2444 StdMethod(Void, "SwapDeviceContextState", [(ObjPointer(ID3DDeviceContextState), "pState"), Out(Pointer(ObjPointer(ID3DDeviceContextState)), "ppPreviousState")]),
Jose Fonseca4ccc8772015-05-20 17:18:31 +01002445 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 +00002446]
2447
Jose Fonsecaf0009142017-10-12 14:19:26 +01002448ID3D11VideoContext1.methods += [
2449 StdMethod(HRESULT, 'SubmitDecoderBuffers1', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (UINT, 'NumBuffers'), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC1), 'NumBuffers'), 'pBufferDesc')]),
2450 StdMethod(HRESULT, 'GetDataForNewHardwareKey', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), (UINT, 'PrivateInputSize'), (Blob(Const(Void), 'PrivateInputSize'), 'pPrivatInputData'), Out(Pointer(UINT64), 'pPrivateOutputData')]),
2451 StdMethod(HRESULT, 'CheckCryptoSessionStatus', [(ObjPointer(ID3D11CryptoSession), 'pCryptoSession'), Out(Pointer(D3D11_CRYPTO_SESSION_STATUS), 'pStatus')]),
2452 StdMethod(HRESULT, 'DecoderEnableDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (DXGI_COLOR_SPACE_TYPE, 'InputColorSpace'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc'), (UINT, 'ReferenceFrameCount')]),
2453 StdMethod(HRESULT, 'DecoderUpdateDownsampling', [(ObjPointer(ID3D11VideoDecoder), 'pDecoder'), (Pointer(Const(D3D11_VIDEO_SAMPLE_DESC)), 'pOutputDesc')]),
2454 StdMethod(Void, 'VideoProcessorSetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2455 StdMethod(Void, 'VideoProcessorSetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (BOOL, 'ShaderUsage')]),
2456 StdMethod(Void, 'VideoProcessorGetOutputColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2457 StdMethod(Void, 'VideoProcessorGetOutputShaderUsage', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(BOOL), 'pShaderUsage')], sideeffects=False),
2458 StdMethod(Void, 'VideoProcessorSetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_COLOR_SPACE_TYPE, 'ColorSpace')]),
2459 StdMethod(Void, 'VideoProcessorSetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (BOOL, 'Enable'), (BOOL, 'FlipHorizontal'), (BOOL, 'FlipVertical')]),
2460 StdMethod(Void, 'VideoProcessorGetStreamColorSpace1', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_COLOR_SPACE_TYPE), 'pColorSpace')], sideeffects=False),
2461 StdMethod(Void, 'VideoProcessorGetStreamMirror', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(BOOL), 'pEnable'), Out(Pointer(BOOL), 'pFlipHorizontal'), Out(Pointer(BOOL), 'pFlipVertical')]),
2462 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),
2463]
2464
2465ID3D11VideoDevice1.methods += [
2466 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),
2467 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),
2468 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),
2469 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),
2470]
2471
2472ID3D11VideoProcessorEnumerator1.methods += [
2473 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),
2474]
José Fonseca50bee952015-02-07 22:32:19 +00002475
2476ID3D11Device1.methods += [
2477 StdMethod(Void, "GetImmediateContext1", [Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppImmediateContext")]),
2478 StdMethod(HRESULT, "CreateDeferredContext1", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppDeferredContext")]),
2479 StdMethod(HRESULT, "CreateBlendState1", [(Pointer(Const(D3D11_BLEND_DESC1)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D11BlendState1)), "ppBlendState")]),
2480 StdMethod(HRESULT, "CreateRasterizerState1", [(Pointer(Const(D3D11_RASTERIZER_DESC1)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState1)), "ppRasterizerState")]),
2481 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")]),
2482 StdMethod(HRESULT, "OpenSharedResource1", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2483 StdMethod(HRESULT, "OpenSharedResourceByName", [(LPCWSTR, "lpName"), (DXGI_SHARED_RESOURCE_FLAG, "dwDesiredAccess"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
2484]
2485
2486ID3DUserDefinedAnnotation.methods += [
2487 StdMethod(INT, "BeginEvent", [(LPCWSTR, "Name")], sideeffects=False),
2488 StdMethod(INT, "EndEvent", [], sideeffects=False),
2489 StdMethod(Void, "SetMarker", [(LPCWSTR, "Name")], sideeffects=False),
2490 StdMethod(BOOL, "GetStatus", [], sideeffects=False),
2491]
2492
Jose Fonseca550c98d2018-02-13 12:59:31 +00002493ID3D11DebugTest = Interface('ID3D11DebugTest', IUnknown)
2494ID3D11DebugTest.methods += [
2495 StdMethod(Void, 'PreventFurtherExecutionOnError', [(BOOL, 'Enable')]),
2496 StdMethod(Void, 'VSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2497 StdMethod(Void, 'HSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2498 StdMethod(Void, 'DSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2499 StdMethod(Void, 'GSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2500 StdMethod(Void, 'PSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2501 StdMethod(Void, 'CSSetConstantBuffer14', [(ObjPointer(ID3D11Buffer), 'pCB14')]),
2502]
2503
José Fonseca50bee952015-02-07 22:32:19 +00002504d3d11.addInterfaces([
2505 ID3D11Device1,
2506 ID3DUserDefinedAnnotation,
Jose Fonseca550c98d2018-02-13 12:59:31 +00002507 ID3D11DebugTest,
José Fonseca50bee952015-02-07 22:32:19 +00002508])
José Fonseca40b82ca2015-02-07 22:55:49 +00002509
2510
2511
2512#
2513# D3D11.2
2514#
2515
2516D3D11_TILED_RESOURCE_COORDINATE = Struct("D3D11_TILED_RESOURCE_COORDINATE", [
2517 (UINT, "X"),
2518 (UINT, "Y"),
2519 (UINT, "Z"),
2520 (UINT, "Subresource"),
2521])
2522
2523D3D11_TILE_REGION_SIZE = Struct("D3D11_TILE_REGION_SIZE", [
2524 (UINT, "NumTiles"),
2525 (BOOL, "bUseBox"),
2526 (UINT, "Width"),
2527 (UINT16, "Height"),
2528 (UINT16, "Depth"),
2529])
2530
2531D3D11_TILE_MAPPING_FLAG = Flags(UINT, [
2532 "D3D11_TILE_MAPPING_NO_OVERWRITE",
2533])
2534
2535D3D11_TILE_RANGE_FLAG = Flags(UINT, [
2536 "D3D11_TILE_RANGE_NULL",
2537 "D3D11_TILE_RANGE_SKIP",
2538 "D3D11_TILE_RANGE_REUSE_SINGLE_TILE",
2539])
2540
2541D3D11_SUBRESOURCE_TILING = Struct("D3D11_SUBRESOURCE_TILING", [
2542 (UINT, "WidthInTiles"),
2543 (UINT16, "HeightInTiles"),
2544 (UINT16, "DepthInTiles"),
2545 (FakeEnum(UINT, ["D3D11_PACKED_TILE"]), "StartTileIndexInOverallResource"),
2546])
2547
2548D3D11_TILE_SHAPE = Struct("D3D11_TILE_SHAPE", [
2549 (UINT, "WidthInTexels"),
2550 (UINT, "HeightInTexels"),
2551 (UINT, "DepthInTexels"),
2552])
2553
2554D3D11_PACKED_MIP_DESC = Struct("D3D11_PACKED_MIP_DESC", [
2555 (UINT8, "NumStandardMips"),
2556 (UINT8, "NumPackedMips"),
2557 (UINT, "NumTilesForPackedMips"),
2558 (UINT, "StartTileIndexInOverallResource"),
2559])
2560
2561D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = Flags(UINT, [
2562 "D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE",
2563])
2564
2565D3D11_TILE_COPY_FLAG = Flags(UINT, [
2566 "D3D11_TILE_COPY_NO_OVERWRITE",
2567 "D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE",
2568 "D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER",
2569])
2570
2571ID3D11DeviceContext2 = Interface("ID3D11DeviceContext2", ID3D11DeviceContext1)
2572ID3D11DeviceContext2.methods += [
2573 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")]),
2574 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")]),
2575 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")]),
2576 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
2577 StdMethod(HRESULT, "ResizeTilePool", [(ObjPointer(ID3D11Buffer), "pTilePool"), (UINT64, "NewSizeInBytes")]),
2578 StdMethod(Void, "TiledResourceBarrier", [(ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessBeforeBarrier"), (ObjPointer(ID3D11DeviceChild), "pTiledResourceOrViewAccessAfterBarrier")]),
2579 StdMethod(BOOL, "IsAnnotationEnabled", [], sideeffects=False),
2580 StdMethod(Void, "SetMarkerInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2581 StdMethod(Void, "BeginEventInt", [(LPCWSTR, "pLabel"), (INT, "Data")]),
2582 StdMethod(Void, "EndEvent", []),
2583]
2584
2585ID3D11Device2 = Interface("ID3D11Device2", ID3D11Device1)
2586ID3D11Device2.methods += [
2587 StdMethod(Void, "GetImmediateContext2", [Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppImmediateContext")]),
2588 StdMethod(HRESULT, "CreateDeferredContext2", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext2)), "ppDeferredContext")]),
2589 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")]),
2590 StdMethod(HRESULT, "CheckMultisampleQualityLevels1", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), (D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG, "Flags"), Out(Pointer(UINT), "pNumQualityLevels")], sideeffects=False),
2591]
2592
2593d3d11.addInterfaces([
2594 ID3D11Device2,
2595 ID3D11DeviceContext2,
2596])
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002597
2598
2599
2600#
2601# D3D11.3
2602#
2603
2604D3D11_CONTEXT_TYPE = Enum("D3D11_CONTEXT_TYPE", [
2605 "D3D11_CONTEXT_TYPE_ALL",
2606 "D3D11_CONTEXT_TYPE_3D",
2607 "D3D11_CONTEXT_TYPE_COMPUTE",
2608 "D3D11_CONTEXT_TYPE_COPY",
2609 "D3D11_CONTEXT_TYPE_VIDEO",
2610])
2611
2612D3D11_TEXTURE_LAYOUT = Enum("D3D11_TEXTURE_LAYOUT", [
2613 "D3D11_TEXTURE_LAYOUT_UNDEFINED",
2614 "D3D11_TEXTURE_LAYOUT_ROW_MAJOR",
2615 "D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE",
2616])
2617
2618D3D11_TEXTURE2D_DESC1 = Struct("D3D11_TEXTURE2D_DESC1", [
2619 (UINT, "Width"),
2620 (UINT, "Height"),
2621 (UINT, "MipLevels"),
2622 (UINT, "ArraySize"),
2623 (DXGI_FORMAT, "Format"),
2624 (DXGI_SAMPLE_DESC, "SampleDesc"),
2625 (D3D11_USAGE, "Usage"),
2626 (UINT, "BindFlags"),
2627 (UINT, "CPUAccessFlags"),
2628 (UINT, "MiscFlags"),
2629 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2630])
2631
2632ID3D11Texture2D1 = Interface("ID3D11Texture2D1", ID3D11Texture2D)
2633ID3D11Texture2D1.methods += [
2634 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE2D_DESC1), "pDesc")], sideeffects=False),
2635]
2636D3D11_TEXTURE3D_DESC1 = Struct("D3D11_TEXTURE3D_DESC1", [
2637 (UINT, "Width"),
2638 (UINT, "Height"),
2639 (UINT, "Depth"),
2640 (UINT, "MipLevels"),
2641 (DXGI_FORMAT, "Format"),
2642 (D3D11_USAGE, "Usage"),
2643 (UINT, "BindFlags"),
2644 (UINT, "CPUAccessFlags"),
2645 (UINT, "MiscFlags"),
2646 (D3D11_TEXTURE_LAYOUT, "TextureLayout"),
2647])
2648
2649ID3D11Texture3D1 = Interface("ID3D11Texture3D1", ID3D11Texture3D)
2650ID3D11Texture3D1.methods += [
2651 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_TEXTURE3D_DESC1), "pDesc")], sideeffects=False),
2652]
2653
2654D3D11_CONSERVATIVE_RASTERIZATION_MODE = Enum("D3D11_CONSERVATIVE_RASTERIZATION_MODE", [
2655 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF",
2656 "D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON",
2657])
2658
2659D3D11_RASTERIZER_DESC2 = Struct("D3D11_RASTERIZER_DESC2", [
2660 (D3D11_FILL_MODE, "FillMode"),
2661 (D3D11_CULL_MODE, "CullMode"),
2662 (BOOL, "FrontCounterClockwise"),
2663 (INT, "DepthBias"),
2664 (FLOAT, "DepthBiasClamp"),
2665 (FLOAT, "SlopeScaledDepthBias"),
2666 (BOOL, "DepthClipEnable"),
2667 (BOOL, "ScissorEnable"),
2668 (BOOL, "MultisampleEnable"),
2669 (BOOL, "AntialiasedLineEnable"),
2670 (UINT, "ForcedSampleCount"),
2671 (D3D11_CONSERVATIVE_RASTERIZATION_MODE, "ConservativeRaster"),
2672])
2673
2674ID3D11RasterizerState2 = Interface("ID3D11RasterizerState2", ID3D11RasterizerState1)
2675ID3D11RasterizerState2.methods += [
2676 StdMethod(Void, "GetDesc2", [Out(Pointer(D3D11_RASTERIZER_DESC2), "pDesc")], sideeffects=False),
2677]
2678
2679D3D11_TEX2D_SRV1 = Struct("D3D11_TEX2D_SRV1", [
2680 (UINT, "MostDetailedMip"),
2681 (UINT, "MipLevels"),
2682 (UINT, "PlaneSlice"),
2683])
2684
2685D3D11_TEX2D_ARRAY_SRV1 = Struct("D3D11_TEX2D_ARRAY_SRV1", [
2686 (UINT, "MostDetailedMip"),
2687 (UINT, "MipLevels"),
2688 (UINT, "FirstArraySlice"),
2689 (UINT, "ArraySize"),
2690 (UINT, "PlaneSlice"),
2691])
2692
2693D3D11_SHADER_RESOURCE_VIEW_DESC1 = Struct("D3D11_SHADER_RESOURCE_VIEW_DESC1", [
2694 (DXGI_FORMAT, "Format"),
2695 (D3D11_SRV_DIMENSION, "ViewDimension"),
2696 (Union("{self}.ViewDimension", [
2697 ("D3D11_SRV_DIMENSION_BUFFER", D3D11_BUFFER_SRV, "Buffer"),
2698 ("D3D11_SRV_DIMENSION_TEXTURE1D", D3D11_TEX1D_SRV, "Texture1D"),
2699 ("D3D11_SRV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_SRV, "Texture1DArray"),
2700 ("D3D11_SRV_DIMENSION_TEXTURE2D", D3D11_TEX2D_SRV1, "Texture2D"),
2701 ("D3D11_SRV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_SRV1, "Texture2DArray"),
2702 ("D3D11_SRV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_SRV, "Texture2DMS"),
2703 ("D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_SRV, "Texture2DMSArray"),
2704 ("D3D11_SRV_DIMENSION_TEXTURE3D", D3D11_TEX3D_SRV, "Texture3D"),
2705 ("D3D11_SRV_DIMENSION_TEXTURECUBE", D3D11_TEXCUBE_SRV, "TextureCube"),
2706 ("D3D11_SRV_DIMENSION_TEXTURECUBEARRAY", D3D11_TEXCUBE_ARRAY_SRV, "TextureCubeArray"),
2707 ("D3D11_SRV_DIMENSION_BUFFEREX", D3D11_BUFFEREX_SRV, "BufferEx"),
2708 ]), None),
2709])
2710
2711
2712ID3D11ShaderResourceView1 = Interface("ID3D11ShaderResourceView1", ID3D11ShaderResourceView)
2713ID3D11ShaderResourceView1.methods += [
2714 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC1), "pDesc1")], sideeffects=False),
2715]
2716
2717D3D11_TEX2D_RTV1 = Struct("D3D11_TEX2D_RTV1", [
2718 (UINT, "MipSlice"),
2719 (UINT, "PlaneSlice"),
2720])
2721
2722D3D11_TEX2D_ARRAY_RTV1 = Struct("D3D11_TEX2D_ARRAY_RTV1", [
2723 (UINT, "MipSlice"),
2724 (UINT, "FirstArraySlice"),
2725 (UINT, "ArraySize"),
2726 (UINT, "PlaneSlice"),
2727])
2728
2729D3D11_RENDER_TARGET_VIEW_DESC1 = Struct("D3D11_RENDER_TARGET_VIEW_DESC1", [
2730 (DXGI_FORMAT, "Format"),
2731 (D3D11_RTV_DIMENSION, "ViewDimension"),
2732 (Union("{self}.ViewDimension", [
2733 ("D3D11_RTV_DIMENSION_BUFFER", D3D11_BUFFER_RTV, "Buffer"),
2734 ("D3D11_RTV_DIMENSION_TEXTURE1D", D3D11_TEX1D_RTV, "Texture1D"),
2735 ("D3D11_RTV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_RTV, "Texture1DArray"),
2736 ("D3D11_RTV_DIMENSION_TEXTURE2D", D3D11_TEX2D_RTV1, "Texture2D"),
2737 ("D3D11_RTV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_RTV1, "Texture2DArray"),
2738 ("D3D11_RTV_DIMENSION_TEXTURE2DMS", D3D11_TEX2DMS_RTV, "Texture2DMS"),
2739 ("D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY", D3D11_TEX2DMS_ARRAY_RTV, "Texture2DMSArray"),
2740 ("D3D11_RTV_DIMENSION_TEXTURE3D", D3D11_TEX3D_RTV, "Texture3D"),
2741 ]), None),
2742])
2743
2744ID3D11RenderTargetView1 = Interface("ID3D11RenderTargetView1", ID3D11RenderTargetView)
2745ID3D11RenderTargetView1.methods += [
2746 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC1), "pDesc1")], sideeffects=False),
2747]
2748
2749D3D11_TEX2D_UAV1 = Struct("D3D11_TEX2D_UAV1", [
2750 (UINT, "MipSlice"),
2751 (UINT, "PlaneSlice"),
2752])
2753
2754D3D11_TEX2D_ARRAY_UAV1 = Struct("D3D11_TEX2D_ARRAY_UAV1", [
2755 (UINT, "MipSlice"),
2756 (UINT, "FirstArraySlice"),
2757 (UINT, "ArraySize"),
2758 (UINT, "PlaneSlice"),
2759])
2760
2761D3D11_UNORDERED_ACCESS_VIEW_DESC1 = Struct("D3D11_UNORDERED_ACCESS_VIEW_DESC1", [
2762 (DXGI_FORMAT, "Format"),
2763 (D3D11_UAV_DIMENSION, "ViewDimension"),
2764 (Union("{self}.ViewDimension", [
2765 ("D3D11_UAV_DIMENSION_BUFFER", D3D11_BUFFER_UAV, "Buffer"),
2766 ("D3D11_UAV_DIMENSION_TEXTURE1D", D3D11_TEX1D_UAV, "Texture1D"),
2767 ("D3D11_UAV_DIMENSION_TEXTURE1DARRAY", D3D11_TEX1D_ARRAY_UAV, "Texture1DArray"),
2768 ("D3D11_UAV_DIMENSION_TEXTURE2D", D3D11_TEX2D_UAV1, "Texture2D"),
2769 ("D3D11_UAV_DIMENSION_TEXTURE2DARRAY", D3D11_TEX2D_ARRAY_UAV1, "Texture2DArray"),
2770 ("D3D11_UAV_DIMENSION_TEXTURE3D", D3D11_TEX3D_UAV, "Texture3D"),
2771 ]), None),
2772])
2773
2774ID3D11UnorderedAccessView1 = Interface("ID3D11UnorderedAccessView1", ID3D11UnorderedAccessView)
2775ID3D11UnorderedAccessView1.methods += [
2776 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC1), "pDesc1")], sideeffects=False),
2777]
2778
2779D3D11_QUERY_DESC1 = Struct("D3D11_QUERY_DESC1", [
2780 (D3D11_QUERY, "Query"),
2781 (D3D11_QUERY_MISC_FLAG, "MiscFlags"),
2782 (D3D11_CONTEXT_TYPE, "ContextType"),
2783])
2784
2785ID3D11Query1 = Interface("ID3D11Query1", ID3D11Query)
2786ID3D11Query1.methods += [
2787 StdMethod(Void, "GetDesc1", [Out(Pointer(D3D11_QUERY_DESC1), "pDesc1")], sideeffects=False),
2788]
2789
2790ID3D11DeviceContext3 = Interface("ID3D11DeviceContext3", ID3D11DeviceContext2)
2791ID3D11DeviceContext3.methods += [
2792 StdMethod(Void, "Flush1", [(D3D11_CONTEXT_TYPE, "ContextType"), (HANDLE, "hEvent")]),
2793 StdMethod(Void, "SetHardwareProtectionState", [(BOOL, "HwProtectionEnable")]),
2794 StdMethod(Void, "GetHardwareProtectionState", [Out(Pointer(BOOL), "pHwProtectionEnable")], sideeffects=False),
2795]
2796
Jose Fonseca05cf1b52017-10-10 21:56:42 +01002797ID3D11Fence = Interface('ID3D11Fence', ID3D11DeviceChild)
2798ID3D11Fence.methods += [
2799 StdMethod(HRESULT, 'CreateSharedHandle', [(Pointer(Const(SECURITY_ATTRIBUTES)), 'pAttributes'), (DWORD, 'dwAccess'), (LPCWSTR, 'lpName'), Out(Pointer(HANDLE), 'pHandle')]),
2800 StdMethod(UINT64, 'GetCompletedValue', []),
2801 StdMethod(HRESULT, 'SetEventOnCompletion', [(UINT64, 'Value'), (HANDLE, 'hEvent')]),
2802]
2803
2804ID3D11DeviceContext4 = Interface('ID3D11DeviceContext4', ID3D11DeviceContext3)
2805ID3D11DeviceContext4.methods += [
2806 StdMethod(HRESULT, 'Signal', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2807 StdMethod(HRESULT, 'Wait', [(ObjPointer(ID3D11Fence), 'pFence'), (UINT64, 'Value')]),
2808]
2809
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002810ID3D11Device3 = Interface("ID3D11Device3", ID3D11Device2)
2811ID3D11Device3.methods += [
2812 StdMethod(HRESULT, "CreateTexture2D1", [(Pointer(Const(D3D11_TEXTURE2D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture2D1)), "ppTexture2D")]),
2813 StdMethod(HRESULT, "CreateTexture3D1", [(Pointer(Const(D3D11_TEXTURE3D_DESC1)), "pDesc1"), (Array(Const(D3D11_SUBRESOURCE_DATA), "_getNumSubResources(pDesc1)"), "pInitialData"), Out(Pointer(ObjPointer(ID3D11Texture3D1)), "ppTexture3D")]),
2814 StdMethod(HRESULT, "CreateRasterizerState2", [(Pointer(Const(D3D11_RASTERIZER_DESC2)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D11RasterizerState2)), "ppRasterizerState")]),
2815 StdMethod(HRESULT, "CreateShaderResourceView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11ShaderResourceView1)), "ppSRView1")]),
2816 StdMethod(HRESULT, "CreateUnorderedAccessView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView1)), "ppUAView1")]),
2817 StdMethod(HRESULT, "CreateRenderTargetView1", [(ObjPointer(ID3D11Resource), "pResource"), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC1)), "pDesc1"), Out(Pointer(ObjPointer(ID3D11RenderTargetView1)), "ppRTView1")]),
2818 StdMethod(HRESULT, "CreateQuery1", [(Pointer(Const(D3D11_QUERY_DESC1)), "pQueryDesc1"), Out(Pointer(ObjPointer(ID3D11Query1)), "ppQuery1")]),
2819 StdMethod(Void, "GetImmediateContext3", [Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppImmediateContext")]),
2820 StdMethod(HRESULT, "CreateDeferredContext3", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext3)), "ppDeferredContext")]),
Jose Fonsecae82b4a12016-05-18 15:23:41 +01002821 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 +01002822 StdMethod(Void, "ReadFromSubresource", [Out(OpaquePointer(Void), "pDstData"), (UINT, "DstRowPitch"), (UINT, "DstDepthPitch"), (ObjPointer(ID3D11Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D11_BOX)), "pSrcBox")], sideeffects=False), # FIXME
2823]
2824
2825d3d11.addInterfaces([
2826 ID3D11Device3,
2827 ID3D11DeviceContext3,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002828 ID3D11DeviceContext4, # Requires Windows 10.0.15021 SDK
Jose Fonseca4713c3b2015-08-12 11:06:34 +01002829])
Jose Fonseca65113392017-09-26 16:46:11 +01002830
2831
2832#
2833# D3D11.4
2834#
2835
2836D3D11_FENCE_FLAG = Enum('D3D11_FENCE_FLAG', [
2837 'D3D11_FENCE_FLAG_NONE',
2838 'D3D11_FENCE_FLAG_SHARED',
2839 'D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER',
Jose Fonsecada81a3a2020-05-22 20:39:01 +01002840 'D3D11_FENCE_FLAG_NON_MONITORED',
Jose Fonseca65113392017-09-26 16:46:11 +01002841])
2842
2843ID3D11Device4 = Interface('ID3D11Device4', ID3D11Device3)
2844ID3D11Device5 = Interface('ID3D11Device5', ID3D11Device4)
2845ID3D11Multithread = Interface('ID3D11Multithread', IUnknown)
Jose Fonsecaf0009142017-10-12 14:19:26 +01002846ID3D11VideoContext2 = Interface('ID3D11VideoContext2', ID3D11VideoContext1)
Jose Fonseca65113392017-09-26 16:46:11 +01002847
2848ID3D11Device4.methods += [
2849 StdMethod(HRESULT, 'RegisterDeviceRemovedEvent', [(HANDLE, 'hEvent'), Out(Pointer(DWORD), 'pdwCookie')]),
2850 StdMethod(Void, 'UnregisterDeviceRemoved', [(DWORD, 'dwCookie')]),
2851]
2852
2853ID3D11Device5.methods += [
2854 StdMethod(HRESULT, 'OpenSharedFence', [(HANDLE, 'hFence'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2855 StdMethod(HRESULT, 'CreateFence', [(UINT64, 'InitialValue'), (D3D11_FENCE_FLAG, 'Flags'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppFence')]),
2856]
Jose Fonsecaf0009142017-10-12 14:19:26 +01002857
Jose Fonseca65113392017-09-26 16:46:11 +01002858ID3D11Multithread.methods += [
2859 StdMethod(Void, 'Enter', []),
2860 StdMethod(Void, 'Leave', []),
2861 StdMethod(BOOL, 'SetMultithreadProtected', [(BOOL, 'bMTProtect')]),
2862 StdMethod(BOOL, 'GetMultithreadProtected', [], sideeffects=False),
2863]
2864
Jose Fonsecaf0009142017-10-12 14:19:26 +01002865ID3D11VideoContext2.methods += [
2866 StdMethod(Void, 'VideoProcessorSetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2867 StdMethod(Void, 'VideoProcessorGetOutputHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(OpaqueBlob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2868 StdMethod(Void, 'VideoProcessorSetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), (DXGI_HDR_METADATA_TYPE, 'Type'), (UINT, 'Size'), (Blob(Const(Void), 'Size'), 'pHDRMetaData')]),
2869 StdMethod(Void, 'VideoProcessorGetStreamHDRMetaData', [(ObjPointer(ID3D11VideoProcessor), 'pVideoProcessor'), (UINT, 'StreamIndex'), Out(Pointer(DXGI_HDR_METADATA_TYPE), 'pType'), (UINT, 'Size'), Out(Blob(Void, 'Size'), 'pMetaData')], sideeffects=False),
2870]
Jose Fonseca65113392017-09-26 16:46:11 +01002871
2872PFN_DESTRUCTION_CALLBACK = Opaque("PFN_DESTRUCTION_CALLBACK")
2873
2874ID3DDestructionNotifier = Interface('ID3DDestructionNotifier', IUnknown)
2875
2876ID3DDestructionNotifier.methods += [
2877 StdMethod(HRESULT, 'RegisterDestructionCallback', [(PFN_DESTRUCTION_CALLBACK, 'callbackFn'), (OpaquePointer(Void), 'pData'), Out(Pointer(UINT), 'pCallbackID')], sideeffects=False),
2878 StdMethod(HRESULT, 'UnregisterDestructionCallback', [(UINT, 'callbackID')], sideeffects=False),
2879]
2880
Jose Fonseca7c76b902017-10-09 18:00:42 +01002881IUseCounted = Interface('IUseCounted', IUnknown)
2882IUseCounted.methods += [
2883 StdMethod(ULONG, 'UCAddUse', []),
2884 StdMethod(ULONG, 'UCReleaseUse', []),
2885 StdMethod(Void, 'UCBreakCyclicReferences', []),
2886 StdMethod(Void, 'UCEstablishCyclicReferences', []),
2887 StdMethod(Void, 'UCDestroy', []),
2888]
2889
2890ILayeredUseCounted = Interface('ILayeredUseCounted', IUseCounted)
2891
2892ID3D11LayeredUseCounted = Interface('ID3D11LayeredUseCounted', ILayeredUseCounted)
2893
2894IUseCounted2 = Interface('IUseCounted2', IUseCounted)
2895IUseCounted2.methods += [
2896 StdMethod(HRESULT, 'UCQueryInterface', [(UINT, 'flags'), (REFIID, 'riid'), Out(Pointer(ObjPointer(Void)), 'ppvObj')]),
2897]
2898
Jose Fonseca65113392017-09-26 16:46:11 +01002899d3d11.addInterfaces([
Jose Fonseca93da5d22017-10-12 14:09:37 +01002900 ID3D11Device4,
Jose Fonsecaf4e3e002017-10-13 13:37:49 +01002901 ID3D11Device5, # Requires Windows 10.0.15021 SDK
Jose Fonseca65113392017-09-26 16:46:11 +01002902 ID3D11Multithread,
Jose Fonsecaf0009142017-10-12 14:19:26 +01002903 ID3D11VideoContext2,
Jose Fonseca7c76b902017-10-09 18:00:42 +01002904 ID3DDestructionNotifier,
2905 ID3D11LayeredUseCounted,
2906 IUseCounted2,
Jose Fonseca65113392017-09-26 16:46:11 +01002907])