1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use ctypes::{c_float, c_int, c_long, c_void};
7 use shared::basetsd::{SIZE_T, UINT64, UINT8};
8 use shared::dxgi::{DXGI_SWAP_CHAIN_DESC, IDXGIAdapter, IDXGISwapChain};
9 use shared::dxgiformat::DXGI_FORMAT;
10 use shared::dxgitype::{DXGI_RATIONAL, DXGI_SAMPLE_DESC};
11 use shared::guiddef::{GUID, REFGUID, REFIID};
12 use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, HMODULE, INT, UINT, USHORT};
13 use shared::windef::{RECT, SIZE};
14 use um::d3dcommon::{
15 D3D_DRIVER_TYPE, D3D_FEATURE_LEVEL, D3D_PRIMITIVE, D3D_PRIMITIVE_TOPOLOGY, D3D_SRV_DIMENSION,
16 };
17 use um::unknwnbase::{IUnknown, IUnknownVtbl};
18 use um::winnt::{HANDLE, HRESULT, LPCSTR, LPSTR, ULONGLONG};
19 pub const D3D11_16BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xffff;
20 pub const D3D11_32BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xffffffff;
21 pub const D3D11_8BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xff;
22 pub const D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT: DWORD = 9;
23 pub const D3D11_CLIP_OR_CULL_DISTANCE_COUNT: DWORD = 8;
24 pub const D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT: DWORD = 2;
25 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT: DWORD = 14;
26 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS: DWORD = 4;
27 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT: DWORD = 32;
28 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT: DWORD = 15;
29 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT: DWORD = 16;
30 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS: DWORD = 4;
31 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT: DWORD = 15;
32 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST: DWORD = 1;
33 pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS: DWORD = 1;
34 pub const D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT: DWORD = 64;
35 pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS: DWORD = 4;
36 pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT: DWORD = 1;
37 pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST: DWORD = 1;
38 pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS: DWORD = 1;
39 pub const D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT: DWORD = 32;
40 pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS: DWORD = 1;
41 pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT: DWORD = 128;
42 pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST: DWORD = 1;
43 pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS: DWORD = 1;
44 pub const D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT: DWORD = 128;
45 pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS: DWORD = 1;
46 pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT: DWORD = 16;
47 pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST: DWORD = 1;
48 pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS: DWORD = 1;
49 pub const D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT: DWORD = 16;
50 pub const D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT: DWORD = 32;
51 pub const D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS: DWORD = 4;
52 pub const D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
53 pub const D3D11_COMMONSHADER_TEMP_REGISTER_COUNT: DWORD = 4096;
54 pub const D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST: DWORD = 3;
55 pub const D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS: DWORD = 3;
56 pub const D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX: DWORD = 10;
57 pub const D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN: c_long = -10;
58 pub const D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE: c_long = -8;
59 pub const D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE: DWORD = 7;
60 pub const D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 256;
61 pub const D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP: DWORD = 64;
62 pub const D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 240;
63 pub const D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP: DWORD = 68;
64 pub const D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 224;
65 pub const D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP: DWORD = 72;
66 pub const D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 208;
67 pub const D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP: DWORD = 76;
68 pub const D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 192;
69 pub const D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP: DWORD = 84;
70 pub const D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 176;
71 pub const D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP: DWORD = 92;
72 pub const D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 160;
73 pub const D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP: DWORD = 100;
74 pub const D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 144;
75 pub const D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP: DWORD = 112;
76 pub const D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 128;
77 pub const D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP: DWORD = 128;
78 pub const D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 112;
79 pub const D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP: DWORD = 144;
80 pub const D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 96;
81 pub const D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP: DWORD = 168;
82 pub const D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 80;
83 pub const D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP: DWORD = 204;
84 pub const D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 64;
85 pub const D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP: DWORD = 256;
86 pub const D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 48;
87 pub const D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP: DWORD = 340;
88 pub const D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 32;
89 pub const D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP: DWORD = 512;
90 pub const D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 16;
91 pub const D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP: DWORD = 768;
92 pub const D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION: DWORD = 1;
93 pub const D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT: DWORD = 256;
94 pub const D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP: DWORD = 768;
95 pub const D3D11_CS_4_X_THREAD_GROUP_MAX_X: DWORD = 768;
96 pub const D3D11_CS_4_X_THREAD_GROUP_MAX_Y: DWORD = 768;
97 pub const D3D11_CS_4_X_UAV_REGISTER_COUNT: DWORD = 1;
98 pub const D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION: DWORD = 65535;
99 pub const D3D11_CS_TGSM_REGISTER_COUNT: DWORD = 8192;
100 pub const D3D11_CS_TGSM_REGISTER_READS_PER_INST: DWORD = 1;
101 pub const D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS: DWORD = 1;
102 pub const D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS: DWORD = 1;
103 pub const D3D11_CS_THREADGROUPID_REGISTER_COMPONENTS: DWORD = 3;
104 pub const D3D11_CS_THREADGROUPID_REGISTER_COUNT: DWORD = 1;
105 pub const D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS: DWORD = 1;
106 pub const D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT: DWORD = 1;
107 pub const D3D11_CS_THREADIDINGROUP_REGISTER_COMPONENTS: DWORD = 3;
108 pub const D3D11_CS_THREADIDINGROUP_REGISTER_COUNT: DWORD = 1;
109 pub const D3D11_CS_THREADID_REGISTER_COMPONENTS: DWORD = 3;
110 pub const D3D11_CS_THREADID_REGISTER_COUNT: DWORD = 1;
111 pub const D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP: DWORD = 1024;
112 pub const D3D11_CS_THREAD_GROUP_MAX_X: DWORD = 1024;
113 pub const D3D11_CS_THREAD_GROUP_MAX_Y: DWORD = 1024;
114 pub const D3D11_CS_THREAD_GROUP_MAX_Z: DWORD = 64;
115 pub const D3D11_CS_THREAD_GROUP_MIN_X: DWORD = 1;
116 pub const D3D11_CS_THREAD_GROUP_MIN_Y: DWORD = 1;
117 pub const D3D11_CS_THREAD_GROUP_MIN_Z: DWORD = 1;
118 pub const D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL: DWORD = 16384;
119 pub const D3D11_DEFAULT_BLEND_FACTOR_ALPHA: FLOAT = 1.0;
120 pub const D3D11_DEFAULT_BLEND_FACTOR_BLUE: FLOAT = 1.0;
121 pub const D3D11_DEFAULT_BLEND_FACTOR_GREEN: FLOAT = 1.0;
122 pub const D3D11_DEFAULT_BLEND_FACTOR_RED: FLOAT = 1.0;
123 pub const D3D11_DEFAULT_BORDER_COLOR_COMPONENT: FLOAT = 0.0;
124 pub const D3D11_DEFAULT_DEPTH_BIAS: DWORD = 0;
125 pub const D3D11_DEFAULT_DEPTH_BIAS_CLAMP: FLOAT = 0.0;
126 pub const D3D11_DEFAULT_MAX_ANISOTROPY: DWORD = 16;
127 pub const D3D11_DEFAULT_MIP_LOD_BIAS: FLOAT = 0.0;
128 pub const D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX: DWORD = 0;
129 pub const D3D11_DEFAULT_SAMPLE_MASK: DWORD = 0xffffffff;
130 pub const D3D11_DEFAULT_SCISSOR_ENDX: DWORD = 0;
131 pub const D3D11_DEFAULT_SCISSOR_ENDY: DWORD = 0;
132 pub const D3D11_DEFAULT_SCISSOR_STARTX: DWORD = 0;
133 pub const D3D11_DEFAULT_SCISSOR_STARTY: DWORD = 0;
134 pub const D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS: FLOAT = 0.0;
135 pub const D3D11_DEFAULT_STENCIL_READ_MASK: DWORD = 0xff;
136 pub const D3D11_DEFAULT_STENCIL_REFERENCE: DWORD = 0;
137 pub const D3D11_DEFAULT_STENCIL_WRITE_MASK: DWORD = 0xff;
138 pub const D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX: DWORD = 0;
139 pub const D3D11_DEFAULT_VIEWPORT_HEIGHT: DWORD = 0;
140 pub const D3D11_DEFAULT_VIEWPORT_MAX_DEPTH: FLOAT = 0.0;
141 pub const D3D11_DEFAULT_VIEWPORT_MIN_DEPTH: FLOAT = 0.0;
142 pub const D3D11_DEFAULT_VIEWPORT_TOPLEFTX: DWORD = 0;
143 pub const D3D11_DEFAULT_VIEWPORT_TOPLEFTY: DWORD = 0;
144 pub const D3D11_DEFAULT_VIEWPORT_WIDTH: DWORD = 0;
145 pub const D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: DWORD = 3968;
146 pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS: DWORD = 4;
147 pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
148 pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT: DWORD = 32;
149 pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST: DWORD = 2;
150 pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS: DWORD = 1;
151 pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS: DWORD = 3;
152 pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
153 pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT: DWORD = 1;
154 pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST: DWORD = 2;
155 pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS: DWORD = 1;
156 pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: DWORD = 4;
157 pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
158 pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT: DWORD = 32;
159 pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: DWORD = 2;
160 pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: DWORD = 1;
161 pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: DWORD = 1;
162 pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
163 pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: DWORD = 1;
164 pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: DWORD = 2;
165 pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: DWORD = 1;
166 pub const D3D11_DS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
167 pub const D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
168 pub const D3D11_DS_OUTPUT_REGISTER_COUNT: DWORD = 32;
169 pub const D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP: FLOAT = 0.6;
170 pub const D3D11_FLOAT32_MAX: FLOAT = 3.402823466E+38;
171 pub const D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP: FLOAT = 0.6;
172 pub const D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR: FLOAT = 2.4;
173 pub const D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR: FLOAT = 1.0;
174 pub const D3D11_FLOAT_TO_SRGB_OFFSET: FLOAT = 0.055;
175 pub const D3D11_FLOAT_TO_SRGB_SCALE_1: FLOAT = 12.92;
176 pub const D3D11_FLOAT_TO_SRGB_SCALE_2: FLOAT = 1.055;
177 pub const D3D11_FLOAT_TO_SRGB_THRESHOLD: FLOAT = 0.0031308;
178 pub const D3D11_FTOI_INSTRUCTION_MAX_INPUT: FLOAT = 2147483647.999;
179 pub const D3D11_FTOI_INSTRUCTION_MIN_INPUT: FLOAT = -2147483648.999;
180 pub const D3D11_FTOU_INSTRUCTION_MAX_INPUT: FLOAT = 4294967295.999;
181 pub const D3D11_FTOU_INSTRUCTION_MIN_INPUT: FLOAT = 0.0;
182 pub const D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST: DWORD = 2;
183 pub const D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS: DWORD = 1;
184 pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
185 pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
186 pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
187 pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS: DWORD = 1;
188 pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
189 pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT: DWORD = 1;
190 pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST: DWORD = 2;
191 pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS: DWORD = 1;
192 pub const D3D11_GS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
193 pub const D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
194 pub const D3D11_GS_INPUT_REGISTER_COUNT: DWORD = 32;
195 pub const D3D11_GS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
196 pub const D3D11_GS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
197 pub const D3D11_GS_INPUT_REGISTER_VERTICES: DWORD = 32;
198 pub const D3D11_GS_MAX_INSTANCE_COUNT: DWORD = 32;
199 pub const D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES: DWORD = 1024;
200 pub const D3D11_GS_OUTPUT_ELEMENTS: DWORD = 32;
201 pub const D3D11_GS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
202 pub const D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
203 pub const D3D11_GS_OUTPUT_REGISTER_COUNT: DWORD = 32;
204 pub const D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT: DWORD = 32;
205 pub const D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT: DWORD = 32;
206 pub const D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS: DWORD = 4;
207 pub const D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
208 pub const D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST: DWORD = 2;
209 pub const D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS: DWORD = 1;
210 pub const D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND: DWORD = 0xffffffff;
211 pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
212 pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
213 pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
214 pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST: DWORD = 2;
215 pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS: DWORD = 1;
216 pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
217 pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
218 pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
219 pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST: DWORD = 2;
220 pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS: DWORD = 1;
221 pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: DWORD = 1;
222 pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
223 pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: DWORD = 1;
224 pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: DWORD = 2;
225 pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: DWORD = 1;
226 pub const D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND: DWORD = 0xffffffff;
227 pub const D3D11_HS_MAXTESSFACTOR_LOWER_BOUND: FLOAT = 1.0;
228 pub const D3D11_HS_MAXTESSFACTOR_UPPER_BOUND: FLOAT = 64.0;
229 pub const D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: DWORD = 3968;
230 pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS: DWORD = 1;
231 pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
232 pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT: DWORD = 1;
233 pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST: DWORD = 2;
234 pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS: DWORD = 1;
235 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: DWORD = 4;
236 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
237 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT: DWORD = 32;
238 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: DWORD = 2;
239 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: DWORD = 1;
240 pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS: DWORD = 128;
241 pub const D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES: DWORD = 0;
242 pub const D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY: DWORD = 0;
243 pub const D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES: DWORD = 0;
244 pub const D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT: DWORD = 1;
245 pub const D3D11_IA_INSTANCE_ID_BIT_COUNT: DWORD = 32;
246 pub const D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT: DWORD = 32;
247 pub const D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT: DWORD = 32;
248 pub const D3D11_IA_PRIMITIVE_ID_BIT_COUNT: DWORD = 32;
249 pub const D3D11_IA_VERTEX_ID_BIT_COUNT: DWORD = 32;
250 pub const D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT: DWORD = 32;
251 pub const D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS: DWORD = 128;
252 pub const D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT: DWORD = 32;
253 pub const D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT: DWORD = 0xffffffff;
254 pub const D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER: DWORD = 0xffffffff;
255 pub const D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL: DWORD = 0xffffffff;
256 pub const D3D11_KEEP_UNORDERED_ACCESS_VIEWS: DWORD = 0xffffffff;
257 pub const D3D11_LINEAR_GAMMA: FLOAT = 1.0;
258 pub const D3D11_MAJOR_VERSION: DWORD = 11;
259 pub const D3D11_MAX_BORDER_COLOR_COMPONENT: FLOAT = 1.0;
260 pub const D3D11_MAX_DEPTH: FLOAT = 1.0;
261 pub const D3D11_MAX_MAXANISOTROPY: DWORD = 16;
262 pub const D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT: DWORD = 32;
263 pub const D3D11_MAX_POSITION_VALUE: FLOAT = 3.402823466E+34;
264 pub const D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP: DWORD = 17;
265 pub const D3D11_MINOR_VERSION: DWORD = 0;
266 pub const D3D11_MIN_BORDER_COLOR_COMPONENT: FLOAT = 0.0;
267 pub const D3D11_MIN_DEPTH: FLOAT = 0.0;
268 pub const D3D11_MIN_MAXANISOTROPY: DWORD = 0;
269 pub const D3D11_MIP_LOD_BIAS_MAX: FLOAT = 15.99;
270 pub const D3D11_MIP_LOD_BIAS_MIN: FLOAT = -16.0;
271 pub const D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT: DWORD = 8;
272 pub const D3D11_MIP_LOD_RANGE_BIT_COUNT: DWORD = 8;
273 pub const D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH: FLOAT = 1.4;
274 pub const D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT: DWORD = 0;
275 pub const D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 15;
276 pub const D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 16;
277 pub const D3D11_PS_CS_UAV_REGISTER_COMPONENTS: DWORD = 1;
278 pub const D3D11_PS_CS_UAV_REGISTER_COUNT: DWORD = 8;
279 pub const D3D11_PS_CS_UAV_REGISTER_READS_PER_INST: DWORD = 1;
280 pub const D3D11_PS_CS_UAV_REGISTER_READ_PORTS: DWORD = 1;
281 pub const D3D11_PS_FRONTFACING_DEFAULT_VALUE: DWORD = 0xffffffff;
282 pub const D3D11_PS_FRONTFACING_FALSE_VALUE: DWORD = 0;
283 pub const D3D11_PS_FRONTFACING_TRUE_VALUE: DWORD = 0xffffffff;
284 pub const D3D11_PS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
285 pub const D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
286 pub const D3D11_PS_INPUT_REGISTER_COUNT: DWORD = 32;
287 pub const D3D11_PS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
288 pub const D3D11_PS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
289 pub const D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT: FLOAT = 0.0;
290 pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS: DWORD = 1;
291 pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
292 pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT: DWORD = 1;
293 pub const D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS: DWORD = 1;
294 pub const D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
295 pub const D3D11_PS_OUTPUT_MASK_REGISTER_COUNT: DWORD = 1;
296 pub const D3D11_PS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
297 pub const D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
298 pub const D3D11_PS_OUTPUT_REGISTER_COUNT: DWORD = 8;
299 pub const D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT: FLOAT = 0.5;
300 pub const D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT: DWORD = 16;
301 pub const D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
302 pub const D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP: DWORD = 27;
303 pub const D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT: DWORD = 4096;
304 pub const D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
305 pub const D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: DWORD = 32;
306 pub const D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP: DWORD = 32;
307 pub const D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION: DWORD = 16384;
308 pub const D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT: DWORD = 1024;
309 pub const D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT: DWORD = 4096;
310 pub const D3D11_REQ_MAXANISOTROPY: DWORD = 16;
311 pub const D3D11_REQ_MIP_LEVELS: DWORD = 15;
312 pub const D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES: DWORD = 2048;
313 pub const D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
314 pub const D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH: DWORD = 16384;
315 pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM: DWORD = 128;
316 pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM: FLOAT = 0.25;
317 pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM: DWORD = 2048;
318 pub const D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP: DWORD = 20;
319 pub const D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
320 pub const D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION: DWORD = 2048;
321 pub const D3D11_REQ_TEXTURE1D_U_DIMENSION: DWORD = 16384;
322 pub const D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION: DWORD = 2048;
323 pub const D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION: DWORD = 16384;
324 pub const D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION: DWORD = 2048;
325 pub const D3D11_REQ_TEXTURECUBE_DIMENSION: DWORD = 16384;
326 pub const D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL: DWORD = 0;
327 pub const D3D11_SHADER_MAJOR_VERSION: DWORD = 5;
328 pub const D3D11_SHADER_MAX_INSTANCES: DWORD = 65535;
329 pub const D3D11_SHADER_MAX_INTERFACES: DWORD = 253;
330 pub const D3D11_SHADER_MAX_INTERFACE_CALL_SITES: DWORD = 4096;
331 pub const D3D11_SHADER_MAX_TYPES: DWORD = 65535;
332 pub const D3D11_SHADER_MINOR_VERSION: DWORD = 0;
333 pub const D3D11_SHIFT_INSTRUCTION_PAD_VALUE: DWORD = 0;
334 pub const D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT: DWORD = 5;
335 pub const D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT: DWORD = 8;
336 pub const D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES: DWORD = 2048;
337 pub const D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES: DWORD = 512;
338 pub const D3D11_SO_BUFFER_SLOT_COUNT: DWORD = 4;
339 pub const D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP: DWORD = 0xffffffff;
340 pub const D3D11_SO_NO_RASTERIZED_STREAM: DWORD = 0xffffffff;
341 pub const D3D11_SO_OUTPUT_COMPONENT_COUNT: DWORD = 128;
342 pub const D3D11_SO_STREAM_COUNT: DWORD = 4;
343 pub const D3D11_SPEC_DATE_DAY: DWORD = 16;
344 pub const D3D11_SPEC_DATE_MONTH: DWORD = 0o5;
345 pub const D3D11_SPEC_DATE_YEAR: DWORD = 2011;
346 pub const D3D11_SPEC_VERSION: FLOAT = 1.07;
347 pub const D3D11_SRGB_GAMMA: FLOAT = 2.2;
348 pub const D3D11_SRGB_TO_FLOAT_DENOMINATOR_1: FLOAT = 12.92;
349 pub const D3D11_SRGB_TO_FLOAT_DENOMINATOR_2: FLOAT = 1.055;
350 pub const D3D11_SRGB_TO_FLOAT_EXPONENT: FLOAT = 2.4;
351 pub const D3D11_SRGB_TO_FLOAT_OFFSET: FLOAT = 0.055;
352 pub const D3D11_SRGB_TO_FLOAT_THRESHOLD: FLOAT = 0.04045;
353 pub const D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP: FLOAT = 0.5;
354 pub const D3D11_STANDARD_COMPONENT_BIT_COUNT: DWORD = 32;
355 pub const D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED: DWORD = 64;
356 pub const D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE: DWORD = 4;
357 pub const D3D11_STANDARD_PIXEL_COMPONENT_COUNT: DWORD = 128;
358 pub const D3D11_STANDARD_PIXEL_ELEMENT_COUNT: DWORD = 32;
359 pub const D3D11_STANDARD_VECTOR_SIZE: DWORD = 4;
360 pub const D3D11_STANDARD_VERTEX_ELEMENT_COUNT: DWORD = 32;
361 pub const D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT: DWORD = 64;
362 pub const D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT: DWORD = 8;
363 pub const D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT: DWORD = 8;
364 pub const D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR: DWORD = 64;
365 pub const D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR: DWORD = 64;
366 pub const D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR: DWORD = 63;
367 pub const D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR: DWORD = 64;
368 pub const D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR: DWORD = 2;
369 pub const D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR: DWORD = 1;
370 pub const D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR: DWORD = 1;
371 pub const D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 16;
372 pub const D3D11_UNBOUND_MEMORY_ACCESS_RESULT: DWORD = 0;
373 pub const D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX: DWORD = 15;
374 pub const D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE: DWORD = 16;
375 pub const D3D11_VIEWPORT_BOUNDS_MAX: DWORD = 32767;
376 pub const D3D11_VIEWPORT_BOUNDS_MIN: c_long = -32768;
377 pub const D3D11_VS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
378 pub const D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
379 pub const D3D11_VS_INPUT_REGISTER_COUNT: DWORD = 32;
380 pub const D3D11_VS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
381 pub const D3D11_VS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
382 pub const D3D11_VS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
383 pub const D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
384 pub const D3D11_VS_OUTPUT_REGISTER_COUNT: DWORD = 32;
385 pub const D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT: DWORD = 10;
386 pub const D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: DWORD = 25;
387 pub const D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP: DWORD = 25;
388 pub const D3D11_1_UAV_SLOT_COUNT: DWORD = 64;
389 pub const D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES: DWORD = 65536;
390 ENUM!{enum D3D11_INPUT_CLASSIFICATION {
391 D3D11_INPUT_PER_VERTEX_DATA = 0,
392 D3D11_INPUT_PER_INSTANCE_DATA = 1,
393 }}
394 pub const D3D11_APPEND_ALIGNED_ELEMENT: DWORD = 0xffffffff;
395 STRUCT!{struct D3D11_INPUT_ELEMENT_DESC {
396 SemanticName: LPCSTR,
397 SemanticIndex: UINT,
398 Format: DXGI_FORMAT,
399 InputSlot: UINT,
400 AlignedByteOffset: UINT,
401 InputSlotClass: D3D11_INPUT_CLASSIFICATION,
402 InstanceDataStepRate: UINT,
403 }}
404 ENUM!{enum D3D11_FILL_MODE {
405 D3D11_FILL_WIREFRAME = 2,
406 D3D11_FILL_SOLID = 3,
407 }}
408 pub type D3D11_PRIMITIVE_TOPOLOGY = D3D_PRIMITIVE_TOPOLOGY;
409 pub type D3D11_PRIMITIVE = D3D_PRIMITIVE;
410 ENUM!{enum D3D11_CULL_MODE {
411 D3D11_CULL_NONE = 1,
412 D3D11_CULL_FRONT = 2,
413 D3D11_CULL_BACK = 3,
414 }}
415 STRUCT!{struct D3D11_SO_DECLARATION_ENTRY {
416 Stream: UINT,
417 SemanticName: LPCSTR,
418 SemanticIndex: UINT,
419 StartComponent: BYTE,
420 ComponentCount: BYTE,
421 OutputSlot: BYTE,
422 }}
423 STRUCT!{struct D3D11_VIEWPORT {
424 TopLeftX: FLOAT,
425 TopLeftY: FLOAT,
426 Width: FLOAT,
427 Height: FLOAT,
428 MinDepth: FLOAT,
429 MaxDepth: FLOAT,
430 }}
431 STRUCT!{struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS {
432 VertexCountPerInstance: UINT,
433 InstanceCount: UINT,
434 StartVertexLocation: UINT,
435 StartInstanceLocation: UINT,
436 }}
437 STRUCT!{struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS {
438 IndexCountPerInstance: UINT,
439 InstanceCount: UINT,
440 StartIndexLocation: UINT,
441 BaseVertexLocation: INT,
442 StartInstanceLocation: UINT,
443 }}
444 ENUM!{enum D3D11_RESOURCE_DIMENSION {
445 D3D11_RESOURCE_DIMENSION_UNKNOWN = 0,
446 D3D11_RESOURCE_DIMENSION_BUFFER = 1,
447 D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2,
448 D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3,
449 D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4,
450 }}
451 pub type D3D11_SRV_DIMENSION = D3D_SRV_DIMENSION;
452 ENUM!{enum D3D11_DSV_DIMENSION {
453 D3D11_DSV_DIMENSION_UNKNOWN = 0,
454 D3D11_DSV_DIMENSION_TEXTURE1D = 1,
455 D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2,
456 D3D11_DSV_DIMENSION_TEXTURE2D = 3,
457 D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4,
458 D3D11_DSV_DIMENSION_TEXTURE2DMS = 5,
459 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6,
460 }}
461 ENUM!{enum D3D11_RTV_DIMENSION {
462 D3D11_RTV_DIMENSION_UNKNOWN = 0,
463 D3D11_RTV_DIMENSION_BUFFER = 1,
464 D3D11_RTV_DIMENSION_TEXTURE1D = 2,
465 D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3,
466 D3D11_RTV_DIMENSION_TEXTURE2D = 4,
467 D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5,
468 D3D11_RTV_DIMENSION_TEXTURE2DMS = 6,
469 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
470 D3D11_RTV_DIMENSION_TEXTURE3D = 8,
471 }}
472 ENUM!{enum D3D11_UAV_DIMENSION {
473 D3D11_UAV_DIMENSION_UNKNOWN = 0,
474 D3D11_UAV_DIMENSION_BUFFER = 1,
475 D3D11_UAV_DIMENSION_TEXTURE1D = 2,
476 D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3,
477 D3D11_UAV_DIMENSION_TEXTURE2D = 4,
478 D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5,
479 D3D11_UAV_DIMENSION_TEXTURE3D = 8,
480 }}
481 ENUM!{enum D3D11_USAGE {
482 D3D11_USAGE_DEFAULT = 0,
483 D3D11_USAGE_IMMUTABLE = 1,
484 D3D11_USAGE_DYNAMIC = 2,
485 D3D11_USAGE_STAGING = 3,
486 }}
487 ENUM!{enum D3D11_BIND_FLAG {
488 D3D11_BIND_VERTEX_BUFFER = 0x1,
489 D3D11_BIND_INDEX_BUFFER = 0x2,
490 D3D11_BIND_CONSTANT_BUFFER = 0x4,
491 D3D11_BIND_SHADER_RESOURCE = 0x8,
492 D3D11_BIND_STREAM_OUTPUT = 0x10,
493 D3D11_BIND_RENDER_TARGET = 0x20,
494 D3D11_BIND_DEPTH_STENCIL = 0x40,
495 D3D11_BIND_UNORDERED_ACCESS = 0x80,
496 D3D11_BIND_DECODER = 0x200,
497 D3D11_BIND_VIDEO_ENCODER = 0x400,
498 }}
499 ENUM!{enum D3D11_CPU_ACCESS_FLAG {
500 D3D11_CPU_ACCESS_WRITE = 0x10000,
501 D3D11_CPU_ACCESS_READ = 0x20000,
502 }}
503 ENUM!{enum D3D11_RESOURCE_MISC_FLAG {
504 D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1,
505 D3D11_RESOURCE_MISC_SHARED = 0x2,
506 D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4,
507 D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10,
508 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20,
509 D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40,
510 D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80,
511 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100,
512 D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200,
513 D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800,
514 D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000,
515 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000,
516 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
517 D3D11_RESOURCE_MISC_GUARDED = 0x8000,
518 D3D11_RESOURCE_MISC_TILE_POOL = 0x20000,
519 D3D11_RESOURCE_MISC_TILED = 0x40000,
520 D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000,
521 }}
522 ENUM!{enum D3D11_MAP {
523 D3D11_MAP_READ = 1,
524 D3D11_MAP_WRITE = 2,
525 D3D11_MAP_READ_WRITE = 3,
526 D3D11_MAP_WRITE_DISCARD = 4,
527 D3D11_MAP_WRITE_NO_OVERWRITE = 5,
528 }}
529 ENUM!{enum D3D11_MAP_FLAG {
530 D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000,
531 }}
532 ENUM!{enum D3D11_RAISE_FLAG {
533 D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1,
534 }}
535 ENUM!{enum D3D11_CLEAR_FLAG {
536 D3D11_CLEAR_DEPTH = 0x1,
537 D3D11_CLEAR_STENCIL = 0x2,
538 }}
539 pub type D3D11_RECT = RECT;
540 STRUCT!{struct D3D11_BOX {
541 left: UINT,
542 top: UINT,
543 front: UINT,
544 right: UINT,
545 bottom: UINT,
546 back: UINT,
547 }}
548 RIDL!{#[uuid(0x1841e5c8, 0x16b0, 0x489b, 0xbc, 0xc8, 0x44, 0xcf, 0xb0, 0xd5, 0xde, 0xae)]
549 interface ID3D11DeviceChild(ID3D11DeviceChildVtbl): IUnknown(IUnknownVtbl) {
550 fn GetDevice(
551 ppDevice: *mut *mut ID3D11Device,
552 ) -> (),
553 fn GetPrivateData(
554 guid: REFGUID,
555 pDataSize: *mut UINT,
556 pData: *mut c_void,
557 ) -> HRESULT,
558 fn SetPrivateData(
559 guid: REFGUID,
560 DataSize: UINT,
561 pData: *const c_void,
562 ) -> HRESULT,
563 fn SetPrivateDataInterface(
564 guid: REFGUID,
565 pData: *const IUnknown,
566 ) -> HRESULT,
567 }}
568 ENUM!{enum D3D11_COMPARISON_FUNC {
569 D3D11_COMPARISON_NEVER = 1,
570 D3D11_COMPARISON_LESS = 2,
571 D3D11_COMPARISON_EQUAL = 3,
572 D3D11_COMPARISON_LESS_EQUAL = 4,
573 D3D11_COMPARISON_GREATER = 5,
574 D3D11_COMPARISON_NOT_EQUAL = 6,
575 D3D11_COMPARISON_GREATER_EQUAL = 7,
576 D3D11_COMPARISON_ALWAYS = 8,
577 }}
578 ENUM!{enum D3D11_DEPTH_WRITE_MASK {
579 D3D11_DEPTH_WRITE_MASK_ZERO = 0,
580 D3D11_DEPTH_WRITE_MASK_ALL = 1,
581 }}
582 ENUM!{enum D3D11_STENCIL_OP {
583 D3D11_STENCIL_OP_KEEP = 1,
584 D3D11_STENCIL_OP_ZERO = 2,
585 D3D11_STENCIL_OP_REPLACE = 3,
586 D3D11_STENCIL_OP_INCR_SAT = 4,
587 D3D11_STENCIL_OP_DECR_SAT = 5,
588 D3D11_STENCIL_OP_INVERT = 6,
589 D3D11_STENCIL_OP_INCR = 7,
590 D3D11_STENCIL_OP_DECR = 8,
591 }}
592 STRUCT!{struct D3D11_DEPTH_STENCILOP_DESC {
593 StencilFailOp: D3D11_STENCIL_OP,
594 StencilDepthFailOp: D3D11_STENCIL_OP,
595 StencilPassOp: D3D11_STENCIL_OP,
596 StencilFunc: D3D11_COMPARISON_FUNC,
597 }}
598 STRUCT!{struct D3D11_DEPTH_STENCIL_DESC {
599 DepthEnable: BOOL,
600 DepthWriteMask: D3D11_DEPTH_WRITE_MASK,
601 DepthFunc: D3D11_COMPARISON_FUNC,
602 StencilEnable: BOOL,
603 StencilReadMask: UINT8,
604 StencilWriteMask: UINT8,
605 FrontFace: D3D11_DEPTH_STENCILOP_DESC,
606 BackFace: D3D11_DEPTH_STENCILOP_DESC,
607 }}
608 RIDL!{#[uuid(0x03823efb, 0x8d8f, 0x4e1c, 0x9a, 0xa2, 0xf6, 0x4b, 0xb2, 0xcb, 0xfd, 0xf1)]
609 interface ID3D11DepthStencilState(ID3D11DepthStencilStateVtbl):
610 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
611 fn GetDesc(
612 pDesc: *mut D3D11_DEPTH_STENCIL_DESC,
613 ) -> (),
614 }}
615 ENUM!{enum D3D11_BLEND {
616 D3D11_BLEND_ZERO = 1,
617 D3D11_BLEND_ONE = 2,
618 D3D11_BLEND_SRC_COLOR = 3,
619 D3D11_BLEND_INV_SRC_COLOR = 4,
620 D3D11_BLEND_SRC_ALPHA = 5,
621 D3D11_BLEND_INV_SRC_ALPHA = 6,
622 D3D11_BLEND_DEST_ALPHA = 7,
623 D3D11_BLEND_INV_DEST_ALPHA = 8,
624 D3D11_BLEND_DEST_COLOR = 9,
625 D3D11_BLEND_INV_DEST_COLOR = 10,
626 D3D11_BLEND_SRC_ALPHA_SAT = 11,
627 D3D11_BLEND_BLEND_FACTOR = 14,
628 D3D11_BLEND_INV_BLEND_FACTOR = 15,
629 D3D11_BLEND_SRC1_COLOR = 16,
630 D3D11_BLEND_INV_SRC1_COLOR = 17,
631 D3D11_BLEND_SRC1_ALPHA = 18,
632 D3D11_BLEND_INV_SRC1_ALPHA = 19,
633 }}
634 ENUM!{enum D3D11_BLEND_OP {
635 D3D11_BLEND_OP_ADD = 1,
636 D3D11_BLEND_OP_SUBTRACT = 2,
637 D3D11_BLEND_OP_REV_SUBTRACT = 3,
638 D3D11_BLEND_OP_MIN = 4,
639 D3D11_BLEND_OP_MAX = 5,
640 }}
641 ENUM!{enum D3D11_COLOR_WRITE_ENABLE {
642 D3D11_COLOR_WRITE_ENABLE_RED = 1,
643 D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
644 D3D11_COLOR_WRITE_ENABLE_BLUE = 4,
645 D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
646 D3D11_COLOR_WRITE_ENABLE_ALL = D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN
647 | D3D11_COLOR_WRITE_ENABLE_BLUE | D3D11_COLOR_WRITE_ENABLE_ALPHA,
648 }}
649 STRUCT!{struct D3D11_RENDER_TARGET_BLEND_DESC {
650 BlendEnable: BOOL,
651 SrcBlend: D3D11_BLEND,
652 DestBlend: D3D11_BLEND,
653 BlendOp: D3D11_BLEND_OP,
654 SrcBlendAlpha: D3D11_BLEND,
655 DestBlendAlpha: D3D11_BLEND,
656 BlendOpAlpha: D3D11_BLEND_OP,
657 RenderTargetWriteMask: UINT8,
658 }}
659 STRUCT!{struct D3D11_BLEND_DESC {
660 AlphaToCoverageEnable: BOOL,
661 IndependentBlendEnable: BOOL,
662 RenderTarget: [D3D11_RENDER_TARGET_BLEND_DESC; 8],
663 }}
664 RIDL!{#[uuid(0x75b68faa, 0x347d, 0x4159, 0x8f, 0x45, 0xa0, 0x64, 0x0f, 0x01, 0xcd, 0x9a)]
665 interface ID3D11BlendState(ID3D11BlendStateVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
666 fn GetDesc(
667 pDesc: *mut D3D11_BLEND_DESC,
668 ) -> (),
669 }}
670 STRUCT!{struct D3D11_RASTERIZER_DESC {
671 FillMode: D3D11_FILL_MODE,
672 CullMode: D3D11_CULL_MODE,
673 FrontCounterClockwise: BOOL,
674 DepthBias: INT,
675 DepthBiasClamp: FLOAT,
676 SlopeScaledDepthBias: FLOAT,
677 DepthClipEnable: BOOL,
678 ScissorEnable: BOOL,
679 MultisampleEnable: BOOL,
680 AntialiasedLineEnable: BOOL,
681 }}
682 RIDL!{#[uuid(0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5, 0x06, 0xfc, 0x04, 0x20, 0x0b, 0x6e, 0xe7)]
683 interface ID3D11RasterizerState(ID3D11RasterizerStateVtbl):
684 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
685 fn GetDesc(
686 pDesc: *mut D3D11_RASTERIZER_DESC,
687 ) -> (),
688 }}
689 STRUCT!{struct D3D11_SUBRESOURCE_DATA {
690 pSysMem: *const c_void,
691 SysMemPitch: UINT,
692 SysMemSlicePitch: UINT,
693 }}
694 STRUCT!{struct D3D11_MAPPED_SUBRESOURCE {
695 pData: *mut c_void,
696 RowPitch: UINT,
697 DepthPitch: UINT,
698 }}
699 RIDL!{#[uuid(0xdc8e63f3, 0xd12b, 0x4952, 0xb4, 0x7b, 0x5e, 0x45, 0x02, 0x6a, 0x86, 0x2d)]
700 interface ID3D11Resource(ID3D11ResourceVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
701 fn GetType(
702 pResourceDimension: *mut D3D11_RESOURCE_DIMENSION,
703 ) -> (),
704 fn SetEvictionPriority(
705 EvictionPriority: UINT,
706 ) -> (),
707 fn GetEvictionPriority() -> UINT,
708 }}
709 STRUCT!{struct D3D11_BUFFER_DESC {
710 ByteWidth: UINT,
711 Usage: D3D11_USAGE,
712 BindFlags: UINT,
713 CPUAccessFlags: UINT,
714 MiscFlags: UINT,
715 StructureByteStride: UINT,
716 }}
717 RIDL!{#[uuid(0x48570b85, 0xd1ee, 0x4fcd, 0xa2, 0x50, 0xeb, 0x35, 0x07, 0x22, 0xb0, 0x37)]
718 interface ID3D11Buffer(ID3D11BufferVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
719 fn GetDesc(
720 pDesc: *mut D3D11_BUFFER_DESC,
721 ) -> (),
722 }}
723 STRUCT!{struct D3D11_TEXTURE1D_DESC {
724 Width: UINT,
725 MipLevels: UINT,
726 ArraySize: UINT,
727 Format: DXGI_FORMAT,
728 Usage: D3D11_USAGE,
729 BindFlags: UINT,
730 CPUAccessFlags: UINT,
731 MiscFlags: UINT,
732 }}
733 RIDL!{#[uuid(0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4, 0xc8, 0x43, 0x9a, 0xf2, 0xef, 0x56, 0x4c)]
734 interface ID3D11Texture1D(ID3D11Texture1DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
735 fn GetDesc(
736 pDesc: *mut D3D11_TEXTURE1D_DESC,
737 ) -> (),
738 }}
739 STRUCT!{struct D3D11_TEXTURE2D_DESC {
740 Width: UINT,
741 Height: UINT,
742 MipLevels: UINT,
743 ArraySize: UINT,
744 Format: DXGI_FORMAT,
745 SampleDesc: DXGI_SAMPLE_DESC,
746 Usage: D3D11_USAGE,
747 BindFlags: UINT,
748 CPUAccessFlags: UINT,
749 MiscFlags: UINT,
750 }}
751 RIDL!{#[uuid(0x6f15aaf2, 0xd208, 0x4e89, 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c)]
752 interface ID3D11Texture2D(ID3D11Texture2DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
753 fn GetDesc(
754 pDesc: *mut D3D11_TEXTURE2D_DESC,
755 ) -> (),
756 }}
757 STRUCT!{struct D3D11_TEXTURE3D_DESC {
758 Width: UINT,
759 Height: UINT,
760 Depth: UINT,
761 MipLevels: UINT,
762 Format: DXGI_FORMAT,
763 Usage: D3D11_USAGE,
764 BindFlags: UINT,
765 CPUAccessFlags: UINT,
766 MiscFlags: UINT,
767 }}
768 RIDL!{#[uuid(0x037e866e, 0xf56d, 0x4357, 0xa8, 0xaf, 0x9d, 0xab, 0xbe, 0x6e, 0x25, 0x0e)]
769 interface ID3D11Texture3D(ID3D11Texture3DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
770 fn GetDesc(
771 pDesc: *mut D3D11_TEXTURE3D_DESC,
772 ) -> (),
773 }}
774 ENUM!{enum D3D11_TEXTURECUBE_FACE {
775 D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0,
776 D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1,
777 D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2,
778 D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3,
779 D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4,
780 D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5,
781 }}
782 RIDL!{#[uuid(0x839d1216, 0xbb2e, 0x412b, 0xb7, 0xf4, 0xa9, 0xdb, 0xeb, 0xe0, 0x8e, 0xd1)]
783 interface ID3D11View(ID3D11ViewVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
784 fn GetResource(
785 ppResource: *mut *mut ID3D11Resource,
786 ) -> (),
787 }}
788 UNION!{union D3D11_BUFFER_SRV_u1 {
789 [u32; 1],
790 FirstElement FirstElement_mut: UINT,
791 ElementOffset ElementOffset_mut: UINT,
792 }}
793 UNION!{union D3D11_BUFFER_SRV_u2 {
794 [u32; 1],
795 NumElements NumElements_mut: UINT,
796 ElementWidth ElementWidth_mut: UINT,
797 }}
798 STRUCT!{struct D3D11_BUFFER_SRV {
799 u1: D3D11_BUFFER_SRV_u1,
800 u2: D3D11_BUFFER_SRV_u2,
801 }}
802 ENUM!{enum D3D11_BUFFEREX_SRV_FLAG {
803 D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1,
804 }}
805 STRUCT!{struct D3D11_BUFFEREX_SRV {
806 FirstElement: UINT,
807 NumElements: UINT,
808 Flags: UINT,
809 }}
810 STRUCT!{struct D3D11_TEX1D_SRV {
811 MostDetailedMip: UINT,
812 MipLevels: UINT,
813 }}
814 STRUCT!{struct D3D11_TEX1D_ARRAY_SRV {
815 MostDetailedMip: UINT,
816 MipLevels: UINT,
817 FirstArraySlice: UINT,
818 ArraySize: UINT,
819 }}
820 STRUCT!{struct D3D11_TEX2D_SRV {
821 MostDetailedMip: UINT,
822 MipLevels: UINT,
823 }}
824 STRUCT!{struct D3D11_TEX2D_ARRAY_SRV {
825 MostDetailedMip: UINT,
826 MipLevels: UINT,
827 FirstArraySlice: UINT,
828 ArraySize: UINT,
829 }}
830 STRUCT!{struct D3D11_TEX3D_SRV {
831 MostDetailedMip: UINT,
832 MipLevels: UINT,
833 }}
834 STRUCT!{struct D3D11_TEXCUBE_SRV {
835 MostDetailedMip: UINT,
836 MipLevels: UINT,
837 }}
838 STRUCT!{struct D3D11_TEXCUBE_ARRAY_SRV {
839 MostDetailedMip: UINT,
840 MipLevels: UINT,
841 First2DArrayFace: UINT,
842 NumCubes: UINT,
843 }}
844 STRUCT!{struct D3D11_TEX2DMS_SRV {
845 UnusedField_NothingToDefine: UINT,
846 }}
847 STRUCT!{struct D3D11_TEX2DMS_ARRAY_SRV {
848 FirstArraySlice: UINT,
849 ArraySize: UINT,
850 }}
851 UNION!{union D3D11_SHADER_RESOURCE_VIEW_DESC_u {
852 [u32; 4],
853 Buffer Buffer_mut: D3D11_BUFFER_SRV,
854 Texture1D Texture1D_mut: D3D11_TEX1D_SRV,
855 Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_SRV,
856 Texture2D Texture2D_mut: D3D11_TEX2D_SRV,
857 Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_SRV,
858 Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_SRV,
859 Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_SRV,
860 Texture3D Texture3D_mut: D3D11_TEX3D_SRV,
861 TextureCube TextureCube_mut: D3D11_TEXCUBE_SRV,
862 TextureCubeArray TextureCubeArray_mut: D3D11_TEXCUBE_ARRAY_SRV,
863 BufferEx BufferEx_mut: D3D11_BUFFEREX_SRV,
864 }}
865 STRUCT!{struct D3D11_SHADER_RESOURCE_VIEW_DESC {
866 Format: DXGI_FORMAT,
867 ViewDimension: D3D11_SRV_DIMENSION,
868 u: D3D11_SHADER_RESOURCE_VIEW_DESC_u,
869 }}
870 RIDL!{#[uuid(0xb0e06fe0, 0x8192, 0x4e1a, 0xb1, 0xca, 0x36, 0xd7, 0x41, 0x47, 0x10, 0xb2)]
871 interface ID3D11ShaderResourceView(ID3D11ShaderResourceViewVtbl): ID3D11View(ID3D11ViewVtbl) {
872 fn GetDesc(
873 pDesc: *mut D3D11_SHADER_RESOURCE_VIEW_DESC,
874 ) -> (),
875 }}
876 UNION!{union D3D11_BUFFER_RTV_u1 {
877 [u32; 1],
878 FirstElement FirstElement_mut: UINT,
879 ElementOffset ElementOffset_mut: UINT,
880 }}
881 UNION!{union D3D11_BUFFER_RTV_u2 {
882 [u32; 1],
883 NumElements NumElements_mut: UINT,
884 ElementWidth ElementWidth_mut: UINT,
885 }}
886 STRUCT!{struct D3D11_BUFFER_RTV {
887 u1: D3D11_BUFFER_RTV_u1,
888 u2: D3D11_BUFFER_RTV_u2,
889 }}
890 STRUCT!{struct D3D11_TEX1D_RTV {
891 MipSlice: UINT,
892 }}
893 STRUCT!{struct D3D11_TEX1D_ARRAY_RTV {
894 MipSlice: UINT,
895 FirstArraySlice: UINT,
896 ArraySize: UINT,
897 }}
898 STRUCT!{struct D3D11_TEX2D_RTV {
899 MipSlice: UINT,
900 }}
901 STRUCT!{struct D3D11_TEX2DMS_RTV {
902 UnusedField_NothingToDefine: UINT,
903 }}
904 STRUCT!{struct D3D11_TEX2D_ARRAY_RTV {
905 MipSlice: UINT,
906 FirstArraySlice: UINT,
907 ArraySize: UINT,
908 }}
909 STRUCT!{struct D3D11_TEX2DMS_ARRAY_RTV {
910 FirstArraySlice: UINT,
911 ArraySize: UINT,
912 }}
913 STRUCT!{struct D3D11_TEX3D_RTV {
914 MipSlice: UINT,
915 FirstWSlice: UINT,
916 WSize: UINT,
917 }}
918 UNION!{union D3D11_RENDER_TARGET_VIEW_DESC_u {
919 [u32; 3],
920 Buffer Buffer_mut: D3D11_BUFFER_RTV,
921 Texture1D Texture1D_mut: D3D11_TEX1D_RTV,
922 Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_RTV,
923 Texture2D Texture2D_mut: D3D11_TEX2D_RTV,
924 Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_RTV,
925 Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_RTV,
926 Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_RTV,
927 Texture3D Texture3D_mut: D3D11_TEX3D_RTV,
928 }}
929 STRUCT!{struct D3D11_RENDER_TARGET_VIEW_DESC {
930 Format: DXGI_FORMAT,
931 ViewDimension: D3D11_RTV_DIMENSION,
932 u: D3D11_RENDER_TARGET_VIEW_DESC_u,
933 }}
934 RIDL!{#[uuid(0xdfdba067, 0x0b8d, 0x4865, 0x87, 0x5b, 0xd7, 0xb4, 0x51, 0x6c, 0xc1, 0x64)]
935 interface ID3D11RenderTargetView(ID3D11RenderTargetViewVtbl): ID3D11View(ID3D11ViewVtbl) {
936 fn GetDesc(
937 pDesc: *mut D3D11_RENDER_TARGET_VIEW_DESC,
938 ) -> (),
939 }}
940 STRUCT!{struct D3D11_TEX1D_DSV {
941 MipSlice: UINT,
942 }}
943 STRUCT!{struct D3D11_TEX1D_ARRAY_DSV {
944 MipSlice: UINT,
945 FirstArraySlice: UINT,
946 ArraySize: UINT,
947 }}
948 STRUCT!{struct D3D11_TEX2D_DSV {
949 MipSlice: UINT,
950 }}
951 STRUCT!{struct D3D11_TEX2D_ARRAY_DSV {
952 MipSlice: UINT,
953 FirstArraySlice: UINT,
954 ArraySize: UINT,
955 }}
956 STRUCT!{struct D3D11_TEX2DMS_DSV {
957 UnusedField_NothingToDefine: UINT,
958 }}
959 STRUCT!{struct D3D11_TEX2DMS_ARRAY_DSV {
960 FirstArraySlice: UINT,
961 ArraySize: UINT,
962 }}
963 ENUM!{enum D3D11_DSV_FLAG {
964 D3D11_DSV_READ_ONLY_DEPTH = 0x1,
965 D3D11_DSV_READ_ONLY_STENCIL = 0x2,
966 }}
967 UNION!{union D3D11_DEPTH_STENCIL_VIEW_DESC_u {
968 [u32; 3],
969 Texture1D Texture1D_mut: D3D11_TEX1D_DSV,
970 Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_DSV,
971 Texture2D Texture2D_mut: D3D11_TEX2D_DSV,
972 Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_DSV,
973 Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_DSV,
974 Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_DSV,
975 }}
976 STRUCT!{struct D3D11_DEPTH_STENCIL_VIEW_DESC {
977 Format: DXGI_FORMAT,
978 ViewDimension: D3D11_DSV_DIMENSION,
979 Flags: UINT,
980 u: D3D11_DEPTH_STENCIL_VIEW_DESC_u,
981 }}
982 RIDL!{#[uuid(0x9fdac92a, 0x1876, 0x48c3, 0xaf, 0xad, 0x25, 0xb9, 0x4f, 0x84, 0xa9, 0xb6)]
983 interface ID3D11DepthStencilView(ID3D11DepthStencilViewVtbl): ID3D11View(ID3D11ViewVtbl) {
984 fn GetDesc(
985 pDesc: *mut D3D11_DEPTH_STENCIL_VIEW_DESC,
986 ) -> (),
987 }}
988 ENUM!{enum D3D11_BUFFER_UAV_FLAG {
989 D3D11_BUFFER_UAV_FLAG_RAW = 0x1,
990 D3D11_BUFFER_UAV_FLAG_APPEND = 0x2,
991 D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4,
992 }}
993 STRUCT!{struct D3D11_BUFFER_UAV {
994 FirstElement: UINT,
995 NumElements: UINT,
996 Flags: UINT,
997 }}
998 STRUCT!{struct D3D11_TEX1D_UAV {
999 MipSlice: UINT,
1000 }}
1001 STRUCT!{struct D3D11_TEX1D_ARRAY_UAV {
1002 MipSlice: UINT,
1003 FirstArraySlice: UINT,
1004 ArraySize: UINT,
1005 }}
1006 STRUCT!{struct D3D11_TEX2D_UAV {
1007 MipSlice: UINT,
1008 }}
1009 STRUCT!{struct D3D11_TEX2D_ARRAY_UAV {
1010 MipSlice: UINT,
1011 FirstArraySlice: UINT,
1012 ArraySize: UINT,
1013 }}
1014 STRUCT!{struct D3D11_TEX3D_UAV {
1015 MipSlice: UINT,
1016 FirstWSlice: UINT,
1017 WSize: UINT,
1018 }}
1019 UNION!{union D3D11_UNORDERED_ACCESS_VIEW_DESC_u {
1020 [u32; 3],
1021 Buffer Buffer_mut: D3D11_BUFFER_UAV,
1022 Texture1D Texture1D_mut: D3D11_TEX1D_UAV,
1023 Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_UAV,
1024 Texture2D Texture2D_mut: D3D11_TEX2D_UAV,
1025 Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_UAV,
1026 Texture3D Texture3D_mut: D3D11_TEX3D_UAV,
1027 }}
1028 STRUCT!{struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
1029 Format: DXGI_FORMAT,
1030 ViewDimension: D3D11_UAV_DIMENSION,
1031 u: D3D11_UNORDERED_ACCESS_VIEW_DESC_u,
1032 }}
1033 RIDL!{#[uuid(0x28acf509, 0x7f5c, 0x48f6, 0x86, 0x11, 0xf3, 0x16, 0x01, 0x0a, 0x63, 0x80)]
1034 interface ID3D11UnorderedAccessView(ID3D11UnorderedAccessViewVtbl): ID3D11View(ID3D11ViewVtbl) {
1035 fn GetDesc(
1036 pDesc: *mut D3D11_UNORDERED_ACCESS_VIEW_DESC,
1037 ) -> (),
1038 }}
1039 RIDL!{#[uuid(0x3b301d64, 0xd678, 0x4289, 0x88, 0x97, 0x22, 0xf8, 0x92, 0x8b, 0x72, 0xf3)]
1040 interface ID3D11VertexShader(ID3D11VertexShaderVtbl):
1041 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1042 RIDL!{#[uuid(0x8e5c6061, 0x628a, 0x4c8e, 0x82, 0x64, 0xbb, 0xe4, 0x5c, 0xb3, 0xd5, 0xdd)]
1043 interface ID3D11HullShader(ID3D11HullShaderVtbl):
1044 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1045 RIDL!{#[uuid(0xf582c508, 0x0f36, 0x490c, 0x99, 0x77, 0x31, 0xee, 0xce, 0x26, 0x8c, 0xfa)]
1046 interface ID3D11DomainShader(ID3D11DomainShaderVtbl):
1047 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1048 RIDL!{#[uuid(0x38325b96, 0xeffb, 0x4022, 0xba, 0x02, 0x2e, 0x79, 0x5b, 0x70, 0x27, 0x5c)]
1049 interface ID3D11GeometryShader(ID3D11GeometryShaderVtbl):
1050 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1051 RIDL!{#[uuid(0xea82e40d, 0x51dc, 0x4f33, 0x93, 0xd4, 0xdb, 0x7c, 0x91, 0x25, 0xae, 0x8c)]
1052 interface ID3D11PixelShader(ID3D11PixelShaderVtbl):
1053 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1054 RIDL!{#[uuid(0x4f5b196e, 0xc2bd, 0x495e, 0xbd, 0x01, 0x1f, 0xde, 0xd3, 0x8e, 0x49, 0x69)]
1055 interface ID3D11ComputeShader(ID3D11ComputeShaderVtbl):
1056 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1057 RIDL!{#[uuid(0xe4819ddc, 0x4cf0, 0x4025, 0xbd, 0x26, 0x5d, 0xe8, 0x2a, 0x3e, 0x07, 0xb7)]
1058 interface ID3D11InputLayout(ID3D11InputLayoutVtbl):
1059 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
1060 ENUM!{enum D3D11_FILTER {
1061 D3D11_FILTER_MIN_MAG_MIP_POINT = 0,
1062 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
1063 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
1064 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
1065 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
1066 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
1067 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
1068 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
1069 D3D11_FILTER_ANISOTROPIC = 0x55,
1070 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
1071 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
1072 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
1073 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
1074 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
1075 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
1076 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
1077 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
1078 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
1079 D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
1080 D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
1081 D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
1082 D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
1083 D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
1084 D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
1085 D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
1086 D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
1087 D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
1088 D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
1089 D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
1090 D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
1091 D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
1092 D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
1093 D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
1094 D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
1095 D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
1096 D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5,
1097 }}
1098 ENUM!{enum D3D11_FILTER_TYPE {
1099 D3D11_FILTER_TYPE_POINT = 0,
1100 D3D11_FILTER_TYPE_LINEAR = 1,
1101 }}
1102 ENUM!{enum D3D11_FILTER_REDUCTION_TYPE {
1103 D3D11_FILTER_REDUCTION_TYPE_STANDARD = 0,
1104 D3D11_FILTER_REDUCTION_TYPE_COMPARISON = 1,
1105 D3D11_FILTER_REDUCTION_TYPE_MINIMUM = 2,
1106 D3D11_FILTER_REDUCTION_TYPE_MAXIMUM = 3,
1107 }}
1108 pub const D3D11_FILTER_REDUCTION_TYPE_MASK: DWORD = 0x3;
1109 pub const D3D11_FILTER_REDUCTION_TYPE_SHIFT: DWORD = 7;
1110 pub const D3D11_FILTER_TYPE_MASK: DWORD = 0x3;
1111 pub const D3D11_MIN_FILTER_SHIFT: DWORD = 4;
1112 pub const D3D11_MAG_FILTER_SHIFT: DWORD = 2;
1113 pub const D3D11_MIP_FILTER_SHIFT: DWORD = 0;
1114 pub const D3D11_COMPARISON_FILTERING_BIT: DWORD = 0x80;
1115 pub const D3D11_ANISOTROPIC_FILTERING_BIT: DWORD = 0x40;
1116 ENUM!{enum D3D11_TEXTURE_ADDRESS_MODE {
1117 D3D11_TEXTURE_ADDRESS_WRAP = 1,
1118 D3D11_TEXTURE_ADDRESS_MIRROR = 2,
1119 D3D11_TEXTURE_ADDRESS_CLAMP = 3,
1120 D3D11_TEXTURE_ADDRESS_BORDER = 4,
1121 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5,
1122 }}
1123 STRUCT!{struct D3D11_SAMPLER_DESC {
1124 Filter: D3D11_FILTER,
1125 AddressU: D3D11_TEXTURE_ADDRESS_MODE,
1126 AddressV: D3D11_TEXTURE_ADDRESS_MODE,
1127 AddressW: D3D11_TEXTURE_ADDRESS_MODE,
1128 MipLODBias: FLOAT,
1129 MaxAnisotropy: UINT,
1130 ComparisonFunc: D3D11_COMPARISON_FUNC,
1131 BorderColor: [FLOAT; 4],
1132 MinLOD: FLOAT,
1133 MaxLOD: FLOAT,
1134 }}
1135 RIDL!{#[uuid(0xda6fea51, 0x564c, 0x4487, 0x98, 0x10, 0xf0, 0xd0, 0xf9, 0xb4, 0xe3, 0xa5)]
1136 interface ID3D11SamplerState(ID3D11SamplerStateVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1137 fn GetDesc(
1138 pDesc: *mut D3D11_SAMPLER_DESC,
1139 ) -> (),
1140 }}
1141 ENUM!{enum D3D11_FORMAT_SUPPORT {
1142 D3D11_FORMAT_SUPPORT_BUFFER = 0x1,
1143 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
1144 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
1145 D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8,
1146 D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10,
1147 D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20,
1148 D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40,
1149 D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
1150 D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
1151 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
1152 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
1153 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
1154 D3D11_FORMAT_SUPPORT_MIP = 0x1000,
1155 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
1156 D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
1157 D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000,
1158 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
1159 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
1160 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
1161 D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000,
1162 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
1163 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
1164 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
1165 D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
1166 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
1167 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
1168 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000,
1169 D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000,
1170 D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
1171 D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000,
1172 D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000,
1173 }}
1174 ENUM!{enum D3D11_FORMAT_SUPPORT2 {
1175 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
1176 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
1177 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
1178 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
1179 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
1180 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
1181 D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
1182 D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
1183 D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
1184 D3D11_FORMAT_SUPPORT2_TILED = 0x200,
1185 D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400,
1186 D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
1187 }}
1188 RIDL!{#[uuid(0x4b35d0cd, 0x1e15, 0x4258, 0x9c, 0x98, 0x1b, 0x13, 0x33, 0xf6, 0xdd, 0x3b)]
1189 interface ID3D11Asynchronous(ID3D11AsynchronousVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1190 fn GetDataSize() -> UINT,
1191 }}
1192 ENUM!{enum D3D11_ASYNC_GETDATA_FLAG {
1193 D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1,
1194 }}
1195 ENUM!{enum D3D11_QUERY {
1196 D3D11_QUERY_EVENT = 0,
1197 D3D11_QUERY_OCCLUSION = D3D11_QUERY_EVENT + 1u32,
1198 D3D11_QUERY_TIMESTAMP = D3D11_QUERY_OCCLUSION + 1u32,
1199 D3D11_QUERY_TIMESTAMP_DISJOINT = D3D11_QUERY_TIMESTAMP + 1u32,
1200 D3D11_QUERY_PIPELINE_STATISTICS = D3D11_QUERY_TIMESTAMP_DISJOINT + 1u32,
1201 D3D11_QUERY_OCCLUSION_PREDICATE = D3D11_QUERY_PIPELINE_STATISTICS + 1u32,
1202 D3D11_QUERY_SO_STATISTICS = D3D11_QUERY_OCCLUSION_PREDICATE + 1u32,
1203 D3D11_QUERY_SO_OVERFLOW_PREDICATE = D3D11_QUERY_SO_STATISTICS + 1u32,
1204 D3D11_QUERY_SO_STATISTICS_STREAM0 = D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1u32,
1205 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = D3D11_QUERY_SO_STATISTICS_STREAM0 + 1u32,
1206 D3D11_QUERY_SO_STATISTICS_STREAM1 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1u32,
1207 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = D3D11_QUERY_SO_STATISTICS_STREAM1 + 1u32,
1208 D3D11_QUERY_SO_STATISTICS_STREAM2 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1u32,
1209 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = D3D11_QUERY_SO_STATISTICS_STREAM2 + 1u32,
1210 D3D11_QUERY_SO_STATISTICS_STREAM3 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1u32,
1211 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = D3D11_QUERY_SO_STATISTICS_STREAM3 + 1u32,
1212 }}
1213 ENUM!{enum D3D11_QUERY_MISC_FLAG {
1214 D3D11_QUERY_MISC_PREDICATEHINT = 0x1,
1215 }}
1216 STRUCT!{struct D3D11_QUERY_DESC {
1217 Query: D3D11_QUERY,
1218 MiscFlags: UINT,
1219 }}
1220 RIDL!{#[uuid(0xd6c00747, 0x87b7, 0x425e, 0xb8, 0x4d, 0x44, 0xd1, 0x08, 0x56, 0x0a, 0xfd)]
1221 interface ID3D11Query(ID3D11QueryVtbl): ID3D11Asynchronous(ID3D11AsynchronousVtbl) {
1222 fn GetDesc(
1223 pDesc: *mut D3D11_QUERY_DESC,
1224 ) -> (),
1225 }}
1226 RIDL!{#[uuid(0x9eb576dd, 0x9f77, 0x4d86, 0x81, 0xaa, 0x8b, 0xab, 0x5f, 0xe4, 0x90, 0xe2)]
1227 interface ID3D11Predicate(ID3D11PredicateVtbl): ID3D11Query(ID3D11QueryVtbl) {}}
1228 STRUCT!{struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
1229 Frequency: UINT64,
1230 Disjoint: BOOL,
1231 }}
1232 STRUCT!{struct D3D11_QUERY_DATA_PIPELINE_STATISTICS {
1233 IAVertices: UINT64,
1234 IAPrimitives: UINT64,
1235 VSInvocations: UINT64,
1236 GSInvocations: UINT64,
1237 GSPrimitives: UINT64,
1238 CInvocations: UINT64,
1239 CPrimitives: UINT64,
1240 PSInvocations: UINT64,
1241 HSInvocations: UINT64,
1242 DSInvocations: UINT64,
1243 CSInvocations: UINT64,
1244 }}
1245 STRUCT!{struct D3D11_QUERY_DATA_SO_STATISTICS {
1246 NumPrimitivesWritten: UINT64,
1247 PrimitivesStorageNeeded: UINT64,
1248 }}
1249 ENUM!{enum D3D11_COUNTER {
1250 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000,
1251 }}
1252 ENUM!{enum D3D11_COUNTER_TYPE {
1253 D3D11_COUNTER_TYPE_FLOAT32 = 0,
1254 D3D11_COUNTER_TYPE_UINT16 = D3D11_COUNTER_TYPE_FLOAT32 + 1u32,
1255 D3D11_COUNTER_TYPE_UINT32 = D3D11_COUNTER_TYPE_UINT16 + 1u32,
1256 D3D11_COUNTER_TYPE_UINT64 = D3D11_COUNTER_TYPE_UINT32 + 1u32,
1257 }}
1258 STRUCT!{struct D3D11_COUNTER_DESC {
1259 Counter: D3D11_COUNTER,
1260 MiscFlags: UINT,
1261 }}
1262 STRUCT!{struct D3D11_COUNTER_INFO {
1263 LastDeviceDependentCounter: D3D11_COUNTER,
1264 NumSimultaneousCounters: UINT,
1265 NumDetectableParallelUnits: UINT8,
1266 }}
1267 RIDL!{#[uuid(0x6e8c49fb, 0xa371, 0x4770, 0xb4, 0x40, 0x29, 0x08, 0x60, 0x22, 0xb7, 0x41)]
1268 interface ID3D11Counter(ID3D11CounterVtbl): ID3D11Asynchronous(ID3D11AsynchronousVtbl) {
1269 fn GetDesc(
1270 pDesc: *mut D3D11_COUNTER_DESC,
1271 ) -> (),
1272 }}
1273 ENUM!{enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS {
1274 D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
1275 D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe,
1276 }}
1277 ENUM!{enum D3D11_DEVICE_CONTEXT_TYPE {
1278 D3D11_DEVICE_CONTEXT_IMMEDIATE = 0,
1279 D3D11_DEVICE_CONTEXT_DEFERRED = D3D11_DEVICE_CONTEXT_IMMEDIATE + 1u32,
1280 }}
1281 STRUCT!{struct D3D11_CLASS_INSTANCE_DESC {
1282 InstanceId: UINT,
1283 InstanceIndex: UINT,
1284 TypeId: UINT,
1285 ConstantBuffer: UINT,
1286 BaseConstantBufferOffset: UINT,
1287 BaseTexture: UINT,
1288 BaseSampler: UINT,
1289 Created: BOOL,
1290 }}
1291 RIDL!{#[uuid(0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94, 0x36, 0x86, 0x62, 0xa6, 0x57, 0x97, 0xcb)]
1292 interface ID3D11ClassInstance(ID3D11ClassInstanceVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1293 fn GetClassLinkage(
1294 ppLinkage: *mut *mut ID3D11ClassLinkage,
1295 ) -> (),
1296 fn GetDesc(
1297 pDesc: *mut D3D11_CLASS_INSTANCE_DESC,
1298 ) -> (),
1299 fn GetInstanceName(
1300 pInstanceName: LPSTR,
1301 pBufferLength: *mut SIZE_T,
1302 ) -> (),
1303 fn GetTypeName(
1304 pTypeName: LPSTR,
1305 pBufferLength: *mut SIZE_T,
1306 ) -> (),
1307 }}
1308 RIDL!{#[uuid(0xddf57cba, 0x9543, 0x46e4, 0xa1, 0x2b, 0xf2, 0x07, 0xa0, 0xfe, 0x7f, 0xed)]
1309 interface ID3D11ClassLinkage(ID3D11ClassLinkageVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1310 fn GetClassInstance(
1311 GetClassInstance: LPCSTR,
1312 InstanceIndex: UINT,
1313 ppInstance: *mut *mut ID3D11ClassInstance,
1314 ) -> HRESULT,
1315 fn CreateClassInstance(
1316 pClassTypeName: LPCSTR,
1317 ConstantBufferOffset: UINT,
1318 ConstantVectorOffset: UINT,
1319 TextureOffset: UINT,
1320 SamplerOffset: UINT,
1321 ppInstance: *mut *mut ID3D11ClassInstance,
1322 ) -> HRESULT,
1323 }}
1324 RIDL!{#[uuid(0xa24bc4d1, 0x769e, 0x43f7, 0x80, 0x13, 0x98, 0xff, 0x56, 0x6c, 0x18, 0xe2)]
1325 interface ID3D11CommandList(ID3D11CommandListVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1326 fn GetContextFlags() -> UINT,
1327 }}
1328 ENUM!{enum D3D11_FEATURE {
1329 D3D11_FEATURE_THREADING = 0,
1330 D3D11_FEATURE_DOUBLES = D3D11_FEATURE_THREADING + 1u32,
1331 D3D11_FEATURE_FORMAT_SUPPORT = D3D11_FEATURE_DOUBLES + 1u32,
1332 D3D11_FEATURE_FORMAT_SUPPORT2 = D3D11_FEATURE_FORMAT_SUPPORT + 1u32,
1333 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = D3D11_FEATURE_FORMAT_SUPPORT2 + 1u32,
1334 D3D11_FEATURE_D3D11_OPTIONS = D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS + 1u32,
1335 D3D11_FEATURE_ARCHITECTURE_INFO = D3D11_FEATURE_D3D11_OPTIONS + 1u32,
1336 D3D11_FEATURE_D3D9_OPTIONS = D3D11_FEATURE_ARCHITECTURE_INFO + 1u32,
1337 D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = D3D11_FEATURE_D3D9_OPTIONS + 1u32,
1338 D3D11_FEATURE_D3D9_SHADOW_SUPPORT = D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT + 1u32,
1339 D3D11_FEATURE_D3D11_OPTIONS1 = D3D11_FEATURE_D3D9_SHADOW_SUPPORT + 1u32,
1340 D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = D3D11_FEATURE_D3D11_OPTIONS1 + 1u32,
1341 D3D11_FEATURE_MARKER_SUPPORT = D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT + 1u32,
1342 D3D11_FEATURE_D3D9_OPTIONS1 = D3D11_FEATURE_MARKER_SUPPORT + 1u32,
1343 D3D11_FEATURE_D3D11_OPTIONS2 = D3D11_FEATURE_D3D9_OPTIONS1 + 1u32,
1344 D3D11_FEATURE_D3D11_OPTIONS3 = D3D11_FEATURE_D3D11_OPTIONS2 + 1u32,
1345 D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = D3D11_FEATURE_D3D11_OPTIONS3 + 1u32,
1346 }}
1347 STRUCT!{struct D3D11_FEATURE_DATA_THREADING {
1348 DriverConcurrentCreates: BOOL,
1349 DriverCommandLists: BOOL,
1350 }}
1351 STRUCT!{struct D3D11_FEATURE_DATA_DOUBLES {
1352 DoublePrecisionFloatShaderOps: BOOL,
1353 }}
1354 STRUCT!{struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
1355 InFormat: DXGI_FORMAT,
1356 OutFormatSupport: UINT,
1357 }}
1358 STRUCT!{struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 {
1359 InFormat: DXGI_FORMAT,
1360 OutFormatSupport2: UINT,
1361 }}
1362 STRUCT!{struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS {
1363 ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x: BOOL,
1364 }}
1365 STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
1366 OutputMergerLogicOp: BOOL,
1367 UAVOnlyRenderingForcedSampleCount: BOOL,
1368 DiscardAPIsSeenByDriver: BOOL,
1369 FlagsForUpdateAndCopySeenByDriver: BOOL,
1370 ClearView: BOOL,
1371 CopyWithOverlap: BOOL,
1372 ConstantBufferPartialUpdate: BOOL,
1373 ConstantBufferOffsetting: BOOL,
1374 MapNoOverwriteOnDynamicConstantBuffer: BOOL,
1375 MapNoOverwriteOnDynamicBufferSRV: BOOL,
1376 MultisampleRTVWithForcedSampleCountOne: BOOL,
1377 SAD4ShaderInstructions: BOOL,
1378 ExtendedDoublesShaderInstructions: BOOL,
1379 ExtendedResourceSharing: BOOL,
1380 }}
1381 STRUCT!{struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
1382 TileBasedDeferredRenderer: BOOL,
1383 }}
1384 STRUCT!{struct D3D11_FEATURE_DATA_D3D9_OPTIONS {
1385 FullNonPow2TextureSupport: BOOL,
1386 }}
1387 STRUCT!{struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
1388 SupportsDepthAsTextureWithLessEqualComparisonFilter: BOOL,
1389 }}
1390 ENUM!{enum D3D11_SHADER_MIN_PRECISION_SUPPORT {
1391 D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
1392 D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2,
1393 }}
1394 STRUCT!{struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
1395 PixelShaderMinPrecision: UINT,
1396 AllOtherShaderStagesMinPrecision: UINT,
1397 }}
1398 ENUM!{enum D3D11_TILED_RESOURCES_TIER {
1399 D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0,
1400 D3D11_TILED_RESOURCES_TIER_1 = 1,
1401 D3D11_TILED_RESOURCES_TIER_2 = 2,
1402 D3D11_TILED_RESOURCES_TIER_3 = 3,
1403 }}
1404 STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 {
1405 TiledResourcesTier: D3D11_TILED_RESOURCES_TIER,
1406 MinMaxFiltering: BOOL,
1407 ClearViewAlsoSupportsDepthOnlyFormats: BOOL,
1408 MapOnDefaultBuffers: BOOL,
1409 }}
1410 STRUCT!{struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
1411 SimpleInstancingSupported: BOOL,
1412 }}
1413 STRUCT!{struct D3D11_FEATURE_DATA_MARKER_SUPPORT {
1414 Profile: BOOL,
1415 }}
1416 STRUCT!{struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 {
1417 FullNonPow2TextureSupported: BOOL,
1418 DepthAsTextureWithLessEqualComparisonFilterSupported: BOOL,
1419 SimpleInstancingSupported: BOOL,
1420 TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported: BOOL,
1421 }}
1422 ENUM!{enum D3D11_CONSERVATIVE_RASTERIZATION_TIER {
1423 D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0,
1424 D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
1425 D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
1426 D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 3,
1427 }}
1428 STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 {
1429 PSSpecifiedStencilRefSupported: BOOL,
1430 TypedUAVLoadAdditionalFormats: BOOL,
1431 ROVsSupported: BOOL,
1432 ConservativeRasterizationTier: D3D11_CONSERVATIVE_RASTERIZATION_TIER,
1433 TiledResourcesTier: D3D11_TILED_RESOURCES_TIER,
1434 MapOnDefaultTextures: BOOL,
1435 StandardSwizzle: BOOL,
1436 UnifiedMemoryArchitecture: BOOL,
1437 }}
1438 STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 {
1439 VPAndRTArrayIndexFromAnyShaderFeedingRasterizer: BOOL,
1440 }}
1441 STRUCT!{struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
1442 MaxGPUVirtualAddressBitsPerResource: UINT,
1443 MaxGPUVirtualAddressBitsPerProcess: UINT,
1444 }}
1445 RIDL!{#[uuid(0xc0bfa96c, 0xe089, 0x44fb, 0x8e, 0xaf, 0x26, 0xf8, 0x79, 0x61, 0x90, 0xda)]
1446 interface ID3D11DeviceContext(ID3D11DeviceContextVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
1447 fn VSSetConstantBuffers(
1448 StartSlot: UINT,
1449 NumBuffers: UINT,
1450 ppConstantBuffers: *const *mut ID3D11Buffer,
1451 ) -> (),
1452 fn PSSetShaderResources(
1453 StartSlot: UINT,
1454 NumViews: UINT,
1455 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1456 ) -> (),
1457 fn PSSetShader(
1458 pPixelShader: *mut ID3D11PixelShader,
1459 ppClassInstances: *const *mut ID3D11ClassInstance,
1460 NumClassInstances: UINT,
1461 ) -> (),
1462 fn PSSetSamplers(
1463 StartSlot: UINT,
1464 NumSamplers: UINT,
1465 ppSamplers: *const *mut ID3D11SamplerState,
1466 ) -> (),
1467 fn VSSetShader(
1468 pVertexShader: *mut ID3D11VertexShader,
1469 ppClassInstances: *const *mut ID3D11ClassInstance,
1470 NumClassInstances: UINT,
1471 ) -> (),
1472 fn DrawIndexed(
1473 IndexCount: UINT,
1474 StartIndexLocation: UINT,
1475 BaseVertexLocation: INT,
1476 ) -> (),
1477 fn Draw(
1478 VertexCount: UINT,
1479 StartVertexLocation: UINT,
1480 ) -> (),
1481 fn Map(
1482 pResource: *mut ID3D11Resource,
1483 Subresource: UINT,
1484 MapType: D3D11_MAP,
1485 MapFlags: UINT,
1486 pMappedResource: *mut D3D11_MAPPED_SUBRESOURCE,
1487 ) -> HRESULT,
1488 fn Unmap(
1489 pResource: *mut ID3D11Resource,
1490 Subresource: UINT,
1491 ) -> (),
1492 fn PSSetConstantBuffers(
1493 StartSlot: UINT,
1494 NumBuffers: UINT,
1495 ppConstantBuffers: *const *mut ID3D11Buffer,
1496 ) -> (),
1497 fn IASetInputLayout(
1498 pInputLayout: *mut ID3D11InputLayout,
1499 ) -> (),
1500 fn IASetVertexBuffers(
1501 StartSlot: UINT,
1502 NumBuffers: UINT,
1503 ppVertexBuffers: *const *mut ID3D11Buffer,
1504 pStrides: *const UINT,
1505 pOffsets: *const UINT,
1506 ) -> (),
1507 fn IASetIndexBuffer(
1508 pIndexBuffer: *mut ID3D11Buffer,
1509 Format: DXGI_FORMAT,
1510 Offset: UINT,
1511 ) -> (),
1512 fn DrawIndexedInstanced(
1513 IndexCountPerInstance: UINT,
1514 InstanceCount: UINT,
1515 StartIndexLocation: UINT,
1516 BaseVertexLocation: INT,
1517 StartInstanceLocation: UINT,
1518 ) -> (),
1519 fn DrawInstanced(
1520 VertexCountPerInstance: UINT,
1521 InstanceCount: UINT,
1522 StartVertexLocation: UINT,
1523 StartInstanceLocation: UINT,
1524 ) -> (),
1525 fn GSSetConstantBuffers(
1526 StartSlot: UINT,
1527 NumBuffers: UINT,
1528 ppConstantBuffers: *const *mut ID3D11Buffer,
1529 ) -> (),
1530 fn GSSetShader(
1531 pShader: *mut ID3D11GeometryShader,
1532 ppClassInstances: *const *mut ID3D11ClassInstance,
1533 NumClassInstances: UINT,
1534 ) -> (),
1535 fn IASetPrimitiveTopology(
1536 Topology: D3D11_PRIMITIVE_TOPOLOGY,
1537 ) -> (),
1538 fn VSSetShaderResources(
1539 StartSlot: UINT,
1540 NumViews: UINT,
1541 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1542 ) -> (),
1543 fn VSSetSamplers(
1544 StartSlot: UINT,
1545 NumSamplers: UINT,
1546 ppSamplers: *const *mut ID3D11SamplerState,
1547 ) -> (),
1548 fn Begin(
1549 pAsync: *mut ID3D11Asynchronous,
1550 ) -> (),
1551 fn End(
1552 pAsync: *mut ID3D11Asynchronous,
1553 ) -> (),
1554 fn GetData(
1555 pAsync: *mut ID3D11Asynchronous,
1556 pData: *mut c_void,
1557 DataSize: UINT,
1558 GetDataFlags: UINT,
1559 ) -> HRESULT,
1560 fn SetPredication(
1561 pPredicate: *mut ID3D11Predicate,
1562 PredicateValue: BOOL,
1563 ) -> (),
1564 fn GSSetShaderResources(
1565 StartSlot: UINT,
1566 NumViews: UINT,
1567 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1568 ) -> (),
1569 fn GSSetSamplers(
1570 StartSlot: UINT,
1571 NumSamplers: UINT,
1572 ppSamplers: *const *mut ID3D11SamplerState,
1573 ) -> (),
1574 fn OMSetRenderTargets(
1575 NumViews: UINT,
1576 ppRenderTargetViews: *const *mut ID3D11RenderTargetView,
1577 pDepthStencilView: *mut ID3D11DepthStencilView,
1578 ) -> (),
1579 fn OMSetRenderTargetsAndUnorderedAccessViews(
1580 NumRTVs: UINT,
1581 ppRenderTargetViews: *const *mut ID3D11RenderTargetView,
1582 pDepthStencilView: *mut ID3D11DepthStencilView,
1583 UAVStartSlot: UINT,
1584 NumUAVs: UINT,
1585 ppUnorderedAccessViews: *const *mut ID3D11UnorderedAccessView,
1586 pUAVInitialCounts: *const UINT,
1587 ) -> (),
1588 fn OMSetBlendState(
1589 pBlendState: *mut ID3D11BlendState,
1590 BlendFactor: &[FLOAT; 4],
1591 SampleMask: UINT,
1592 ) -> (),
1593 fn OMSetDepthStencilState(
1594 pDepthStencilState: *mut ID3D11DepthStencilState,
1595 StencilRef: UINT,
1596 ) -> (),
1597 fn SOSetTargets(
1598 NumBuffers: UINT,
1599 ppSOTargets: *const *mut ID3D11Buffer,
1600 pOffsets: *const UINT,
1601 ) -> (),
1602 fn DrawAuto() -> (),
1603 fn DrawIndexedInstancedIndirect(
1604 pBufferForArgs: *mut ID3D11Buffer,
1605 AlignedByteOffsetForArgs: UINT,
1606 ) -> (),
1607 fn DrawInstancedIndirect(
1608 pBufferForArgs: *mut ID3D11Buffer,
1609 AlignedByteOffsetForArgs: UINT,
1610 ) -> (),
1611 fn Dispatch(
1612 ThreadGroupCountX: UINT,
1613 ThreadGroupCountY: UINT,
1614 ThreadGroupCountZ: UINT,
1615 ) -> (),
1616 fn DispatchIndirect(
1617 pBufferForArgs: *mut ID3D11Buffer,
1618 AlignedByteOffsetForArgs: UINT,
1619 ) -> (),
1620 fn RSSetState(
1621 pRasterizerState: *mut ID3D11RasterizerState,
1622 ) -> (),
1623 fn RSSetViewports(
1624 NumViewports: UINT,
1625 pViewports: *const D3D11_VIEWPORT,
1626 ) -> (),
1627 fn RSSetScissorRects(
1628 NumRects: UINT,
1629 pRects: *const D3D11_RECT,
1630 ) -> (),
1631 fn CopySubresourceRegion(
1632 pDstResource: *mut ID3D11Resource,
1633 DstSubresource: UINT,
1634 DstX: UINT,
1635 DstY: UINT,
1636 DstZ: UINT,
1637 pSrcResource: *mut ID3D11Resource,
1638 SrcSubresource: UINT,
1639 pSrcBox: *const D3D11_BOX,
1640 ) -> (),
1641 fn CopyResource(
1642 pDstResource: *mut ID3D11Resource,
1643 pSrcResource: *mut ID3D11Resource,
1644 ) -> (),
1645 fn UpdateSubresource(
1646 pDstResource: *mut ID3D11Resource,
1647 DstSubresource: UINT,
1648 pDstBox: *const D3D11_BOX,
1649 pSrcData: *const c_void,
1650 SrcRowPitch: UINT,
1651 SrcDepthPitch: UINT,
1652 ) -> (),
1653 fn CopyStructureCount(
1654 pDstBuffer: *mut ID3D11Buffer,
1655 DstAlignedByteOffset: UINT,
1656 pSrcView: *mut ID3D11UnorderedAccessView,
1657 ) -> (),
1658 fn ClearRenderTargetView(
1659 pRenderTargetView: *mut ID3D11RenderTargetView,
1660 ColorRGBA: &[FLOAT; 4],
1661 ) -> (),
1662 fn ClearUnorderedAccessViewUint(
1663 pUnorderedAccessView: *mut ID3D11UnorderedAccessView,
1664 Values: &[UINT; 4],
1665 ) -> (),
1666 fn ClearUnorderedAccessViewFloat(
1667 pUnorderedAccessView: *mut ID3D11UnorderedAccessView,
1668 Values: &[FLOAT; 4],
1669 ) -> (),
1670 fn ClearDepthStencilView(
1671 pDepthStencilView: *mut ID3D11DepthStencilView,
1672 ClearFlags: UINT,
1673 Depth: FLOAT,
1674 Stencil: UINT8,
1675 ) -> (),
1676 fn GenerateMips(
1677 pShaderResourceView: *mut ID3D11ShaderResourceView,
1678 ) -> (),
1679 fn SetResourceMinLOD(
1680 pResource: *mut ID3D11Resource,
1681 MinLOD: FLOAT,
1682 ) -> (),
1683 fn GetResourceMinLOD(
1684 pResource: *mut ID3D11Resource,
1685 ) -> FLOAT,
1686 fn ResolveSubresource(
1687 pDstResource: *mut ID3D11Resource,
1688 DstSubresource: UINT,
1689 pSrcResource: *mut ID3D11Resource,
1690 SrcSubresource: UINT,
1691 Format: DXGI_FORMAT,
1692 ) -> (),
1693 fn ExecuteCommandList(
1694 pCommandList: *mut ID3D11CommandList,
1695 RestoreContextState: BOOL,
1696 ) -> (),
1697 fn HSSetShaderResources(
1698 StartSlot: UINT,
1699 NumViews: UINT,
1700 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1701 ) -> (),
1702 fn HSSetShader(
1703 pHullShader: *mut ID3D11HullShader,
1704 ppClassInstances: *const *mut ID3D11ClassInstance,
1705 NumClassInstances: UINT,
1706 ) -> (),
1707 fn HSSetSamplers(
1708 StartSlot: UINT,
1709 NumSamplers: UINT,
1710 ppSamplers: *const *mut ID3D11SamplerState,
1711 ) -> (),
1712 fn HSSetConstantBuffers(
1713 StartSlot: UINT,
1714 NumBuffers: UINT,
1715 ppConstantBuffers: *const *mut ID3D11Buffer,
1716 ) -> (),
1717 fn DSSetShaderResources(
1718 StartSlot: UINT,
1719 NumViews: UINT,
1720 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1721 ) -> (),
1722 fn DSSetShader(
1723 pDomainShader: *mut ID3D11DomainShader,
1724 ppClassInstances: *const *mut ID3D11ClassInstance,
1725 NumClassInstances: UINT,
1726 ) -> (),
1727 fn DSSetSamplers(
1728 StartSlot: UINT,
1729 NumSamplers: UINT,
1730 ppSamplers: *const *mut ID3D11SamplerState,
1731 ) -> (),
1732 fn DSSetConstantBuffers(
1733 StartSlot: UINT,
1734 NumBuffers: UINT,
1735 ppConstantBuffers: *const *mut ID3D11Buffer,
1736 ) -> (),
1737 fn CSSetShaderResources(
1738 StartSlot: UINT,
1739 NumViews: UINT,
1740 ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
1741 ) -> (),
1742 fn CSSetUnorderedAccessViews(
1743 StartSlot: UINT,
1744 NumUAVs: UINT,
1745 ppUnorderedAccessViews: *const *mut ID3D11UnorderedAccessView,
1746 pUAVInitialCounts: *const UINT,
1747 ) -> (),
1748 fn CSSetShader(
1749 pComputeShader: *mut ID3D11ComputeShader,
1750 ppClassInstances: *const *mut ID3D11ClassInstance,
1751 NumClassInstances: UINT,
1752 ) -> (),
1753 fn CSSetSamplers(
1754 StartSlot: UINT,
1755 NumSamplers: UINT,
1756 ppSamplers: *const *mut ID3D11SamplerState,
1757 ) -> (),
1758 fn CSSetConstantBuffers(
1759 StartSlot: UINT,
1760 NumBuffers: UINT,
1761 ppConstantBuffers: *const *mut ID3D11Buffer,
1762 ) -> (),
1763 fn VSGetConstantBuffers(
1764 StartSlot: UINT,
1765 NumBuffers: UINT,
1766 ppConstantBuffers: *mut *mut ID3D11Buffer,
1767 ) -> (),
1768 fn PSGetShaderResources(
1769 StartSlot: UINT,
1770 NumViews: UINT,
1771 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1772 ) -> (),
1773 fn PSGetShader(
1774 ppPixelShader: *mut *mut ID3D11PixelShader,
1775 ppClassInstances: *mut *mut ID3D11ClassInstance,
1776 pNumClassInstances: *mut UINT,
1777 ) -> (),
1778 fn PSGetSamplers(
1779 StartSlot: UINT,
1780 NumSamplers: UINT,
1781 ppSamplers: *mut *mut ID3D11SamplerState,
1782 ) -> (),
1783 fn VSGetShader(
1784 ppVertexShader: *mut *mut ID3D11VertexShader,
1785 ppClassInstances: *mut *mut ID3D11ClassInstance,
1786 pNumClassInstances: *mut UINT,
1787 ) -> (),
1788 fn PSGetConstantBuffers(
1789 StartSlot: UINT,
1790 NumBuffers: UINT,
1791 ppConstantBuffers: *mut *mut ID3D11Buffer,
1792 ) -> (),
1793 fn IAGetInputLayout(
1794 ppInputLayout: *mut *mut ID3D11InputLayout,
1795 ) -> (),
1796 fn IAGetVertexBuffers(
1797 StartSlot: UINT,
1798 NumBuffers: UINT,
1799 ppVertexBuffers: *mut *mut ID3D11Buffer,
1800 pStrides: *mut UINT,
1801 pOffsets: *mut UINT,
1802 ) -> (),
1803 fn IAGetIndexBuffer(
1804 pIndexBuffer: *mut *mut ID3D11Buffer,
1805 Format: *mut DXGI_FORMAT,
1806 Offset: *mut UINT,
1807 ) -> (),
1808 fn GSGetConstantBuffers(
1809 StartSlot: UINT,
1810 NumBuffers: UINT,
1811 ppConstantBuffers: *mut *mut ID3D11Buffer,
1812 ) -> (),
1813 fn GSGetShader(
1814 ppGeometryShader: *mut *mut ID3D11GeometryShader,
1815 ppClassInstances: *mut *mut ID3D11ClassInstance,
1816 pNumClassInstances: *mut UINT,
1817 ) -> (),
1818 fn IAGetPrimitiveTopology(
1819 pTopology: *mut D3D11_PRIMITIVE_TOPOLOGY,
1820 ) -> (),
1821 fn VSGetShaderResources(
1822 StartSlot: UINT,
1823 NumViews: UINT,
1824 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1825 ) -> (),
1826 fn VSGetSamplers(
1827 StartSlot: UINT,
1828 NumSamplers: UINT,
1829 ppSamplers: *mut *mut ID3D11SamplerState,
1830 ) -> (),
1831 fn GetPredication(
1832 ppPredicate: *mut *mut ID3D11Predicate,
1833 pPredicateValue: *mut BOOL,
1834 ) -> (),
1835 fn GSGetShaderResources(
1836 StartSlot: UINT,
1837 NumViews: UINT,
1838 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1839 ) -> (),
1840 fn GSGetSamplers(
1841 StartSlot: UINT,
1842 NumSamplers: UINT,
1843 ppSamplers: *mut *mut ID3D11SamplerState,
1844 ) -> (),
1845 fn OMGetRenderTargets(
1846 NumViews: UINT,
1847 ppRenderTargetViews: *mut *mut ID3D11RenderTargetView,
1848 ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
1849 ) -> (),
1850 fn OMGetRenderTargetsAndUnorderedAccessViews(
1851 NumRTVs: UINT,
1852 ppRenderTargetViews: *mut *mut ID3D11RenderTargetView,
1853 ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
1854 UAVStartSlot: UINT,
1855 NumUAVs: UINT,
1856 ppUnorderedAccessViews: *mut *mut ID3D11UnorderedAccessView,
1857 ) -> (),
1858 fn OMGetBlendState(
1859 ppBlendState: *mut *mut ID3D11BlendState,
1860 BlendFactor: &mut [FLOAT; 4],
1861 pSampleMask: *mut UINT,
1862 ) -> (),
1863 fn OMGetDepthStencilState(
1864 ppDepthStencilState: *mut *mut ID3D11DepthStencilState,
1865 pStencilRef: *mut UINT,
1866 ) -> (),
1867 fn SOGetTargets(
1868 NumBuffers: UINT,
1869 ppSOTargets: *mut *mut ID3D11Buffer,
1870 ) -> (),
1871 fn RSGetState(
1872 ppRasterizerState: *mut *mut ID3D11RasterizerState,
1873 ) -> (),
1874 fn RSGetViewports(
1875 pNumViewports: *mut UINT,
1876 pViewports: *mut D3D11_VIEWPORT,
1877 ) -> (),
1878 fn RSGetScissorRects(
1879 pNumRects: *mut UINT,
1880 pRects: *mut D3D11_RECT,
1881 ) -> (),
1882 fn HSGetShaderResources(
1883 StartSlot: UINT,
1884 NumViews: UINT,
1885 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1886 ) -> (),
1887 fn HSGetShader(
1888 ppHullShader: *mut *mut ID3D11HullShader,
1889 ppClassInstances: *mut *mut ID3D11ClassInstance,
1890 pNumClassInstances: *mut UINT,
1891 ) -> (),
1892 fn HSGetSamplers(
1893 StartSlot: UINT,
1894 NumSamplers: UINT,
1895 ppSamplers: *mut *mut ID3D11SamplerState,
1896 ) -> (),
1897 fn HSGetConstantBuffers(
1898 StartSlot: UINT,
1899 NumBuffers: UINT,
1900 ppConstantBuffers: *mut *mut ID3D11Buffer,
1901 ) -> (),
1902 fn DSGetShaderResources(
1903 StartSlot: UINT,
1904 NumViews: UINT,
1905 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1906 ) -> (),
1907 fn DSGetShader(
1908 ppDomainShader: *mut *mut ID3D11DomainShader,
1909 ppClassInstances: *mut *mut ID3D11ClassInstance,
1910 pNumClassInstances: *mut UINT,
1911 ) -> (),
1912 fn DSGetSamplers(
1913 StartSlot: UINT,
1914 NumSamplers: UINT,
1915 ppSamplers: *mut *mut ID3D11SamplerState,
1916 ) -> (),
1917 fn DSGetConstantBuffers(
1918 StartSlot: UINT,
1919 NumBuffers: UINT,
1920 ppConstantBuffers: *mut *mut ID3D11Buffer,
1921 ) -> (),
1922 fn CSGetShaderResources(
1923 StartSlot: UINT,
1924 NumViews: UINT,
1925 ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
1926 ) -> (),
1927 fn CSGetUnorderedAccessViews(
1928 StartSlot: UINT,
1929 NumUAVs: UINT,
1930 ppUnorderedAccessViews: *mut *mut ID3D11UnorderedAccessView,
1931 ) -> (),
1932 fn CSGetShader(
1933 ppComputeShader: *mut *mut ID3D11ComputeShader,
1934 ppClassInstances: *mut *mut ID3D11ClassInstance,
1935 pNumClassInstances: *mut UINT,
1936 ) -> (),
1937 fn CSGetSamplers(
1938 StartSlot: UINT,
1939 NumSamplers: UINT,
1940 ppSamplers: *mut *mut ID3D11SamplerState,
1941 ) -> (),
1942 fn CSGetConstantBuffers(
1943 StartSlot: UINT,
1944 NumBuffers: UINT,
1945 ppConstantBuffers: *mut *mut ID3D11Buffer,
1946 ) -> (),
1947 fn ClearState() -> (),
1948 fn Flush() -> (),
1949 fn GetType() -> D3D11_DEVICE_CONTEXT_TYPE,
1950 fn GetContextFlags() -> UINT,
1951 fn FinishCommandList(
1952 RestoreDeferredContextState: BOOL,
1953 ppCommandList: *mut *mut ID3D11CommandList,
1954 ) -> HRESULT,
1955 }}
1956 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_MOCOMP,
1957 0xe6a9f44b, 0x61b0, 0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66}
1958 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_IDCT,
1959 0xbf22ad00, 0x03ea, 0x4690, 0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e}
1960 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_VLD,
1961 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9}
1962 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG1_VLD,
1963 0x6f3ec719, 0x3735, 0x42cc, 0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16}
1964 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2and1_VLD,
1965 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60}
1966 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT,
1967 0x1b81be64, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1968 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,
1969 0x1b81be65, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1970 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,
1971 0x1b81be66, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1972 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_IDCT_FGT,
1973 0x1b81be67, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1974 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_NOFGT,
1975 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1976 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_FGT,
1977 0x1b81be69, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1978 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,
1979 0xd5f04ff9, 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd}
1980 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT,
1981 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d}
1982 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,
1983 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52}
1984 DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,
1985 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c}
1986 DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV8_POSTPROC,
1987 0x1b81be80, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1988 DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV8_MOCOMP,
1989 0x1b81be81, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1990 DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_POSTPROC,
1991 0x1b81be90, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1992 DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_MOCOMP,
1993 0x1b81be91, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1994 DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_IDCT,
1995 0x1b81be94, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1996 DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_POSTPROC,
1997 0x1b81bea0, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
1998 DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_MOCOMP,
1999 0x1b81bea1, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
2000 DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_IDCT,
2001 0x1b81bea2, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
2002 DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_VLD,
2003 0x1b81bea3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
2004 DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_D2010,
2005 0x1b81bea4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
2006 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,
2007 0xefd64d74, 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19}
2008 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,
2009 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e}
2010 DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,
2011 0xab998b5b, 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae}
2012 DEFINE_GUID!{D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,
2013 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0}
2014 DEFINE_GUID!{D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,
2015 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13}
2016 DEFINE_GUID!{D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0,
2017 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e}
2018 DEFINE_GUID!{D3D11_DECODER_PROFILE_VP8_VLD,
2019 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7}
2020 STRUCT!{struct D3D11_VIDEO_DECODER_DESC {
2021 Guid: GUID,
2022 SampleWidth: UINT,
2023 SampleHeight: UINT,
2024 OutputFormat: DXGI_FORMAT,
2025 }}
2026 STRUCT!{struct D3D11_VIDEO_DECODER_CONFIG {
2027 guidConfigBitstreamEncryption: GUID,
2028 guidConfigMBcontrolEncryption: GUID,
2029 guidConfigResidDiffEncryption: GUID,
2030 ConfigBitstreamRaw: UINT,
2031 ConfigMBcontrolRasterOrder: UINT,
2032 ConfigResidDiffHost: UINT,
2033 ConfigSpatialResid8: UINT,
2034 ConfigResid8Subtraction: UINT,
2035 ConfigSpatialHost8or9Clipping: UINT,
2036 ConfigSpatialResidInterleaved: UINT,
2037 ConfigIntraResidUnsigned: UINT,
2038 ConfigResidDiffAccelerator: UINT,
2039 ConfigHostInverseScan: UINT,
2040 ConfigSpecificIDCT: UINT,
2041 Config4GroupedCoefs: UINT,
2042 ConfigMinRenderTargetBuffCount: USHORT,
2043 ConfigDecoderSpecific: USHORT,
2044 }}
2045 ENUM!{enum D3D11_VIDEO_DECODER_BUFFER_TYPE {
2046 D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0,
2047 D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1,
2048 D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2,
2049 D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3,
2050 D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4,
2051 D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5,
2052 D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6,
2053 D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7,
2054 D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8,
2055 }}
2056 STRUCT!{struct D3D11_AES_CTR_IV {
2057 IV: UINT64,
2058 Count: UINT64,
2059 }}
2060 STRUCT!{struct D3D11_ENCRYPTED_BLOCK_INFO {
2061 NumEncryptedBytesAtBeginning: UINT,
2062 NumBytesInSkipPattern: UINT,
2063 NumBytesInEncryptPattern: UINT,
2064 }}
2065 STRUCT!{struct D3D11_VIDEO_DECODER_BUFFER_DESC {
2066 BufferType: D3D11_VIDEO_DECODER_BUFFER_TYPE,
2067 BufferIndex: UINT,
2068 DataOffset: UINT,
2069 DataSize: UINT,
2070 FirstMBaddress: UINT,
2071 NumMBsInBuffer: UINT,
2072 Width: UINT,
2073 Height: UINT,
2074 Stride: UINT,
2075 ReservedBits: UINT,
2076 pIV: *mut c_void,
2077 IVSize: UINT,
2078 PartialEncryption: BOOL,
2079 EncryptedBlockInfo: D3D11_ENCRYPTED_BLOCK_INFO,
2080 }}
2081 STRUCT!{struct D3D11_VIDEO_DECODER_EXTENSION {
2082 Function: UINT,
2083 pPrivateInputData: *mut c_void,
2084 PrivateInputDataSize: UINT,
2085 pPrivateOutputData: *mut c_void,
2086 PrivateOutputDataSize: UINT,
2087 ResourceCount: UINT,
2088 ppResourceList: *mut *mut ID3D11Resource,
2089 }}
2090 RIDL!{#[uuid(0x3c9c5b51, 0x995d, 0x48d1, 0x9b, 0x8d, 0xfa, 0x5c, 0xae, 0xde, 0xd6, 0x5c)]
2091 interface ID3D11VideoDecoder(ID3D11VideoDecoderVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2092 fn GetCreationParameters(
2093 pVideoDesc: *mut D3D11_VIDEO_DECODER_DESC,
2094 pConfig: *mut D3D11_VIDEO_DECODER_CONFIG,
2095 ) -> HRESULT,
2096 fn GetDriverHandle(
2097 pDriverHandle: *mut HANDLE,
2098 ) -> HRESULT,
2099 }}
2100 ENUM!{enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT {
2101 D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1,
2102 D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2,
2103 }}
2104 ENUM!{enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS {
2105 D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1,
2106 D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2,
2107 D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
2108 D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8,
2109 D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10,
2110 }}
2111 ENUM!{enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS {
2112 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1,
2113 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2,
2114 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4,
2115 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8,
2116 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10,
2117 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20,
2118 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40,
2119 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
2120 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
2121 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
2122 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
2123 }}
2124 ENUM!{enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS {
2125 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1,
2126 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2,
2127 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4,
2128 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8,
2129 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10,
2130 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
2131 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40,
2132 D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80,
2133 }}
2134 ENUM!{enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS {
2135 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1,
2136 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2,
2137 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
2138 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8,
2139 }}
2140 ENUM!{enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS {
2141 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1,
2142 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2,
2143 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4,
2144 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8,
2145 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10,
2146 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20,
2147 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40,
2148 D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80,
2149 }}
2150 ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS {
2151 D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1,
2152 D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2,
2153 D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4,
2154 D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8,
2155 D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10,
2156 }}
2157 STRUCT!{struct D3D11_VIDEO_PROCESSOR_CAPS {
2158 DeviceCaps: UINT,
2159 FeatureCaps: UINT,
2160 FilterCaps: UINT,
2161 InputFormatCaps: UINT,
2162 AutoStreamCaps: UINT,
2163 StereoCaps: UINT,
2164 RateConversionCapsCount: UINT,
2165 MaxInputStreams: UINT,
2166 MaxStreamStates: UINT,
2167 }}
2168 ENUM!{enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS {
2169 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
2170 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
2171 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
2172 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
2173 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
2174 D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20,
2175 }}
2176 ENUM!{enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS {
2177 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1,
2178 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2,
2179 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4,
2180 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8,
2181 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10,
2182 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20,
2183 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40,
2184 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80,
2185 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100,
2186 D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000,
2187 }}
2188 STRUCT!{struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS {
2189 PastFrames: UINT,
2190 FutureFrames: UINT,
2191 ProcessorCaps: UINT,
2192 ITelecineCaps: UINT,
2193 CustomRateCount: UINT,
2194 }}
2195 ENUM!{enum D3D11_CONTENT_PROTECTION_CAPS {
2196 D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1,
2197 D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2,
2198 D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4,
2199 D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8,
2200 D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10,
2201 D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20,
2202 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40,
2203 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80,
2204 D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100,
2205 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200,
2206 D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400,
2207 D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800,
2208 D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000,
2209 D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000,
2210 D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000,
2211 }}
2212 DEFINE_GUID!{D3D11_CRYPTO_TYPE_AES128_CTR,
2213 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0x0b, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f}
2214 DEFINE_GUID!{D3D11_DECODER_ENCRYPTION_HW_CENC,
2215 0x89d6ac4f, 0x09f2, 0x4229, 0xb2, 0xcd, 0x37, 0x74, 0x0a, 0x6d, 0xfd, 0x81}
2216 DEFINE_GUID!{D3D11_KEY_EXCHANGE_HW_PROTECTION,
2217 0xb1170d8a, 0x628d, 0x4da3, 0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70}
2218 STRUCT!{struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS {
2219 Caps: UINT,
2220 KeyExchangeTypeCount: UINT,
2221 BlockAlignmentSize: UINT,
2222 ProtectedMemorySize: ULONGLONG,
2223 }}
2224 STRUCT!{struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE {
2225 CustomRate: DXGI_RATIONAL,
2226 OutputFrames: UINT,
2227 InputInterlaced: BOOL,
2228 InputFramesOrFields: UINT,
2229 }}
2230 ENUM!{enum D3D11_VIDEO_PROCESSOR_FILTER {
2231 D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0,
2232 D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1,
2233 D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2,
2234 D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3,
2235 D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4,
2236 D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5,
2237 D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6,
2238 D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7,
2239 }}
2240 STRUCT!{struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE {
2241 Minimum: c_int,
2242 Maximum: c_int,
2243 Default: c_int,
2244 Multiplier: c_float,
2245 }}
2246 ENUM!{enum D3D11_VIDEO_FRAME_FORMAT {
2247 D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0,
2248 D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
2249 D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2,
2250 }}
2251 ENUM!{enum D3D11_VIDEO_USAGE {
2252 D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
2253 D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1,
2254 D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2,
2255 }}
2256 STRUCT!{struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC {
2257 InputFrameFormat: D3D11_VIDEO_FRAME_FORMAT,
2258 InputFrameRate: DXGI_RATIONAL,
2259 InputWidth: UINT,
2260 InputHeight: UINT,
2261 OutputFrameRate: DXGI_RATIONAL,
2262 OutputWidth: UINT,
2263 OutputHeight: UINT,
2264 Usage: D3D11_VIDEO_USAGE,
2265 }}
2266 RIDL!{#[uuid(0x31627037, 0x53ab, 0x4200, 0x90, 0x61, 0x05, 0xfa, 0xa9, 0xab, 0x45, 0xf9)]
2267 interface ID3D11VideoProcessorEnumerator(ID3D11VideoProcessorEnumeratorVtbl):
2268 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2269 fn GetVideoProcessorContentDesc(
2270 pContentDesc: *mut D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
2271 ) -> HRESULT,
2272 fn CheckVideoProcessorFormat(
2273 Format: DXGI_FORMAT,
2274 pFlags: *mut UINT,
2275 ) -> HRESULT,
2276 fn GetVideoProcessorCaps(
2277 pCaps: *mut D3D11_VIDEO_PROCESSOR_CAPS,
2278 ) -> HRESULT,
2279 fn GetVideoProcessorRateConversionCaps(
2280 TypeIndex: UINT,
2281 pCaps: *mut D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS,
2282 ) -> HRESULT,
2283 fn GetVideoProcessorCustomRate(
2284 TypeIndex: UINT,
2285 CustomRateIndex: UINT,
2286 pRate: *mut D3D11_VIDEO_PROCESSOR_CUSTOM_RATE,
2287 ) -> HRESULT,
2288 fn GetVideoProcessorFilterRange(
2289 Filter: D3D11_VIDEO_PROCESSOR_FILTER,
2290 Range: *mut D3D11_VIDEO_PROCESSOR_FILTER_RANGE,
2291 ) -> HRESULT,
2292 }}
2293 STRUCT!{struct D3D11_VIDEO_COLOR_RGBA {
2294 R: c_float,
2295 G: c_float,
2296 B: c_float,
2297 A: c_float,
2298 }}
2299 STRUCT!{struct D3D11_VIDEO_COLOR_YCbCrA {
2300 Y: c_float,
2301 Cb: c_float,
2302 Cr: c_float,
2303 A: c_float,
2304 }}
2305 UNION!{union D3D11_VIDEO_COLOR {
2306 [f32; 4],
2307 YCbCr YCbCr_mut: D3D11_VIDEO_COLOR_YCbCrA,
2308 RGBA RGBA_mut: D3D11_VIDEO_COLOR_RGBA,
2309 }}
2310 ENUM!{enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE {
2311 D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0,
2312 D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 1,
2313 D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 2,
2314 }}
2315 STRUCT!{struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE {
2316 bitfield: UINT,
2317 }}
2318 BITFIELD!{D3D11_VIDEO_PROCESSOR_COLOR_SPACE bitfield: UINT [
2319 Usage set_Usage[0..1],
2320 RGB_Range set_RGB_Range[1..2],
2321 YCbCr_Matrix set_YCbCr_Matrix[2..3],
2322 YCbCr_xvYCC set_YCbCr_xvYCC[3..4],
2323 Nominal_Range set_Nominal_Range[4..6],
2324 ]}
2325 ENUM!{enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE {
2326 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0,
2327 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1,
2328 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2,
2329 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3,
2330 }}
2331 ENUM!{enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE {
2332 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0,
2333 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1,
2334 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2,
2335 }}
2336 ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT {
2337 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0,
2338 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1,
2339 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2,
2340 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3,
2341 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4,
2342 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5,
2343 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
2344 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7,
2345 }}
2346 ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE {
2347 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0,
2348 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
2349 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2,
2350 }}
2351 ENUM!{enum D3D11_VIDEO_PROCESSOR_ROTATION {
2352 D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
2353 D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1,
2354 D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
2355 D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3,
2356 }}
2357 STRUCT!{struct D3D11_VIDEO_PROCESSOR_STREAM {
2358 Enable: BOOL,
2359 OutputIndex: UINT,
2360 InputFrameOrField: UINT,
2361 PastFrames: UINT,
2362 FutureFrames: UINT,
2363 ppPastSurfaces: *mut *mut ID3D11VideoProcessorInputView,
2364 pInputSurface: *mut ID3D11VideoProcessorInputView,
2365 ppFutureSurfaces: *mut *mut ID3D11VideoProcessorInputView,
2366 ppPastSurfacesRight: *mut *mut ID3D11VideoProcessorInputView,
2367 pInputSurfaceRight: *mut ID3D11VideoProcessorInputView,
2368 ppFutureSurfacesRight: *mut *mut ID3D11VideoProcessorInputView,
2369 }}
2370 RIDL!{#[uuid(0x1d7b0652, 0x185f, 0x41c6, 0x85, 0xce, 0x0c, 0x5b, 0xe3, 0xd4, 0xae, 0x6c)]
2371 interface ID3D11VideoProcessor(ID3D11VideoProcessorVtbl):
2372 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2373 fn GetContentDesc(
2374 pDesc: *mut D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
2375 ) -> (),
2376 fn GetRateConversionCaps(
2377 pCaps: *mut D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS,
2378 ) -> (),
2379 }}
2380 STRUCT!{struct D3D11_OMAC {
2381 Omac: [BYTE; 16],
2382 }}
2383 ENUM!{enum D3D11_AUTHENTICATED_CHANNEL_TYPE {
2384 D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1,
2385 D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2,
2386 D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3,
2387 }}
2388 RIDL!{#[uuid(0x3015a308, 0xdcbd, 0x47aa, 0xa7, 0x47, 0x19, 0x24, 0x86, 0xd1, 0x4d, 0x4a)]
2389 interface ID3D11AuthenticatedChannel(ID3D11AuthenticatedChannelVtbl):
2390 ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2391 fn GetCertificateSize(
2392 pCertificateSize: *mut UINT,
2393 ) -> HRESULT,
2394 fn GetCertificate(
2395 CertificateSize: UINT,
2396 pCertificate: *mut BYTE,
2397 ) -> HRESULT,
2398 fn GetChannelHandle(
2399 pChannelHandle: *mut HANDLE,
2400 ) -> (),
2401 }}
2402 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_PROTECTION,
2403 0xa84eb584, 0xc495, 0x48aa, 0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x05}
2404 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE,
2405 0xbc1b18a5, 0xb1fb, 0x42ab, 0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe}
2406 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE,
2407 0xec1c539d, 0x8cff, 0x4e2a, 0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80}
2408 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION,
2409 0x2634499e, 0xd018, 0x4d74, 0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d}
2410 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT,
2411 0x0db207b3, 0x9450, 0x46a6, 0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2}
2412 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS,
2413 0x649bbadb, 0xf0f4, 0x4639, 0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac}
2414 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT,
2415 0x012f0bd6, 0xe662, 0x4474, 0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d}
2416 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT,
2417 0x2c042b5e, 0x8c07, 0x46d5, 0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31}
2418 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_OUTPUT_ID,
2419 0x839ddca3, 0x9b4e, 0x41e4, 0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7}
2420 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES,
2421 0x6214d9d2, 0x432c, 0x4abb, 0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b}
2422 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT,
2423 0xb30f7066, 0x203c, 0x4b07, 0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e}
2424 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID,
2425 0xf83a5958, 0xe986, 0x4bda, 0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x01, 0xb7}
2426 DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE,
2427 0xec1791c7, 0xdad3, 0x4f15, 0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0}
2428 DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE,
2429 0x06114bdb, 0x3523, 0x470a, 0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0}
2430 DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_PROTECTION,
2431 0x50455658, 0x3f47, 0x4362, 0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29}
2432 DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION,
2433 0x6346cc54, 0x2cfc, 0x4ad4, 0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x00}
2434 DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE,
2435 0x0772d047, 0x1b40, 0x48e8, 0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x01}
2436 DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE,
2437 0x41fff286, 0x6ae0, 0x4d43, 0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a}
2438 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_INPUT {
2439 QueryType: GUID,
2440 hChannel: HANDLE,
2441 SequenceNumber: UINT,
2442 }}
2443 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT {
2444 omac: D3D11_OMAC,
2445 QueryType: GUID,
2446 hChannel: HANDLE,
2447 SequenceNumber: UINT,
2448 ReturnCode: HRESULT,
2449 }}
2450 //FIXME bitfield
2451 STRUCT!{struct D3D11_AUTHENTICATED_PROTECTION_FLAGS {
2452 u: UINT,
2453 }}
2454 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT {
2455 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2456 ProtectionFlags: D3D11_AUTHENTICATED_PROTECTION_FLAGS,
2457 }}
2458 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT {
2459 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2460 ChannelType: D3D11_AUTHENTICATED_CHANNEL_TYPE,
2461 }}
2462 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT {
2463 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2464 DeviceHandle: HANDLE,
2465 }}
2466 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT {
2467 Input: D3D11_AUTHENTICATED_QUERY_INPUT,
2468 DecoderHandle: HANDLE,
2469 }}
2470 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT {
2471 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2472 DecoderHandle: HANDLE,
2473 CryptoSessionHandle: HANDLE,
2474 DeviceHandle: HANDLE,
2475 }}
2476 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT {
2477 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2478 RestrictedSharedResourceProcessCount: UINT,
2479 }}
2480 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT {
2481 Input: D3D11_AUTHENTICATED_QUERY_INPUT,
2482 ProcessIndex: UINT,
2483 }}
2484 ENUM!{enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE {
2485 D3D11_PROCESSIDTYPE_UNKNOWN = 0,
2486 D3D11_PROCESSIDTYPE_DWM = 1,
2487 D3D11_PROCESSIDTYPE_HANDLE = 2,
2488 }}
2489 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT {
2490 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2491 ProcessIndex: UINT,
2492 ProcessIdentifier: D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE,
2493 ProcessHandle: HANDLE,
2494 }}
2495 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT {
2496 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2497 UnrestrictedProtectedSharedResourceCount: UINT,
2498 }}
2499 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT {
2500 Input: D3D11_AUTHENTICATED_QUERY_INPUT,
2501 DeviceHandle: HANDLE,
2502 CryptoSessionHandle: HANDLE,
2503 }}
2504 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT {
2505 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2506 DeviceHandle: HANDLE,
2507 CryptoSessionHandle: HANDLE,
2508 OutputIDCount: UINT,
2509 }}
2510 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT {
2511 Input: D3D11_AUTHENTICATED_QUERY_INPUT,
2512 DeviceHandle: HANDLE,
2513 CryptoSessionHandle: HANDLE,
2514 OutputIDIndex: UINT,
2515 }}
2516 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT {
2517 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2518 DeviceHandle: HANDLE,
2519 CryptoSessionHandle: HANDLE,
2520 OutputIDIndex: UINT,
2521 OutputID: UINT64,
2522 }}
2523 ENUM!{enum D3D11_BUS_TYPE {
2524 D3D11_BUS_TYPE_OTHER = 0,
2525 D3D11_BUS_TYPE_PCI = 0x1,
2526 D3D11_BUS_TYPE_PCIX = 0x2,
2527 D3D11_BUS_TYPE_PCIEXPRESS = 0x3,
2528 D3D11_BUS_TYPE_AGP = 0x4,
2529 D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000,
2530 D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000,
2531 D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000,
2532 D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000,
2533 D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000,
2534 D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000,
2535 }}
2536 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT {
2537 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2538 BusType: D3D11_BUS_TYPE,
2539 AccessibleInContiguousBlocks: BOOL,
2540 AccessibleInNonContiguousBlocks: BOOL,
2541 }}
2542 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT {
2543 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2544 EncryptionGuidCount: UINT,
2545 }}
2546 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT {
2547 Input: D3D11_AUTHENTICATED_QUERY_INPUT,
2548 EncryptionGuidIndex: UINT,
2549 }}
2550 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT {
2551 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2552 EncryptionGuidIndex: UINT,
2553 EncryptionGuid: GUID,
2554 }}
2555 STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT {
2556 Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
2557 EncryptionGuid: GUID,
2558 }}
2559 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_INPUT {
2560 omac: D3D11_OMAC,
2561 ConfigureType: GUID,
2562 hChannel: HANDLE,
2563 SequenceNumber: UINT,
2564 }}
2565 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT {
2566 omac: D3D11_OMAC,
2567 ConfigureType: GUID,
2568 hChannel: HANDLE,
2569 SequenceNumber: UINT,
2570 ReturnCode: HRESULT,
2571 }}
2572 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT {
2573 Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
2574 StartSequenceQuery: UINT,
2575 StartSequenceConfigure: UINT,
2576 }}
2577 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT {
2578 Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
2579 Protections: D3D11_AUTHENTICATED_PROTECTION_FLAGS,
2580 }}
2581 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT {
2582 Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
2583 DecoderHandle: HANDLE,
2584 CryptoSessionHandle: HANDLE,
2585 DeviceHandle: HANDLE,
2586 }}
2587 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT {
2588 Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
2589 ProcessType: D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE,
2590 ProcessHandle: HANDLE,
2591 AllowAccess: BOOL,
2592 }}
2593 STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT {
2594 Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
2595 EncryptionGuid: GUID,
2596 }}
2597 DEFINE_GUID!{D3D11_KEY_EXCHANGE_RSAES_OAEP,
2598 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20}
2599 RIDL!{#[uuid(0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3, 0x9d, 0xd5, 0xc8, 0x65, 0x84, 0x57, 0x20)]
2600 interface ID3D11CryptoSession(ID3D11CryptoSessionVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2601 fn GetCryptoType(
2602 pCryptoType: *mut GUID,
2603 ) -> (),
2604 fn GetDecoderProfile(
2605 pDecoderProfile: *mut GUID,
2606 ) -> (),
2607 fn GetCertificateSize(
2608 pCertificateSize: *mut UINT,
2609 ) -> HRESULT,
2610 fn GetCertificate(
2611 CertificateSize: UINT,
2612 pCertificate: *mut BYTE,
2613 ) -> HRESULT,
2614 fn GetCryptoSessionHandle(
2615 pCertificate: *mut HANDLE,
2616 ) -> (),
2617 }}
2618 ENUM!{enum D3D11_VDOV_DIMENSION {
2619 D3D11_VDOV_DIMENSION_UNKNOWN = 0,
2620 D3D11_VDOV_DIMENSION_TEXTURE2D = 1,
2621 }}
2622 STRUCT!{struct D3D11_TEX2D_VDOV {
2623 ArraySlice: UINT,
2624 }}
2625 STRUCT!{struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC {
2626 DecodeProfile: GUID,
2627 ViewDimension: D3D11_VDOV_DIMENSION,
2628 Texture2D: D3D11_TEX2D_VDOV,
2629 }}
2630 RIDL!{#[uuid(0xc2931aea, 0x2a85, 0x4f20, 0x86, 0x0f, 0xfb, 0xa1, 0xfd, 0x25, 0x6e, 0x18)]
2631 interface ID3D11VideoDecoderOutputView(ID3D11VideoDecoderOutputViewVtbl):
2632 ID3D11View(ID3D11ViewVtbl) {
2633 fn GetDesc(
2634 pDesc: *mut D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC,
2635 ) -> (),
2636 }}
2637 ENUM!{enum D3D11_VPIV_DIMENSION {
2638 D3D11_VPIV_DIMENSION_UNKNOWN = 0,
2639 D3D11_VPIV_DIMENSION_TEXTURE2D = 1,
2640 }}
2641 STRUCT!{struct D3D11_TEX2D_VPIV {
2642 MipSlice: UINT,
2643 ArraySlice: UINT,
2644 }}
2645 STRUCT!{struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC {
2646 FourCC: UINT,
2647 ViewDimension: D3D11_VPIV_DIMENSION,
2648 Texture2D: D3D11_TEX2D_VPIV,
2649 }}
2650 RIDL!{#[uuid(0x11ec5a5f, 0x51dc, 0x4945, 0xab, 0x34, 0x6e, 0x8c, 0x21, 0x30, 0x0e, 0xa5)]
2651 interface ID3D11VideoProcessorInputView(ID3D11VideoProcessorInputViewVtbl):
2652 ID3D11View(ID3D11ViewVtbl) {
2653 fn GetDesc(
2654 pDesc: *mut D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC,
2655 ) -> (),
2656 }}
2657 ENUM!{enum D3D11_VPOV_DIMENSION {
2658 D3D11_VPOV_DIMENSION_UNKNOWN = 0,
2659 D3D11_VPOV_DIMENSION_TEXTURE2D = 1,
2660 D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2,
2661 }}
2662 STRUCT!{struct D3D11_TEX2D_VPOV {
2663 MipSlice: UINT,
2664 }}
2665 STRUCT!{struct D3D11_TEX2D_ARRAY_VPOV {
2666 MipSlice: UINT,
2667 FirstArraySlice: UINT,
2668 ArraySize: UINT,
2669 }}
2670 UNION!{union D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC_u {
2671 [u32; 3],
2672 Texture2D Texture2D_mut: D3D11_TEX2D_VPOV,
2673 Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_VPOV,
2674 }}
2675 STRUCT!{struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC {
2676 ViewDimension: D3D11_VPOV_DIMENSION,
2677 u: D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC_u,
2678 }}
2679 RIDL!{#[uuid(0xa048285e, 0x25a9, 0x4527, 0xbd, 0x93, 0xd6, 0x8b, 0x68, 0xc4, 0x42, 0x54)]
2680 interface ID3D11VideoProcessorOutputView(ID3D11VideoProcessorOutputViewVtbl):
2681 ID3D11View(ID3D11ViewVtbl) {
2682 fn GetDesc(
2683 pDesc: *mut D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC,
2684 ) -> (),
2685 }}
2686 RIDL!{#[uuid(0x61f21c45, 0x3c0e, 0x4a74, 0x9c, 0xea, 0x67, 0x10, 0x0d, 0x9a, 0xd5, 0xe4)]
2687 interface ID3D11VideoContext(ID3D11VideoContextVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
2688 fn GetDecoderBuffer(
2689 pDecoder: *mut ID3D11VideoDecoder,
2690 Type: D3D11_VIDEO_DECODER_BUFFER_TYPE,
2691 pBufferSize: *mut UINT,
2692 ppBuffer: *mut *mut c_void,
2693 ) -> HRESULT,
2694 fn ReleaseDecoderBuffer(
2695 pDecoder: *mut ID3D11VideoDecoder,
2696 Type: D3D11_VIDEO_DECODER_BUFFER_TYPE,
2697 ) -> HRESULT,
2698 fn DecoderBeginFrame(
2699 pDecoder: *mut ID3D11VideoDecoder,
2700 pView: *mut ID3D11VideoDecoderOutputView,
2701 ContentKeySize: UINT,
2702 pContentKey: *const c_void,
2703 ) -> HRESULT,
2704 fn DecoderEndFrame(
2705 pDecoder: *mut ID3D11VideoDecoder,
2706 ) -> HRESULT,
2707 fn SubmitDecoderBuffers(
2708 pDecoder: *mut ID3D11VideoDecoder,
2709 NumBuffers: UINT,
2710 pBufferDesc: *const D3D11_VIDEO_DECODER_BUFFER_DESC,
2711 ) -> HRESULT,
2712 fn DecoderExtension(
2713 pDecoder: *mut ID3D11VideoDecoder,
2714 pExtensionData: *const D3D11_VIDEO_DECODER_EXTENSION,
2715 ) -> HRESULT,
2716 fn VideoProcessorSetOutputTargetRect(
2717 pVideoProcessor: *mut ID3D11VideoProcessor,
2718 Enable: BOOL,
2719 pRect: *const RECT,
2720 ) -> (),
2721 fn VideoProcessorSetOutputBackgroundColor(
2722 pVideoProcessor: *mut ID3D11VideoProcessor,
2723 YCbCr: BOOL,
2724 pRect: *const RECT,
2725 ) -> (),
2726 fn VideoProcessorSetOutputColorSpace(
2727 pVideoProcessor: *mut ID3D11VideoProcessor,
2728 pColorSpace: *const D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
2729 ) -> HRESULT,
2730 fn VideoProcessorSetOutputAlphaFillMode(
2731 pVideoProcessor: *mut ID3D11VideoProcessor,
2732 AlphaFillMode: D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE,
2733 StreamIndex: UINT,
2734 ) -> (),
2735 fn VideoProcessorSetOutputConstriction(
2736 pVideoProcessor: *mut ID3D11VideoProcessor,
2737 Enable: BOOL,
2738 Size: SIZE,
2739 ) -> (),
2740 fn VideoProcessorSetOutputStereoMode(
2741 pVideoProcessor: *mut ID3D11VideoProcessor,
2742 Enable: BOOL,
2743 ) -> (),
2744 fn VideoProcessorSetOutputExtension(
2745 pVideoProcessor: *mut ID3D11VideoProcessor,
2746 pExtensionGuid: *const GUID,
2747 DataSize: UINT,
2748 pData: *mut c_void,
2749 ) -> HRESULT,
2750 fn VideoProcessorGetOutputTargetRect(
2751 pVideoProcessor: *mut ID3D11VideoProcessor,
2752 Enabled: *mut BOOL,
2753 pRect: *mut RECT,
2754 ) -> (),
2755 fn VideoProcessorGetOutputBackgroundColor(
2756 pVideoProcessor: *mut ID3D11VideoProcessor,
2757 pYCbCr: *mut BOOL,
2758 pColor: *mut D3D11_VIDEO_COLOR,
2759 ) -> (),
2760 fn VideoProcessorGetOutputColorSpace(
2761 pVideoProcessor: *mut ID3D11VideoProcessor,
2762 pColorSpace: *mut D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
2763 ) -> (),
2764 fn VideoProcessorGetOutputAlphaFillMode(
2765 pVideoProcessor: *mut ID3D11VideoProcessor,
2766 pAlphaFillMode: *mut D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE,
2767 pStreamIndex: *mut UINT,
2768 ) -> (),
2769 fn VideoProcessorGetOutputConstriction(
2770 pVideoProcessor: *mut ID3D11VideoProcessor,
2771 pEnabled: *mut BOOL,
2772 pSize: *mut SIZE,
2773 ) -> (),
2774 fn VideoProcessorGetOutputStereoMode(
2775 pVideoProcessor: *mut ID3D11VideoProcessor,
2776 pEnabled: *mut BOOL,
2777 ) -> (),
2778 fn VideoProcessorGetOutputExtension(
2779 pVideoProcessor: *mut ID3D11VideoProcessor,
2780 pExtensionGuid: *const GUID,
2781 DataSize: UINT,
2782 pData: *mut c_void,
2783 ) -> HRESULT,
2784 fn VideoProcessorSetStreamFrameFormat(
2785 pVideoProcessor: *mut ID3D11VideoProcessor,
2786 StreamIndex: UINT,
2787 FrameFormat: D3D11_VIDEO_FRAME_FORMAT,
2788 ) -> (),
2789 fn VideoProcessorSetStreamColorSpace(
2790 pVideoProcessor: *mut ID3D11VideoProcessor,
2791 StreamIndex: UINT,
2792 pColorSpace: *const D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
2793 ) -> (),
2794 fn VideoProcessorSetStreamOutputRate(
2795 pVideoProcessor: *mut ID3D11VideoProcessor,
2796 StreamIndex: UINT,
2797 OutputRate: D3D11_VIDEO_PROCESSOR_OUTPUT_RATE,
2798 RepeatFrame: BOOL,
2799 pCustomRate: *const DXGI_RATIONAL,
2800 ) -> (),
2801 fn VideoProcessorSetStreamSourceRect(
2802 pVideoProcessor: *mut ID3D11VideoProcessor,
2803 StreamIndex: UINT,
2804 Enable: BOOL,
2805 pRect: *const RECT,
2806 ) -> (),
2807 fn VideoProcessorSetStreamDestRect(
2808 pVideoProcessor: *mut ID3D11VideoProcessor,
2809 StreamIndex: UINT,
2810 Enable: BOOL,
2811 pRect: *const RECT,
2812 ) -> (),
2813 fn VideoProcessorSetStreamAlpha(
2814 pVideoProcessor: *mut ID3D11VideoProcessor,
2815 StreamIndex: UINT,
2816 Enable: BOOL,
2817 Alpha: FLOAT,
2818 ) -> (),
2819 fn VideoProcessorSetStreamPalette(
2820 pVideoProcessor: *mut ID3D11VideoProcessor,
2821 StreamIndex: UINT,
2822 Count: UINT,
2823 pEntries: *const UINT,
2824 ) -> (),
2825 fn VideoProcessorSetStreamPixelAspectRatio(
2826 pVideoProcessor: *mut ID3D11VideoProcessor,
2827 StreamIndex: UINT,
2828 Enable: BOOL,
2829 pSourceAspectRatio: *const DXGI_RATIONAL,
2830 pDestinationAspectRatio: *const DXGI_RATIONAL,
2831 ) -> (),
2832 fn VideoProcessorSetStreamLumaKey(
2833 pVideoProcessor: *mut ID3D11VideoProcessor,
2834 StreamIndex: UINT,
2835 Enable: BOOL,
2836 Lower: FLOAT,
2837 Upper: FLOAT,
2838 ) -> (),
2839 fn VideoProcessorSetStreamStereoFormat(
2840 pVideoProcessor: *mut ID3D11VideoProcessor,
2841 StreamIndex: UINT,
2842 Enable: BOOL,
2843 Format: D3D11_VIDEO_PROCESSOR_STEREO_FORMAT,
2844 LeftViewFrame0: BOOL,
2845 BaseViewFrame0: BOOL,
2846 FlipMode: D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE,
2847 ) -> (),
2848 fn VideoProcessorSetStreamAutoProcessingMode(
2849 pVideoProcessor: *mut ID3D11VideoProcessor,
2850 StreamIndex: UINT,
2851 Enable: BOOL,
2852 ) -> (),
2853 fn VideoProcessorSetStreamFilter(
2854 pVideoProcessor: *mut ID3D11VideoProcessor,
2855 StreamIndex: UINT,
2856 Filter: D3D11_VIDEO_PROCESSOR_FILTER,
2857 Enable: BOOL,
2858 Level: c_int,
2859 ) -> (),
2860 fn VideoProcessorSetStreamExtension(
2861 pVideoProcessor: *mut ID3D11VideoProcessor,
2862 StreamIndex: UINT,
2863 pExtensionGuid: *const GUID,
2864 DataSize: UINT,
2865 pData: *mut c_void,
2866 ) -> HRESULT,
2867 fn VideoProcessorGetStreamFrameFormat(
2868 pVideoProcessor: *mut ID3D11VideoProcessor,
2869 StreamIndex: UINT,
2870 pFrameFormat: *mut D3D11_VIDEO_FRAME_FORMAT,
2871 ) -> (),
2872 fn VideoProcessorGetStreamColorSpace(
2873 pVideoProcessor: *mut ID3D11VideoProcessor,
2874 StreamIndex: UINT,
2875 pColorSpace: *mut D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
2876 ) -> (),
2877 fn VideoProcessorGetStreamOutputRate(
2878 pVideoProcessor: *mut ID3D11VideoProcessor,
2879 StreamIndex: UINT,
2880 pOutputRate: *mut D3D11_VIDEO_PROCESSOR_OUTPUT_RATE,
2881 pRepeatFrame: *mut BOOL,
2882 pCustomRate: *mut DXGI_RATIONAL,
2883 ) -> (),
2884 fn VideoProcessorGetStreamSourceRect(
2885 pVideoProcessor: *mut ID3D11VideoProcessor,
2886 StreamIndex: UINT,
2887 pEnabled: *mut BOOL,
2888 pRect: *mut RECT,
2889 ) -> (),
2890 fn VideoProcessorGetStreamDestRect(
2891 pVideoProcessor: *mut ID3D11VideoProcessor,
2892 StreamIndex: UINT,
2893 pEnabled: *mut BOOL,
2894 pRect: *mut RECT,
2895 ) -> (),
2896 fn VideoProcessorGetStreamAlpha(
2897 pVideoProcessor: *mut ID3D11VideoProcessor,
2898 StreamIndex: UINT,
2899 pEnabled: *mut BOOL,
2900 pAlpha: *mut FLOAT,
2901 ) -> (),
2902 fn VideoProcessorGetStreamPalette(
2903 pVideoProcessor: *mut ID3D11VideoProcessor,
2904 StreamIndex: UINT,
2905 Count: UINT,
2906 pEntries: *mut UINT,
2907 ) -> (),
2908 fn VideoProcessorGetStreamPixelAspectRatio(
2909 pVideoProcessor: *mut ID3D11VideoProcessor,
2910 StreamIndex: UINT,
2911 pEnabled: *mut BOOL,
2912 pSourceAspectRatio: *mut DXGI_RATIONAL,
2913 pDestinationAspectRatio: *mut DXGI_RATIONAL,
2914 ) -> (),
2915 fn VideoProcessorGetStreamLumaKey(
2916 pVideoProcessor: *mut ID3D11VideoProcessor,
2917 StreamIndex: UINT,
2918 pEnabled: *mut BOOL,
2919 pLower: *mut FLOAT,
2920 pUpper: *mut FLOAT,
2921 ) -> (),
2922 fn VideoProcessorGetStreamStereoFormat(
2923 pVideoProcessor: *mut ID3D11VideoProcessor,
2924 StreamIndex: UINT,
2925 pEnabled: *mut BOOL,
2926 pFormat: *mut D3D11_VIDEO_PROCESSOR_STEREO_FORMAT,
2927 pLeftViewFrame0: *mut BOOL,
2928 pBaseViewFrame0: *mut BOOL,
2929 pFlipMode: *mut D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE,
2930 MonoOffset: *mut c_int,
2931 ) -> (),
2932 fn VideoProcessorGetStreamAutoProcessingMode(
2933 pVideoProcessor: *mut ID3D11VideoProcessor,
2934 StreamIndex: UINT,
2935 pEnabled: *mut BOOL,
2936 ) -> (),
2937 fn VideoProcessorGetStreamFilter(
2938 pVideoProcessor: *mut ID3D11VideoProcessor,
2939 StreamIndex: UINT,
2940 Filter: D3D11_VIDEO_PROCESSOR_FILTER,
2941 pEnabled: *mut BOOL,
2942 pLevel: *mut c_int,
2943 ) -> (),
2944 fn VideoProcessorGetStreamExtension(
2945 pVideoProcessor: *mut ID3D11VideoProcessor,
2946 StreamIndex: UINT,
2947 pExtensionGuid: *const GUID,
2948 DataSize: UINT,
2949 pData: *mut c_void,
2950 ) -> HRESULT,
2951 fn VideoProcessorBlt(
2952 pVideoProcessor: *mut ID3D11VideoProcessor,
2953 pView: *mut ID3D11VideoProcessorOutputView,
2954 OutputFrame: UINT,
2955 StreamCount: UINT,
2956 pStreams: *const D3D11_VIDEO_PROCESSOR_STREAM,
2957 ) -> HRESULT,
2958 fn NegotiateCryptoSessionKeyExchange(
2959 pCryptoSession: *mut ID3D11CryptoSession,
2960 DataSize: UINT,
2961 pData: *mut c_void,
2962 ) -> HRESULT,
2963 fn EncryptionBlt(
2964 pCryptoSession: *mut ID3D11CryptoSession,
2965 pSrcSurface: *mut ID3D11Texture2D,
2966 pDstSurface: *mut ID3D11Texture2D,
2967 IVSize: UINT,
2968 pIV: *mut c_void,
2969 ) -> HRESULT,
2970 fn DecryptionBlt(
2971 pCryptoSession: *mut ID3D11CryptoSession,
2972 pSrcSurface: *mut ID3D11Texture2D,
2973 pDstSurface: *mut ID3D11Texture2D,
2974 pEncryptedBlockInfo: *mut D3D11_ENCRYPTED_BLOCK_INFO,
2975 ContentKeySize: UINT,
2976 pContentKey: *const c_void,
2977 IVSize: UINT,
2978 pIV: *mut c_void,
2979 ) -> HRESULT,
2980 fn StartSessionKeyRefresh(
2981 pCryptoSession: *mut ID3D11CryptoSession,
2982 RandomNumberSize: UINT,
2983 pRandomNumber: *mut c_void,
2984 ) -> HRESULT,
2985 fn FinishSessionKeyRefresh(
2986 pCryptoSession: *mut ID3D11CryptoSession,
2987 ) -> HRESULT,
2988 fn GetEncryptionBltKey(
2989 pCryptoSession: *mut ID3D11CryptoSession,
2990 KeySize: UINT,
2991 pReadbackKey: *mut c_void,
2992 ) -> HRESULT,
2993 fn NegotiateAuthenticatedChannelKeyExchange(
2994 pChannel: *mut ID3D11AuthenticatedChannel,
2995 DataSize: UINT,
2996 pData: *mut c_void,
2997 ) -> HRESULT,
2998 fn QueryAuthenticatedChannel(
2999 pChannel: *mut ID3D11AuthenticatedChannel,
3000 InputSize: UINT,
3001 pInput: *const c_void,
3002 OutputSize: UINT,
3003 pOutput: *mut c_void,
3004 ) -> HRESULT,
3005 fn ConfigureAuthenticatedChannel(
3006 pChannel: *mut ID3D11AuthenticatedChannel,
3007 InputSize: UINT,
3008 pInput: *const c_void,
3009 pOutput: *mut D3D11_AUTHENTICATED_CONFIGURE_OUTPUT,
3010 ) -> HRESULT,
3011 fn VideoProcessorSetStreamRotation(
3012 pVideoProcessor: *mut ID3D11VideoProcessor,
3013 StreamIndex: UINT,
3014 Enable: BOOL,
3015 Rotation: D3D11_VIDEO_PROCESSOR_ROTATION,
3016 ) -> HRESULT,
3017 fn VideoProcessorGetStreamRotation(
3018 pVideoProcessor: *mut ID3D11VideoProcessor,
3019 StreamIndex: UINT,
3020 pEnable: *mut BOOL,
3021 pRotation: *mut D3D11_VIDEO_PROCESSOR_ROTATION,
3022 ) -> HRESULT,
3023 }}
3024 RIDL!{#[uuid(0x10ec4d5b, 0x975a, 0x4689, 0xb9, 0xe4, 0xd0, 0xaa, 0xc3, 0x0f, 0xe3, 0x33)]
3025 interface ID3D11VideoDevice(ID3D11VideoDeviceVtbl): IUnknown(IUnknownVtbl) {
3026 fn CreateVideoDecoder(
3027 pVideoDesc: *const D3D11_VIDEO_DECODER_DESC,
3028 pConfig: *const D3D11_VIDEO_DECODER_CONFIG,
3029 ppDecoder: *mut *mut ID3D11VideoDecoder,
3030 ) -> HRESULT,
3031 fn CreateVideoProcessor(
3032 pEnum: *mut ID3D11VideoProcessorEnumerator,
3033 RateConversionIndex: UINT,
3034 ppVideoProcessor: *mut *mut ID3D11VideoProcessor,
3035 ) -> HRESULT,
3036 fn CreateAuthenticatedChannel(
3037 ChannelType: D3D11_AUTHENTICATED_CHANNEL_TYPE,
3038 ppAuthenticatedChannel: *mut *mut ID3D11AuthenticatedChannel,
3039 ) -> HRESULT,
3040 fn CreateCryptoSession(
3041 pCryptoType: *const GUID,
3042 pDecoderProfile: *const GUID,
3043 pKeyExchangeType: *const GUID,
3044 ppCryptoSession: *mut *mut ID3D11CryptoSession,
3045 ) -> HRESULT,
3046 fn CreateVideoDecoderOutputView(
3047 pResource: *mut ID3D11Resource,
3048 pDesc: *const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC,
3049 ppVDOVView: *mut *mut ID3D11VideoDecoderOutputView,
3050 ) -> HRESULT,
3051 fn CreateVideoProcessorInputView(
3052 pResource: *mut ID3D11Resource,
3053 pEnum: *mut ID3D11VideoProcessorEnumerator,
3054 pDesc: *const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC,
3055 ppVPIView: *mut *mut ID3D11VideoProcessorInputView,
3056 ) -> HRESULT,
3057 fn CreateVideoProcessorOutputView(
3058 pResource: *mut ID3D11Resource,
3059 pEnum: *mut ID3D11VideoProcessorEnumerator,
3060 pDesc: *const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC,
3061 ppVPOView: *mut *mut ID3D11VideoProcessorOutputView,
3062 ) -> HRESULT,
3063 fn CreateVideoProcessorEnumerator(
3064 pDesc: *const D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
3065 ppEnum: *mut *mut ID3D11VideoProcessorEnumerator,
3066 ) -> HRESULT,
3067 fn GetVideoDecoderProfileCount() -> UINT,
3068 fn GetVideoDecoderProfile(
3069 Index: UINT,
3070 pDecoderProfile: *mut GUID,
3071 ) -> HRESULT,
3072 fn CheckVideoDecoderFormat(
3073 pDecoderProfile: *const GUID,
3074 Format: DXGI_FORMAT,
3075 pSupported: *mut BOOL,
3076 ) -> HRESULT,
3077 fn GetVideoDecoderConfigCount(
3078 pDesc: *const D3D11_VIDEO_DECODER_DESC,
3079 pCount: *mut UINT,
3080 ) -> HRESULT,
3081 fn GetVideoDecoderConfig(
3082 pDesc: *const D3D11_VIDEO_DECODER_DESC,
3083 Index: UINT,
3084 pConfig: *mut D3D11_VIDEO_DECODER_CONFIG,
3085 ) -> HRESULT,
3086 fn GetContentProtectionCaps(
3087 pCryptoType: *const GUID,
3088 pDecoderProfile: *const GUID,
3089 pCaps: *mut D3D11_VIDEO_CONTENT_PROTECTION_CAPS,
3090 ) -> HRESULT,
3091 fn CheckCryptoKeyExchange(
3092 pCryptoType: *const GUID,
3093 pDecoderProfile: *const GUID,
3094 Index: UINT,
3095 pKeyExchangeType: *mut GUID,
3096 ) -> HRESULT,
3097 fn SetPrivateData(
3098 guid: REFGUID,
3099 DataSize: UINT,
3100 pData: *const c_void,
3101 ) -> HRESULT,
3102 fn SetPrivateDataInterface(
3103 guid: REFGUID,
3104 pData: *const IUnknown,
3105 ) -> HRESULT,
3106 }}
3107 RIDL!{#[uuid(0xdb6f6ddb, 0xac77, 0x4e88, 0x82, 0x53, 0x81, 0x9d, 0xf9, 0xbb, 0xf1, 0x40)]
3108 interface ID3D11Device(ID3D11DeviceVtbl): IUnknown(IUnknownVtbl) {
3109 fn CreateBuffer(
3110 pDesc: *const D3D11_BUFFER_DESC,
3111 pInitialData: *const D3D11_SUBRESOURCE_DATA,
3112 ppBuffer: *mut *mut ID3D11Buffer,
3113 ) -> HRESULT,
3114 fn CreateTexture1D(
3115 pDesc: *const D3D11_TEXTURE1D_DESC,
3116 pInitialData: *const D3D11_SUBRESOURCE_DATA,
3117 ppTexture1D: *mut *mut ID3D11Texture1D,
3118 ) -> HRESULT,
3119 fn CreateTexture2D(
3120 pDesc: *const D3D11_TEXTURE2D_DESC,
3121 pInitialData: *const D3D11_SUBRESOURCE_DATA,
3122 ppTexture2D: *mut *mut ID3D11Texture2D,
3123 ) -> HRESULT,
3124 fn CreateTexture3D(
3125 pDesc: *const D3D11_TEXTURE3D_DESC,
3126 pInitialData: *const D3D11_SUBRESOURCE_DATA,
3127 ppTexture3D: *mut *mut ID3D11Texture3D,
3128 ) -> HRESULT,
3129 fn CreateShaderResourceView(
3130 pResource: *mut ID3D11Resource,
3131 pDesc: *const D3D11_SHADER_RESOURCE_VIEW_DESC,
3132 ppSRView: *mut *mut ID3D11ShaderResourceView,
3133 ) -> HRESULT,
3134 fn CreateUnorderedAccessView(
3135 pResource: *mut ID3D11Resource,
3136 pDesc: *const D3D11_UNORDERED_ACCESS_VIEW_DESC,
3137 ppUAView: *mut *mut ID3D11UnorderedAccessView,
3138 ) -> HRESULT,
3139 fn CreateRenderTargetView(
3140 pResource: *mut ID3D11Resource,
3141 pDesc: *const D3D11_RENDER_TARGET_VIEW_DESC,
3142 ppRTView: *mut *mut ID3D11RenderTargetView,
3143 ) -> HRESULT,
3144 fn CreateDepthStencilView(
3145 pResource: *mut ID3D11Resource,
3146 pDesc: *const D3D11_DEPTH_STENCIL_VIEW_DESC,
3147 ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
3148 ) -> HRESULT,
3149 fn CreateInputLayout(
3150 pInputElementDescs: *const D3D11_INPUT_ELEMENT_DESC,
3151 NumElements: UINT,
3152 pShaderBytecodeWithInputSignature: *const c_void,
3153 BytecodeLength: SIZE_T,
3154 ppInputLayout: *mut *mut ID3D11InputLayout,
3155 ) -> HRESULT,
3156 fn CreateVertexShader(
3157 pShaderBytecode: *const c_void,
3158 BytecodeLength: SIZE_T,
3159 pClassLinkage: *mut ID3D11ClassLinkage,
3160 ppVertexShader: *mut *mut ID3D11VertexShader,
3161 ) -> HRESULT,
3162 fn CreateGeometryShader(
3163 pShaderBytecode: *const c_void,
3164 BytecodeLength: SIZE_T,
3165 pClassLinkage: *mut ID3D11ClassLinkage,
3166 ppGeometryShader: *mut *mut ID3D11GeometryShader,
3167 ) -> HRESULT,
3168 fn CreateGeometryShaderWithStreamOutput(
3169 pShaderBytecode: *const c_void,
3170 BytecodeLength: SIZE_T,
3171 pSODeclaration: *const D3D11_SO_DECLARATION_ENTRY,
3172 NumEntries: UINT,
3173 pBufferStrides: *const UINT,
3174 NumStrides: UINT,
3175 RasterizedStream: UINT,
3176 pClassLinkage: *mut ID3D11ClassLinkage,
3177 ppGeometryShader: *mut *mut ID3D11GeometryShader,
3178 ) -> HRESULT,
3179 fn CreatePixelShader(
3180 pShaderBytecode: *const c_void,
3181 BytecodeLength: SIZE_T,
3182 pClassLinkage: *mut ID3D11ClassLinkage,
3183 ppPixelShader: *mut *mut ID3D11PixelShader,
3184 ) -> HRESULT,
3185 fn CreateHullShader(
3186 pShaderBytecode: *const c_void,
3187 BytecodeLength: SIZE_T,
3188 pClassLinkage: *mut ID3D11ClassLinkage,
3189 ppHullShader: *mut *mut ID3D11HullShader,
3190 ) -> HRESULT,
3191 fn CreateDomainShader(
3192 pShaderBytecode: *const c_void,
3193 BytecodeLength: SIZE_T,
3194 pClassLinkage: *mut ID3D11ClassLinkage,
3195 ppDomainShader: *mut *mut ID3D11DomainShader,
3196 ) -> HRESULT,
3197 fn CreateComputeShader(
3198 pShaderBytecode: *const c_void,
3199 BytecodeLength: SIZE_T,
3200 pClassLinkage: *mut ID3D11ClassLinkage,
3201 ppComputeShader: *mut *mut ID3D11ComputeShader,
3202 ) -> HRESULT,
3203 fn CreateClassLinkage(
3204 ppLinkage: *mut *mut ID3D11ClassLinkage,
3205 ) -> HRESULT,
3206 fn CreateBlendState(
3207 pBlendStateDesc: *const D3D11_BLEND_DESC,
3208 ppBlendState: *mut *mut ID3D11BlendState,
3209 ) -> HRESULT,
3210 fn CreateDepthStencilState(
3211 pDepthStencilDesc: *const D3D11_DEPTH_STENCIL_DESC,
3212 ppDepthStencilState: *mut *mut ID3D11DepthStencilState,
3213 ) -> HRESULT,
3214 fn CreateRasterizerState(
3215 pRasterizerDesc: *const D3D11_RASTERIZER_DESC,
3216 ppRasterizerState: *mut *mut ID3D11RasterizerState,
3217 ) -> HRESULT,
3218 fn CreateSamplerState(
3219 pSamplerDesc: *const D3D11_SAMPLER_DESC,
3220 ppSamplerState: *mut *mut ID3D11SamplerState,
3221 ) -> HRESULT,
3222 fn CreateQuery(
3223 pQueryDesc: *const D3D11_QUERY_DESC,
3224 ppQuery: *mut *mut ID3D11Query,
3225 ) -> HRESULT,
3226 fn CreatePredicate(
3227 pPredicateDesc: *const D3D11_QUERY_DESC,
3228 ppPredicate: *mut *mut ID3D11Predicate,
3229 ) -> HRESULT,
3230 fn CreateCounter(
3231 pCounterDesc: *const D3D11_COUNTER_DESC,
3232 ppCounter: *mut *mut ID3D11Counter,
3233 ) -> HRESULT,
3234 fn CreateDeferredContext(
3235 ContextFlags: UINT,
3236 ppDeferredContext: *mut *mut ID3D11DeviceContext,
3237 ) -> HRESULT,
3238 fn OpenSharedResource(
3239 hResource: HANDLE,
3240 ReturnedInterface: REFIID,
3241 ppResource: *mut *mut c_void,
3242 ) -> HRESULT,
3243 fn CheckFormatSupport(
3244 Format: DXGI_FORMAT,
3245 pFormatSupport: *mut UINT,
3246 ) -> HRESULT,
3247 fn CheckMultisampleQualityLevels(
3248 Format: DXGI_FORMAT,
3249 SampleCount: UINT,
3250 pNumQualityLevels: *mut UINT,
3251 ) -> HRESULT,
3252 fn CheckCounterInfo(
3253 pCounterInfo: *mut D3D11_COUNTER_INFO,
3254 ) -> (),
3255 fn CheckCounter(
3256 pDesc: *const D3D11_COUNTER_DESC,
3257 pType: *mut D3D11_COUNTER_TYPE,
3258 pActiveCounters: *mut UINT,
3259 szName: LPSTR,
3260 pNameLength: *mut UINT,
3261 szUnits: LPSTR,
3262 pUnitsLength: *mut UINT,
3263 szDescription: LPSTR,
3264 pDescriptionLength: *mut UINT,
3265 ) -> HRESULT,
3266 fn CheckFeatureSupport(
3267 Feature: D3D11_FEATURE,
3268 pFeatureSupportData: *mut c_void,
3269 FeatureSupportDataSize: UINT,
3270 ) -> HRESULT,
3271 fn GetPrivateData(
3272 guid: REFGUID,
3273 pDataSize: *mut UINT,
3274 pData: *mut c_void,
3275 ) -> HRESULT,
3276 fn SetPrivateData(
3277 guid: REFGUID,
3278 DataSize: UINT,
3279 pData: *const c_void,
3280 ) -> HRESULT,
3281 fn SetPrivateDataInterface(
3282 guid: REFGUID,
3283 pData: *const IUnknown,
3284 ) -> HRESULT,
3285 fn GetFeatureLevel() -> D3D_FEATURE_LEVEL,
3286 fn GetCreationFlags() -> UINT,
3287 fn GetDeviceRemovedReason() -> HRESULT,
3288 fn GetImmediateContext(
3289 ppImmediateContext: *mut *mut ID3D11DeviceContext,
3290 ) -> (),
3291 fn SetExceptionMode(
3292 RaiseFlags: UINT,
3293 ) -> HRESULT,
3294 fn GetExceptionMode() -> UINT,
3295 }}
3296 ENUM!{enum D3D11_CREATE_DEVICE_FLAG {
3297 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
3298 D3D11_CREATE_DEVICE_DEBUG = 0x2,
3299 D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
3300 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
3301 D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
3302 D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
3303 D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
3304 D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
3305 D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800,
3306 }}
3307 pub const D3D11_SDK_VERSION: DWORD = 7;
3308 #[inline]
D3D11CalcSubresource(MipSlice: UINT, ArraySlice: UINT, MipLevels: UINT) -> UINT3309 pub fn D3D11CalcSubresource(MipSlice: UINT, ArraySlice: UINT, MipLevels: UINT) -> UINT {
3310 MipSlice + ArraySlice * MipLevels
3311 }
3312 extern "system" {
D3D11CreateDevice( pAdapter: *mut IDXGIAdapter, DriverType: D3D_DRIVER_TYPE, Software: HMODULE, Flags: UINT, pFeatureLevels: *const D3D_FEATURE_LEVEL, FeatureLevels: UINT, SDKVersion: UINT, ppDevice: *mut *mut ID3D11Device, pFeatureLevel: *mut D3D_FEATURE_LEVEL, ppImmediateContext: *mut *mut ID3D11DeviceContext, ) -> HRESULT3313 pub fn D3D11CreateDevice(
3314 pAdapter: *mut IDXGIAdapter,
3315 DriverType: D3D_DRIVER_TYPE,
3316 Software: HMODULE,
3317 Flags: UINT,
3318 pFeatureLevels: *const D3D_FEATURE_LEVEL,
3319 FeatureLevels: UINT,
3320 SDKVersion: UINT,
3321 ppDevice: *mut *mut ID3D11Device,
3322 pFeatureLevel: *mut D3D_FEATURE_LEVEL,
3323 ppImmediateContext: *mut *mut ID3D11DeviceContext,
3324 ) -> HRESULT;
D3D11CreateDeviceAndSwapChain( pAdapter: *mut IDXGIAdapter, DriverType: D3D_DRIVER_TYPE, Software: HMODULE, Flags: UINT, pFeatureLevels: *const D3D_FEATURE_LEVEL, FeatureLevels: UINT, SDKVersion: UINT, pSwapChainDesc: *const DXGI_SWAP_CHAIN_DESC, ppSwapChain: *mut *mut IDXGISwapChain, ppDevice: *mut *mut ID3D11Device, pFeatureLevel: *mut D3D_FEATURE_LEVEL, ppImmediateContext: *mut *mut ID3D11DeviceContext, ) -> HRESULT3325 pub fn D3D11CreateDeviceAndSwapChain(
3326 pAdapter: *mut IDXGIAdapter,
3327 DriverType: D3D_DRIVER_TYPE,
3328 Software: HMODULE,
3329 Flags: UINT,
3330 pFeatureLevels: *const D3D_FEATURE_LEVEL,
3331 FeatureLevels: UINT,
3332 SDKVersion: UINT,
3333 pSwapChainDesc: *const DXGI_SWAP_CHAIN_DESC,
3334 ppSwapChain: *mut *mut IDXGISwapChain,
3335 ppDevice: *mut *mut ID3D11Device,
3336 pFeatureLevel: *mut D3D_FEATURE_LEVEL,
3337 ppImmediateContext: *mut *mut ID3D11DeviceContext,
3338 ) -> HRESULT;
3339 }
3340 DEFINE_GUID!{IID_ID3D11DeviceChild,
3341 0x1841e5c8, 0x16b0, 0x489b, 0xbc, 0xc8, 0x44, 0xcf, 0xb0, 0xd5, 0xde, 0xae}
3342 DEFINE_GUID!{IID_ID3D11DepthStencilState,
3343 0x03823efb, 0x8d8f, 0x4e1c, 0x9a, 0xa2, 0xf6, 0x4b, 0xb2, 0xcb, 0xfd, 0xf1}
3344 DEFINE_GUID!{IID_ID3D11BlendState,
3345 0x75b68faa, 0x347d, 0x4159, 0x8f, 0x45, 0xa0, 0x64, 0x0f, 0x01, 0xcd, 0x9a}
3346 DEFINE_GUID!{IID_ID3D11RasterizerState,
3347 0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5, 0x06, 0xfc, 0x04, 0x20, 0x0b, 0x6e, 0xe7}
3348 DEFINE_GUID!{IID_ID3D11Resource,
3349 0xdc8e63f3, 0xd12b, 0x4952, 0xb4, 0x7b, 0x5e, 0x45, 0x02, 0x6a, 0x86, 0x2d}
3350 DEFINE_GUID!{IID_ID3D11Buffer,
3351 0x48570b85, 0xd1ee, 0x4fcd, 0xa2, 0x50, 0xeb, 0x35, 0x07, 0x22, 0xb0, 0x37}
3352 DEFINE_GUID!{IID_ID3D11Texture1D,
3353 0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4, 0xc8, 0x43, 0x9a, 0xf2, 0xef, 0x56, 0x4c}
3354 DEFINE_GUID!{IID_ID3D11Texture2D,
3355 0x6f15aaf2, 0xd208, 0x4e89, 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c}
3356 DEFINE_GUID!{IID_ID3D11Texture3D,
3357 0x037e866e, 0xf56d, 0x4357, 0xa8, 0xaf, 0x9d, 0xab, 0xbe, 0x6e, 0x25, 0x0e}
3358 DEFINE_GUID!{IID_ID3D11View,
3359 0x839d1216, 0xbb2e, 0x412b, 0xb7, 0xf4, 0xa9, 0xdb, 0xeb, 0xe0, 0x8e, 0xd1}
3360 DEFINE_GUID!{IID_ID3D11ShaderResourceView,
3361 0xb0e06fe0, 0x8192, 0x4e1a, 0xb1, 0xca, 0x36, 0xd7, 0x41, 0x47, 0x10, 0xb2}
3362 DEFINE_GUID!{IID_ID3D11RenderTargetView,
3363 0xdfdba067, 0x0b8d, 0x4865, 0x87, 0x5b, 0xd7, 0xb4, 0x51, 0x6c, 0xc1, 0x64}
3364 DEFINE_GUID!{IID_ID3D11DepthStencilView,
3365 0x9fdac92a, 0x1876, 0x48c3, 0xaf, 0xad, 0x25, 0xb9, 0x4f, 0x84, 0xa9, 0xb6}
3366 DEFINE_GUID!{IID_ID3D11UnorderedAccessView,
3367 0x28acf509, 0x7f5c, 0x48f6, 0x86, 0x11, 0xf3, 0x16, 0x01, 0x0a, 0x63, 0x80}
3368 DEFINE_GUID!{IID_ID3D11VertexShader,
3369 0x3b301d64, 0xd678, 0x4289, 0x88, 0x97, 0x22, 0xf8, 0x92, 0x8b, 0x72, 0xf3}
3370 DEFINE_GUID!{IID_ID3D11HullShader,
3371 0x8e5c6061, 0x628a, 0x4c8e, 0x82, 0x64, 0xbb, 0xe4, 0x5c, 0xb3, 0xd5, 0xdd}
3372 DEFINE_GUID!{IID_ID3D11DomainShader,
3373 0xf582c508, 0x0f36, 0x490c, 0x99, 0x77, 0x31, 0xee, 0xce, 0x26, 0x8c, 0xfa}
3374 DEFINE_GUID!{IID_ID3D11GeometryShader,
3375 0x38325b96, 0xeffb, 0x4022, 0xba, 0x02, 0x2e, 0x79, 0x5b, 0x70, 0x27, 0x5c}
3376 DEFINE_GUID!{IID_ID3D11PixelShader,
3377 0xea82e40d, 0x51dc, 0x4f33, 0x93, 0xd4, 0xdb, 0x7c, 0x91, 0x25, 0xae, 0x8c}
3378 DEFINE_GUID!{IID_ID3D11ComputeShader,
3379 0x4f5b196e, 0xc2bd, 0x495e, 0xbd, 0x01, 0x1f, 0xde, 0xd3, 0x8e, 0x49, 0x69}
3380 DEFINE_GUID!{IID_ID3D11InputLayout,
3381 0xe4819ddc, 0x4cf0, 0x4025, 0xbd, 0x26, 0x5d, 0xe8, 0x2a, 0x3e, 0x07, 0xb7}
3382 DEFINE_GUID!{IID_ID3D11SamplerState,
3383 0xda6fea51, 0x564c, 0x4487, 0x98, 0x10, 0xf0, 0xd0, 0xf9, 0xb4, 0xe3, 0xa5}
3384 DEFINE_GUID!{IID_ID3D11Asynchronous,
3385 0x4b35d0cd, 0x1e15, 0x4258, 0x9c, 0x98, 0x1b, 0x13, 0x33, 0xf6, 0xdd, 0x3b}
3386 DEFINE_GUID!{IID_ID3D11Query,
3387 0xd6c00747, 0x87b7, 0x425e, 0xb8, 0x4d, 0x44, 0xd1, 0x08, 0x56, 0x0a, 0xfd}
3388 DEFINE_GUID!{IID_ID3D11Predicate,
3389 0x9eb576dd, 0x9f77, 0x4d86, 0x81, 0xaa, 0x8b, 0xab, 0x5f, 0xe4, 0x90, 0xe2}
3390 DEFINE_GUID!{IID_ID3D11Counter,
3391 0x6e8c49fb, 0xa371, 0x4770, 0xb4, 0x40, 0x29, 0x08, 0x60, 0x22, 0xb7, 0x41}
3392 DEFINE_GUID!{IID_ID3D11ClassInstance,
3393 0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94, 0x36, 0x86, 0x62, 0xa6, 0x57, 0x97, 0xcb}
3394 DEFINE_GUID!{IID_ID3D11ClassLinkage,
3395 0xddf57cba, 0x9543, 0x46e4, 0xa1, 0x2b, 0xf2, 0x07, 0xa0, 0xfe, 0x7f, 0xed}
3396 DEFINE_GUID!{IID_ID3D11CommandList,
3397 0xa24bc4d1, 0x769e, 0x43f7, 0x80, 0x13, 0x98, 0xff, 0x56, 0x6c, 0x18, 0xe2}
3398 DEFINE_GUID!{IID_ID3D11DeviceContext,
3399 0xc0bfa96c, 0xe089, 0x44fb, 0x8e, 0xaf, 0x26, 0xf8, 0x79, 0x61, 0x90, 0xda}
3400 DEFINE_GUID!{IID_ID3D11VideoDecoder,
3401 0x3c9c5b51, 0x995d, 0x48d1, 0x9b, 0x8d, 0xfa, 0x5c, 0xae, 0xde, 0xd6, 0x5c}
3402 DEFINE_GUID!{IID_ID3D11VideoProcessorEnumerator,
3403 0x31627037, 0x53ab, 0x4200, 0x90, 0x61, 0x05, 0xfa, 0xa9, 0xab, 0x45, 0xf9}
3404 DEFINE_GUID!{IID_ID3D11VideoProcessor,
3405 0x1d7b0652, 0x185f, 0x41c6, 0x85, 0xce, 0x0c, 0x5b, 0xe3, 0xd4, 0xae, 0x6c}
3406 DEFINE_GUID!{IID_ID3D11AuthenticatedChannel,
3407 0x3015a308, 0xdcbd, 0x47aa, 0xa7, 0x47, 0x19, 0x24, 0x86, 0xd1, 0x4d, 0x4a}
3408 DEFINE_GUID!{IID_ID3D11CryptoSession,
3409 0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3, 0x9d, 0xd5, 0xc8, 0x65, 0x84, 0x57, 0x20}
3410 DEFINE_GUID!{IID_ID3D11VideoDecoderOutputView,
3411 0xc2931aea, 0x2a85, 0x4f20, 0x86, 0x0f, 0xfb, 0xa1, 0xfd, 0x25, 0x6e, 0x18}
3412 DEFINE_GUID!{IID_ID3D11VideoProcessorInputView,
3413 0x11ec5a5f, 0x51dc, 0x4945, 0xab, 0x34, 0x6e, 0x8c, 0x21, 0x30, 0x0e, 0xa5}
3414 DEFINE_GUID!{IID_ID3D11VideoProcessorOutputView,
3415 0xa048285e, 0x25a9, 0x4527, 0xbd, 0x93, 0xd6, 0x8b, 0x68, 0xc4, 0x42, 0x54}
3416 DEFINE_GUID!{IID_ID3D11VideoContext,
3417 0x61f21c45, 0x3c0e, 0x4a74, 0x9c, 0xea, 0x67, 0x10, 0x0d, 0x9a, 0xd5, 0xe4}
3418 DEFINE_GUID!{IID_ID3D11VideoDevice,
3419 0x10ec4d5b, 0x975a, 0x4689, 0xb9, 0xe4, 0xd0, 0xaa, 0xc3, 0x0f, 0xe3, 0x33}
3420 DEFINE_GUID!{IID_ID3D11Device,
3421 0xdb6f6ddb, 0xac77, 0x4e88, 0x82, 0x53, 0x81, 0x9d, 0xf9, 0xbb, 0xf1, 0x40}
3422