1 module aurora.directx.d3d11.d3d11_0;
2 
3 public import std.bitmanip;
4 public import aurora.directx.com;
5 public import aurora.directx.dxgi;
6 public import aurora.directx.d3d.d3dcommon;
7 public import aurora.directx.d3d11.d3d11shader;
8 public import aurora.directx.d3d11.d3d11sdklayers;
9 public import aurora.directx.d3d11.d3d11shadertracing;
10 
11 public: 
12 
13 ///
14 /// Constants
15 ///
16 enum int D3D11_16BIT_INDEX_STRIP_CUT_VALUE	= 0xffff;
17 enum int D3D11_32BIT_INDEX_STRIP_CUT_VALUE	= 0xffffffff;
18 enum int D3D11_8BIT_INDEX_STRIP_CUT_VALUE	= 0xff;
19 enum int D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT	= 9;
20 enum int D3D11_CLIP_OR_CULL_DISTANCE_COUNT	= 8;
21 enum int D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT	= 2;
22 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT	= 14;
23 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS	= 4;
24 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT	= 32;
25 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT	= 15;
26 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT	= 16;
27 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS	= 4;
28 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT	= 15;
29 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST	= 1;
30 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS	= 1;
31 enum int D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT	= 64;
32 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS	= 4;
33 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT	= 1;
34 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST	= 1;
35 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS	= 1;
36 enum int D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT	= 32;
37 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS	= 1;
38 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT	= 128;
39 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST	= 1;
40 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS	= 1;
41 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT	= 128;
42 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS	= 1;
43 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT	= 16;
44 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST	= 1;
45 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS	= 1;
46 enum int D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT	= 16;
47 enum int D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT	= 32;
48 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS	= 4;
49 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT	= 32;
50 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COUNT	= 4096;
51 enum int D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST	= 3;
52 enum int D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS	= 3;
53 enum int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX	= 10;
54 enum int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN	= -10;
55 enum int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE	= -8;
56 enum int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE	= 7;
57 enum int D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 256;
58 enum int D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP	= 64;
59 enum int D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 240;
60 enum int D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP	= 68;
61 enum int D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 224;
62 enum int D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP	= 72;
63 enum int D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 208;
64 enum int D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP	= 76;
65 enum int D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 192;
66 enum int D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP	= 84;
67 enum int D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 176;
68 enum int D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP	= 92;
69 enum int D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 160;
70 enum int D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP	= 100;
71 enum int D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 144;
72 enum int D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP	= 112;
73 enum int D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 128;
74 enum int D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP	= 128;
75 enum int D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 112;
76 enum int D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP	= 144;
77 enum int D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 96;
78 enum int D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP	= 168;
79 enum int D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 80;
80 enum int D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP	= 204;
81 enum int D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 64;
82 enum int D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP	= 256;
83 enum int D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 48;
84 enum int D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP	= 34;
85 enum int D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 32;
86 enum int D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP	= 512;
87 enum int D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 16;
88 enum int D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP	= 768;
89 enum int D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION	= 1;
90 enum int D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT	= 256;
91 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP	= 768;
92 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_X	= 768;
93 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_Y	= 768;
94 enum int D3D11_CS_4_X_UAV_REGISTER_COUNT	= 1;
95 enum int D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION	= 65535;
96 enum int D3D11_CS_TGSM_REGISTER_COUNT	= 8192;
97 enum int D3D11_CS_TGSM_REGISTER_READS_PER_INST = 1;
98 enum int D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1;
99 enum int D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1;
100 enum int D3D11_CS_THREADGROUPID_REGISTER_COMPONENTS = 3;
101 enum int D3D11_CS_THREADGROUPID_REGISTER_COUNT = 1;
102 enum int D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1;
103 enum int D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1;
104 enum int D3D11_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3;
105 enum int D3D11_CS_THREADIDINGROUP_REGISTER_COUNT = 1;
106 enum int D3D11_CS_THREADID_REGISTER_COMPONENTS = 3;
107 enum int D3D11_CS_THREADID_REGISTER_COUNT = 1;
108 enum int D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024;
109 enum int D3D11_CS_THREAD_GROUP_MAX_X = 1024;
110 enum int D3D11_CS_THREAD_GROUP_MAX_Y = 1024;
111 enum int D3D11_CS_THREAD_GROUP_MAX_Z = 64;
112 enum int D3D11_CS_THREAD_GROUP_MIN_X = 1;
113 enum int D3D11_CS_THREAD_GROUP_MIN_Y = 1;
114 enum int D3D11_CS_THREAD_GROUP_MIN_Z = 1;
115 enum int D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384;
116 enum float D3D11_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f;
117 enum float D3D11_DEFAULT_BLEND_FACTOR_BLUE = 1.0f;
118 enum float D3D11_DEFAULT_BLEND_FACTOR_GREEN = 1.0f;
119 enum float D3D11_DEFAULT_BLEND_FACTOR_RED = 1.0f;
120 enum float D3D11_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f;
121 enum int D3D11_DEFAULT_DEPTH_BIAS = 0;
122 enum float D3D11_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f;
123 enum int D3D11_DEFAULT_MAX_ANISOTROPY = 16;
124 enum float D3D11_DEFAULT_MIP_LOD_BIAS = 0.0f;
125 enum int D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
126 enum int D3D11_DEFAULT_SAMPLE_MASK = 0xffffffff;
127 enum int D3D11_DEFAULT_SCISSOR_ENDX = 0;
128 enum int D3D11_DEFAULT_SCISSOR_ENDY = 0;
129 enum int D3D11_DEFAULT_SCISSOR_STARTX = 0;
130 enum int D3D11_DEFAULT_SCISSOR_STARTY = 0;
131 enum float D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f;
132 enum int D3D11_DEFAULT_STENCIL_READ_MASK = 0xff;
133 enum int D3D11_DEFAULT_STENCIL_REFERENCE = 0;
134 enum int D3D11_DEFAULT_STENCIL_WRITE_MASK = 0xff;
135 enum int D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX	= 0;
136 enum int D3D11_DEFAULT_VIEWPORT_HEIGHT	= 0;
137 enum float D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f;
138 enum float D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f;
139 enum int D3D11_DEFAULT_VIEWPORT_TOPLEFTX	= 0;
140 enum int D3D11_DEFAULT_VIEWPORT_TOPLEFTY	= 0;
141 enum int D3D11_DEFAULT_VIEWPORT_WIDTH	= 0;
142 enum int D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS	= 3968;
143 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS	= 4;
144 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
145 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT	= 32;
146 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST	= 2;
147 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS	= 1;
148 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS	= 3;
149 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
150 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT	= 1;
151 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST	= 2;
152 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS	= 1;
153 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS	= 4;
154 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT	= 32;
155 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT	= 32;
156 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST	= 2;
157 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS	= 1;
158 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS	= 1;
159 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
160 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT	= 1;
161 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST	= 2;
162 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS	= 1;
163 enum int D3D11_DS_OUTPUT_REGISTER_COMPONENTS	= 4;
164 enum int D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
165 enum int D3D11_DS_OUTPUT_REGISTER_COUNT	= 32;
166 enum float D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP	= 0.6f;
167 enum float D3D11_FLOAT32_MAX = 3.402823466e+38f;
168 enum float D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
169 enum float D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f;
170 enum float D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f;
171 enum float D3D11_FLOAT_TO_SRGB_OFFSET = 0.055f;
172 enum float D3D11_FLOAT_TO_SRGB_SCALE_1 = 12.92f;
173 enum float D3D11_FLOAT_TO_SRGB_SCALE_2 = 1.055f;
174 enum float D3D11_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f;
175 enum float D3D11_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f;
176 enum float D3D11_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f;
177 enum float D3D11_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f;
178 enum float D3D11_FTOU_INSTRUCTION_MIN_INPUT = 0.0f;
179 enum int D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST	= 2;
180 enum int D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS	= 1;
181 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
182 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
183 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT	= 1;
184 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS	= 1;
185 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT	= 32;
186 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT	= 1;
187 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST	= 2;
188 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS	= 1;
189 enum int D3D11_GS_INPUT_REGISTER_COMPONENTS	= 4;
190 enum int D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
191 enum int D3D11_GS_INPUT_REGISTER_COUNT	= 32;
192 enum int D3D11_GS_INPUT_REGISTER_READS_PER_INST	= 2;
193 enum int D3D11_GS_INPUT_REGISTER_READ_PORTS	= 1;
194 enum int D3D11_GS_INPUT_REGISTER_VERTICES	= 32;
195 enum int D3D11_GS_MAX_INSTANCE_COUNT	= 32;
196 enum int D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES	= 1024;
197 enum int D3D11_GS_OUTPUT_ELEMENTS	= 32;
198 enum int D3D11_GS_OUTPUT_REGISTER_COMPONENTS	= 4;
199 enum int D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
200 enum int D3D11_GS_OUTPUT_REGISTER_COUNT	= 32;
201 enum int D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT	= 32;
202 enum int D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT	= 32;
203 enum int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS	= 4;
204 enum int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
205 enum int D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST	= 2;
206 enum int D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS	= 1;
207 enum int D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND	= 0xffffffff;
208 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
209 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
210 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT	= 1;
211 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST	= 2;
212 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS	= 1;
213 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
214 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
215 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT	= 1;
216 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST	= 2;
217 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS	= 1;
218 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS	= 1;
219 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
220 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT	= 1;
221 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST	= 2;
222 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS	= 1;
223 enum int D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND	= 0xffffffff;
224 enum float D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = 1.0f;
225 enum float D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = 64.0f;
226 enum int D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS	= 3968;
227 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS	= 1;
228 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
229 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT	= 1;
230 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST	= 2;
231 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS	= 1;
232 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS	= 4;
233 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT	= 32;
234 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT	= 32;
235 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST	= 2;
236 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS	= 1;
237 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS	= 128;
238 enum int D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES	= 0;
239 enum int D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY	= 0;
240 enum int D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES	= 0;
241 enum int D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT	= 1;
242 enum int D3D11_IA_INSTANCE_ID_BIT_COUNT	= 32;
243 enum int D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT	= 32;
244 enum int D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT	= 32;
245 enum int D3D11_IA_PRIMITIVE_ID_BIT_COUNT	= 32;
246 enum int D3D11_IA_VERTEX_ID_BIT_COUNT	= 32;
247 enum int D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT	= 32;
248 enum int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS	= 128;
249 enum int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT	= 32;
250 enum int D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT	= 0xffffffff;
251 enum int D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER	= 0xffffffff;
252 enum int D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL	= 0xffffffff;
253 enum int D3D11_KEEP_UNORDERED_ACCESS_VIEWS	= 0xffffffff;
254 enum float D3D11_LINEAR_GAMMA	= 1.0f;
255 enum int D3D11_MAJOR_VERSION	= 11;
256 enum float D3D11_MAX_BORDER_COLOR_COMPONENT	= 1.0f;
257 enum float D3D11_MAX_DEPTH	= 1.0f;
258 enum int D3D11_MAX_MAXANISOTROPY	= 16;
259 enum int D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT	= 32;
260 enum float D3D11_MAX_POSITION_VALUE	= 3.402823466e+34f;
261 enum int D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP	= 17;
262 enum int D3D11_MINOR_VERSION	= 0;
263 enum float D3D11_MIN_BORDER_COLOR_COMPONENT	= 0.0f;
264 enum float D3D11_MIN_DEPTH	= 0.0f;
265 enum int D3D11_MIN_MAXANISOTROPY	= 0;
266 enum float D3D11_MIP_LOD_BIAS_MAX	= 15.99f;
267 enum float D3D11_MIP_LOD_BIAS_MIN	= -16.0f;
268 enum int D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT	= 8;
269 enum int D3D11_MIP_LOD_RANGE_BIT_COUNT	= 8;
270 enum float D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH	= 1.4f;
271 enum int D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT	= 0;
272 enum int D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT	= 15;
273 enum int D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT	= 16;
274 enum int D3D11_PS_CS_UAV_REGISTER_COMPONENTS	= 1;
275 enum int D3D11_PS_CS_UAV_REGISTER_COUNT	= 8;
276 enum int D3D11_PS_CS_UAV_REGISTER_READS_PER_INST	= 1;
277 enum int D3D11_PS_CS_UAV_REGISTER_READ_PORTS	= 1;
278 enum int D3D11_PS_FRONTFACING_DEFAULT_VALUE	= 0xffffffff;
279 enum int D3D11_PS_FRONTFACING_FALSE_VALUE	= 0;
280 enum int D3D11_PS_FRONTFACING_TRUE_VALUE	= 0xffffffff;
281 enum int D3D11_PS_INPUT_REGISTER_COMPONENTS	= 4;
282 enum int D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
283 enum int D3D11_PS_INPUT_REGISTER_COUNT	= 32;
284 enum int D3D11_PS_INPUT_REGISTER_READS_PER_INST	= 2;
285 enum int D3D11_PS_INPUT_REGISTER_READ_PORTS	= 1;
286 enum float D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT	= 0.0f;
287 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS	= 1;
288 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT	= 32;
289 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT	= 1;
290 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS	= 1;
291 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT	= 32;
292 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COUNT	= 1;
293 enum int D3D11_PS_OUTPUT_REGISTER_COMPONENTS	= 4;
294 enum int D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
295 enum int D3D11_PS_OUTPUT_REGISTER_COUNT	= 8;
296 enum float D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT	= 0.5f;
297 enum int D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT	= 16;
298 enum int D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE	= 4096;
299 enum int D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP	= 27;
300 enum int D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT	= 4096;
301 enum int D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE	= 4096;
302 enum int D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP	= 32;
303 enum int D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP	= 32;
304 enum int D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION	= 16384;
305 enum int D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT	= 1024;
306 enum int D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT	= 4096;
307 enum int D3D11_REQ_MAXANISOTROPY	= 16;
308 enum int D3D11_REQ_MIP_LEVELS	= 15;
309 enum int D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES	= 2048;
310 enum int D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE	= 4096;
311 enum int D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH	= 16384;
312 enum int D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM	= 128;
313 enum float D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM	= 0.25f;
314 enum int D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM	= 2048;
315 enum int D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP	= 20;
316 enum int D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE	= 4096;
317 enum int D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION	= 2048;
318 enum int D3D11_REQ_TEXTURE1D_U_DIMENSION	= 16384;
319 enum int D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION	= 2048;
320 enum int D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION	= 16384;
321 enum int D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION	= 2048;
322 enum int D3D11_REQ_TEXTURECUBE_DIMENSION	= 16384;
323 enum int D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL	= 0;
324 enum int D3D11_SHADER_MAJOR_VERSION	= 5;
325 enum int D3D11_SHADER_MAX_INSTANCES	= 65535;
326 enum int D3D11_SHADER_MAX_INTERFACES	= 253;
327 enum int D3D11_SHADER_MAX_INTERFACE_CALL_SITES	= 4096;
328 enum int D3D11_SHADER_MAX_TYPES	= 65535;
329 enum int D3D11_SHADER_MINOR_VERSION	= 0;
330 enum int D3D11_SHIFT_INSTRUCTION_PAD_VALUE	= 0;
331 enum int D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT	= 5;
332 enum int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT	= 8;
333 enum int D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES	= 2048;
334 enum int D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES	= 512;
335 enum int D3D11_SO_BUFFER_SLOT_COUNT	= 4;
336 enum int D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP	= 0xffffffff;
337 enum int D3D11_SO_NO_RASTERIZED_STREAM	= 0xffffffff;
338 enum int D3D11_SO_OUTPUT_COMPONENT_COUNT	= 128;
339 enum int D3D11_SO_STREAM_COUNT	= 4;
340 enum int D3D11_SPEC_DATE_DAY	= 16;
341 enum int D3D11_SPEC_DATE_MONTH	= 05;
342 enum int D3D11_SPEC_DATE_YEAR	= 2011;
343 enum float D3D11_SPEC_VERSION	= 1.07f;
344 enum float D3D11_SRGB_GAMMA	= 2.2f;
345 enum float D3D11_SRGB_TO_FLOAT_DENOMINATOR_1	= 12.92f;
346 enum float D3D11_SRGB_TO_FLOAT_DENOMINATOR_2	= 1.055f;
347 enum float D3D11_SRGB_TO_FLOAT_EXPONENT	= 2.4f;
348 enum float D3D11_SRGB_TO_FLOAT_OFFSET	= 0.055f;
349 enum float D3D11_SRGB_TO_FLOAT_THRESHOLD	= 0.04045f;
350 enum float D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP	= 0.5f;
351 enum int D3D11_STANDARD_COMPONENT_BIT_COUNT	= 32;
352 enum int D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED	= 64;
353 enum int D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE	= 4;
354 enum int D3D11_STANDARD_PIXEL_COMPONENT_COUNT	= 128;
355 enum int D3D11_STANDARD_PIXEL_ELEMENT_COUNT	= 32;
356 enum int D3D11_STANDARD_VECTOR_SIZE	= 4;
357 enum int D3D11_STANDARD_VERTEX_ELEMENT_COUNT	= 32;
358 enum int D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT	= 64;
359 enum int D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT	= 8;
360 enum int D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT	= 8;
361 enum int D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR	= 64;
362 enum int D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR	= 64;
363 enum int D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR	= 63;
364 enum int D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR	= 64;
365 enum int D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR	= 2;
366 enum int D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR	= 1;
367 enum int D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR	= 1;
368 enum int D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT	= 16;
369 enum int D3D11_UNBOUND_MEMORY_ACCESS_RESULT	= 0;
370 enum int D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX	= 15;
371 enum int D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE	= 16;
372 enum int D3D11_VIEWPORT_BOUNDS_MAX	= 32767;
373 enum int D3D11_VIEWPORT_BOUNDS_MIN	= -32768;
374 enum int D3D11_VS_INPUT_REGISTER_COMPONENTS	= 4;
375 enum int D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 3;
376 enum int D3D11_VS_INPUT_REGISTER_COUNT	= 32;
377 enum int D3D11_VS_INPUT_REGISTER_READS_PER_INST	= 2;
378 enum int D3D11_VS_INPUT_REGISTER_READ_PORTS	= 1;
379 enum int D3D11_VS_OUTPUT_REGISTER_COMPONENTS	= 4;
380 enum int D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
381 enum int D3D11_VS_OUTPUT_REGISTER_COUNT	= 32;
382 enum int D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT	= 10;
383 enum int D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP	= 25;
384 enum int D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP	= 25;
385 enum int D3D11_APPEND_ALIGNED_ELEMENT = 0xffffffff;
386 
387 enum int D3D11_FILTER_REDUCTION_TYPE_MASK = 0x3;
388 enum int D3D11_FILTER_REDUCTION_TYPE_SHIFT = 7;
389 enum int D3D11_FILTER_TYPE_MASK = 0x3;
390 enum int D3D11_MIN_FILTER_SHIFT = 4;
391 enum int D3D11_MAG_FILTER_SHIFT = 2;
392 enum int D3D11_MIP_FILTER_SHIFT = 0;
393 enum int D3D11_COMPARISON_FILTERING_BIT = 0x80;
394 enum int D3D11_ANISOTROPIC_FILTERING_BIT = 0x40;
395 
396 const IID D3D11_KEY_EXCHANGE_RSAES_OAEP = {0xc1949895, 0xd72a, 0x4a1d, [0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20]};
397 const IID D3D11_CRYPTO_TYPE_AES128_CTR = {0x9b6bd711, 0x4f74, 0x41c9, [0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f]};
398 const IID D3D11_DECODER_ENCRYPTION_HW_CENC = {0x89d6ac4f, 0x9f2, 0x4229, [0xb2, 0xcd, 0x37, 0x74, 0xa, 0x6d, 0xfd, 0x81]};
399 const IID D3D11_KEY_EXCHANGE_HW_PROTECTION = {0xb1170d8a, 0x628d, 0x4da3, [0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70]};
400 const IID D3D11_DECODER_PROFILE_MPEG2_MOCOMP = {0xe6a9f44b, 0x61b0, 0x4563, [0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66]};
401 const IID D3D11_DECODER_PROFILE_MPEG2_IDCT = {0xbf22ad00, 0x03ea, 0x4690, [0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e]};
402 const IID D3D11_DECODER_PROFILE_MPEG2_VLD = {0xee27417f, 0x5e28, 0x4e65, [0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9]};
403 const IID D3D11_DECODER_PROFILE_MPEG1_VLD = {0x6f3ec719, 0x3735, 0x42cc, [0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16]};
404 const IID D3D11_DECODER_PROFILE_MPEG2and1_VLD = {0x86695f12, 0x340e, 0x4f04, [0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60]};
405 const IID D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT = {0x1b81be64, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
406 const IID D3D11_DECODER_PROFILE_H264_MOCOMP_FGT = {0x1b81be65, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
407 const IID D3D11_DECODER_PROFILE_H264_IDCT_NOFGT = {0x1b81be66, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
408 const IID D3D11_DECODER_PROFILE_H264_IDCT_FGT = {0x1b81be67, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
409 const IID D3D11_DECODER_PROFILE_H264_VLD_NOFGT = {0x1b81be68, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
410 const IID D3D11_DECODER_PROFILE_H264_VLD_FGT = {0x1b81be69, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
411 const IID D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT = {0xd5f04ff9, 0x3418, 0x45d8, [0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd]};
412 const IID D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT = {0xd79be8da, 0x0cf1, 0x4c81, [0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d]};
413 const IID D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT = {0xf9aaccbb, 0xc2b6, 0x4cfc, [0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52]};
414 const IID D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT = {0x705b9d82, 0x76cf, 0x49d6, [0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c]};
415 const IID D3D11_DECODER_PROFILE_WMV8_POSTPROC = {0x1b81be80, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
416 const IID D3D11_DECODER_PROFILE_WMV8_MOCOMP = {0x1b81be81, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
417 const IID D3D11_DECODER_PROFILE_WMV9_POSTPROC = {0x1b81be90, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
418 const IID D3D11_DECODER_PROFILE_WMV9_MOCOMP = {0x1b81be91, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
419 const IID D3D11_DECODER_PROFILE_WMV9_IDCT = {0x1b81be94, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
420 const IID D3D11_DECODER_PROFILE_VC1_POSTPROC = {0x1b81beA0, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
421 const IID D3D11_DECODER_PROFILE_VC1_MOCOMP = {0x1b81beA1, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
422 const IID D3D11_DECODER_PROFILE_VC1_IDCT = {0x1b81beA2, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
423 const IID D3D11_DECODER_PROFILE_VC1_VLD = {0x1b81beA3, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
424 const IID D3D11_DECODER_PROFILE_VC1_D2010 = {0x1b81beA4, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
425 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE = {0xefd64d74, 0xc9e8, 0x41d7, [0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19]};
426 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC = {0xed418a9f, 0x010d, 0x4eda, [0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e]};
427 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC = {0xab998b5b, 0x4258, 0x44a9, [0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae]};
428 const IID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN = {0x5b11d51b, 0x2f4c, 0x4452, [0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0]};
429 const IID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10 = {0x107af0e0, 0xef1a, 0x4d19, [0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13]};
430 const IID D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0 = {0x463707f8, 0xa1d0, 0x4585, [0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e]};
431 const IID D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2 = {0xa4c749ef, 0x6ecf, 0x48aa, [0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7]};
432 const IID D3D11_DECODER_PROFILE_VP8_VLD = {0x90b899ea, 0x3a62, 0x4705, [0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7]};
433 const IID D3D11_AUTHENTICATED_QUERY_PROTECTION = {0xa84eb584, 0xc495, 0x48aa, [0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x5]};
434 const IID D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE = {0xbc1b18a5, 0xb1fb, 0x42ab, [0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe]};
435 const IID D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE = {0xec1c539d, 0x8cff, 0x4e2a, [0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80]};
436 const IID D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION = {0x2634499e, 0xd018, 0x4d74, [0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d]};
437 const IID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT = {0xdb207b3, 0x9450, 0x46a6, [0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2]};
438 const IID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS = {0x649bbadb, 0xf0f4, 0x4639, [0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac]};
439 const IID D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT = {0x12f0bd6, 0xe662, 0x4474, [0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d]};
440 const IID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT = {0x2c042b5e, 0x8c07, 0x46d5, [0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31]};
441 const IID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID = {0x839ddca3, 0x9b4e, 0x41e4, [0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7]};
442 const IID D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES = {0x6214d9d2, 0x432c, 0x4abb, [0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b]};
443 const IID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT = {0xb30f7066, 0x203c, 0x4b07, [0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e]};
444 const IID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID = {0xf83a5958, 0xe986, 0x4bda, [0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x1, 0xb7]};
445 const IID D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE = {0xec1791c7, 0xdad3, 0x4f15, [0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0]};
446 const IID D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE = {0x6114bdb, 0x3523, 0x470a, [0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0]};
447 const IID D3D11_AUTHENTICATED_CONFIGURE_PROTECTION = {0x50455658, 0x3f47, 0x4362, [0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29]};
448 const IID D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION = {0x6346cc54, 0x2cfc, 0x4ad4, [0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x0]};
449 const IID D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE = {0x772d047, 0x1b40, 0x48e8, [0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x1]};
450 const IID D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE = {0x41fff286, 0x6ae0, 0x4d43, [0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a]};
451 
452 ///
453 /// Mixins
454 ///
455 
456 ///The following macros have not been converted to mixins yet
457 /*
458 #define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, reduction )                                                     \
459                                    ( ( D3D11_FILTER ) (                                                           \
460                                    ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) |           \
461                                    ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) |           \
462                                    ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) |           \
463                                    ( ( ( reduction ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) << D3D11_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 
464 #define D3D11_ENCODE_ANISOTROPIC_FILTER( reduction )                                                  \
465                                          ( ( D3D11_FILTER ) (                                         \
466                                          D3D11_ANISOTROPIC_FILTERING_BIT |                            \
467                                          D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR,         \
468                                                                     D3D11_FILTER_TYPE_LINEAR,         \
469                                                                     D3D11_FILTER_TYPE_LINEAR,         \
470                                                                     reduction ) ) )                     
471 #define D3D11_DECODE_MIN_FILTER( d3d11Filter )                                                              \
472                                  ( ( D3D11_FILTER_TYPE )                                                    \
473                                  ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
474 #define D3D11_DECODE_MAG_FILTER( d3d11Filter )                                                              \
475                                  ( ( D3D11_FILTER_TYPE )                                                    \
476                                  ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
477 #define D3D11_DECODE_MIP_FILTER( d3d11Filter )                                                              \
478                                  ( ( D3D11_FILTER_TYPE )                                                    \
479                                  ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
480 #define D3D11_DECODE_FILTER_REDUCTION( d3d11Filter )                                                        \
481                                  ( ( D3D11_FILTER_REDUCTION_TYPE )                                                      \
482                                  ( ( ( d3d11Filter ) >> D3D11_FILTER_REDUCTION_TYPE_SHIFT ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) ) 
483 #define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter )                                                    \
484                                  ( D3D11_DECODE_FILTER_REDUCTION( d3d11Filter ) == D3D11_FILTER_REDUCTION_TYPE_COMPARISON ) 
485 #define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter )                                               \
486                             ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) &&                  \
487                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) &&   \
488                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) &&   \
489                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) )
490 */ 
491 
492 ///
493 /// Functions
494 ///
495 
496 extern (Windows) {
497 	HRESULT D3D11CreateDevice(IDXGIAdapter pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, const D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, ID3D11Device *ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext *ppImmediateContext);
498 	HRESULT D3D11CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, const D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, IDXGISwapChain *ppSwapChain, ID3D11Device *ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext *ppImmediateContext);
499 }
500 uint D3D11CalcSubresource(uint MipSlice, uint ArraySlice, uint MipLevels ) { return MipSlice + ArraySlice * MipLevels; }
501 
502 ///
503 /// Enumerations
504 ///
505 
506 alias D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
507 alias D3D_PRIMITIVE D3D11_PRIMITIVE;
508 alias D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
509 
510 enum D3D11_INPUT_CLASSIFICATION : uint
511 {
512 	VERTEX_DATA	= 0,
513 	INSTANCE_DATA = 1
514 }
515 
516 enum D3D11_FILL_MODE : uint
517 {
518 	WIREFRAME = 2,
519 	SOLID = 3
520 }
521 
522 enum D3D11_CULL_MODE : uint
523 {
524 	NONE = 1,
525 	FRONT = 2,
526 	BACK = 3
527 }
528 
529 enum D3D11_RESOURCE_DIMENSION : uint
530 {
531 	UNKNOWN	= 0,
532 	BUFFER	= 1,
533 	TEXTURE1D	= 2,
534 	TEXTURE2D	= 3,
535 	TEXTURE3D	= 4
536 }
537 
538 enum D3D11_DSV_DIMENSION : uint
539 {
540 	UNKNOWN	= 0,
541 	TEXTURE1D = 1,
542 	TEXTURE1DARRAY = 2,
543 	TEXTURE2D = 3,
544 	TEXTURE2DARRAY = 4,
545 	TEXTURE2DMS = 5,
546 	TEXTURE2DMSARRAY = 6
547 }
548 
549 enum D3D11_RTV_DIMENSION : uint
550 {
551 	UNKNOWN	= 0,
552 	BUFFER	= 1,
553 	TEXTURE1D	= 2,
554 	TEXTURE1DARRAY	= 3,
555 	TEXTURE2D	= 4,
556 	TEXTURE2DARRAY	= 5,
557 	TEXTURE2DMS	= 6,
558 	TEXTURE2DMSARRAY	= 7,
559 	TEXTURE3D	= 8
560 }
561 
562 enum D3D11_UAV_DIMENSION : uint
563 {
564 	UNKNOWN	= 0,
565 	BUFFER	= 1,
566 	TEXTURE1D	= 2,
567 	TEXTURE1DARRAY	= 3,
568 	TEXTURE2D	= 4,
569 	TEXTURE2DARRAY	= 5,
570 	TEXTURE3D	= 8
571 }
572 
573 enum D3D11_USAGE : uint
574 {
575 	DEFAULT	= 0,
576 	IMMUTABLE = 1,
577 	DYNAMIC	= 2,
578 	STAGING	= 3
579 }
580 
581 enum D3D11_BIND_FLAG : uint
582 {
583 	VERTEX_BUFFER	= 0x1L,
584 	INDEX_BUFFER	= 0x2L,
585 	CONSTANT_BUFFER	= 0x4L,
586 	SHADER_RESOURCE	= 0x8L,
587 	STREAM_OUTPUT	= 0x10L,
588 	RENDER_TARGET	= 0x20L,
589 	DEPTH_STENCIL	= 0x40L,
590 	UNORDERED_ACCESS	= 0x80L,
591 	DECODER	= 0x200L,
592 	VIDEO_ENCODER	= 0x400L
593 }
594 
595 enum D3D11_CPU_ACCESS_FLAG : uint
596 {
597 	WRITE	= 0x10000L,
598 	READ	= 0x20000L
599 }
600 
601 enum D3D11_RESOURCE_MISC_FLAG : uint
602 {
603 	GENERATE_MIPS	= 0x1L,
604 	SHARED	= 0x2L,
605 	TEXTURECUBE	= 0x4L,
606 	DRAWINDIRECT_ARGS	= 0x10L,
607 	BUFFER_ALLOW_RAW_VIEWS	= 0x20L,
608 	BUFFER_STRUCTURED	= 0x40L,
609 	RESOURCE_CLAMP	= 0x80L,
610 	SHARED_KEYEDMUTEX	= 0x100L,
611 	GDI_COMPATIBLE	= 0x200L,
612 	SHARED_NTHANDLE	= 0x800L,
613 	RESTRICTED_CONTENT	= 0x1000L,
614 	RESTRICT_SHARED_RESOURCE	= 0x2000L,
615 	RESTRICT_SHARED_RESOURCE_DRIVER	= 0x4000L,
616 	GUARDED	= 0x8000L,
617 	TILE_POOL	= 0x20000L,
618 	TILED	= 0x40000L,
619 	HW_PROTECTED	= 0x80000L
620 }
621 
622 enum D3D11_MAP : uint
623 {
624 	READ	= 1,
625 	WRITE	= 2,
626 	READ_WRITE	= 3,
627 	WRITE_DISCARD	= 4,
628 	WRITE_NO_OVERWRITE	= 5
629 }
630 
631 enum D3D11_MAP_FLAG : uint
632 {
633 	DO_NOT_WAIT	= 0x100000L
634 }
635 
636 enum D3D11_RAISE_FLAG : uint
637 {
638 	DRIVER_INTERNAL_ERROR	= 0x1L
639 }
640 
641 enum D3D11_CLEAR_FLAG : uint
642 {
643 	DEPTH	= 0x1L,
644 	STENCIL	= 0x2L
645 }
646 
647 enum D3D11_COMPARISON_FUNC : uint
648 {
649 	NEVER	= 1,
650 	LESS	= 2,
651 	EQUAL	= 3,
652 	LESS_EQUAL	= 4,
653 	GREATER	= 5,
654 	NOT_EQUAL	= 6,
655 	GREATER_EQUAL	= 7,
656 	ALWAYS	= 8
657 }
658 
659 enum D3D11_DEPTH_WRITE_MASK : uint
660 {
661 	ZERO	= 0,
662 	ALL	= 1
663 }
664 
665 enum D3D11_STENCIL_OP : uint
666 {
667 	KEEP	= 1,
668 	ZERO	= 2,
669 	REPLACE	= 3,
670 	INCR_SAT	= 4,
671 	DECR_SAT	= 5,
672 	INVERT	= 6,
673 	INCR	= 7,
674 	DECR	= 8
675 }
676 
677 enum D3D11_BLEND : uint
678 {
679 	ZERO	= 1,
680 	ONE	= 2,
681 	SRC_COLOR	= 3,
682 	INV_SRC_COLOR	= 4,
683 	SRC_ALPHA	= 5,
684 	INV_SRC_ALPHA	= 6,
685 	DEST_ALPHA	= 7,
686 	INV_DEST_ALPHA	= 8,
687 	DEST_COLOR	= 9,
688 	INV_DEST_COLOR	= 10,
689 	SRC_ALPHA_SAT	= 11,
690 	BLEND_FACTOR	= 14,
691 	INV_BLEND_FACTOR	= 15,
692 	SRC1_COLOR	= 16,
693 	INV_SRC1_COLOR	= 17,
694 	SRC1_ALPHA	= 18,
695 	INV_SRC1_ALPHA	= 19
696 }
697 
698 enum D3D11_BLEND_OP : uint
699 {
700 	ADD	= 1,
701 	SUBTRACT = 2,
702 	REV_SUBTRACT = 3,
703 	MIN	= 4,
704 	MAX	= 5
705 }
706 
707 enum D3D11_COLOR_WRITE_ENABLE : uint
708 {
709 	RED	= 1,
710 	GREEN = 2,
711 	BLUE = 4,
712 	ALPHA = 8,
713 	ALL	= ( ( ( RED | GREEN )  | BLUE )  | ALPHA ) 
714 }
715 
716 enum D3D11_TEXTURECUBE_FACE : uint
717 {
718 	POSITIVE_X	= 0,
719 	NEGATIVE_X	= 1,
720 	POSITIVE_Y	= 2,
721 	NEGATIVE_Y	= 3,
722 	POSITIVE_Z	= 4,
723 	NEGATIVE_Z	= 5
724 }
725 
726 enum D3D11_BUFFEREX_SRV_FLAG : uint
727 {
728 	RAW	= 0x1
729 }
730 
731 enum D3D11_DSV_FLAG : uint
732 {
733 	DEPTH	= 0x1L,
734 	STENCIL	= 0x2L
735 }
736 
737 enum D3D11_BUFFER_UAV_FLAG : uint
738 {
739 	RAW	= 0x1,
740 	APPEND	= 0x2,
741 	COUNTER	= 0x4
742 }
743 
744 enum D3D11_FILTER : uint
745 {
746 	MIN_MAG_MIP_POINT	= 0,
747 	MIN_MAG_POINT_MIP_LINEAR	= 0x1,
748 	MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x4,
749 	MIN_POINT_MAG_MIP_LINEAR	= 0x5,
750 	MIN_LINEAR_MAG_MIP_POINT	= 0x10,
751 	MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x11,
752 	MIN_MAG_LINEAR_MIP_POINT	= 0x14,
753 	MIN_MAG_MIP_LINEAR	= 0x15,
754 	ANISOTROPIC	= 0x55,
755 	COMPARISON_MIN_MAG_MIP_POINT	= 0x80,
756 	COMPARISON_MIN_MAG_POINT_MIP_LINEAR	= 0x81,
757 	COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x84,
758 	COMPARISON_MIN_POINT_MAG_MIP_LINEAR	= 0x85,
759 	COMPARISON_MIN_LINEAR_MAG_MIP_POINT	= 0x90,
760 	COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x91,
761 	COMPARISON_MIN_MAG_LINEAR_MIP_POINT	= 0x94,
762 	COMPARISON_MIN_MAG_MIP_LINEAR	= 0x95,
763 	COMPARISON_ANISOTROPIC	= 0xd5,
764 	MINIMUM_MIN_MAG_MIP_POINT	= 0x100,
765 	MINIMUM_MIN_MAG_POINT_MIP_LINEAR	= 0x101,
766 	MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x104,
767 	MINIMUM_MIN_POINT_MAG_MIP_LINEAR	= 0x105,
768 	MINIMUM_MIN_LINEAR_MAG_MIP_POINT	= 0x110,
769 	MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x111,
770 	MINIMUM_MIN_MAG_LINEAR_MIP_POINT	= 0x114,
771 	MINIMUM_MIN_MAG_MIP_LINEAR	= 0x115,
772 	MINIMUM_ANISOTROPIC	= 0x155,
773 	MAXIMUM_MIN_MAG_MIP_POINT	= 0x180,
774 	MAXIMUM_MIN_MAG_POINT_MIP_LINEAR	= 0x181,
775 	MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x184,
776 	MAXIMUM_MIN_POINT_MAG_MIP_LINEAR	= 0x185,
777 	MAXIMUM_MIN_LINEAR_MAG_MIP_POINT	= 0x190,
778 	MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x191,
779 	MAXIMUM_MIN_MAG_LINEAR_MIP_POINT	= 0x194,
780 	MAXIMUM_MIN_MAG_MIP_LINEAR	= 0x195,
781 	MAXIMUM_ANISOTROPIC	= 0x1d5
782 }
783 
784 enum D3D11_FILTER_TYPE : uint
785 {
786 	POINT = 0,
787 	LINEAR = 1
788 }
789 
790 enum D3D11_FILTER_REDUCTION_TYPE : uint
791 {
792 	STANDARD = 0,
793 	COMPARISON = 1,
794 	MINIMUM	= 2,
795 	MAXIMUM	= 3
796 }
797 
798 enum D3D11_TEXTURE_ADDRESS_MODE : uint
799 {
800 	WRAP	= 1,
801 	MIRROR	= 2,
802 	CLAMP	= 3,
803 	BORDER	= 4,
804 	MIRROR_ONCE	= 5
805 }
806 
807 enum D3D11_FORMAT_SUPPORT : uint
808 {
809 	BUFFER	= 0x1,
810 	IA_VERTEX_BUFFER	= 0x2,
811 	IA_INDEX_BUFFER	= 0x4,
812 	SO_BUFFER	= 0x8,
813 	TEXTURE1D	= 0x10,
814 	TEXTURE2D	= 0x20,
815 	TEXTURE3D	= 0x40,
816 	TEXTURECUBE	= 0x80,
817 	SHADER_LOAD	= 0x100,
818 	SHADER_SAMPLE	= 0x200,
819 	SHADER_SAMPLE_COMPARISON	= 0x400,
820 	SHADER_SAMPLE_MONO_TEXT	= 0x800,
821 	MIP	= 0x1000,
822 	MIP_AUTOGEN	= 0x2000,
823 	RENDER_TARGET	= 0x4000,
824 	BLENDABLE	= 0x8000,
825 	DEPTH_STENCIL	= 0x10000,
826 	CPU_LOCKABLE	= 0x20000,
827 	MULTISAMPLE_RESOLVE	= 0x40000,
828 	DISPLAY	= 0x80000,
829 	CAST_WITHIN_BIT_LAYOUT	= 0x100000,
830 	MULTISAMPLE_RENDERTARGET	= 0x200000,
831 	MULTISAMPLE_LOAD	= 0x400000,
832 	SHADER_GATHER	= 0x800000,
833 	BACK_BUFFER_CAST	= 0x1000000,
834 	TYPED_UNORDERED_ACCESS_VIEW	= 0x2000000,
835 	SHADER_GATHER_COMPARISON	= 0x4000000,
836 	DECODER_OUTPUT	= 0x8000000,
837 	VIDEO_PROCESSOR_OUTPUT	= 0x10000000,
838 	VIDEO_PROCESSOR_INPUT	= 0x20000000,
839 	VIDEO_ENCODER	= 0x40000000
840 }
841 
842 enum D3D11_FORMAT_SUPPORT2 : uint
843 {
844 	UAV_ATOMIC_ADD	= 0x1,
845 	UAV_ATOMIC_BITWISE_OPS	= 0x2,
846 	UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE	= 0x4,
847 	UAV_ATOMIC_EXCHANGE	= 0x8,
848 	UAV_ATOMIC_SIGNED_MIN_OR_MAX	= 0x10,
849 	UAV_ATOMIC_UNSIGNED_MIN_OR_MAX	= 0x20,
850 	UAV_TYPED_LOAD	= 0x40,
851 	UAV_TYPED_STORE	= 0x80,
852 	OUTPUT_MERGER_LOGIC_OP	= 0x100,
853 	TILED	= 0x200,
854 	SHAREABLE	= 0x400,
855 	MULTIPLANE_OVERLAY	= 0x4000
856 }
857 
858 enum D3D11_ASYNC_GETDATA_FLAG : uint
859 {
860 	DONOTFLUSH	= 0x1
861 }
862 
863 enum D3D11_QUERY : uint
864 {
865 	EVENT	= 0,
866 	OCCLUSION	= ( EVENT + 1 ) ,
867 	TIMESTAMP	= ( OCCLUSION + 1 ) ,
868 	TIMESTAMP_DISJOINT	= ( TIMESTAMP + 1 ) ,
869 	PIPELINE_STATISTICS	= ( TIMESTAMP_DISJOINT + 1 ) ,
870 	OCCLUSION_PREDICATE	= ( PIPELINE_STATISTICS + 1 ) ,
871 	SO_STATISTICS	= ( OCCLUSION_PREDICATE + 1 ) ,
872 	SO_OVERFLOW_PREDICATE	= ( SO_STATISTICS + 1 ) ,
873 	SO_STATISTICS_STREAM0	= ( SO_OVERFLOW_PREDICATE + 1 ) ,
874 	SO_OVERFLOW_PREDICATE_STREAM0	= ( SO_STATISTICS_STREAM0 + 1 ) ,
875 	SO_STATISTICS_STREAM1	= ( SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) ,
876 	SO_OVERFLOW_PREDICATE_STREAM1	= ( SO_STATISTICS_STREAM1 + 1 ) ,
877 	SO_STATISTICS_STREAM2	= ( SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) ,
878 	SO_OVERFLOW_PREDICATE_STREAM2	= ( SO_STATISTICS_STREAM2 + 1 ) ,
879 	SO_STATISTICS_STREAM3	= ( SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) ,
880 	SO_OVERFLOW_PREDICATE_STREAM3	= ( SO_STATISTICS_STREAM3 + 1 ) 
881 }
882 
883 enum D3D11_QUERY_MISC_FLAG : uint
884 {
885 	PREDICATEHINT	= 0x1
886 }
887 
888 enum D3D11_COUNTER : uint
889 {
890 	DEVICE_DEPENDENT_0	= 0x40000000
891 }
892 
893 enum D3D11_COUNTER_TYPE : uint
894 {
895 	FLOAT32	= 0,
896 	UINT16	= ( FLOAT32 + 1 ) ,
897 	UINT32	= ( UINT16 + 1 ) ,
898 	UINT64	= ( UINT32 + 1 ) 
899 }
900 
901 enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS : uint
902 {
903 	STANDARD_MULTISAMPLE_PATTERN	= 0xffffffff,
904 	CENTER_MULTISAMPLE_PATTERN	= 0xfffffffe
905 }
906 
907 enum D3D11_DEVICE_CONTEXT_TYPE : uint
908 {
909 	IMMEDIATE	= 0,
910 	DEFERRED	= ( IMMEDIATE + 1 ) 
911 } 
912 
913 enum D3D11_FEATURE : uint
914 {
915 	THREADING	= 0,
916 	DOUBLES	= ( THREADING + 1 ) ,
917 	FORMAT_SUPPORT	= ( DOUBLES + 1 ) ,
918 	FORMAT_SUPPORT2	= ( FORMAT_SUPPORT + 1 ) ,
919 	D3D10_X_HARDWARE_OPTIONS	= ( FORMAT_SUPPORT2 + 1 ) ,
920 	D3D11_OPTIONS	= ( D3D10_X_HARDWARE_OPTIONS + 1 ) ,
921 	ARCHITECTURE_INFO	= ( D3D11_OPTIONS + 1 ) ,
922 	D3D9_OPTIONS	= ( ARCHITECTURE_INFO + 1 ) ,
923 	SHADER_MIN_PRECISION_SUPPORT	= ( D3D9_OPTIONS + 1 ) ,
924 	D3D9_SHADOW_SUPPORT	= ( SHADER_MIN_PRECISION_SUPPORT + 1 ) ,
925 	D3D11_OPTIONS1	= ( D3D9_SHADOW_SUPPORT + 1 ) ,
926 	D3D9_SIMPLE_INSTANCING_SUPPORT	= ( D3D11_OPTIONS1 + 1 ) ,
927 	MARKER_SUPPORT	= ( D3D9_SIMPLE_INSTANCING_SUPPORT + 1 ) ,
928 	D3D9_OPTIONS1	= ( MARKER_SUPPORT + 1 ) ,
929 	D3D11_OPTIONS2	= ( D3D9_OPTIONS1 + 1 ) ,
930 	D3D11_OPTIONS3	= ( D3D11_OPTIONS2 + 1 ) ,
931 	GPU_VIRTUAL_ADDRESS_SUPPORT	= ( D3D11_OPTIONS3 + 1 ) ,
932 	D3D11_OPTIONS4	= ( GPU_VIRTUAL_ADDRESS_SUPPORT + 1 ) ,
933 	SHADER_CACHE	= ( D3D11_OPTIONS4 + 1 ) 
934 }
935 
936 enum D3D11_SHADER_MIN_PRECISION_SUPPORT : uint
937 {
938 	PRECISION_10_BIT	= 0x1,
939 	PRECISION_16_BIT	= 0x2
940 }
941 
942 enum D3D11_TILED_RESOURCES_TIER : uint
943 {
944 	NOT_SUPPORTED	= 0,
945 	TIER_1	= 1,
946 	TIER_2	= 2,
947 	TIER_3	= 3
948 }
949 
950 enum D3D11_CONSERVATIVE_RASTERIZATION_TIER : uint
951 {
952 	NOT_SUPPORTED	= 0,
953 	TIER_1	= 1,
954 	TIER_2	= 2,
955 	TIER_3	= 3
956 }
957 
958 enum D3D11_SHADER_CACHE_SUPPORT_FLAGS : uint
959 {
960 	NONE	= 0,
961 	AUTOMATIC_INPROC_CACHE	= 0x1,
962 	AUTOMATIC_DISK_CACHE	= 0x2
963 }
964 
965 enum D3D11_VIDEO_DECODER_BUFFER_TYPE : uint
966 {
967 	PICTURE_PARAMETERS	= 0,
968 	MACROBLOCK_CONTROL	= 1,
969 	RESIDUAL_DIFFERENCE	= 2,
970 	DEBLOCKING_CONTROL	= 3,
971 	INVERSE_QUANTIZATION_MATRIX	= 4,
972 	SLICE_CONTROL	= 5,
973 	BITSTREAM	= 6,
974 	MOTION_VECTOR	= 7,
975 	FILM_GRAIN	= 8
976 }
977 
978 enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT : uint
979 {
980 	INPUT	= 0x1,
981 	OUTPUT	= 0x2
982 }
983 
984 enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS : uint
985 {
986 	LINEAR_SPACE	= 0x1,
987 	xvYCC	= 0x2,
988 	RGB_RANGE_CONVERSION	= 0x4,
989 	YCbCr_MATRIX_CONVERSION	= 0x8,
990 	NOMINAL_RANGE	= 0x10
991 }
992 
993 enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS : uint
994 {
995 	ALPHA_FILL	= 0x1,
996 	CONSTRICTION	= 0x2,
997 	LUMA_KEY	= 0x4,
998 	ALPHA_PALETTE	= 0x8,
999 	LEGACY	= 0x10,
1000 	STEREO	= 0x20,
1001 	ROTATION	= 0x40,
1002 	ALPHA_STREAM	= 0x80,
1003 	PIXEL_ASPECT_RATIO	= 0x100,
1004 	MIRROR	= 0x200,
1005 	SHADER_USAGE	= 0x400,
1006 	METADATA_HDR10	= 0x800
1007 }
1008 
1009 enum CAPS : uint
1010 {
1011 	BRIGHTNESS	= 0x1,
1012 	CONTRAST	= 0x2,
1013 	HUE	= 0x4,
1014 	SATURATION	= 0x8,
1015 	NOISE_REDUCTION	= 0x10,
1016 	EDGE_ENHANCEMENT	= 0x20,
1017 	ANAMORPHIC_SCALING	= 0x40,
1018 	STEREO_ADJUSTMENT	= 0x80
1019 }
1020 
1021 enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS : uint
1022 {
1023 	RGB_INTERLACED	= 0x1,
1024 	RGB_PROCAMP	= 0x2,
1025 	RGB_LUMA_KEY	= 0x4,
1026 	PALETTE_INTERLACED	= 0x8
1027 }
1028 
1029 enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS : uint
1030 {
1031 	DENOISE	= 0x1,
1032 	DERINGING	= 0x2,
1033 	EDGE_ENHANCEMENT	= 0x4,
1034 	COLOR_CORRECTION	= 0x8,
1035 	FLESH_TONE_MAPPING	= 0x10,
1036 	IMAGE_STABILIZATION	= 0x20,
1037 	SUPER_RESOLUTION	= 0x40,
1038 	ANAMORPHIC_SCALING	= 0x80
1039 }
1040 
1041 enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS : uint
1042 {
1043 	MONO_OFFSET	= 0x1,
1044 	ROW_INTERLEAVED	= 0x2,
1045 	COLUMN_INTERLEAVED	= 0x4,
1046 	CHECKERBOARD	= 0x8,
1047 	FLIP_MODE	= 0x10
1048 }
1049 
1050 enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS : uint
1051 {
1052 	DEINTERLACE_BLEND	= 0x1,
1053 	DEINTERLACE_BOB	= 0x2,
1054 	DEINTERLACE_ADAPTIVE	= 0x4,
1055 	DEINTERLACE_MOTION_COMPENSATION	= 0x8,
1056 	INVERSE_TELECINE	= 0x10,
1057 	FRAME_RATE_CONVERSION	= 0x20
1058 }
1059 
1060 enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS : uint
1061 {
1062 	CAPS_32	= 0x1,
1063 	CAPS_22	= 0x2,
1064 	CAPS_2224	= 0x4,
1065 	CAPS_2332	= 0x8,
1066 	CAPS_32322	= 0x10,
1067 	CAPS_55	= 0x20,
1068 	CAPS_64	= 0x40,
1069 	CAPS_87	= 0x80,
1070 	CAPS_222222222223	= 0x100,
1071 	CAPS_OTHER	= 0x80000000
1072 }
1073 
1074 enum D3D11_CONTENT_PROTECTION_CAPS : uint
1075 {
1076 	SOFTWARE	= 0x1,
1077 	HARDWARE	= 0x2,
1078 	PROTECTION_ALWAYS_ON	= 0x4,
1079 	PARTIAL_DECRYPTION	= 0x8,
1080 	CONTENT_KEY	= 0x10,
1081 	FRESHEN_SESSION_KEY	= 0x20,
1082 	ENCRYPTED_READ_BACK	= 0x40,
1083 	ENCRYPTED_READ_BACK_KEY	= 0x80,
1084 	SEQUENTIAL_CTR_IV	= 0x100,
1085 	ENCRYPT_SLICEDATA_ONLY	= 0x200,
1086 	DECRYPTION_BLT	= 0x400,
1087 	HARDWARE_PROTECT_UNCOMPRESSED	= 0x800,
1088 	HARDWARE_PROTECTED_MEMORY_PAGEABLE	= 0x1000,
1089 	HARDWARE_TEARDOWN	= 0x2000,
1090 	HARDWARE_DRM_COMMUNICATION	= 0x4000
1091 }
1092 
1093 enum D3D11_VIDEO_PROCESSOR_FILTER : uint
1094 {
1095 	BRIGHTNESS	= 0,
1096 	CONTRAST	= 1,
1097 	HUE	= 2,
1098 	SATURATION	= 3,
1099 	NOISE_REDUCTION	= 4,
1100 	EDGE_ENHANCEMENT	= 5,
1101 	ANAMORPHIC_SCALING	= 6,
1102 	STEREO_ADJUSTMENT	= 7
1103 }
1104 
1105 enum D3D11_VIDEO_FRAME_FORMAT : uint
1106 {
1107 	PROGRESSIVE	= 0,
1108 	INTERLACED_TOP_FIELD_FIRST	= 1,
1109 	INTERLACED_BOTTOM_FIELD_FIRST	= 2
1110 }
1111 
1112 enum D3D11_VIDEO_USAGE : uint
1113 {
1114 	D3D11_VIDEO_USAGE_PLAYBACK_NORMAL	= 0,
1115 	D3D11_VIDEO_USAGE_OPTIMAL_SPEED	= 1,
1116 	D3D11_VIDEO_USAGE_OPTIMAL_QUALITY	= 2
1117 }
1118 
1119 enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE : uint
1120 {
1121 	RANGE_UNDEFINED	= 0,
1122 	RANGE_16_235	= 1,
1123 	RANGE_0_255	= 2
1124 }
1125 
1126 enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE : uint
1127 {
1128 	OPAQUE	= 0,
1129 	BACKGROUND	= 1,
1130 	DESTINATION	= 2,
1131 	SOURCE_STREAM	= 3
1132 }
1133 
1134 enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE : uint
1135 {
1136 	NORMAL	= 0,
1137 	HALF	= 1,
1138 	CUSTOM	= 2
1139 }
1140 
1141 enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT : uint
1142 {
1143 	MONO	= 0,
1144 	HORIZONTAL	= 1,
1145 	VERTICAL	= 2,
1146 	SEPARATE	= 3,
1147 	MONO_OFFSET	= 4,
1148 	ROW_INTERLEAVED	= 5,
1149 	COLUMN_INTERLEAVED	= 6,
1150 	CHECKERBOARD	= 7
1151 }
1152 
1153 enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE : uint
1154 {
1155 	NONE	= 0,
1156 	FRAME0	= 1,
1157 	FRAME1	= 2
1158 }
1159 
1160 enum D3D11_VIDEO_PROCESSOR_ROTATION : uint
1161 {
1162 	ROTATION_IDENTITY	= 0,
1163 	ROTATION_90	= 1,
1164 	ROTATION_180	= 2,
1165 	ROTATION_270	= 3
1166 }
1167 
1168 enum D3D11_AUTHENTICATED_CHANNEL_TYPE : uint
1169 {
1170 	D3D11	= 1,
1171 	DRIVER_SOFTWARE	= 2,
1172 	DRIVER_HARDWARE	= 3
1173 }
1174 
1175 enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE : uint
1176 {
1177 	UNKNOWN	= 0,
1178 	DWM	= 1,
1179 	HANDLE	= 2
1180 }
1181 
1182 enum D3D11_BUS_TYPE : uint
1183 {
1184 	TYPE_OTHER	= 0,
1185 	TYPE_PCI	= 0x1,
1186 	TYPE_PCIX	= 0x2,
1187 	TYPE_PCIEXPRESS	= 0x3,
1188 	TYPE_AGP	= 0x4,
1189 	IMPL_MODIFIER_INSIDE_OF_CHIPSET	= 0x10000,
1190 	IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP	= 0x20000,
1191 	IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET	= 0x30000,
1192 	IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR	= 0x40000,
1193 	IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE	= 0x50000,
1194 	IMPL_MODIFIER_NON_STANDARD	= 0x80000000
1195 }
1196 
1197 enum D3D11_VDOV_DIMENSION : uint
1198 {
1199 	UNKNOWN	= 0,
1200 	TEXTURE2D	= 1
1201 }
1202 
1203 enum D3D11_VPIV_DIMENSION : uint
1204 {
1205 	UNKNOWN	= 0,
1206 	TEXTURE2D	= 1
1207 }
1208 
1209 enum D3D11_VPOV_DIMENSION : uint
1210 {
1211 	UNKNOWN	= 0,
1212 	TEXTURE2D	= 1,
1213 	TEXTURE2DARRAY	= 2
1214 }
1215 
1216 enum D3D11_CREATE_DEVICE_FLAG : uint
1217 {
1218 	SINGLETHREADED	= 0x1,
1219 	DEBUG	= 0x2,
1220 	SWITCH_TO_REF	= 0x4,
1221 	PREVENT_INTERNAL_THREADING_OPTIMIZATIONS	= 0x8,
1222 	BGRA_SUPPORT	= 0x20,
1223 	DEBUGGABLE	= 0x40,
1224 	PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY	= 0x80,
1225 	DISABLE_GPU_TIMEOUT	= 0x100,
1226 	VIDEO_SUPPORT	= 0x800
1227 }
1228 
1229 ///
1230 /// Structures
1231 ///
1232 
1233 alias RECT D3D11_RECT;
1234 
1235 struct CD3D11_DEFAULT {};
1236 
1237 struct D3D11_BOX {
1238 	uint left;
1239 	uint top;
1240 	uint front;
1241 	uint right;
1242 	uint bottom;
1243 	uint back;
1244 }
1245 
1246 struct D3D11_COUNTER_DESC {
1247 	D3D11_COUNTER Counter;
1248 	uint MiscFlags;
1249 }
1250 
1251 struct D3D11_COUNTER_INFO {
1252 	D3D11_COUNTER LastDeviceDependentCounter;
1253 	uint          NumSimultaneousCounters;
1254 	ubyte         NumDetectableParallelUnits;
1255 }
1256 
1257 struct D3D11_DEPTH_STENCIL_DESC {
1258 	bool                       DepthEnable;
1259 	D3D11_DEPTH_WRITE_MASK     DepthWriteMask;
1260 	D3D11_COMPARISON_FUNC      DepthFunc;
1261 	bool                       StencilEnable;
1262 	ubyte                      StencilReadMask;
1263 	ubyte                      StencilWriteMask;
1264 	D3D11_DEPTH_STENCILOP_DESC FrontFace;
1265 	D3D11_DEPTH_STENCILOP_DESC BackFace;
1266 }
1267 
1268 struct D3D11_DEPTH_STENCILOP_DESC {
1269 	D3D11_STENCIL_OP      StencilFailOp;
1270 	D3D11_STENCIL_OP      StencilDepthFailOp;
1271 	D3D11_STENCIL_OP      StencilPassOp;
1272 	D3D11_COMPARISON_FUNC StencilFunc;
1273 }
1274 
1275 struct DATA_D3D10_X_HARDWARE_OPTIONS {
1276 	bool ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
1277 }
1278 
1279 struct DATA_DOUBLES {
1280 	bool DoublePrecisionFloatShaderOps;
1281 }
1282 
1283 struct DATA_FORMAT_SUPPORT {
1284 	DXGI_FORMAT InFormat;
1285 	uint OutFormatSupport;
1286 }
1287 
1288 struct DATA_FORMAT_SUPPORT2 {
1289 	DXGI_FORMAT InFormat;
1290 	uint OutFormatSupport2;
1291 }
1292 
1293 struct DATA_THREADING {
1294 	bool DriverConcurrentCreates;
1295 	bool DriverCommandLists;
1296 }
1297 
1298 struct D3D11_INPUT_ELEMENT_DESC {
1299 	const(char)*			   SemanticName;
1300 	uint                       SemanticIndex;
1301 	DXGI_FORMAT                Format;
1302 	uint                       InputSlot;
1303 	uint                       AlignedByteOffset;
1304 	D3D11_INPUT_CLASSIFICATION InputSlotClass;
1305 	uint                       InstanceDataStepRate;
1306 }
1307 
1308 struct DATA_PIPELINE_STATISTICS {
1309 	ulong IAVertices;
1310 	ulong IAPrimitives;
1311 	ulong VSInvocations;
1312 	ulong GSInvocations;
1313 	ulong GSPrimitives;
1314 	ulong CInvocations;
1315 	ulong CPrimitives;
1316 	ulong PSInvocations;
1317 	ulong HSInvocations;
1318 	ulong DSInvocations;
1319 	ulong CSInvocations;
1320 }
1321 
1322 struct DATA_SO_STATISTICS {
1323 	ulong NumPrimitivesWritten;
1324 	ulong PrimitivesStorageNeeded;
1325 }
1326 
1327 struct DATA_TIMESTAMP_DISJOINT {
1328 	ulong Frequency;
1329 	bool Disjoint;
1330 }
1331 
1332 struct D3D11_QUERY_DESC {
1333 	D3D11_QUERY Query;
1334 	uint MiscFlags;
1335 }
1336 
1337 struct D3D11_RASTERIZER_DESC {
1338 	D3D11_FILL_MODE FillMode;
1339 	D3D11_CULL_MODE CullMode;
1340 	bool            FrontCounterClockwise;
1341 	int             DepthBias;
1342 	float           DepthBiasClamp;
1343 	float           SlopeScaledDepthBias;
1344 	bool            DepthClipEnable;
1345 	bool            ScissorEnable;
1346 	bool            MultisampleEnable;
1347 	bool            AntialiasedLineEnable;
1348 }
1349 
1350 struct D3D11_RENDER_TARGET_BLEND_DESC {
1351 	bool           BlendEnable;
1352 	D3D11_BLEND    SrcBlend;
1353 	D3D11_BLEND    DestBlend;
1354 	D3D11_BLEND_OP BlendOp;
1355 	D3D11_BLEND    SrcBlendAlpha;
1356 	D3D11_BLEND    DestBlendAlpha;
1357 	D3D11_BLEND_OP BlendOpAlpha;
1358 	ubyte          RenderTargetWriteMask;
1359 }
1360 
1361 struct D3D11_BLEND_DESC {
1362 	bool AlphaToCoverageEnable;
1363 	bool IndependentBlendEnable;
1364 	D3D11_RENDER_TARGET_BLEND_DESC[8] RenderTarget;
1365 }
1366 
1367 struct D3D11_SAMPLER_DESC {
1368 	D3D11_FILTER               Filter;
1369 	D3D11_TEXTURE_ADDRESS_MODE AddressU;
1370 	D3D11_TEXTURE_ADDRESS_MODE AddressV;
1371 	D3D11_TEXTURE_ADDRESS_MODE AddressW;
1372 	float                      MipLODBias;
1373 	uint                       MaxAnisotropy;
1374 	D3D11_COMPARISON_FUNC      ComparisonFunc;
1375 	float[4]                   BorderColor;
1376 	float                      MinLOD;
1377 	float                      MaxLOD;
1378 }
1379 
1380 struct D3D11_SO_DECLARATION_ENTRY {
1381 	uint   Stream;
1382 	const(char)* SemanticName;
1383 	uint   SemanticIndex;
1384 	ubyte   StartComponent;
1385 	ubyte   ComponentCount;
1386 	ubyte   OutputSlot;
1387 }
1388 
1389 struct D3D11_VIEWPORT {
1390 	float TopLeftX;
1391 	float TopLeftY;
1392 	float Width;
1393 	float Height;
1394 	float MinDepth;
1395 	float MaxDepth;
1396 }
1397 
1398 struct DATA_ARCHITECTURE_INFO {
1399 	bool TileBasedDeferredRenderer;
1400 }
1401 
1402 struct DATA_D3D9_OPTIONS {
1403 	bool FullNonPow2TextureSupport;
1404 }
1405 
1406 struct DATA_D3D9_SHADOW_SUPPORT {
1407 	bool SupportsDepthAsTextureWithLessEqualComparisonFilter;
1408 }
1409 
1410 struct DATA_D3D11_OPTIONS {
1411 	bool OutputMergerLogicOp;
1412 	bool UAVOnlyRenderingForcedSampleCount;
1413 	bool DiscardAPIsSeenByDriver;
1414 	bool FlagsForUpdateAndCopySeenByDriver;
1415 	bool ClearView;
1416 	bool CopyWithOverlap;
1417 	bool ConstantBufferPartialUpdate;
1418 	bool ConstantBufferOffsetting;
1419 	bool MapNoOverwriteOnDynamicConstantBuffer;
1420 	bool MapNoOverwriteOnDynamicBufferSRV;
1421 	bool MultisampleRTVWithForcedSampleCountOne;
1422 	bool SAD4ShaderInstructions;
1423 	bool ExtendedDoublesShaderInstructions;
1424 	bool ExtendedResourceSharing;
1425 }
1426 
1427 struct DATA_SHADER_MIN_PRECISION_SUPPORT {
1428 	uint PixelShaderMinPrecision;
1429 	uint AllOtherShaderStagesMinPrecision;
1430 }
1431 
1432 struct DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
1433 	bool SimpleInstancingSupported;
1434 }
1435 
1436 struct DATA_D3D11_OPTIONS1 {
1437 	D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
1438 	bool MinMaxFiltering;
1439 	bool ClearViewAlsoSupportsDepthOnlyFormats;
1440 	bool MapOnDefaultBuffers;
1441 }
1442 
1443 struct DATA_MARKER_SUPPORT {
1444 	bool Profile;
1445 }
1446 
1447 struct D3D11_BUFFER_DESC {
1448 	uint ByteWidth;
1449 	D3D11_USAGE Usage;
1450 	uint BindFlags;
1451 	uint CPUAccessFlags;
1452 	uint MiscFlags;
1453 	uint StructureByteStride;
1454 }
1455 
1456 struct D3D11_BUFFER_RTV {
1457 	union {
1458 		uint FirstElement;
1459 		uint ElementOffset;
1460 	};
1461 	union {
1462 		uint NumElements;
1463 		uint ElementWidth;
1464 	};
1465 }
1466 
1467 struct D3D11_BUFFER_SRV {
1468 	union {
1469 		uint FirstElement;
1470 		uint ElementOffset;
1471 	};
1472 	union {
1473 		uint NumElements;
1474 		uint ElementWidth;
1475 	};
1476 }
1477 
1478 struct D3D11_BUFFER_UAV {
1479 	uint FirstElement;
1480 	uint NumElements;
1481 	uint Flags;
1482 }
1483 
1484 struct D3D11_BUFFEREX_SRV {
1485 	uint FirstElement;
1486 	uint NumElements;
1487 	uint Flags;
1488 }
1489 
1490 struct D3D11_DEPTH_STENCIL_VIEW_DESC {
1491 	DXGI_FORMAT         Format;
1492 	D3D11_DSV_DIMENSION ViewDimension;
1493 	uint                Flags;
1494 	union {
1495 		D3D11_TEX1D_DSV         Texture1D;
1496 		D3D11_TEX1D_ARRAY_DSV   Texture1DArray;
1497 		D3D11_TEX2D_DSV         Texture2D;
1498 		D3D11_TEX2D_ARRAY_DSV   Texture2DArray;
1499 		D3D11_TEX2DMS_DSV       Texture2DMS;
1500 		D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
1501 	};
1502 }
1503 
1504 struct D3D11_MAPPED_SUBRESOURCE {
1505 	void *pData;
1506 	uint RowPitch;
1507 	uint DepthPitch;
1508 }
1509 
1510 struct D3D11_RENDER_TARGET_VIEW_DESC {
1511 	DXGI_FORMAT         Format;
1512 	D3D11_RTV_DIMENSION ViewDimension;
1513 	union {
1514 		D3D11_BUFFER_RTV        Buffer;
1515 		D3D11_TEX1D_RTV         Texture1D;
1516 		D3D11_TEX1D_ARRAY_RTV   Texture1DArray;
1517 		D3D11_TEX2D_RTV         Texture2D;
1518 		D3D11_TEX2D_ARRAY_RTV   Texture2DArray;
1519 		D3D11_TEX2DMS_RTV       Texture2DMS;
1520 		D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
1521 		D3D11_TEX3D_RTV         Texture3D;
1522 	};
1523 }
1524 
1525 struct D3D11_SHADER_RESOURCE_VIEW_DESC {
1526 	DXGI_FORMAT         Format;
1527 	D3D11_SRV_DIMENSION ViewDimension;
1528 	union {
1529 		D3D11_BUFFER_SRV        Buffer;
1530 		D3D11_TEX1D_SRV         Texture1D;
1531 		D3D11_TEX1D_ARRAY_SRV   Texture1DArray;
1532 		D3D11_TEX2D_SRV         Texture2D;
1533 		D3D11_TEX2D_ARRAY_SRV   Texture2DArray;
1534 		D3D11_TEX2DMS_SRV       Texture2DMS;
1535 		D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
1536 		D3D11_TEX3D_SRV         Texture3D;
1537 		D3D11_TEXCUBE_SRV       TextureCube;
1538 		D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
1539 		D3D11_BUFFEREX_SRV      BufferEx;
1540 	};
1541 }
1542 
1543 struct D3D11_SUBRESOURCE_DATA {
1544 	const void *pSysMem;
1545 	uint SysMemPitch;
1546 	uint SysMemSlicePitch;
1547 }
1548 
1549 struct D3D11_TEX1D_ARRAY_DSV {
1550 	uint MipSlice;
1551 	uint FirstArraySlice;
1552 	uint ArraySize;
1553 }
1554 
1555 struct D3D11_TEX1D_ARRAY_RTV {
1556 	uint MipSlice;
1557 	uint FirstArraySlice;
1558 	uint ArraySize;
1559 }
1560 
1561 struct D3D11_TEX1D_ARRAY_SRV {
1562 	uint MostDetailedMip;
1563 	uint MipLevels;
1564 	uint FirstArraySlice;
1565 	uint ArraySize;
1566 }
1567 
1568 struct D3D11_TEX1D_ARRAY_UAV {
1569 	uint MipSlice;
1570 	uint FirstArraySlice;
1571 	uint ArraySize;
1572 }
1573 
1574 struct D3D11_TEX1D_DSV {
1575 	uint MipSlice;
1576 }
1577 
1578 struct D3D11_TEX1D_RTV {
1579 	uint MipSlice;
1580 }
1581 
1582 struct D3D11_TEX1D_SRV {
1583 	uint MostDetailedMip;
1584 	uint MipLevels;
1585 }
1586 
1587 struct D3D11_TEX1D_UAV {
1588 	uint MipSlice;
1589 }
1590 
1591 struct D3D11_TEX2D_ARRAY_DSV {
1592 	uint MipSlice;
1593 	uint FirstArraySlice;
1594 	uint ArraySize;
1595 }
1596 
1597 struct D3D11_TEX2D_ARRAY_RTV {
1598 	uint MipSlice;
1599 	uint FirstArraySlice;
1600 	uint ArraySize;
1601 }
1602 
1603 struct D3D11_TEX2D_ARRAY_SRV {
1604 	uint MostDetailedMip;
1605 	uint MipLevels;
1606 	uint FirstArraySlice;
1607 	uint ArraySize;
1608 }
1609 
1610 struct D3D11_TEX2D_ARRAY_UAV {
1611 	uint MipSlice;
1612 	uint FirstArraySlice;
1613 	uint ArraySize;
1614 }
1615 
1616 struct D3D11_TEX2D_DSV {
1617 	uint MipSlice;
1618 }
1619 
1620 struct D3D11_TEX2D_RTV {
1621 	uint MipSlice;
1622 }
1623 
1624 struct D3D11_TEX2D_SRV {
1625 	uint MostDetailedMip;
1626 	uint MipLevels;
1627 }
1628 
1629 struct D3D11_TEX2D_UAV {
1630 	uint MipSlice;
1631 }
1632 
1633 struct D3D11_TEX2DMS_ARRAY_DSV {
1634 	uint FirstArraySlice;
1635 	uint ArraySize;
1636 }
1637 
1638 struct D3D11_TEX2DMS_ARRAY_RTV {
1639 	uint FirstArraySlice;
1640 	uint ArraySize;
1641 }
1642 
1643 struct D3D11_TEX2DMS_ARRAY_SRV {
1644 	uint FirstArraySlice;
1645 	uint ArraySize;
1646 }
1647 
1648 struct D3D11_TEX2DMS_DSV {
1649 	uint UnusedField_NothingToDefine;
1650 }
1651 
1652 struct D3D11_TEX2DMS_RTV {
1653 	uint UnusedField_NothingToDefine;
1654 }
1655 
1656 struct D3D11_TEX2DMS_SRV {
1657 	uint UnusedField_NothingToDefine;
1658 }
1659 
1660 struct D3D11_TEX3D_RTV {
1661 	uint MipSlice;
1662 	uint FirstWSlice;
1663 	uint WSize;
1664 }
1665 
1666 struct D3D11_TEX3D_SRV {
1667 	uint MostDetailedMip;
1668 	uint MipLevels;
1669 }
1670 
1671 struct D3D11_TEX3D_UAV {
1672 	uint MipSlice;
1673 	uint FirstWSlice;
1674 	uint WSize;
1675 }
1676 
1677 struct D3D11_TEXCUBE_ARRAY_SRV {
1678 	uint MostDetailedMip;
1679 	uint MipLevels;
1680 	uint First2DArrayFace;
1681 	uint NumCubes;
1682 }
1683 
1684 struct D3D11_TEXCUBE_SRV {
1685 	uint MostDetailedMip;
1686 	uint MipLevels;
1687 }
1688 
1689 struct D3D11_TEXTURE1D_DESC {
1690 	uint Width;
1691 	uint MipLevels;
1692 	uint ArraySize;
1693 	DXGI_FORMAT Format;
1694 	D3D11_USAGE Usage;
1695 	uint BindFlags;
1696 	uint CPUAccessFlags;
1697 	uint MiscFlags;
1698 }
1699 
1700 struct D3D11_TEXTURE2D_DESC {
1701 	uint Width;
1702 	uint Height;
1703 	uint MipLevels;
1704 	uint ArraySize;
1705 	DXGI_FORMAT Format;
1706 	DXGI_SAMPLE_DESC SampleDesc;
1707 	D3D11_USAGE Usage;
1708 	uint BindFlags;
1709 	uint CPUAccessFlags;
1710 	uint MiscFlags;
1711 }
1712 
1713 struct D3D11_TEXTURE3D_DESC {
1714 	uint Width;
1715 	uint Height;
1716 	uint Depth;
1717 	uint MipLevels;
1718 	DXGI_FORMAT Format;
1719 	D3D11_USAGE Usage;
1720 	uint BindFlags;
1721 	uint CPUAccessFlags;
1722 	uint MiscFlags;
1723 }
1724 
1725 struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
1726 	DXGI_FORMAT         Format;
1727 	D3D11_UAV_DIMENSION ViewDimension;
1728 	union {
1729 		D3D11_BUFFER_UAV      Buffer;
1730 		D3D11_TEX1D_UAV       Texture1D;
1731 		D3D11_TEX1D_ARRAY_UAV Texture1DArray;
1732 		D3D11_TEX2D_UAV       Texture2D;
1733 		D3D11_TEX2D_ARRAY_UAV Texture2DArray;
1734 		D3D11_TEX3D_UAV       Texture3D;
1735 	};
1736 }
1737 
1738 struct D3D11_CLASS_INSTANCE_DESC {
1739 	uint InstanceId;
1740 	uint InstanceIndex;
1741 	uint TypeId;
1742 	uint ConstantBuffer;
1743 	uint BaseConstantBufferOffset;
1744 	uint BaseTexture;
1745 	uint BaseSampler;
1746 	bool Created;
1747 }
1748 
1749 struct D3D11_VIDEO_DECODER_DESC
1750 {
1751     GUID Guid;
1752     uint SampleWidth;
1753     uint SampleHeight;
1754     DXGI_FORMAT OutputFormat;
1755 }
1756 
1757 struct D3D11_VIDEO_DECODER_CONFIG
1758 {
1759     GUID guidConfigBitstreamEncryption;
1760     GUID guidConfigMBcontrolEncryption;
1761     GUID guidConfigResidDiffEncryption;
1762     uint ConfigBitstreamRaw;
1763     uint ConfigMBcontrolRasterOrder;
1764     uint ConfigResidDiffHost;
1765     uint ConfigSpatialResid8;
1766     uint ConfigResid8Subtraction;
1767     uint ConfigSpatialHost8or9Clipping;
1768     uint ConfigSpatialResidInterleaved;
1769     uint ConfigIntraResidUnsigned;
1770     uint ConfigResidDiffAccelerator;
1771     uint ConfigHostInverseScan;
1772     uint ConfigSpecificIDCT;
1773     uint Config4GroupedCoefs;
1774     ushort ConfigMinRenderTargetBuffCount;
1775     ushort ConfigDecoderSpecific;
1776 }
1777 
1778 struct D3D11_ENCRYPTED_BLOCK_INFO
1779 {
1780     uint NumEncryptedBytesAtBeginning;
1781     uint NumBytesInSkipPattern;
1782     uint NumBytesInEncryptPattern;
1783 }
1784 
1785 struct D3D11_VIDEO_DECODER_BUFFER_DESC
1786 {
1787     D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
1788     uint BufferIndex;
1789     uint DataOffset;
1790     uint DataSize;
1791     uint FirstMBaddress;
1792     uint NumMBsInBuffer;
1793     uint Width;
1794     uint Height;
1795     uint Stride;
1796     uint ReservedBits;
1797 	void *pIV;
1798     uint IVSize;
1799     bool PartialEncryption;
1800     D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
1801 }
1802 
1803 struct D3D11_VIDEO_DECODER_EXTENSION
1804 {
1805     uint Function;
1806 	void *pPrivateInputData;
1807     uint PrivateInputDataSize;
1808 	void *pPrivateOutputData;
1809     uint PrivateOutputDataSize;
1810     uint ResourceCount;
1811 	ID3D11Resource *ppResourceList;
1812 }
1813 
1814 struct D3D11_VIDEO_PROCESSOR_CAPS
1815 {
1816     uint DeviceCaps;
1817     uint FeatureCaps;
1818     uint FilterCaps;
1819     uint InputFormatCaps;
1820     uint AutoStreamCaps;
1821     uint StereoCaps;
1822     uint RateConversionCapsCount;
1823     uint MaxInputStreams;
1824     uint MaxStreamStates;
1825 }
1826 
1827 struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS
1828 {
1829     uint PastFrames;
1830     uint FutureFrames;
1831     uint ProcessorCaps;
1832     uint ITelecineCaps;
1833 	uint CustomRateCount;
1834 }
1835 
1836 struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
1837 {
1838     uint Caps;
1839     uint KeyExchangeTypeCount;
1840     uint BlockAlignmentSize;
1841     ulong ProtectedMemorySize;
1842 }
1843 
1844 struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE
1845 {
1846     DXGI_RATIONAL CustomRate;
1847     uint OutputFrames;
1848     bool InputInterlaced;
1849     uint InputFramesOrFields;
1850 }
1851 
1852 struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE
1853 {
1854     int Minimum;
1855     int Maximum;
1856     int Default;
1857     float Multiplier;
1858 }
1859 
1860 struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC
1861 {
1862     D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
1863     DXGI_RATIONAL InputFrameRate;
1864     uint InputWidth;
1865     uint InputHeight;
1866     DXGI_RATIONAL OutputFrameRate;
1867     uint OutputWidth;
1868     uint OutputHeight;
1869     D3D11_VIDEO_USAGE Usage;
1870 }
1871 
1872 struct D3D11_VIDEO_COLOR_RGBA
1873 {
1874     float R;
1875     float G;
1876     float B;
1877     float A;
1878 }
1879 
1880 struct D3D11_VIDEO_COLOR_YCbCrA
1881     {
1882     float Y;
1883     float Cb;
1884     float Cr;
1885     float A;
1886 }
1887 
1888 struct D3D11_VIDEO_COLOR
1889 {
1890     union 
1891     {
1892         D3D11_VIDEO_COLOR_YCbCrA YCbCr;
1893         D3D11_VIDEO_COLOR_RGBA RGBA;
1894 	};
1895 }
1896 
1897 struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE
1898 {
1899     uint Usage = 1;
1900     uint RGB_Range = 1;
1901     uint YCbCr_Matrix = 1;
1902     uint YCbCr_xvYCC = 1;
1903     uint Nominal_Range = 2;
1904     uint Reserved = 26;
1905 }
1906 
1907 struct D3D11_VIDEO_PROCESSOR_STREAM
1908 {
1909     bool Enable;
1910     uint OutputIndex;
1911     uint InputFrameOrField;
1912     uint PastFrames;
1913     uint FutureFrames;
1914 	ID3D11VideoProcessorInputView *ppPastSurfaces;
1915     ID3D11VideoProcessorInputView pInputSurface;
1916 	ID3D11VideoProcessorInputView *ppFutureSurfaces;
1917 	ID3D11VideoProcessorInputView *ppPastSurfacesRight;
1918     ID3D11VideoProcessorInputView pInputSurfaceRight;
1919 	ID3D11VideoProcessorInputView *ppFutureSurfacesRight;
1920 }
1921 
1922 struct D3D11_OMAC
1923 {
1924     ubyte[16] Omac;
1925 }
1926 
1927 struct D3D11_AUTHENTICATED_QUERY_INPUT
1928 {
1929     GUID QueryType;
1930     HANDLE hChannel;
1931     uint SequenceNumber;
1932 }
1933 
1934 struct D3D11_AUTHENTICATED_QUERY_OUTPUT
1935 {
1936     D3D11_OMAC omac;
1937     GUID QueryType;
1938     HANDLE hChannel;
1939     uint SequenceNumber;
1940     HRESULT ReturnCode;
1941 }
1942 
1943 union D3D11_AUTHENTICATED_PROTECTION_FLAGS
1944 {
1945     struct Flags
1946 	{
1947         uint ProtectionEnabled = 1;
1948         uint OverlayOrFullscreenRequired = 1;
1949         uint Reserved = 30;
1950 	};
1951     uint Value;
1952 }
1953 
1954 struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT
1955 {
1956     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1957     D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags;
1958 }
1959 
1960 struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT
1961 {
1962     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1963     D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType;
1964 }
1965 
1966 struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT
1967 {
1968     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1969     HANDLE DeviceHandle;
1970 }
1971 
1972 struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT
1973 {
1974     D3D11_AUTHENTICATED_QUERY_INPUT Input;
1975     HANDLE DecoderHandle;
1976 }
1977 
1978 struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT
1979 {
1980     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1981     HANDLE DecoderHandle;
1982     HANDLE CryptoSessionHandle;
1983     HANDLE DeviceHandle;
1984 }
1985 
1986 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT
1987 {
1988     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1989     uint RestrictedSharedResourceProcessCount;
1990 }
1991 
1992 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT
1993 {
1994     D3D11_AUTHENTICATED_QUERY_INPUT Input;
1995     uint ProcessIndex;
1996 }
1997 
1998 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT
1999 {
2000     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2001     uint ProcessIndex;
2002     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier;
2003     HANDLE ProcessHandle;
2004 }
2005 
2006 struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT
2007 {
2008 	D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2009     uint UnrestrictedProtectedSharedResourceCount;
2010 }
2011 
2012 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT
2013 {
2014     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2015     HANDLE DeviceHandle;
2016     HANDLE CryptoSessionHandle;
2017 }
2018 
2019 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT
2020 {
2021     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2022     HANDLE DeviceHandle;
2023     HANDLE CryptoSessionHandle;
2024     uint OutputIDCount;
2025 }
2026 
2027 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT
2028 {
2029     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2030     HANDLE DeviceHandle;
2031     HANDLE CryptoSessionHandle;
2032     uint OutputIDIndex;
2033 }
2034 
2035 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT
2036 {
2037     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2038     HANDLE DeviceHandle;
2039     HANDLE CryptoSessionHandle;
2040     uint OutputIDIndex;
2041     ulong OutputID;
2042 }
2043 
2044 struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT
2045 {
2046     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2047     D3D11_BUS_TYPE BusType;
2048     BOOL AccessibleInContiguousBlocks;
2049     BOOL AccessibleInNonContiguousBlocks;
2050 }
2051 
2052 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT
2053 {
2054     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2055     uint EncryptionGuidCount;
2056 }
2057 
2058 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT
2059 {
2060     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2061     uint EncryptionGuidIndex;
2062 }
2063 
2064 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT
2065 {
2066     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2067     uint EncryptionGuidIndex;
2068     GUID EncryptionGuid;
2069 }
2070 
2071 struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT
2072 {
2073     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2074     GUID EncryptionGuid;
2075 }
2076 
2077 struct D3D11_AUTHENTICATED_CONFIGURE_INPUT
2078 {
2079     D3D11_OMAC omac;
2080     GUID ConfigureType;
2081     HANDLE hChannel;
2082     uint SequenceNumber;
2083 }
2084 
2085 struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT
2086 {
2087     D3D11_OMAC omac;
2088     GUID ConfigureType;
2089     HANDLE hChannel;
2090     uint SequenceNumber;
2091     HRESULT ReturnCode;
2092 }
2093 
2094 struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT
2095 {
2096     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2097     uint StartSequenceQuery;
2098     uint StartSequenceConfigure;
2099 }
2100 
2101 struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT
2102 {
2103     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2104     D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections;
2105 }
2106 
2107 struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT
2108 {
2109     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2110     HANDLE DecoderHandle;
2111     HANDLE CryptoSessionHandle;
2112     HANDLE DeviceHandle;
2113 }
2114 
2115 struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT
2116 {
2117     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2118     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType;
2119     HANDLE ProcessHandle;
2120     BOOL AllowAccess;
2121 }
2122 
2123 struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT
2124 {
2125     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2126     GUID EncryptionGuid;
2127 }
2128 
2129 struct D3D11_TEX2D_VDOV
2130 {
2131     uint ArraySlice;
2132 }
2133 
2134 struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC
2135 {
2136     GUID DecodeProfile;
2137     D3D11_VDOV_DIMENSION ViewDimension;
2138     union 
2139 	{
2140         D3D11_TEX2D_VDOV Texture2D;
2141 	};
2142 }
2143 
2144 struct D3D11_TEX2D_VPIV
2145 {
2146     uint MipSlice;
2147     uint ArraySlice;
2148 }
2149 
2150 struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC
2151 {
2152     uint FourCC;
2153     D3D11_VPIV_DIMENSION ViewDimension;
2154     union 
2155 	{
2156         D3D11_TEX2D_VPIV Texture2D;
2157 	};
2158 }
2159 
2160 struct D3D11_TEX2D_VPOV
2161 {
2162     uint MipSlice;
2163 }
2164 
2165 struct D3D11_TEX2D_ARRAY_VPOV
2166 {
2167     uint MipSlice;
2168     uint FirstArraySlice;
2169     uint ArraySize;
2170 }
2171 
2172 struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC
2173 {
2174     D3D11_VPOV_DIMENSION ViewDimension;
2175     union 
2176 	{
2177         D3D11_TEX2D_VPOV Texture2D;
2178         D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
2179 	};
2180 }
2181 
2182 ///
2183 /// Interfaces
2184 ///
2185 
2186 mixin(uuid!(ID3D11Asynchronous, "4b35d0cd-1e15-4258-9c98-1b1333f6dd3b"));
2187 public interface ID3D11Asynchronous : ID3D11DeviceChild
2188 {
2189 extern(Windows):
2190 	uint GetDataSize();
2191 }
2192 
2193 mixin(uuid!(ID3D11BlendState, "75b68faa-347d-4159-8f45-a0640f01cd9a"));
2194 public interface ID3D11BlendState : ID3D11DeviceChild
2195 {
2196 extern(Windows):
2197 	void GetDesc(D3D11_BLEND_DESC *pDesc);
2198 }
2199 
2200 mixin(uuid!(ID3D11Counter, "6e8c49fb-a371-4770-b440-29086022b741"));
2201 public interface ID3D11Counter : ID3D11Asynchronous
2202 {
2203 extern(Windows):
2204 	void GetDesc(D3D11_COUNTER_DESC *pDesc);
2205 }
2206 
2207 mixin(uuid!(ID3D11CommandList, "a24bc4d1-769e-43f7-8013-98ff566c18e2"));
2208 public interface ID3D11CommandList : ID3D11DeviceChild
2209 {
2210 extern(Windows):
2211 	uint GetContextFlags();
2212 }
2213 
2214 mixin(uuid!(ID3D11DepthStencilState, "03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1"));
2215 public interface ID3D11DepthStencilState : ID3D11DeviceChild
2216 {
2217 extern(Windows):
2218 	void GetDesc(D3D11_DEPTH_STENCIL_DESC *pDesc);
2219 }
2220 
2221 mixin(uuid!(ID3D11Device, "db6f6ddb-ac77-4e88-8253-819df9bbf140"));
2222 public interface ID3D11Device : IUnknown
2223 {
2224 extern(Windows):
2225 	void GetDesc(D3D11_DEPTH_STENCIL_DESC *pDesc);
2226 	HRESULT CheckCounter(const D3D11_COUNTER_DESC *pDesc, D3D11_COUNTER_TYPE *pType, uint *pActiveCounters, char* szName, uint* pNameLength, char* szUnits, uint* pUnitsLength, char* szDescription, uint* pDescriptionLength);
2227 	void CheckCounterInfo(D3D11_COUNTER_INFO *pCounterInfo);
2228 	HRESULT CheckFeatureSupport(D3D11_FEATURE Feature, void *pFeatureSupportData, uint FeatureSupportDataSize);
2229 	HRESULT CheckFormatSupport(DXGI_FORMAT Format, uint* pFormatSupport);
2230 	HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, uint SampleCount, uint *pNumQualityLevels);
2231 	HRESULT CreateBlendState(const D3D11_BLEND_DESC *pBlendStateDesc, ID3D11BlendState *ppBlendState);
2232 	HRESULT CreateBuffer(const D3D11_BUFFER_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Buffer *ppBuffer);
2233 	HRESULT CreateClassLinkage(ID3D11ClassLinkage *ppLinkage);
2234 	HRESULT CreateComputeShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11ComputeShader *ppComputeShader);
2235 	HRESULT CreateCounter(const D3D11_COUNTER_DESC *pCounterDesc, ID3D11Counter *ppCounter);
2236 	HRESULT CreateDeferredContext(uint ContextFlags, ID3D11DeviceContext *ppDeferredContext);
2237 	HRESULT CreateDepthStencilState(const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, ID3D11DepthStencilState *ppDepthStencilState);
2238 	HRESULT CreateDepthStencilView(ID3D11Resource pResource, const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, ID3D11DepthStencilView *ppDepthStencilView);
2239 	HRESULT CreateDomainShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11DomainShader *ppDomainShader);
2240 	HRESULT CreateGeometryShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11GeometryShader *ppGeometryShader);
2241 	HRESULT CreateGeometryShaderWithStreamOutput(const void *pShaderBytecode, SIZE_T BytecodeLength, const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, UINT NumEntries, const UINT *pBufferStrides, UINT NumStrides, UINT RasterizedStream, ID3D11ClassLinkage pClassLinkage, ID3D11GeometryShader *ppGeometryShader);
2242 	HRESULT CreateHullShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11HullShader *ppHullShader);
2243 	HRESULT CreateInputLayout(const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, UINT NumElements, const void *pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D11InputLayout *ppInputLayout);
2244 	HRESULT CreatePixelShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11PixelShader *ppPixelShader);
2245 	HRESULT CreatePredicate(const D3D11_QUERY_DESC *pPredicateDesc, ID3D11Predicate *ppPredicate);
2246 	HRESULT CreateQuery(const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query *ppQuery);
2247 	HRESULT CreateRasterizerState(const D3D11_RASTERIZER_DESC *pRasterizerDesc, ID3D11RasterizerState *ppRasterizerState);
2248 	HRESULT CreateRenderTargetView(ID3D11Resource pResource, const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, ID3D11RenderTargetView *ppRTView);
2249 	HRESULT CreateSamplerState(const D3D11_SAMPLER_DESC *pSamplerDesc, ID3D11SamplerState *ppSamplerState);
2250 	HRESULT CreateShaderResourceView(ID3D11Resource pResource, const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, ID3D11ShaderResourceView **ppSRView);
2251 	HRESULT CreateTexture1D(const D3D11_TEXTURE1D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture1D *ppTexture1D);
2252 	HRESULT CreateTexture2D(const D3D11_TEXTURE2D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture2D *ppTexture2D);
2253 	HRESULT CreateTexture3D(const D3D11_TEXTURE3D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture3D *ppTexture3D);
2254 	HRESULT CreateUnorderedAccessView(ID3D11Resource *pResource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, ID3D11UnorderedAccessView **ppUAView);
2255 	HRESULT CreateVertexShader(const void *pShaderBytecode, uint BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11VertexShader *ppVertexShader);
2256 	uint GetCreationFlags();
2257 	HRESULT GetDeviceRemovedReason();
2258 	uint GetExceptionMode();
2259 	D3D_FEATURE_LEVEL GetFeatureLevel();
2260 	void GetImmediateContext(ID3D11DeviceContext *ppImmediateContext);
2261 	HRESULT GetPrivateData(GUID* guid, uint* pDataSize, void* pData);
2262 	HRESULT OpenSharedResource(HANDLE hResource, IID* ReturnedInterface, void **ppResource);
2263 	HRESULT SetExceptionMode(uint RaiseFlags);
2264 	HRESULT SetPrivateData(GUID* guid, uint DataSize, const void *pData);
2265 	HRESULT SetPrivateDataInterface(GUID* guid, const IUnknown *pData);
2266 }
2267 
2268 mixin(uuid!(ID3D11DeviceChild, "1841e5c8-16b0-489b-bcc8-44cfb0d5deae"));
2269 public interface ID3D11DeviceChild : IUnknown
2270 {
2271 extern(Windows):
2272 	void GetDevice(ID3D11Device **ppDevice);
2273 	HRESULT GetPrivateData(GUID* guid, uint* pDataSize, void *pData);
2274 	HRESULT SetPrivateData(GUID* guid, uint DataSize, const void *pData);
2275 	HRESULT SetPrivateDataInterface(GUID* guid, const IUnknown pData);
2276 }
2277 
2278 mixin(uuid!(ID3D11DeviceContext, "c0bfa96c-e089-44fb-8eaf-26f8796190da"));
2279 public interface ID3D11DeviceContext : ID3D11DeviceChild
2280 {
2281 extern(Windows):
2282 	void Begin(ID3D11Asynchronous *pAsync);
2283 	void ClearDepthStencilView(ID3D11DepthStencilView pDepthStencilView, uint ClearFlags, float Depth, ubyte Stencil);
2284 	void ClearRenderTargetView(ID3D11RenderTargetView pRenderTargetView, const float[4] ColorRGBA);
2285 	void ClearState();
2286 	void ClearUnorderedAccessViewFloat(ID3D11UnorderedAccessView pUnorderedAccessView, const float[4] Values);
2287 	void ClearUnorderedAccessViewUint(ID3D11UnorderedAccessView pUnorderedAccessView, const uint[4] Values);
2288 	void CopyResource(ID3D11Resource pDstResource, ID3D11Resource pSrcResource);
2289 	void CopyStructureCount(ID3D11Buffer pDstBuffer, uint DstAlignedByteOffset, ID3D11UnorderedAccessView pSrcView);
2290 	void CopySubresourceRegion(ID3D11Resource pDstResource, uint DstSubresource, uint DstX, uint DstY, uint DstZ, ID3D11Resource pSrcResource, uint SrcSubresource, const D3D11_BOX *pSrcBox);
2291 	void CSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2292 	void CSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2293 	void CSGetShader(ID3D11ComputeShader *ppComputeShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2294 	void CSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2295 	void CSGetUnorderedAccessViews(uint StartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessViews);
2296 	void CSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2297 	void CSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2298 	void CSSetShader(ID3D11ComputeShader pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2299 	void CSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2300 	void CSSetUnorderedAccessViews(uint StartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessViews, const(uint) *pUAVInitialCounts);
2301 	void Dispatch(uint ThreadGroupCountX, uint ThreadGroupCountY, uint ThreadGroupCountZ);
2302 	void DispatchIndirect(ID3D11Buffer pBufferForArgs, uint AlignedOffsetForArgs);
2303 	void Draw(uint VertexCount, uint StartVertexLocation);
2304 	void DrawAuto();
2305 	void DrawIndexed(uint IndexCount, uint StartIndexLocation, int BaseVertexLocation);
2306 	void DrawIndexedInstanced(uint IndexCountPerInstance, uint InstanceCount, uint StartIndexLocation, int BaseVertexLocation, uint StartInstanceLocation);
2307 	void DrawIndexedInstancedIndirect(ID3D11Buffer pBufferForArgs, uint AlignedByteOffsetForArgs);
2308 	void DrawInstanced(uint VertexCountPerInstance, uint InstanceCount, uint StartVertexLocation, uint StartInstanceLocation);
2309 	void DrawInstancedIndirect(ID3D11Buffer pBufferForArgs, uint AlignedByteOffsetForArgs);
2310 	void DSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2311 	void DSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2312 	void DSGetShader(ID3D11DomainShader *ppDomainShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2313 	void DSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2314 	void DSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2315 	void DSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2316 	void DSSetShader(ID3D11DomainShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2317 	void DSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2318 	void End(ID3D11Asynchronous *pAsync);
2319 	void ExecuteCommandList(ID3D11CommandList pCommandList, bool RestoreContextState);
2320 	HRESULT FinishCommandList(bool RestoreDeferredContextState, ID3D11CommandList *ppCommandList);
2321 	void Flush();
2322 	void GenerateMips(ID3D11ShaderResourceView pShaderResourceView);
2323 	uint GetContextFlags();
2324 	HRESULT GetData(ID3D11Asynchronous *pAsync, void *pData, uint DataSize, uint GetDataFlags);
2325 	void GetPredication(ID3D11Predicate *ppPredicate, bool* pPredicateValue);
2326 	float GetResourceMinLOD(ID3D11Resource pResource);
2327 	D3D11_DEVICE_CONTEXT_TYPE GetType();
2328 	void GSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2329 	void GSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2330 	void GSGetShader(ID3D11GeometryShader *ppGeometryShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2331 	void GSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2332 	void GSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2333 	void GSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2334 	void GSSetShader(ID3D11GeometryShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2335 	void GSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2336 	void HSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2337 	void HSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2338 	void HSGetShader(ID3D11HullShader *ppHullShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2339 	void HSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2340 	void HSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2341 	void HSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2342 	void HSSetShader(ID3D11HullShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2343 	void HSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2344 	void IAGetIndexBuffer(ID3D11Buffer *pIndexBuffer, DXGI_FORMAT *Format, uint* Offset);
2345 	void IAGetInputLayout(ID3D11InputLayout *ppInputLayout);
2346 	void IAGetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY *pTopology);
2347 	void IAGetVertexBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppVertexBuffers, uint *pStrides, uint *pOffsets);
2348 	void IASetIndexBuffer(ID3D11Buffer pIndexBuffer, DXGI_FORMAT Format, uint Offset);
2349 	void IASetInputLayout(ID3D11InputLayout pInputLayout);
2350 	void IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY Topology);
2351 	void IASetVertexBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppVertexBuffers, const(uint) *pStrides, const(uint) *pOffsets);
2352 	HRESULT Map(ID3D11Resource pResource, uint Subresource, D3D11_MAP MapType, uint MapFlags, D3D11_MAPPED_SUBRESOURCE *pMappedResource);
2353 	void OMGetBlendState(ID3D11BlendState *ppBlendState, float[4] BlendFactor, uint* pSampleMask);
2354 	void OMGetDepthStencilState(ID3D11DepthStencilState *ppDepthStencilState, uint* pStencilRef);
2355 	void OMGetRenderTargets(uint NumViews, ID3D11RenderTargetView *ppRenderTargetViews, ID3D11DepthStencilView *ppDepthStencilView);
2356 	void OMGetRenderTargetsAndUnorderedAccessViews(uint NumViews, ID3D11RenderTargetView *ppRenderTargetViews, ID3D11DepthStencilView *ppDepthStencilView, uint UAVStartSlot, uint NumUAVs, ID3D11UnorderedAccessView *ppUnorderedAccessViews);
2357 	void OMSetBlendState(ID3D11BlendState pBlendState, const float[4] BlendFactor, uint SampleMask);
2358 	void OMSetDepthStencilState(ID3D11DepthStencilState pDepthStencilState, uint StencilRef);
2359 	void OMSetRenderTargets(uint NumViews, const(ID3D11RenderTargetView) *ppRenderTargetViews, ID3D11DepthStencilView pDepthStencilView);
2360 	void OMSetRenderTargetsAndUnorderedAccessViews(uint NumViews, const(ID3D11RenderTargetView) *ppRenderTargetViews, ID3D11DepthStencilView pDepthStencilView, uint UAVStartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessView, const(uint) *pUAVInitialCounts);
2361 	void PSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2362 	void PSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2363 	void PSGetShader(ID3D11PixelShader *ppPixelShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2364 	void PSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2365 	void PSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2366 	void PSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2367 	void PSSetShader(ID3D11PixelShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2368 	void PSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2369 	void ResolveSubresource(ID3D11Resource pDstResource, uint DstSubresource, ID3D11Resource pSrcResource, uint SrcSubresource, DXGI_FORMAT Format);
2370 	void RSGetScissorRects(uint* pNumRects, D3D11_RECT *pRects);
2371 	void RSGetState(ID3D11RasterizerState *ppRasterizerState);
2372 	void RSGetViewports(uint* pNumViewports, D3D11_VIEWPORT *pViewports);
2373 	void RSSetScissorRects(uint NumRects, const D3D11_RECT *pRects);
2374 	void RSSetState(ID3D11RasterizerState pRasterizerState);
2375 	void RSSetViewports(uint NumViewports, const D3D11_VIEWPORT *pViewports);
2376 	void SetPredication(ID3D11Predicate pPredicate, bool PredicateValue);
2377 	void SetResourceMinLOD(ID3D11Resource pResource, float MinLOD);
2378 	void SOGetTargets(uint NumBuffers, ID3D11Buffer *ppSOTargets);
2379 	void SOSetTargets(uint NumBuffers, const(ID3D11Buffer) *ppSOTargets, const(uint) *pOffsets);
2380 	void Unmap(ID3D11Resource pResource, uint Subresource);
2381 	void UpdateSubresource(ID3D11Resource pDstResource, uint DstSubresource, const(D3D11_BOX) *pDstBox, const(void) *pSrcData, uint SrcRowPitch, uint SrcDepthPitch);
2382 	void VSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2383 	void VSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2384 	void VSGetShader(ID3D11VertexShader *ppVertexShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2385 	void VSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2386 	void VSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2387 	void VSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2388 	void VSSetShader(ID3D11VertexShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2389 	void VSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2390 }
2391 
2392 mixin(uuid!(ID3D11InputLayout, "e4819ddc-4cf0-4025-bd26-5de82a3e07b7"));
2393 public interface ID3D11InputLayout : ID3D11DeviceChild
2394 {
2395 extern(Windows):
2396 }
2397 
2398 mixin(uuid!(ID3D11Predicate, "9eb576dd-9f77-4d86-81aa-8bab5fe490e2"));
2399 public interface ID3D11Predicate : ID3D11Query
2400 {
2401 extern(Windows):
2402 }
2403 
2404 mixin(uuid!(ID3D11Query, "d6c00747-87b7-425e-b84d-44d108560afd"));
2405 public interface ID3D11Query : ID3D11Asynchronous
2406 {
2407 extern(Windows):
2408 	void GetDesc(D3D11_QUERY_DESC *pDesc);
2409 }
2410 
2411 mixin(uuid!(ID3D11RasterizerState, "9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7"));
2412 public interface ID3D11RasterizerState : ID3D11DeviceChild
2413 {
2414 extern(Windows):
2415 	void GetDesc(D3D11_RASTERIZER_DESC *pDesc);
2416 }
2417 
2418 mixin(uuid!(ID3D11SamplerState, "da6fea51-564c-4487-9810-f0d0f9b4e3a5"));
2419 public interface ID3D11SamplerState : ID3D11DeviceChild
2420 {
2421 extern(Windows):
2422 	void GetDesc(D3D11_SAMPLER_DESC *pDesc);
2423 }
2424 
2425 mixin(uuid!(ID3D11Buffer, "48570b85-d1ee-4fcd-a250-eb350722b037"));
2426 public interface ID3D11Buffer : ID3D11Resource
2427 {
2428 extern(Windows):
2429 	void GetDesc(D3D11_BUFFER_DESC *pDesc);
2430 }
2431 
2432 mixin(uuid!(ID3D11Resource, "dc8e63f3-d12b-4952-b47b-5e45026a862d"));
2433 public interface ID3D11Resource : ID3D11DeviceChild
2434 {
2435 extern(Windows):
2436 	uint GetEvictionPriority();
2437 	void GetType(D3D11_RESOURCE_DIMENSION *rType);
2438 	void SetEvictionPriority(uint EvictionPriority);
2439 }
2440 
2441 mixin(uuid!(ID3D11Texture1D, "f8fb5c27-c6b3-4f75-a4c8-439af2ef564c"));
2442 public interface ID3D11Texture1D : ID3D11Resource
2443 {
2444 extern(Windows):
2445 	void GetDesc(D3D11_TEXTURE1D_DESC *pDesc);
2446 }
2447 
2448 mixin(uuid!(ID3D11Texture2D, "6f15aaf2-d208-4e89-9ab4-489535d34f9c"));
2449 public interface ID3D11Texture2D : ID3D11Resource
2450 {
2451 extern(Windows):
2452 	void GetDesc(D3D11_TEXTURE2D_DESC *pDesc);
2453 }
2454 
2455 mixin(uuid!(ID3D11Texture3D, "037e866e-f56d-4357-a8af-9dabbe6e250e"));
2456 public interface ID3D11Texture3D : ID3D11Resource
2457 {
2458 extern(Windows):
2459 	void GetDesc(D3D11_TEXTURE3D_DESC *pDesc);
2460 }
2461 
2462 mixin(uuid!(ID3D11DepthStencilView, "9fdac92a-1876-48c3-afad-25b94f84a9b6"));
2463 public interface ID3D11DepthStencilView : ID3D11View
2464 {
2465 extern(Windows):
2466 	void GetDesc(D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
2467 }
2468 
2469 mixin(uuid!(ID3D11RenderTargetView, "dfdba067-0b8d-4865-875b-d7b4516cc164"));
2470 public interface ID3D11RenderTargetView : ID3D11View
2471 {
2472 extern(Windows):
2473 	void GetDesc(D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
2474 }
2475 
2476 mixin(uuid!(ID3D11ShaderResourceView, "b0e06fe0-8192-4e1a-b1ca-36d7414710b2"));
2477 public interface ID3D11ShaderResourceView : ID3D11View
2478 {
2479 extern(Windows):
2480 	void GetDesc(D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
2481 }
2482 
2483 mixin(uuid!(ID3D11UnorderedAccessView, "28acf509-7f5c-48f6-8611-f316010a6380"));
2484 public interface ID3D11UnorderedAccessView : ID3D11View
2485 {
2486 extern(Windows):
2487 	void GetDesc(D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
2488 }
2489 
2490 mixin(uuid!(ID3D11View, "839d1216-bb2e-412b-b7f4-a9dbebe08ed1"));
2491 public interface ID3D11View : ID3D11DeviceChild
2492 {
2493 extern(Windows):
2494 	void GetResource(ID3D11Resource **ppResource);
2495 }
2496 
2497 mixin(uuid!(ID3D11ClassInstance, "a6cd7faa-b0b7-4a2f-9436-8662a65797cb"));
2498 public interface ID3D11ClassInstance : ID3D11DeviceChild
2499 {
2500 extern(Windows):
2501 	void GetClassLinkage(ID3D11ClassLinkage *ppLinkage);
2502 	void GetDesc(D3D11_CLASS_INSTANCE_DESC *pDesc);
2503 	void GetInstanceName(wchar* pInstanceName, uint *pBufferLength);
2504 	void GetTypeName(const(char)* pTypeName, uint *pBufferLength);
2505 }
2506 
2507 mixin(uuid!(ID3D11ClassLinkage, "ddf57cba-9543-46e4-a12b-f207a0fe7fed"));
2508 public interface ID3D11ClassLinkage : ID3D11DeviceChild
2509 {
2510 extern(Windows):
2511 	HRESULT CreateClassInstance(const(char)* pszClassTypeName, uint ConstantBufferOffset, uint ConstantVectorOffset, uint TextureOffset, uint SamplerOffset, ID3D11ClassInstance *ppInstance);
2512 	HRESULT GetClassInstance(const(wchar)* pClassInstanceName, uint InstanceIndex, ID3D11ClassInstance *ppInstance);
2513 }
2514 
2515 mixin(uuid!(ID3D11ComputeShader, "4f5b196e-c2bd-495e-bd01-1fded38e4969"));
2516 public interface ID3D11ComputeShader : ID3D11DeviceChild
2517 {
2518 extern(Windows):
2519 }
2520 
2521 mixin(uuid!(ID3D11DomainShader, "f582c508-0f36-490c-9977-31eece268cfa"));
2522 public interface ID3D11DomainShader : ID3D11DeviceChild
2523 {
2524 extern(Windows):
2525 }
2526 
2527 mixin(uuid!(ID3D11GeometryShader, "38325b96-effb-4022-ba02-2e795b70275c"));
2528 public interface ID3D11GeometryShader : ID3D11DeviceChild
2529 {
2530 extern(Windows):
2531 }
2532 
2533 mixin(uuid!(ID3D11HullShader, "8e5c6061-628a-4c8e-8264-bbe45cb3d5dd"));
2534 public interface ID3D11HullShader : ID3D11DeviceChild
2535 {
2536 extern(Windows):
2537 }
2538 
2539 mixin(uuid!(ID3D11PixelShader, "ea82e40d-51dc-4f33-93d4-db7c9125ae8c"));
2540 public interface ID3D11PixelShader : ID3D11DeviceChild
2541 {
2542 extern(Windows):
2543 }
2544 
2545 mixin(uuid!(ID3D11VertexShader, "3b301d64-d678-4289-8897-22f8928b72f3"));
2546 public interface ID3D11VertexShader : ID3D11DeviceChild
2547 {
2548 extern(Windows):
2549 }
2550 
2551 mixin(uuid!(ID3D11VideoDecoder, "3C9C5B51-995D-48d1-9B8D-FA5CAEDED65C"));
2552 public interface ID3D11VideoDecoder : ID3D11DeviceChild
2553 {
2554 extern(Windows):
2555 	HRESULT GetCreationParameters(D3D11_VIDEO_DECODER_DESC *pVideoDesc, D3D11_VIDEO_DECODER_CONFIG *pConfig);
2556 	HRESULT GetDriverHandle(HANDLE *pDriverHandle);
2557 }
2558 
2559 mixin(uuid!(ID3D11VideoProcessorEnumerator, "31627037-53AB-4200-9061-05FAA9AB45F9"));
2560 public interface ID3D11VideoProcessorEnumerator : ID3D11DeviceChild
2561 {
2562 extern(Windows):
2563 	HRESULT CheckVideoProcessorFormat(DXGI_FORMAT Format, uint *pFlags);
2564 	HRESULT GetVideoProcessorCaps(D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
2565 	HRESULT GetVideoProcessorContentDesc(D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
2566 	HRESULT GetVideoProcessorCustomRate(uint TypeIndex, uint CustomRateIndex, D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
2567 	HRESULT GetVideoProcessorFilterRange(D3D11_VIDEO_PROCESSOR_FILTER Filter, D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
2568 	HRESULT GetVideoProcessorRateConversionCaps(uint TypeIndex, D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
2569 }
2570 
2571 mixin(uuid!(ID3D11VideoProcessor, "1D7B0652-185F-41c6-85CE-0C5BE3D4AE6C"));
2572 public interface ID3D11VideoProcessor : ID3D11DeviceChild
2573 {
2574 extern(Windows):
2575 	void GetContentDesc(D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
2576 	void GetRateConversionCaps(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
2577 }
2578 
2579 mixin(uuid!(ID3D11AuthenticatedChannel, "3015A308-DCBD-47aa-A747-192486D14D4A"));
2580 public interface ID3D11AuthenticatedChannel : IUnknown
2581 {
2582 extern(Windows):
2583 	HRESULT GetCertificate(uint CertificateSize, ubyte *pCertificate);
2584 	HRESULT GetCertificateSize(uint *pCertificateSize);
2585 	void GetChannelHandle(HANDLE *pChannelHandle);
2586 }
2587 
2588 mixin(uuid!(ID3D11CryptoSession, "9B32F9AD-BDCC-40a6-A39D-D5C865845720"));
2589 public interface ID3D11CryptoSession : ID3D11DeviceChild
2590 {
2591 extern(Windows):
2592 	HRESULT GetCertificate(uint CertificateSize, ubyte *pCertificate);
2593 	HRESULT GetCertificateSize(uint *pCertificateSize);
2594 	void GetCryptoSessionHandle(HANDLE *pCryptoSessionHandle);
2595 	void GetCryptoType(GUID *pCryptoType);
2596 	void GetDecoderProfile(GUID *pDecoderProfile);
2597 }
2598 
2599 mixin(uuid!(ID3D11VideoDecoderOutputView, "C2931AEA-2A85-4f20-860F-FBA1FD256E18"));
2600 public interface ID3D11VideoDecoderOutputView : ID3D11View
2601 {
2602 extern(Windows):
2603 	void GetDesc(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
2604 }
2605 
2606 mixin(uuid!(ID3D11VideoProcessorInputView, "11EC5A5F-51DC-4945-AB34-6E8C21300EA5"));
2607 public interface ID3D11VideoProcessorInputView : ID3D11View
2608 {
2609 extern(Windows):
2610 	void GetDesc(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
2611 }
2612 
2613 mixin(uuid!(ID3D11VideoProcessorOutputView, "A048285E-25A9-4527-BD93-D68B68C44254"));
2614 public interface ID3D11VideoProcessorOutputView : ID3D11View
2615 {
2616 extern(Windows):
2617 	void GetDesc(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
2618 }
2619 
2620 mixin(uuid!(ID3D11VideoContext, "61F21C45-3C0E-4a74-9CEA-67100D9AD5E4"));
2621 public interface ID3D11VideoContext : ID3D11DeviceChild
2622 {
2623 extern(Windows):
2624 	HRESULT ConfigureAuthenticatedChannel(ID3D11AuthenticatedChannel pChannel, uint InputSize, const void *pInput, D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput);
2625 	HRESULT DecoderBeginFrame(ID3D11VideoDecoder pDecoder, ID3D11VideoDecoderOutputView pView, uint ContentKeySize, const void*pContentKey);
2626 	HRESULT DecoderEndFrame(ID3D11VideoDecoder pDecoder);
2627 	HRESULT DecoderExtension(ID3D11VideoDecoder pDecoder, const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData);
2628 	HRESULT DecryptionBlt(ID3D11CryptoSession pCryptoSession, ID3D11Texture2D pSrcSurface, ID3D11Texture2D pDstSurface, D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo, const void *pContentKey, uint ContentKeySize, void *pIV, uint IVSize);
2629 	HRESULT EncryptionBlt(ID3D11CryptoSession pCryptoSession, ID3D11Texture2D pSrcSurface, ID3D11Texture2D pDstSurface, void *pIV, uint IVSize);
2630 	HRESULT FinishSessionKeyRefresh(ID3D11CryptoSession pCryptoSession);
2631 	HRESULT GetDecoderBuffer(ID3D11VideoDecoder pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type, uint *pBufferSize,void **ppBuffer);
2632 	HRESULT GetEncryptionBltKey(ID3D11CryptoSession pCryptoSession, uint KeySize, void *pReadbackKey);
2633 	HRESULT NegotiateAuthenticatedChannelKeyExchange(ID3D11AuthenticatedChannel pChannel, uint DataSize, void *pData);
2634 	HRESULT NegotiateCryptoSessionKeyExchange(ID3D11CryptoSession pCryptoSession, uint *DataSize, void *pData);
2635 	HRESULT QueryAuthenticatedChannel(ID3D11AuthenticatedChannel pChannel, uint InputSize, const void *pInput, uint OutputSize, void *pOutput);
2636 	HRESULT ReleaseDecoderBuffer(ID3D11VideoDecoder pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type);
2637 	HRESULT StartSessionKeyRefresh(ID3D11CryptoSession pCryptoSession, uint RandomNumberSize, void *pRandomNumber);
2638 	HRESULT SubmitDecoderBuffers(ID3D11VideoDecoder pDecoder, uint NumBuffers, const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc);
2639 	HRESULT VideoProcessorBlt(ID3D11VideoProcessor pVideoProcessor, ID3D11VideoProcessorOutputView pView, uint OutputFrame, uint StreamCount, const D3D11_VIDEO_PROCESSOR_STREAM *pStreams);
2640 	void VideoProcessorGetOutputAlphaFillMode(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, uint *pStreamIndex);
2641 	void VideoProcessorGetOutputBackgroundColor(ID3D11VideoProcessor pVideoProcessor, bool *pYCbCr, D3D11_VIDEO_COLOR *pColor);
2642 	void VideoProcessorGetOutputColorSpace(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2643 	void VideoProcessorGetOutputConstriction(ID3D11VideoProcessor pVideoProcessor, bool *Enabled, SIZE *pSize);
2644 	HRESULT VideoProcessorGetOutputExtension(ID3D11VideoProcessor pVideoProcessor, const GUID *pExtensionGuid, uint DataSize, void *pData);
2645 	void VideoProcessorGetOutputStereoMode(ID3D11VideoProcessor pVideoProcessor, bool *pEnabled);
2646 	void VideoProcessorGetOutputTargetRect(ID3D11VideoProcessor pVideoProcessor, bool *Enabled, RECT*pRect);
2647 	void VideoProcessorGetStreamAlpha(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, float *pAlpha);
2648 	void VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled);
2649 	void VideoProcessorGetStreamColorSpace(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2650 	void VideoProcessorGetStreamDestRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, RECT *pRect);
2651 	HRESULT VideoProcessorGetStreamExtension(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const GUID *pExtensionGuid, uint DataSize, void *pData);
2652 	void VideoProcessorGetStreamFilter(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex,D3D11_VIDEO_PROCESSOR_FILTER Filter, bool *pEnabled, int*pLevel);
2653 	void VideoProcessorGetStreamFrameFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_FRAME_FORMAT *pFrameFormat);
2654 	void VideoProcessorGetStreamLumaKey(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, float *pLower, float *pUpper);
2655 	void VideoProcessorGetStreamOutputRate(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate, bool *pRepeatFrame, DXGI_RATIONAL *pCustomRate);
2656 	void VideoProcessorGetStreamPalette(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, uint Count, uint *pEntries);
2657 	void VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, DXGI_RATIONAL *pSourceAspectRatio, DXGI_RATIONAL *pDestinationAspectRatio);
2658 	void VideoProcessorGetStreamRotation(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnable, D3D11_VIDEO_PROCESSOR_ROTATION *pRotation);
2659 	void VideoProcessorGetStreamSourceRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, RECT *pRect);
2660 	void VideoProcessorGetStreamStereoFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat, bool *pLeftViewFrame0, bool *pBaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode, int *MonoOffset);
2661 	void VideoProcessorSetOutputAlphaFillMode(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, uint StreamIndex);
2662 	void VideoProcessorSetOutputBackgroundColor(ID3D11VideoProcessor pVideoProcessor, bool YCbCr, const D3D11_VIDEO_COLOR *pColor);
2663 	void VideoProcessorSetOutputColorSpace(ID3D11VideoProcessor pVideoProcessor, const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2664 	void VideoProcessorSetOutputConstriction(ID3D11VideoProcessor pVideoProcessor, bool Enable, SIZE Size);
2665 	HRESULT VideoProcessorSetOutputExtension(ID3D11VideoProcessor pVideoProcessor, const GUID *pExtensionGuid, uint DataSize, void *pData);
2666 	void VideoProcessorSetOutputStereoMode(ID3D11VideoProcessor pVideoProcessor, bool Enable);
2667 	void VideoProcessorSetOutputTargetRect(ID3D11VideoProcessor pVideoProcessor, bool Enable, const RECT *pRect);
2668 	void VideoProcessorSetStreamAlpha(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, float Alpha);
2669 	void VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable);
2670 	void VideoProcessorSetStreamColorSpace(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2671 	void VideoProcessorSetStreamDestRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const RECT *pRect);
2672 	HRESULT VideoProcessorSetStreamExtension(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const GUID *pExtensionGuid, uint DataSize, void *pData);
2673 	void VideoProcessorSetStreamFilter(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_FILTER Filter, bool Enable, int Level);
2674 	void VideoProcessorSetStreamFrameFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_FRAME_FORMAT FrameFormat);
2675 	void VideoProcessorSetStreamLumaKey(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, float Lower, float Upper);
2676 	void VideoProcessorSetStreamOutputRate(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate, bool RepeatFrame, const DXGI_RATIONAL *pCustomRate);
2677 	void VideoProcessorSetStreamPalette(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, uint Count, const uint *pEntries);
2678 	void VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const DXGI_RATIONAL *pSourceAspectRatio, const DXGI_RATIONAL *pDestinationAspectRatio);
2679 	void VideoProcessorSetStreamRotation(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, D3D11_VIDEO_PROCESSOR_ROTATION Rotation);
2680 	void VideoProcessorSetStreamSourceRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const RECT *pRect);
2681 	void VideoProcessorSetStreamStereoFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format, bool LeftViewFrame0, bool BaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode, int MonoOffset);
2682 }
2683 
2684 mixin(uuid!(ID3D11VideoDevice, "10EC4D5B-975A-4689-B9E4-D0AAC30FE333"));
2685 public interface ID3D11VideoDevice : IUnknown
2686 {
2687 extern(Windows):
2688 	HRESULT CheckCryptoKeyExchange(const GUID *pCryptoType, const GUID *pDecoderProfile, uint Index, GUID *pKeyExchangeType);
2689 	HRESULT CheckVideoDecoderFormat(GUID pDecoderProfile, DXGI_FORMAT Format, bool *pSupported);
2690 	HRESULT CreateAuthenticatedChannel(D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ID3D11AuthenticatedChannel *ppAuthenticatedChannel);
2691 	HRESULT CreateCryptoSession(const GUID *pCryptoType, const GUID *pDecoderProfile, const GUID *pKeyExchangeType, ID3D11CryptoSession *ppCryptoSession);
2692 	HRESULT CreateVideoDecoder(const D3D11_VIDEO_DECODER_DESC *pVideoDesc, const D3D11_VIDEO_DECODER_CONFIG *pConfig, ID3D11VideoDecoder **ppDecoder);
2693 	HRESULT CreateVideoDecoderOutputView(ID3D11Resource pResource, const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ID3D11VideoDecoderOutputView *ppVDOVView);
2694 	HRESULT CreateVideoProcessor(ID3D11VideoProcessorEnumerator pEnum, uint RateConversionIndex, ID3D11VideoProcessor *ppVideoProcessor);
2695 	HRESULT CreateVideoProcessorEnumerator(const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, ID3D11VideoProcessorEnumerator *ppEnum);
2696 	HRESULT CreateVideoProcessorInputView(ID3D11Resource pResource, ID3D11VideoProcessorEnumerator pEnum, const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, ID3D11VideoProcessorInputView *ppVPIView);
2697 	HRESULT CreateVideoProcessorOutputView(ID3D11Resource pResource, ID3D11VideoProcessorEnumerator pEnum, const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, ID3D11VideoProcessorOutputView *ppVPOView);
2698 	HRESULT GetContentProtectionCaps(const GUID *pCryptoType, const GUID *pDecoderProfile, D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
2699 	HRESULT GetVideoDecoderConfig(const D3D11_VIDEO_DECODER_DESC *pDesc, uint Index, D3D11_VIDEO_DECODER_CONFIG *pConfig);
2700 	HRESULT GetVideoDecoderConfigCount(const D3D11_VIDEO_DECODER_DESC *pDesc, uint *pCount);
2701 	HRESULT GetVideoDecoderProfile(uint Index, GUID *pDecoderProfile);
2702 	uint GetVideoDecoderProfileCount();
2703 	HRESULT SetPrivateData(REFGUID guid, uint DataSize, const void *pData);
2704 	HRESULT SetPrivateDataInterface(REFGUID guid, const IUnknown *pData);
2705 }