rusty_d3d12/raw_bindings/
d3d12.rs

1/* automatically generated by rust-bindgen 0.59.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    pub fn get_bit(&self, index: usize) -> bool {
20        debug_assert!(index / 8 < self.storage.as_ref().len());
21        let byte_index = index / 8;
22        let byte = self.storage.as_ref()[byte_index];
23        let bit_index = if cfg!(target_endian = "big") {
24            7 - (index % 8)
25        } else {
26            index % 8
27        };
28        let mask = 1 << bit_index;
29        byte & mask == mask
30    }
31    #[inline]
32    pub fn set_bit(&mut self, index: usize, val: bool) {
33        debug_assert!(index / 8 < self.storage.as_ref().len());
34        let byte_index = index / 8;
35        let byte = &mut self.storage.as_mut()[byte_index];
36        let bit_index = if cfg!(target_endian = "big") {
37            7 - (index % 8)
38        } else {
39            index % 8
40        };
41        let mask = 1 << bit_index;
42        if val {
43            *byte |= mask;
44        } else {
45            *byte &= !mask;
46        }
47    }
48    #[inline]
49    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
50        debug_assert!(bit_width <= 64);
51        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
52        debug_assert!(
53            (bit_offset + (bit_width as usize)) / 8
54                <= self.storage.as_ref().len()
55        );
56        let mut val = 0;
57        for i in 0..(bit_width as usize) {
58            if self.get_bit(i + bit_offset) {
59                let index = if cfg!(target_endian = "big") {
60                    bit_width as usize - 1 - i
61                } else {
62                    i
63                };
64                val |= 1 << index;
65            }
66        }
67        val
68    }
69    #[inline]
70    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
71        debug_assert!(bit_width <= 64);
72        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
73        debug_assert!(
74            (bit_offset + (bit_width as usize)) / 8
75                <= self.storage.as_ref().len()
76        );
77        for i in 0..(bit_width as usize) {
78            let mask = 1 << i;
79            let val_bit_is_set = val & mask == mask;
80            let index = if cfg!(target_endian = "big") {
81                bit_width as usize - 1 - i
82            } else {
83                i
84            };
85            self.set_bit(index + bit_offset, val_bit_is_set);
86        }
87    }
88}
89pub const FACILITY_DXGI: u32 = 2170;
90pub const FACILITY_DXGI_DDI: u32 = 2171;
91pub const DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN: u32 = 4294967295;
92pub const DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN: u32 = 4294967294;
93pub const DXGI_FORMAT_DEFINED: u32 = 1;
94pub const D3D12_16BIT_INDEX_STRIP_CUT_VALUE: u32 = 65535;
95pub const D3D12_32BIT_INDEX_STRIP_CUT_VALUE: u32 = 4294967295;
96pub const D3D12_8BIT_INDEX_STRIP_CUT_VALUE: u32 = 255;
97pub const D3D12_APPEND_ALIGNED_ELEMENT: u32 = 4294967295;
98pub const D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT: u32 = 9;
99pub const D3D12_CLIP_OR_CULL_DISTANCE_COUNT: u32 = 8;
100pub const D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT: u32 = 2;
101pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT: u32 = 14;
102pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS: u32 = 4;
103pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT: u32 = 32;
104pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT: u32 = 15;
105pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT : u32 = 16 ;
106pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS: u32 = 4;
107pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT: u32 = 15;
108pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST: u32 = 1;
109pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS: u32 = 1;
110pub const D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT: u32 = 64;
111pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS:
112    u32 = 4;
113pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT: u32 = 1;
114pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST : u32 = 1 ;
115pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS:
116    u32 = 1;
117pub const D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT: u32 = 32;
118pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS: u32 = 1;
119pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT: u32 = 128;
120pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST: u32 = 1;
121pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS: u32 = 1;
122pub const D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT: u32 = 128;
123pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS: u32 = 1;
124pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT: u32 = 16;
125pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST: u32 = 1;
126pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS: u32 = 1;
127pub const D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT: u32 = 16;
128pub const D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT: u32 = 32;
129pub const D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS: u32 = 4;
130pub const D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
131pub const D3D12_COMMONSHADER_TEMP_REGISTER_COUNT: u32 = 4096;
132pub const D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST: u32 = 3;
133pub const D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS: u32 = 3;
134pub const D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX: u32 = 10;
135pub const D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN: i32 = -10;
136pub const D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE: i32 = -8;
137pub const D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE: u32 = 7;
138pub const D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT: u32 = 256;
139pub const D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 256;
140pub const D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP: u32 = 64;
141pub const D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 240;
142pub const D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP: u32 = 68;
143pub const D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 224;
144pub const D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP: u32 = 72;
145pub const D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 208;
146pub const D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP: u32 = 76;
147pub const D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 192;
148pub const D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP: u32 = 84;
149pub const D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 176;
150pub const D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP: u32 = 92;
151pub const D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 160;
152pub const D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP: u32 = 100;
153pub const D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 144;
154pub const D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP: u32 = 112;
155pub const D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 128;
156pub const D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP: u32 = 128;
157pub const D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 112;
158pub const D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP: u32 = 144;
159pub const D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 96;
160pub const D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP: u32 = 168;
161pub const D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 80;
162pub const D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP: u32 = 204;
163pub const D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 64;
164pub const D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP: u32 = 256;
165pub const D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 48;
166pub const D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP: u32 = 340;
167pub const D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 32;
168pub const D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP: u32 = 512;
169pub const D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 16;
170pub const D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP: u32 = 768;
171pub const D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION: u32 = 1;
172pub const D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT: u32 = 256;
173pub const D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP: u32 = 768;
174pub const D3D12_CS_4_X_THREAD_GROUP_MAX_X: u32 = 768;
175pub const D3D12_CS_4_X_THREAD_GROUP_MAX_Y: u32 = 768;
176pub const D3D12_CS_4_X_UAV_REGISTER_COUNT: u32 = 1;
177pub const D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION: u32 = 65535;
178pub const D3D12_CS_TGSM_REGISTER_COUNT: u32 = 8192;
179pub const D3D12_CS_TGSM_REGISTER_READS_PER_INST: u32 = 1;
180pub const D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS: u32 = 1;
181pub const D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS: u32 = 1;
182pub const D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS: u32 = 3;
183pub const D3D12_CS_THREADGROUPID_REGISTER_COUNT: u32 = 1;
184pub const D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS: u32 = 1;
185pub const D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT: u32 = 1;
186pub const D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS: u32 = 3;
187pub const D3D12_CS_THREADIDINGROUP_REGISTER_COUNT: u32 = 1;
188pub const D3D12_CS_THREADID_REGISTER_COMPONENTS: u32 = 3;
189pub const D3D12_CS_THREADID_REGISTER_COUNT: u32 = 1;
190pub const D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP: u32 = 1024;
191pub const D3D12_CS_THREAD_GROUP_MAX_X: u32 = 1024;
192pub const D3D12_CS_THREAD_GROUP_MAX_Y: u32 = 1024;
193pub const D3D12_CS_THREAD_GROUP_MAX_Z: u32 = 64;
194pub const D3D12_CS_THREAD_GROUP_MIN_X: u32 = 1;
195pub const D3D12_CS_THREAD_GROUP_MIN_Y: u32 = 1;
196pub const D3D12_CS_THREAD_GROUP_MIN_Z: u32 = 1;
197pub const D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL: u32 = 16384;
198pub const D3D12_DEFAULT_BLEND_FACTOR_ALPHA: f64 = 1.0;
199pub const D3D12_DEFAULT_BLEND_FACTOR_BLUE: f64 = 1.0;
200pub const D3D12_DEFAULT_BLEND_FACTOR_GREEN: f64 = 1.0;
201pub const D3D12_DEFAULT_BLEND_FACTOR_RED: f64 = 1.0;
202pub const D3D12_DEFAULT_BORDER_COLOR_COMPONENT: f64 = 0.0;
203pub const D3D12_DEFAULT_DEPTH_BIAS: u32 = 0;
204pub const D3D12_DEFAULT_DEPTH_BIAS_CLAMP: f64 = 0.0;
205pub const D3D12_DEFAULT_MAX_ANISOTROPY: u32 = 16;
206pub const D3D12_DEFAULT_MIP_LOD_BIAS: f64 = 0.0;
207pub const D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 4194304;
208pub const D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX: u32 = 0;
209pub const D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 65536;
210pub const D3D12_DEFAULT_SAMPLE_MASK: u32 = 4294967295;
211pub const D3D12_DEFAULT_SCISSOR_ENDX: u32 = 0;
212pub const D3D12_DEFAULT_SCISSOR_ENDY: u32 = 0;
213pub const D3D12_DEFAULT_SCISSOR_STARTX: u32 = 0;
214pub const D3D12_DEFAULT_SCISSOR_STARTY: u32 = 0;
215pub const D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS: f64 = 0.0;
216pub const D3D12_DEFAULT_STENCIL_READ_MASK: u32 = 255;
217pub const D3D12_DEFAULT_STENCIL_REFERENCE: u32 = 0;
218pub const D3D12_DEFAULT_STENCIL_WRITE_MASK: u32 = 255;
219pub const D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX: u32 = 0;
220pub const D3D12_DEFAULT_VIEWPORT_HEIGHT: u32 = 0;
221pub const D3D12_DEFAULT_VIEWPORT_MAX_DEPTH: f64 = 0.0;
222pub const D3D12_DEFAULT_VIEWPORT_MIN_DEPTH: f64 = 0.0;
223pub const D3D12_DEFAULT_VIEWPORT_TOPLEFTX: u32 = 0;
224pub const D3D12_DEFAULT_VIEWPORT_TOPLEFTY: u32 = 0;
225pub const D3D12_DEFAULT_VIEWPORT_WIDTH: u32 = 0;
226pub const D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND: u32 = 4294967295;
227pub const D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967287;
228pub const D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967280;
229pub const D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: u32 = 3968;
230pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS: u32 = 4;
231pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
232pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT: u32 = 32;
233pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST: u32 = 2;
234pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS: u32 = 1;
235pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS: u32 = 3;
236pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
237pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT: u32 = 1;
238pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST: u32 = 2;
239pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS: u32 = 1;
240pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: u32 = 4;
241pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
242pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT: u32 = 32;
243pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: u32 = 2;
244pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: u32 = 1;
245pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: u32 = 1;
246pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
247pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: u32 = 1;
248pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: u32 = 2;
249pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: u32 = 1;
250pub const D3D12_DS_OUTPUT_REGISTER_COMPONENTS: u32 = 4;
251pub const D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
252pub const D3D12_DS_OUTPUT_REGISTER_COUNT: u32 = 32;
253pub const D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP: f64 = 0.6;
254pub const D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP: f64 = 0.6;
255pub const D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR: f64 = 2.4;
256pub const D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR: f64 = 1.0;
257pub const D3D12_FLOAT_TO_SRGB_OFFSET: f64 = 0.055;
258pub const D3D12_FLOAT_TO_SRGB_SCALE_1: f64 = 12.92;
259pub const D3D12_FLOAT_TO_SRGB_SCALE_2: f64 = 1.055;
260pub const D3D12_FLOAT_TO_SRGB_THRESHOLD: f64 = 0.0031308;
261pub const D3D12_FTOI_INSTRUCTION_MAX_INPUT: f64 = 2147483647.999;
262pub const D3D12_FTOI_INSTRUCTION_MIN_INPUT: f64 = -2147483648.999;
263pub const D3D12_FTOU_INSTRUCTION_MAX_INPUT: f64 = 4294967295.999;
264pub const D3D12_FTOU_INSTRUCTION_MIN_INPUT: f64 = 0.0;
265pub const D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST: u32 = 2;
266pub const D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS: u32 = 1;
267pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1;
268pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
269pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT: u32 = 1;
270pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS: u32 = 1;
271pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
272pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT: u32 = 1;
273pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST: u32 = 2;
274pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS: u32 = 1;
275pub const D3D12_GS_INPUT_REGISTER_COMPONENTS: u32 = 4;
276pub const D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
277pub const D3D12_GS_INPUT_REGISTER_COUNT: u32 = 32;
278pub const D3D12_GS_INPUT_REGISTER_READS_PER_INST: u32 = 2;
279pub const D3D12_GS_INPUT_REGISTER_READ_PORTS: u32 = 1;
280pub const D3D12_GS_INPUT_REGISTER_VERTICES: u32 = 32;
281pub const D3D12_GS_MAX_INSTANCE_COUNT: u32 = 32;
282pub const D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES: u32 = 1024;
283pub const D3D12_GS_OUTPUT_ELEMENTS: u32 = 32;
284pub const D3D12_GS_OUTPUT_REGISTER_COMPONENTS: u32 = 4;
285pub const D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
286pub const D3D12_GS_OUTPUT_REGISTER_COUNT: u32 = 32;
287pub const D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT: u32 = 32;
288pub const D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT: u32 = 32;
289pub const D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS: u32 = 4;
290pub const D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
291pub const D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST: u32 = 2;
292pub const D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS: u32 = 1;
293pub const D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND: u32 = 4294967295;
294pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1;
295pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 =
296    32;
297pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT: u32 = 1;
298pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST: u32 = 2;
299pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS: u32 = 1;
300pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1;
301pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 =
302    32;
303pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT: u32 = 1;
304pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST: u32 = 2;
305pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS: u32 = 1;
306pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: u32 = 1;
307pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
308pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: u32 = 1;
309pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: u32 = 2;
310pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: u32 = 1;
311pub const D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND: u32 = 4294967295;
312pub const D3D12_HS_MAXTESSFACTOR_LOWER_BOUND: f64 = 1.0;
313pub const D3D12_HS_MAXTESSFACTOR_UPPER_BOUND: f64 = 64.0;
314pub const D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: u32 = 3968;
315pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS: u32 = 1;
316pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT: u32 =
317    32;
318pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT: u32 = 1;
319pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST: u32 = 2;
320pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS: u32 = 1;
321pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: u32 = 4;
322pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
323pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT: u32 = 32;
324pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: u32 = 2;
325pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: u32 = 1;
326pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS: u32 = 128;
327pub const D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES: u32 = 0;
328pub const D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY: u32 = 0;
329pub const D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES: u32 = 0;
330pub const D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT: u32 = 1;
331pub const D3D12_IA_INSTANCE_ID_BIT_COUNT: u32 = 32;
332pub const D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT: u32 = 32;
333pub const D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT: u32 = 32;
334pub const D3D12_IA_PRIMITIVE_ID_BIT_COUNT: u32 = 32;
335pub const D3D12_IA_VERTEX_ID_BIT_COUNT: u32 = 32;
336pub const D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT: u32 = 32;
337pub const D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS: u32 = 128;
338pub const D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT: u32 = 32;
339pub const D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT: u32 = 4294967295;
340pub const D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER: u32 = 4294967295;
341pub const D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL: u32 = 4294967295;
342pub const D3D12_KEEP_UNORDERED_ACCESS_VIEWS: u32 = 4294967295;
343pub const D3D12_LINEAR_GAMMA: f64 = 1.0;
344pub const D3D12_MAJOR_VERSION: u32 = 12;
345pub const D3D12_MAX_BORDER_COLOR_COMPONENT: f64 = 1.0;
346pub const D3D12_MAX_DEPTH: f64 = 1.0;
347pub const D3D12_MAX_LIVE_STATIC_SAMPLERS: u32 = 2032;
348pub const D3D12_MAX_MAXANISOTROPY: u32 = 16;
349pub const D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT: u32 = 32;
350pub const D3D12_MAX_ROOT_COST: u32 = 64;
351pub const D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1: u32 = 1000000;
352pub const D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2: u32 = 1000000;
353pub const D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE: u32 = 2048;
354pub const D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP: u32 = 17;
355pub const D3D12_MAX_VIEW_INSTANCE_COUNT: u32 = 4;
356pub const D3D12_MINOR_VERSION: u32 = 0;
357pub const D3D12_MIN_BORDER_COLOR_COMPONENT: f64 = 0.0;
358pub const D3D12_MIN_DEPTH: f64 = 0.0;
359pub const D3D12_MIN_MAXANISOTROPY: u32 = 0;
360pub const D3D12_MIP_LOD_BIAS_MAX: f64 = 15.99;
361pub const D3D12_MIP_LOD_BIAS_MIN: f64 = -16.0;
362pub const D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT: u32 = 8;
363pub const D3D12_MIP_LOD_RANGE_BIT_COUNT: u32 = 8;
364pub const D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH: f64 = 1.4;
365pub const D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT: u32 = 0;
366pub const D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967295;
367pub const D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967288;
368pub const D3D12_PACKED_TILE: u32 = 4294967295;
369pub const D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 15;
370pub const D3D12_PREVIEW_SDK_VERSION: u32 = 700;
371pub const D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 16;
372pub const D3D12_PS_CS_UAV_REGISTER_COMPONENTS: u32 = 1;
373pub const D3D12_PS_CS_UAV_REGISTER_COUNT: u32 = 8;
374pub const D3D12_PS_CS_UAV_REGISTER_READS_PER_INST: u32 = 1;
375pub const D3D12_PS_CS_UAV_REGISTER_READ_PORTS: u32 = 1;
376pub const D3D12_PS_FRONTFACING_DEFAULT_VALUE: u32 = 4294967295;
377pub const D3D12_PS_FRONTFACING_FALSE_VALUE: u32 = 0;
378pub const D3D12_PS_FRONTFACING_TRUE_VALUE: u32 = 4294967295;
379pub const D3D12_PS_INPUT_REGISTER_COMPONENTS: u32 = 4;
380pub const D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
381pub const D3D12_PS_INPUT_REGISTER_COUNT: u32 = 32;
382pub const D3D12_PS_INPUT_REGISTER_READS_PER_INST: u32 = 2;
383pub const D3D12_PS_INPUT_REGISTER_READ_PORTS: u32 = 1;
384pub const D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT: f64 = 0.0;
385pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS: u32 = 1;
386pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
387pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT: u32 = 1;
388pub const D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS: u32 = 1;
389pub const D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
390pub const D3D12_PS_OUTPUT_MASK_REGISTER_COUNT: u32 = 1;
391pub const D3D12_PS_OUTPUT_REGISTER_COMPONENTS: u32 = 4;
392pub const D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
393pub const D3D12_PS_OUTPUT_REGISTER_COUNT: u32 = 8;
394pub const D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT: f64 = 0.5;
395pub const D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT: u32 = 16;
396pub const D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT: u32 = 8;
397pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT: u32 = 256;
398pub const D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT: u32 = 16;
399pub const D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES: u32 = 32;
400pub const D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH: u32 = 31;
401pub const D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE : u32 = 16777216 ;
402pub const D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE : u32 = 16777216 ;
403pub const D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE : u32 = 536870912 ;
404pub const D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS: u32 = 1073741824;
405pub const D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE: u32 = 4096;
406pub const D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT: u32 = 32;
407pub const D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT: u32 = 64;
408pub const D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT: u32 = 16;
409pub const D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE: u32 = 4096;
410pub const D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP: u32 = 27;
411pub const D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT: u32 = 4096;
412pub const D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE: u32 = 4096;
413pub const D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: u32 = 32;
414pub const D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP: u32 = 32;
415pub const D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION: u32 = 16384;
416pub const D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT: u32 = 1024;
417pub const D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT: u32 = 4096;
418pub const D3D12_REQ_MAXANISOTROPY: u32 = 16;
419pub const D3D12_REQ_MIP_LEVELS: u32 = 15;
420pub const D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES: u32 = 2048;
421pub const D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE: u32 = 4096;
422pub const D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH: u32 = 16384;
423pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM: u32 = 128;
424pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM: f64 = 0.25;
425pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM: u32 = 2048;
426pub const D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP: u32 = 20;
427pub const D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE: u32 = 4096;
428pub const D3D12_REQ_SUBRESOURCES: u32 = 30720;
429pub const D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION: u32 = 2048;
430pub const D3D12_REQ_TEXTURE1D_U_DIMENSION: u32 = 16384;
431pub const D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION: u32 = 2048;
432pub const D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION: u32 = 16384;
433pub const D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION: u32 = 2048;
434pub const D3D12_REQ_TEXTURECUBE_DIMENSION: u32 = 16384;
435pub const D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL: u32 = 0;
436pub const D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES: u32 = 4294967295;
437pub const D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT: u32 = 2;
438pub const D3D12_SDK_VERSION: u32 = 600;
439pub const D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES: u32 = 32;
440pub const D3D12_SHADER_MAJOR_VERSION: u32 = 5;
441pub const D3D12_SHADER_MAX_INSTANCES: u32 = 65535;
442pub const D3D12_SHADER_MAX_INTERFACES: u32 = 253;
443pub const D3D12_SHADER_MAX_INTERFACE_CALL_SITES: u32 = 4096;
444pub const D3D12_SHADER_MAX_TYPES: u32 = 65535;
445pub const D3D12_SHADER_MINOR_VERSION: u32 = 1;
446pub const D3D12_SHIFT_INSTRUCTION_PAD_VALUE: u32 = 0;
447pub const D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT: u32 = 5;
448pub const D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT: u32 = 8;
449pub const D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 65536;
450pub const D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 4096;
451pub const D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES: u32 = 2048;
452pub const D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES: u32 = 512;
453pub const D3D12_SO_BUFFER_SLOT_COUNT: u32 = 4;
454pub const D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP: u32 = 4294967295;
455pub const D3D12_SO_NO_RASTERIZED_STREAM: u32 = 4294967295;
456pub const D3D12_SO_OUTPUT_COMPONENT_COUNT: u32 = 128;
457pub const D3D12_SO_STREAM_COUNT: u32 = 4;
458pub const D3D12_SPEC_DATE_DAY: u32 = 14;
459pub const D3D12_SPEC_DATE_MONTH: u32 = 11;
460pub const D3D12_SPEC_DATE_YEAR: u32 = 2014;
461pub const D3D12_SPEC_VERSION: f64 = 1.16;
462pub const D3D12_SRGB_GAMMA: f64 = 2.2;
463pub const D3D12_SRGB_TO_FLOAT_DENOMINATOR_1: f64 = 12.92;
464pub const D3D12_SRGB_TO_FLOAT_DENOMINATOR_2: f64 = 1.055;
465pub const D3D12_SRGB_TO_FLOAT_EXPONENT: f64 = 2.4;
466pub const D3D12_SRGB_TO_FLOAT_OFFSET: f64 = 0.055;
467pub const D3D12_SRGB_TO_FLOAT_THRESHOLD: f64 = 0.04045;
468pub const D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP: f64 = 0.5;
469pub const D3D12_STANDARD_COMPONENT_BIT_COUNT: u32 = 32;
470pub const D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED: u32 = 64;
471pub const D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE: u32 = 4;
472pub const D3D12_STANDARD_PIXEL_COMPONENT_COUNT: u32 = 128;
473pub const D3D12_STANDARD_PIXEL_ELEMENT_COUNT: u32 = 32;
474pub const D3D12_STANDARD_VECTOR_SIZE: u32 = 4;
475pub const D3D12_STANDARD_VERTEX_ELEMENT_COUNT: u32 = 32;
476pub const D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT: u32 = 64;
477pub const D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT: u32 = 8;
478pub const D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT: u32 = 8;
479pub const D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967295;
480pub const D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967280;
481pub const D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR: u32 = 64;
482pub const D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR: u32 = 64;
483pub const D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR: u32 = 63;
484pub const D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR: u32 = 64;
485pub const D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR: u32 = 2;
486pub const D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR: u32 = 1;
487pub const D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR: u32 = 1;
488pub const D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 16;
489pub const D3D12_TEXTURE_DATA_PITCH_ALIGNMENT: u32 = 256;
490pub const D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT: u32 = 512;
491pub const D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES: u32 = 65536;
492pub const D3D12_TRACKED_WORKLOAD_MAX_INSTANCES: u32 = 32;
493pub const D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT: u32 = 4096;
494pub const D3D12_UAV_SLOT_COUNT: u32 = 64;
495pub const D3D12_UNBOUND_MEMORY_ACCESS_RESULT: u32 = 0;
496pub const D3D12_VIDEO_DECODE_MAX_ARGUMENTS: u32 = 10;
497pub const D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS: u32 = 4;
498pub const D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT: u32 = 256;
499pub const D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT: u32 = 256;
500pub const D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN: u32 =
501    4294967295;
502pub const D3D12_VIDEO_PROCESS_MAX_FILTERS: u32 = 32;
503pub const D3D12_VIDEO_PROCESS_STEREO_VIEWS: u32 = 2;
504pub const D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX: u32 = 15;
505pub const D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE: u32 = 16;
506pub const D3D12_VIEWPORT_BOUNDS_MAX: u32 = 32767;
507pub const D3D12_VIEWPORT_BOUNDS_MIN: i32 = -32768;
508pub const D3D12_VS_INPUT_REGISTER_COMPONENTS: u32 = 4;
509pub const D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
510pub const D3D12_VS_INPUT_REGISTER_COUNT: u32 = 32;
511pub const D3D12_VS_INPUT_REGISTER_READS_PER_INST: u32 = 2;
512pub const D3D12_VS_INPUT_REGISTER_READ_PORTS: u32 = 1;
513pub const D3D12_VS_OUTPUT_REGISTER_COMPONENTS: u32 = 4;
514pub const D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32;
515pub const D3D12_VS_OUTPUT_REGISTER_COUNT: u32 = 32;
516pub const D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT: u32 = 10;
517pub const D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: u32 = 25;
518pub const D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP: u32 = 25;
519pub const D3D12_SHADER_COMPONENT_MAPPING_MASK: u32 = 7;
520pub const D3D12_SHADER_COMPONENT_MAPPING_SHIFT: u32 = 3;
521pub const D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES : u32 = 4096 ;
522pub const D3D12_FILTER_REDUCTION_TYPE_MASK: u32 = 3;
523pub const D3D12_FILTER_REDUCTION_TYPE_SHIFT: u32 = 7;
524pub const D3D12_FILTER_TYPE_MASK: u32 = 3;
525pub const D3D12_MIN_FILTER_SHIFT: u32 = 4;
526pub const D3D12_MAG_FILTER_SHIFT: u32 = 2;
527pub const D3D12_MIP_FILTER_SHIFT: u32 = 0;
528pub const D3D12_ANISOTROPIC_FILTERING_BIT: u32 = 64;
529pub const D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: u32 = 1024;
530pub const D3D12_SHADING_RATE_X_AXIS_SHIFT: u32 = 2;
531pub const D3D12_SHADING_RATE_VALID_MASK: u32 = 3;
532pub const _FACDXGI: u32 = 2170;
533pub const DXGI_CPU_ACCESS_NONE: u32 = 0;
534pub const DXGI_CPU_ACCESS_DYNAMIC: u32 = 1;
535pub const DXGI_CPU_ACCESS_READ_WRITE: u32 = 2;
536pub const DXGI_CPU_ACCESS_SCRATCH: u32 = 3;
537pub const DXGI_CPU_ACCESS_FIELD: u32 = 15;
538pub const DXGI_USAGE_SHADER_INPUT: u32 = 16;
539pub const DXGI_USAGE_RENDER_TARGET_OUTPUT: u32 = 32;
540pub const DXGI_USAGE_BACK_BUFFER: u32 = 64;
541pub const DXGI_USAGE_SHARED: u32 = 128;
542pub const DXGI_USAGE_READ_ONLY: u32 = 256;
543pub const DXGI_USAGE_DISCARD_ON_PRESENT: u32 = 512;
544pub const DXGI_USAGE_UNORDERED_ACCESS: u32 = 1024;
545pub const DXGI_RESOURCE_PRIORITY_MINIMUM: u32 = 671088640;
546pub const DXGI_RESOURCE_PRIORITY_LOW: u32 = 1342177280;
547pub const DXGI_RESOURCE_PRIORITY_NORMAL: u32 = 2013265920;
548pub const DXGI_RESOURCE_PRIORITY_HIGH: u32 = 2684354560;
549pub const DXGI_RESOURCE_PRIORITY_MAXIMUM: u32 = 3355443200;
550pub const DXGI_MAP_READ: u32 = 1;
551pub const DXGI_MAP_WRITE: u32 = 2;
552pub const DXGI_MAP_DISCARD: u32 = 4;
553pub const DXGI_ENUM_MODES_INTERLACED: u32 = 1;
554pub const DXGI_ENUM_MODES_SCALING: u32 = 2;
555pub const DXGI_MAX_SWAP_CHAIN_BUFFERS: u32 = 16;
556pub const DXGI_PRESENT_TEST: u32 = 1;
557pub const DXGI_PRESENT_DO_NOT_SEQUENCE: u32 = 2;
558pub const DXGI_PRESENT_RESTART: u32 = 4;
559pub const DXGI_PRESENT_DO_NOT_WAIT: u32 = 8;
560pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: u32 = 16;
561pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: u32 = 32;
562pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: u32 = 64;
563pub const DXGI_PRESENT_USE_DURATION: u32 = 256;
564pub const DXGI_PRESENT_ALLOW_TEARING: u32 = 512;
565pub const DXGI_MWA_NO_WINDOW_CHANGES: u32 = 1;
566pub const DXGI_MWA_NO_ALT_ENTER: u32 = 2;
567pub const DXGI_MWA_NO_PRINT_SCREEN: u32 = 4;
568pub const DXGI_MWA_VALID: u32 = 7;
569pub const DXGI_ENUM_MODES_STEREO: u32 = 4;
570pub const DXGI_ENUM_MODES_DISABLED_STEREO: u32 = 8;
571pub const DXGI_SHARED_RESOURCE_READ: u32 = 2147483648;
572pub const DXGI_SHARED_RESOURCE_WRITE: u32 = 1;
573pub const DXGI_CREATE_FACTORY_DEBUG: u32 = 1;
574pub type wchar_t = ::std::os::raw::c_ushort;
575pub type ULONG = ::std::os::raw::c_ulong;
576pub type DWORD = ::std::os::raw::c_ulong;
577pub type BOOL = ::std::os::raw::c_int;
578pub type BYTE = ::std::os::raw::c_uchar;
579pub type WORD = ::std::os::raw::c_ushort;
580pub type FLOAT = f32;
581pub type LPBYTE = *mut BYTE;
582pub type LPDWORD = *mut DWORD;
583pub type LPVOID = *mut ::std::os::raw::c_void;
584pub type LPCVOID = *const ::std::os::raw::c_void;
585pub type INT = ::std::os::raw::c_int;
586pub type UINT = ::std::os::raw::c_uint;
587pub type INT8 = ::std::os::raw::c_schar;
588pub type UINT8 = ::std::os::raw::c_uchar;
589pub type UINT16 = ::std::os::raw::c_ushort;
590pub type UINT32 = ::std::os::raw::c_uint;
591pub type UINT64 = ::std::os::raw::c_ulonglong;
592pub type LONG_PTR = ::std::os::raw::c_longlong;
593pub type ULONG_PTR = ::std::os::raw::c_ulonglong;
594pub type SIZE_T = ULONG_PTR;
595pub type PVOID = *mut ::std::os::raw::c_void;
596pub type CHAR = ::std::os::raw::c_char;
597pub type LONG = ::std::os::raw::c_long;
598pub type WCHAR = wchar_t;
599pub type LPWSTR = *mut WCHAR;
600pub type PWSTR = *mut WCHAR;
601pub type LPCWSTR = *const WCHAR;
602pub type LPSTR = *mut CHAR;
603pub type LPCSTR = *const CHAR;
604pub type HANDLE = *mut ::std::os::raw::c_void;
605pub type HRESULT = ::std::os::raw::c_long;
606pub type LCID = DWORD;
607pub type LANGID = WORD;
608pub type LONGLONG = ::std::os::raw::c_longlong;
609#[repr(C)]
610#[derive(Copy, Clone)]
611pub union _LARGE_INTEGER {
612    pub __bindgen_anon_1: _LARGE_INTEGER__bindgen_ty_1,
613    pub u: _LARGE_INTEGER__bindgen_ty_2,
614    pub QuadPart: LONGLONG,
615}
616#[repr(C)]
617#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
618pub struct _LARGE_INTEGER__bindgen_ty_1 {
619    pub LowPart: DWORD,
620    pub HighPart: LONG,
621}
622#[repr(C)]
623#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
624pub struct _LARGE_INTEGER__bindgen_ty_2 {
625    pub LowPart: DWORD,
626    pub HighPart: LONG,
627}
628impl Default for _LARGE_INTEGER {
629    fn default() -> Self {
630        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
631        unsafe {
632            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
633            s.assume_init()
634        }
635    }
636}
637impl ::std::fmt::Debug for _LARGE_INTEGER {
638    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
639        write!(f, "_LARGE_INTEGER {{ union }}")
640    }
641}
642pub type LARGE_INTEGER = _LARGE_INTEGER;
643#[repr(C)]
644#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
645pub struct _LUID {
646    pub LowPart: DWORD,
647    pub HighPart: LONG,
648}
649pub type LUID = _LUID;
650pub type BOOLEAN = BYTE;
651#[repr(C)]
652#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
653pub struct _GUID {
654    pub Data1: ::std::os::raw::c_ulong,
655    pub Data2: ::std::os::raw::c_ushort,
656    pub Data3: ::std::os::raw::c_ushort,
657    pub Data4: [::std::os::raw::c_uchar; 8usize],
658}
659pub type GUID = _GUID;
660pub type IID = GUID;
661pub type LPARAM = LONG_PTR;
662#[repr(C)]
663#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
664pub struct HMETAFILE__ {
665    pub unused: ::std::os::raw::c_int,
666}
667pub type HMETAFILE = *mut HMETAFILE__;
668#[repr(C)]
669#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
670pub struct HINSTANCE__ {
671    pub unused: ::std::os::raw::c_int,
672}
673pub type HINSTANCE = *mut HINSTANCE__;
674pub type HMODULE = HINSTANCE;
675#[repr(C)]
676#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
677pub struct HWINSTA__ {
678    pub unused: ::std::os::raw::c_int,
679}
680pub type HWINSTA = *mut HWINSTA__;
681#[repr(C)]
682#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
683pub struct HWND__ {
684    pub unused: ::std::os::raw::c_int,
685}
686pub type HWND = *mut HWND__;
687pub type HGDIOBJ = *mut ::std::os::raw::c_void;
688#[repr(C)]
689#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
690pub struct HDC__ {
691    pub unused: ::std::os::raw::c_int,
692}
693pub type HDC = *mut HDC__;
694#[repr(C)]
695#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
696pub struct HDESK__ {
697    pub unused: ::std::os::raw::c_int,
698}
699pub type HDESK = *mut HDESK__;
700#[repr(C)]
701#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
702pub struct HENHMETAFILE__ {
703    pub unused: ::std::os::raw::c_int,
704}
705pub type HENHMETAFILE = *mut HENHMETAFILE__;
706#[repr(C)]
707#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
708pub struct HMONITOR__ {
709    pub unused: ::std::os::raw::c_int,
710}
711pub type HMONITOR = *mut HMONITOR__;
712#[repr(C)]
713#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
714pub struct tagRECT {
715    pub left: LONG,
716    pub top: LONG,
717    pub right: LONG,
718    pub bottom: LONG,
719}
720pub type RECT = tagRECT;
721pub type LPRECT = *mut tagRECT;
722pub type LPCRECT = *const RECT;
723#[repr(C)]
724#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
725pub struct tagPOINT {
726    pub x: LONG,
727    pub y: LONG,
728}
729pub type POINT = tagPOINT;
730#[repr(C)]
731#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
732pub struct _POINTL {
733    pub x: LONG,
734    pub y: LONG,
735}
736pub type POINTL = _POINTL;
737#[repr(C)]
738#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
739pub struct _SECURITY_ATTRIBUTES {
740    pub nLength: DWORD,
741    pub lpSecurityDescriptor: LPVOID,
742    pub bInheritHandle: BOOL,
743}
744impl Default for _SECURITY_ATTRIBUTES {
745    fn default() -> Self {
746        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
747        unsafe {
748            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
749            s.assume_init()
750        }
751    }
752}
753pub type SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES;
754pub type LPSECURITY_ATTRIBUTES = *mut _SECURITY_ATTRIBUTES;
755#[repr(C)]
756#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
757pub struct _SYSTEMTIME {
758    pub wYear: WORD,
759    pub wMonth: WORD,
760    pub wDayOfWeek: WORD,
761    pub wDay: WORD,
762    pub wHour: WORD,
763    pub wMinute: WORD,
764    pub wSecond: WORD,
765    pub wMilliseconds: WORD,
766}
767pub type SYSTEMTIME = _SYSTEMTIME;
768extern "C" {
769    pub fn CloseHandle(hObject: HANDLE) -> BOOL;
770}
771extern "C" {
772    pub fn WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: DWORD)
773        -> DWORD;
774}
775extern "C" {
776    pub fn CreateEventW(
777        lpEventAttributes: LPSECURITY_ATTRIBUTES,
778        bManualReset: BOOL,
779        bInitialState: BOOL,
780        lpName: LPCWSTR,
781    ) -> HANDLE;
782}
783extern "C" {
784    pub fn EnumSystemFirmwareTables(
785        FirmwareTableProviderSignature: DWORD,
786        pFirmwareTableEnumBuffer: PVOID,
787        BufferSize: DWORD,
788    ) -> UINT;
789}
790pub type ENUMRESLANGPROCA = ::std::option::Option<
791    unsafe extern "C" fn(
792        hModule: HMODULE,
793        lpType: LPCSTR,
794        lpName: LPCSTR,
795        wLanguage: WORD,
796        lParam: LONG_PTR,
797    ) -> BOOL,
798>;
799pub type ENUMRESLANGPROCW = ::std::option::Option<
800    unsafe extern "C" fn(
801        hModule: HMODULE,
802        lpType: LPCWSTR,
803        lpName: LPCWSTR,
804        wLanguage: WORD,
805        lParam: LONG_PTR,
806    ) -> BOOL,
807>;
808pub type ENUMRESNAMEPROCA = ::std::option::Option<
809    unsafe extern "C" fn(
810        hModule: HMODULE,
811        lpType: LPCSTR,
812        lpName: LPSTR,
813        lParam: LONG_PTR,
814    ) -> BOOL,
815>;
816pub type ENUMRESNAMEPROCW = ::std::option::Option<
817    unsafe extern "C" fn(
818        hModule: HMODULE,
819        lpType: LPCWSTR,
820        lpName: LPWSTR,
821        lParam: LONG_PTR,
822    ) -> BOOL,
823>;
824pub type ENUMRESTYPEPROCA = ::std::option::Option<
825    unsafe extern "C" fn(
826        hModule: HMODULE,
827        lpType: LPSTR,
828        lParam: LONG_PTR,
829    ) -> BOOL,
830>;
831pub type ENUMRESTYPEPROCW = ::std::option::Option<
832    unsafe extern "C" fn(
833        hModule: HMODULE,
834        lpType: LPWSTR,
835        lParam: LONG_PTR,
836    ) -> BOOL,
837>;
838extern "C" {
839    pub fn EnumResourceLanguagesExA(
840        hModule: HMODULE,
841        lpType: LPCSTR,
842        lpName: LPCSTR,
843        lpEnumFunc: ENUMRESLANGPROCA,
844        lParam: LONG_PTR,
845        dwFlags: DWORD,
846        LangId: LANGID,
847    ) -> BOOL;
848}
849extern "C" {
850    pub fn EnumResourceLanguagesExW(
851        hModule: HMODULE,
852        lpType: LPCWSTR,
853        lpName: LPCWSTR,
854        lpEnumFunc: ENUMRESLANGPROCW,
855        lParam: LONG_PTR,
856        dwFlags: DWORD,
857        LangId: LANGID,
858    ) -> BOOL;
859}
860extern "C" {
861    pub fn EnumResourceNamesExA(
862        hModule: HMODULE,
863        lpType: LPCSTR,
864        lpEnumFunc: ENUMRESNAMEPROCA,
865        lParam: LONG_PTR,
866        dwFlags: DWORD,
867        LangId: LANGID,
868    ) -> BOOL;
869}
870extern "C" {
871    pub fn EnumResourceNamesExW(
872        hModule: HMODULE,
873        lpType: LPCWSTR,
874        lpEnumFunc: ENUMRESNAMEPROCW,
875        lParam: LONG_PTR,
876        dwFlags: DWORD,
877        LangId: LANGID,
878    ) -> BOOL;
879}
880extern "C" {
881    pub fn EnumResourceTypesExA(
882        hModule: HMODULE,
883        lpEnumFunc: ENUMRESTYPEPROCA,
884        lParam: LONG_PTR,
885        dwFlags: DWORD,
886        LangId: LANGID,
887    ) -> BOOL;
888}
889extern "C" {
890    pub fn EnumResourceTypesExW(
891        hModule: HMODULE,
892        lpEnumFunc: ENUMRESTYPEPROCW,
893        lParam: LONG_PTR,
894        dwFlags: DWORD,
895        LangId: LANGID,
896    ) -> BOOL;
897}
898extern "C" {
899    pub fn EnumResourceNamesW(
900        hModule: HMODULE,
901        lpType: LPCWSTR,
902        lpEnumFunc: ENUMRESNAMEPROCW,
903        lParam: LONG_PTR,
904    ) -> BOOL;
905}
906extern "C" {
907    pub fn EnumResourceNamesA(
908        hModule: HMODULE,
909        lpType: LPCSTR,
910        lpEnumFunc: ENUMRESNAMEPROCA,
911        lParam: LONG_PTR,
912    ) -> BOOL;
913}
914extern "C" {
915    pub fn EnumResourceTypesA(
916        hModule: HMODULE,
917        lpEnumFunc: ENUMRESTYPEPROCA,
918        lParam: LONG_PTR,
919    ) -> BOOL;
920}
921extern "C" {
922    pub fn EnumResourceTypesW(
923        hModule: HMODULE,
924        lpEnumFunc: ENUMRESTYPEPROCW,
925        lParam: LONG_PTR,
926    ) -> BOOL;
927}
928extern "C" {
929    pub fn EnumResourceLanguagesA(
930        hModule: HMODULE,
931        lpType: LPCSTR,
932        lpName: LPCSTR,
933        lpEnumFunc: ENUMRESLANGPROCA,
934        lParam: LONG_PTR,
935    ) -> BOOL;
936}
937extern "C" {
938    pub fn EnumResourceLanguagesW(
939        hModule: HMODULE,
940        lpType: LPCWSTR,
941        lpName: LPCWSTR,
942        lpEnumFunc: ENUMRESLANGPROCW,
943        lParam: LONG_PTR,
944    ) -> BOOL;
945}
946#[repr(C)]
947#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
948pub struct _TIME_DYNAMIC_ZONE_INFORMATION {
949    pub Bias: LONG,
950    pub StandardName: [WCHAR; 32usize],
951    pub StandardDate: SYSTEMTIME,
952    pub StandardBias: LONG,
953    pub DaylightName: [WCHAR; 32usize],
954    pub DaylightDate: SYSTEMTIME,
955    pub DaylightBias: LONG,
956    pub TimeZoneKeyName: [WCHAR; 128usize],
957    pub DynamicDaylightTimeDisabled: BOOLEAN,
958}
959impl Default for _TIME_DYNAMIC_ZONE_INFORMATION {
960    fn default() -> Self {
961        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
962        unsafe {
963            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
964            s.assume_init()
965        }
966    }
967}
968pub type PDYNAMIC_TIME_ZONE_INFORMATION = *mut _TIME_DYNAMIC_ZONE_INFORMATION;
969extern "C" {
970    pub fn EnumDynamicTimeZoneInformation(
971        dwIndex: DWORD,
972        lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION,
973    ) -> DWORD;
974}
975#[repr(C)]
976#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
977pub struct tagHANDLETABLE {
978    pub objectHandle: [HGDIOBJ; 1usize],
979}
980impl Default for tagHANDLETABLE {
981    fn default() -> Self {
982        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
983        unsafe {
984            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
985            s.assume_init()
986        }
987    }
988}
989pub type HANDLETABLE = tagHANDLETABLE;
990#[repr(C)]
991#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
992pub struct tagMETARECORD {
993    pub rdSize: DWORD,
994    pub rdFunction: WORD,
995    pub rdParm: [WORD; 1usize],
996}
997pub type METARECORD = tagMETARECORD;
998#[repr(C)]
999#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1000pub struct tagENHMETARECORD {
1001    pub iType: DWORD,
1002    pub nSize: DWORD,
1003    pub dParm: [DWORD; 1usize],
1004}
1005pub type ENHMETARECORD = tagENHMETARECORD;
1006#[repr(C)]
1007#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1008pub struct tagTEXTMETRICA {
1009    pub tmHeight: LONG,
1010    pub tmAscent: LONG,
1011    pub tmDescent: LONG,
1012    pub tmInternalLeading: LONG,
1013    pub tmExternalLeading: LONG,
1014    pub tmAveCharWidth: LONG,
1015    pub tmMaxCharWidth: LONG,
1016    pub tmWeight: LONG,
1017    pub tmOverhang: LONG,
1018    pub tmDigitizedAspectX: LONG,
1019    pub tmDigitizedAspectY: LONG,
1020    pub tmFirstChar: BYTE,
1021    pub tmLastChar: BYTE,
1022    pub tmDefaultChar: BYTE,
1023    pub tmBreakChar: BYTE,
1024    pub tmItalic: BYTE,
1025    pub tmUnderlined: BYTE,
1026    pub tmStruckOut: BYTE,
1027    pub tmPitchAndFamily: BYTE,
1028    pub tmCharSet: BYTE,
1029}
1030pub type TEXTMETRICA = tagTEXTMETRICA;
1031#[repr(C)]
1032#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1033pub struct tagTEXTMETRICW {
1034    pub tmHeight: LONG,
1035    pub tmAscent: LONG,
1036    pub tmDescent: LONG,
1037    pub tmInternalLeading: LONG,
1038    pub tmExternalLeading: LONG,
1039    pub tmAveCharWidth: LONG,
1040    pub tmMaxCharWidth: LONG,
1041    pub tmWeight: LONG,
1042    pub tmOverhang: LONG,
1043    pub tmDigitizedAspectX: LONG,
1044    pub tmDigitizedAspectY: LONG,
1045    pub tmFirstChar: WCHAR,
1046    pub tmLastChar: WCHAR,
1047    pub tmDefaultChar: WCHAR,
1048    pub tmBreakChar: WCHAR,
1049    pub tmItalic: BYTE,
1050    pub tmUnderlined: BYTE,
1051    pub tmStruckOut: BYTE,
1052    pub tmPitchAndFamily: BYTE,
1053    pub tmCharSet: BYTE,
1054}
1055pub type TEXTMETRICW = tagTEXTMETRICW;
1056#[repr(C)]
1057#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1058pub struct tagLOGFONTA {
1059    pub lfHeight: LONG,
1060    pub lfWidth: LONG,
1061    pub lfEscapement: LONG,
1062    pub lfOrientation: LONG,
1063    pub lfWeight: LONG,
1064    pub lfItalic: BYTE,
1065    pub lfUnderline: BYTE,
1066    pub lfStrikeOut: BYTE,
1067    pub lfCharSet: BYTE,
1068    pub lfOutPrecision: BYTE,
1069    pub lfClipPrecision: BYTE,
1070    pub lfQuality: BYTE,
1071    pub lfPitchAndFamily: BYTE,
1072    pub lfFaceName: [CHAR; 32usize],
1073}
1074pub type LOGFONTA = tagLOGFONTA;
1075pub type LPLOGFONTA = *mut tagLOGFONTA;
1076#[repr(C)]
1077#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1078pub struct tagLOGFONTW {
1079    pub lfHeight: LONG,
1080    pub lfWidth: LONG,
1081    pub lfEscapement: LONG,
1082    pub lfOrientation: LONG,
1083    pub lfWeight: LONG,
1084    pub lfItalic: BYTE,
1085    pub lfUnderline: BYTE,
1086    pub lfStrikeOut: BYTE,
1087    pub lfCharSet: BYTE,
1088    pub lfOutPrecision: BYTE,
1089    pub lfClipPrecision: BYTE,
1090    pub lfQuality: BYTE,
1091    pub lfPitchAndFamily: BYTE,
1092    pub lfFaceName: [WCHAR; 32usize],
1093}
1094pub type LOGFONTW = tagLOGFONTW;
1095pub type LPLOGFONTW = *mut tagLOGFONTW;
1096#[repr(C)]
1097#[derive(Copy, Clone)]
1098pub struct _devicemodeA {
1099    pub dmDeviceName: [BYTE; 32usize],
1100    pub dmSpecVersion: WORD,
1101    pub dmDriverVersion: WORD,
1102    pub dmSize: WORD,
1103    pub dmDriverExtra: WORD,
1104    pub dmFields: DWORD,
1105    pub __bindgen_anon_1: _devicemodeA__bindgen_ty_1,
1106    pub dmColor: ::std::os::raw::c_short,
1107    pub dmDuplex: ::std::os::raw::c_short,
1108    pub dmYResolution: ::std::os::raw::c_short,
1109    pub dmTTOption: ::std::os::raw::c_short,
1110    pub dmCollate: ::std::os::raw::c_short,
1111    pub dmFormName: [BYTE; 32usize],
1112    pub dmLogPixels: WORD,
1113    pub dmBitsPerPel: DWORD,
1114    pub dmPelsWidth: DWORD,
1115    pub dmPelsHeight: DWORD,
1116    pub __bindgen_anon_2: _devicemodeA__bindgen_ty_2,
1117    pub dmDisplayFrequency: DWORD,
1118    pub dmICMMethod: DWORD,
1119    pub dmICMIntent: DWORD,
1120    pub dmMediaType: DWORD,
1121    pub dmDitherType: DWORD,
1122    pub dmReserved1: DWORD,
1123    pub dmReserved2: DWORD,
1124    pub dmPanningWidth: DWORD,
1125    pub dmPanningHeight: DWORD,
1126}
1127#[repr(C)]
1128#[derive(Copy, Clone)]
1129pub union _devicemodeA__bindgen_ty_1 {
1130    pub __bindgen_anon_1: _devicemodeA__bindgen_ty_1__bindgen_ty_1,
1131    pub __bindgen_anon_2: _devicemodeA__bindgen_ty_1__bindgen_ty_2,
1132}
1133#[repr(C)]
1134#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1135pub struct _devicemodeA__bindgen_ty_1__bindgen_ty_1 {
1136    pub dmOrientation: ::std::os::raw::c_short,
1137    pub dmPaperSize: ::std::os::raw::c_short,
1138    pub dmPaperLength: ::std::os::raw::c_short,
1139    pub dmPaperWidth: ::std::os::raw::c_short,
1140    pub dmScale: ::std::os::raw::c_short,
1141    pub dmCopies: ::std::os::raw::c_short,
1142    pub dmDefaultSource: ::std::os::raw::c_short,
1143    pub dmPrintQuality: ::std::os::raw::c_short,
1144}
1145#[repr(C)]
1146#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1147pub struct _devicemodeA__bindgen_ty_1__bindgen_ty_2 {
1148    pub dmPosition: POINTL,
1149    pub dmDisplayOrientation: DWORD,
1150    pub dmDisplayFixedOutput: DWORD,
1151}
1152impl Default for _devicemodeA__bindgen_ty_1 {
1153    fn default() -> Self {
1154        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1155        unsafe {
1156            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1157            s.assume_init()
1158        }
1159    }
1160}
1161impl ::std::fmt::Debug for _devicemodeA__bindgen_ty_1 {
1162    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1163        write!(f, "_devicemodeA__bindgen_ty_1 {{ union }}")
1164    }
1165}
1166#[repr(C)]
1167#[derive(Copy, Clone)]
1168pub union _devicemodeA__bindgen_ty_2 {
1169    pub dmDisplayFlags: DWORD,
1170    pub dmNup: DWORD,
1171}
1172impl Default for _devicemodeA__bindgen_ty_2 {
1173    fn default() -> Self {
1174        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1175        unsafe {
1176            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1177            s.assume_init()
1178        }
1179    }
1180}
1181impl ::std::fmt::Debug for _devicemodeA__bindgen_ty_2 {
1182    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1183        write!(f, "_devicemodeA__bindgen_ty_2 {{ union }}")
1184    }
1185}
1186impl Default for _devicemodeA {
1187    fn default() -> Self {
1188        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1189        unsafe {
1190            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1191            s.assume_init()
1192        }
1193    }
1194}
1195impl ::std::fmt::Debug for _devicemodeA {
1196    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1197        write ! (f , "_devicemodeA {{ dmDeviceName: {:?}, dmSpecVersion: {:?}, dmDriverVersion: {:?}, dmSize: {:?}, dmDriverExtra: {:?}, dmFields: {:?}, __bindgen_anon_1: {:?}, dmColor: {:?}, dmDuplex: {:?}, dmYResolution: {:?}, dmTTOption: {:?}, dmCollate: {:?}, dmFormName: {:?}, dmLogPixels: {:?}, dmBitsPerPel: {:?}, dmPelsWidth: {:?}, dmPelsHeight: {:?}, __bindgen_anon_2: {:?}, dmDisplayFrequency: {:?}, dmICMMethod: {:?}, dmICMIntent: {:?}, dmMediaType: {:?}, dmDitherType: {:?}, dmReserved1: {:?}, dmReserved2: {:?}, dmPanningWidth: {:?}, dmPanningHeight: {:?} }}" , self . dmDeviceName , self . dmSpecVersion , self . dmDriverVersion , self . dmSize , self . dmDriverExtra , self . dmFields , self . __bindgen_anon_1 , self . dmColor , self . dmDuplex , self . dmYResolution , self . dmTTOption , self . dmCollate , self . dmFormName , self . dmLogPixels , self . dmBitsPerPel , self . dmPelsWidth , self . dmPelsHeight , self . __bindgen_anon_2 , self . dmDisplayFrequency , self . dmICMMethod , self . dmICMIntent , self . dmMediaType , self . dmDitherType , self . dmReserved1 , self . dmReserved2 , self . dmPanningWidth , self . dmPanningHeight)
1198    }
1199}
1200pub type DEVMODEA = _devicemodeA;
1201#[repr(C)]
1202#[derive(Copy, Clone)]
1203pub struct _devicemodeW {
1204    pub dmDeviceName: [WCHAR; 32usize],
1205    pub dmSpecVersion: WORD,
1206    pub dmDriverVersion: WORD,
1207    pub dmSize: WORD,
1208    pub dmDriverExtra: WORD,
1209    pub dmFields: DWORD,
1210    pub __bindgen_anon_1: _devicemodeW__bindgen_ty_1,
1211    pub dmColor: ::std::os::raw::c_short,
1212    pub dmDuplex: ::std::os::raw::c_short,
1213    pub dmYResolution: ::std::os::raw::c_short,
1214    pub dmTTOption: ::std::os::raw::c_short,
1215    pub dmCollate: ::std::os::raw::c_short,
1216    pub dmFormName: [WCHAR; 32usize],
1217    pub dmLogPixels: WORD,
1218    pub dmBitsPerPel: DWORD,
1219    pub dmPelsWidth: DWORD,
1220    pub dmPelsHeight: DWORD,
1221    pub __bindgen_anon_2: _devicemodeW__bindgen_ty_2,
1222    pub dmDisplayFrequency: DWORD,
1223    pub dmICMMethod: DWORD,
1224    pub dmICMIntent: DWORD,
1225    pub dmMediaType: DWORD,
1226    pub dmDitherType: DWORD,
1227    pub dmReserved1: DWORD,
1228    pub dmReserved2: DWORD,
1229    pub dmPanningWidth: DWORD,
1230    pub dmPanningHeight: DWORD,
1231}
1232#[repr(C)]
1233#[derive(Copy, Clone)]
1234pub union _devicemodeW__bindgen_ty_1 {
1235    pub __bindgen_anon_1: _devicemodeW__bindgen_ty_1__bindgen_ty_1,
1236    pub __bindgen_anon_2: _devicemodeW__bindgen_ty_1__bindgen_ty_2,
1237}
1238#[repr(C)]
1239#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1240pub struct _devicemodeW__bindgen_ty_1__bindgen_ty_1 {
1241    pub dmOrientation: ::std::os::raw::c_short,
1242    pub dmPaperSize: ::std::os::raw::c_short,
1243    pub dmPaperLength: ::std::os::raw::c_short,
1244    pub dmPaperWidth: ::std::os::raw::c_short,
1245    pub dmScale: ::std::os::raw::c_short,
1246    pub dmCopies: ::std::os::raw::c_short,
1247    pub dmDefaultSource: ::std::os::raw::c_short,
1248    pub dmPrintQuality: ::std::os::raw::c_short,
1249}
1250#[repr(C)]
1251#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1252pub struct _devicemodeW__bindgen_ty_1__bindgen_ty_2 {
1253    pub dmPosition: POINTL,
1254    pub dmDisplayOrientation: DWORD,
1255    pub dmDisplayFixedOutput: DWORD,
1256}
1257impl Default for _devicemodeW__bindgen_ty_1 {
1258    fn default() -> Self {
1259        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1260        unsafe {
1261            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1262            s.assume_init()
1263        }
1264    }
1265}
1266impl ::std::fmt::Debug for _devicemodeW__bindgen_ty_1 {
1267    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1268        write!(f, "_devicemodeW__bindgen_ty_1 {{ union }}")
1269    }
1270}
1271#[repr(C)]
1272#[derive(Copy, Clone)]
1273pub union _devicemodeW__bindgen_ty_2 {
1274    pub dmDisplayFlags: DWORD,
1275    pub dmNup: DWORD,
1276}
1277impl Default for _devicemodeW__bindgen_ty_2 {
1278    fn default() -> Self {
1279        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1280        unsafe {
1281            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1282            s.assume_init()
1283        }
1284    }
1285}
1286impl ::std::fmt::Debug for _devicemodeW__bindgen_ty_2 {
1287    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1288        write!(f, "_devicemodeW__bindgen_ty_2 {{ union }}")
1289    }
1290}
1291impl Default for _devicemodeW {
1292    fn default() -> Self {
1293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1294        unsafe {
1295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1296            s.assume_init()
1297        }
1298    }
1299}
1300impl ::std::fmt::Debug for _devicemodeW {
1301    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1302        write ! (f , "_devicemodeW {{ dmDeviceName: {:?}, dmSpecVersion: {:?}, dmDriverVersion: {:?}, dmSize: {:?}, dmDriverExtra: {:?}, dmFields: {:?}, __bindgen_anon_1: {:?}, dmColor: {:?}, dmDuplex: {:?}, dmYResolution: {:?}, dmTTOption: {:?}, dmCollate: {:?}, dmFormName: {:?}, dmLogPixels: {:?}, dmBitsPerPel: {:?}, dmPelsWidth: {:?}, dmPelsHeight: {:?}, __bindgen_anon_2: {:?}, dmDisplayFrequency: {:?}, dmICMMethod: {:?}, dmICMIntent: {:?}, dmMediaType: {:?}, dmDitherType: {:?}, dmReserved1: {:?}, dmReserved2: {:?}, dmPanningWidth: {:?}, dmPanningHeight: {:?} }}" , self . dmDeviceName , self . dmSpecVersion , self . dmDriverVersion , self . dmSize , self . dmDriverExtra , self . dmFields , self . __bindgen_anon_1 , self . dmColor , self . dmDuplex , self . dmYResolution , self . dmTTOption , self . dmCollate , self . dmFormName , self . dmLogPixels , self . dmBitsPerPel , self . dmPelsWidth , self . dmPelsHeight , self . __bindgen_anon_2 , self . dmDisplayFrequency , self . dmICMMethod , self . dmICMIntent , self . dmMediaType , self . dmDitherType , self . dmReserved1 , self . dmReserved2 , self . dmPanningWidth , self . dmPanningHeight)
1303    }
1304}
1305pub type DEVMODEW = _devicemodeW;
1306#[repr(C)]
1307#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1308pub struct _DISPLAY_DEVICEA {
1309    pub cb: DWORD,
1310    pub DeviceName: [CHAR; 32usize],
1311    pub DeviceString: [CHAR; 128usize],
1312    pub StateFlags: DWORD,
1313    pub DeviceID: [CHAR; 128usize],
1314    pub DeviceKey: [CHAR; 128usize],
1315}
1316impl Default for _DISPLAY_DEVICEA {
1317    fn default() -> Self {
1318        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1319        unsafe {
1320            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1321            s.assume_init()
1322        }
1323    }
1324}
1325pub type PDISPLAY_DEVICEA = *mut _DISPLAY_DEVICEA;
1326#[repr(C)]
1327#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1328pub struct _DISPLAY_DEVICEW {
1329    pub cb: DWORD,
1330    pub DeviceName: [WCHAR; 32usize],
1331    pub DeviceString: [WCHAR; 128usize],
1332    pub StateFlags: DWORD,
1333    pub DeviceID: [WCHAR; 128usize],
1334    pub DeviceKey: [WCHAR; 128usize],
1335}
1336impl Default for _DISPLAY_DEVICEW {
1337    fn default() -> Self {
1338        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1339        unsafe {
1340            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1341            s.assume_init()
1342        }
1343    }
1344}
1345pub type PDISPLAY_DEVICEW = *mut _DISPLAY_DEVICEW;
1346pub type OLDFONTENUMPROCA = ::std::option::Option<
1347    unsafe extern "C" fn(
1348        arg1: *const LOGFONTA,
1349        arg2: *const TEXTMETRICA,
1350        arg3: DWORD,
1351        arg4: LPARAM,
1352    ) -> ::std::os::raw::c_int,
1353>;
1354pub type OLDFONTENUMPROCW = ::std::option::Option<
1355    unsafe extern "C" fn(
1356        arg1: *const LOGFONTW,
1357        arg2: *const TEXTMETRICW,
1358        arg3: DWORD,
1359        arg4: LPARAM,
1360    ) -> ::std::os::raw::c_int,
1361>;
1362pub type FONTENUMPROCA = OLDFONTENUMPROCA;
1363pub type FONTENUMPROCW = OLDFONTENUMPROCW;
1364pub type GOBJENUMPROC = ::std::option::Option<
1365    unsafe extern "C" fn(arg1: LPVOID, arg2: LPARAM) -> ::std::os::raw::c_int,
1366>;
1367extern "C" {
1368    pub fn EnumFontFamiliesExA(
1369        hdc: HDC,
1370        lpLogfont: LPLOGFONTA,
1371        lpProc: FONTENUMPROCA,
1372        lParam: LPARAM,
1373        dwFlags: DWORD,
1374    ) -> ::std::os::raw::c_int;
1375}
1376extern "C" {
1377    pub fn EnumFontFamiliesExW(
1378        hdc: HDC,
1379        lpLogfont: LPLOGFONTW,
1380        lpProc: FONTENUMPROCW,
1381        lParam: LPARAM,
1382        dwFlags: DWORD,
1383    ) -> ::std::os::raw::c_int;
1384}
1385extern "C" {
1386    pub fn EnumFontFamiliesA(
1387        hdc: HDC,
1388        lpLogfont: LPCSTR,
1389        lpProc: FONTENUMPROCA,
1390        lParam: LPARAM,
1391    ) -> ::std::os::raw::c_int;
1392}
1393extern "C" {
1394    pub fn EnumFontFamiliesW(
1395        hdc: HDC,
1396        lpLogfont: LPCWSTR,
1397        lpProc: FONTENUMPROCW,
1398        lParam: LPARAM,
1399    ) -> ::std::os::raw::c_int;
1400}
1401extern "C" {
1402    pub fn EnumFontsA(
1403        hdc: HDC,
1404        lpLogfont: LPCSTR,
1405        lpProc: FONTENUMPROCA,
1406        lParam: LPARAM,
1407    ) -> ::std::os::raw::c_int;
1408}
1409extern "C" {
1410    pub fn EnumFontsW(
1411        hdc: HDC,
1412        lpLogfont: LPCWSTR,
1413        lpProc: FONTENUMPROCW,
1414        lParam: LPARAM,
1415    ) -> ::std::os::raw::c_int;
1416}
1417extern "C" {
1418    pub fn EnumObjects(
1419        hdc: HDC,
1420        nType: ::std::os::raw::c_int,
1421        lpFunc: GOBJENUMPROC,
1422        lParam: LPARAM,
1423    ) -> ::std::os::raw::c_int;
1424}
1425pub type MFENUMPROC = ::std::option::Option<
1426    unsafe extern "C" fn(
1427        hdc: HDC,
1428        lpht: *mut HANDLETABLE,
1429        lpMR: *mut METARECORD,
1430        nObj: ::std::os::raw::c_int,
1431        param: LPARAM,
1432    ) -> ::std::os::raw::c_int,
1433>;
1434extern "C" {
1435    pub fn EnumMetaFile(
1436        hdc: HDC,
1437        hmf: HMETAFILE,
1438        proc_: MFENUMPROC,
1439        param: LPARAM,
1440    ) -> BOOL;
1441}
1442pub type ENHMFENUMPROC = ::std::option::Option<
1443    unsafe extern "C" fn(
1444        hdc: HDC,
1445        lpht: *mut HANDLETABLE,
1446        lpmr: *const ENHMETARECORD,
1447        nHandles: ::std::os::raw::c_int,
1448        data: LPARAM,
1449    ) -> ::std::os::raw::c_int,
1450>;
1451extern "C" {
1452    pub fn EnumEnhMetaFile(
1453        hdc: HDC,
1454        hmf: HENHMETAFILE,
1455        proc_: ENHMFENUMPROC,
1456        param: LPVOID,
1457        lpRect: *const RECT,
1458    ) -> BOOL;
1459}
1460pub type ICMENUMPROCA = ::std::option::Option<
1461    unsafe extern "C" fn(arg1: LPSTR, arg2: LPARAM) -> ::std::os::raw::c_int,
1462>;
1463pub type ICMENUMPROCW = ::std::option::Option<
1464    unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> ::std::os::raw::c_int,
1465>;
1466extern "C" {
1467    pub fn EnumICMProfilesA(
1468        hdc: HDC,
1469        proc_: ICMENUMPROCA,
1470        param: LPARAM,
1471    ) -> ::std::os::raw::c_int;
1472}
1473extern "C" {
1474    pub fn EnumICMProfilesW(
1475        hdc: HDC,
1476        proc_: ICMENUMPROCW,
1477        param: LPARAM,
1478    ) -> ::std::os::raw::c_int;
1479}
1480pub type WNDENUMPROC = ::std::option::Option<
1481    unsafe extern "C" fn(arg1: HWND, arg2: LPARAM) -> BOOL,
1482>;
1483pub type PROPENUMPROCA = ::std::option::Option<
1484    unsafe extern "C" fn(arg1: HWND, arg2: LPCSTR, arg3: HANDLE) -> BOOL,
1485>;
1486pub type PROPENUMPROCW = ::std::option::Option<
1487    unsafe extern "C" fn(arg1: HWND, arg2: LPCWSTR, arg3: HANDLE) -> BOOL,
1488>;
1489pub type PROPENUMPROCEXA = ::std::option::Option<
1490    unsafe extern "C" fn(
1491        arg1: HWND,
1492        arg2: LPSTR,
1493        arg3: HANDLE,
1494        arg4: ULONG_PTR,
1495    ) -> BOOL,
1496>;
1497pub type PROPENUMPROCEXW = ::std::option::Option<
1498    unsafe extern "C" fn(
1499        arg1: HWND,
1500        arg2: LPWSTR,
1501        arg3: HANDLE,
1502        arg4: ULONG_PTR,
1503    ) -> BOOL,
1504>;
1505pub type NAMEENUMPROCA = ::std::option::Option<
1506    unsafe extern "C" fn(arg1: LPSTR, arg2: LPARAM) -> BOOL,
1507>;
1508pub type NAMEENUMPROCW = ::std::option::Option<
1509    unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> BOOL,
1510>;
1511pub type WINSTAENUMPROCA = NAMEENUMPROCA;
1512pub type DESKTOPENUMPROCA = NAMEENUMPROCA;
1513pub type WINSTAENUMPROCW = NAMEENUMPROCW;
1514pub type DESKTOPENUMPROCW = NAMEENUMPROCW;
1515extern "C" {
1516    pub fn EnumDesktopsA(
1517        hwinsta: HWINSTA,
1518        lpEnumFunc: DESKTOPENUMPROCA,
1519        lParam: LPARAM,
1520    ) -> BOOL;
1521}
1522extern "C" {
1523    pub fn EnumDesktopsW(
1524        hwinsta: HWINSTA,
1525        lpEnumFunc: DESKTOPENUMPROCW,
1526        lParam: LPARAM,
1527    ) -> BOOL;
1528}
1529extern "C" {
1530    pub fn EnumDesktopWindows(
1531        hDesktop: HDESK,
1532        lpfn: WNDENUMPROC,
1533        lParam: LPARAM,
1534    ) -> BOOL;
1535}
1536extern "C" {
1537    pub fn EnumWindowStationsA(
1538        lpEnumFunc: WINSTAENUMPROCA,
1539        lParam: LPARAM,
1540    ) -> BOOL;
1541}
1542extern "C" {
1543    pub fn EnumWindowStationsW(
1544        lpEnumFunc: WINSTAENUMPROCW,
1545        lParam: LPARAM,
1546    ) -> BOOL;
1547}
1548extern "C" {
1549    pub fn EnumClipboardFormats(format: UINT) -> UINT;
1550}
1551extern "C" {
1552    pub fn EnumPropsExA(
1553        hWnd: HWND,
1554        lpEnumFunc: PROPENUMPROCEXA,
1555        lParam: LPARAM,
1556    ) -> ::std::os::raw::c_int;
1557}
1558extern "C" {
1559    pub fn EnumPropsExW(
1560        hWnd: HWND,
1561        lpEnumFunc: PROPENUMPROCEXW,
1562        lParam: LPARAM,
1563    ) -> ::std::os::raw::c_int;
1564}
1565extern "C" {
1566    pub fn EnumPropsA(
1567        hWnd: HWND,
1568        lpEnumFunc: PROPENUMPROCA,
1569    ) -> ::std::os::raw::c_int;
1570}
1571extern "C" {
1572    pub fn EnumPropsW(
1573        hWnd: HWND,
1574        lpEnumFunc: PROPENUMPROCW,
1575    ) -> ::std::os::raw::c_int;
1576}
1577extern "C" {
1578    pub fn EnumChildWindows(
1579        hWndParent: HWND,
1580        lpEnumFunc: WNDENUMPROC,
1581        lParam: LPARAM,
1582    ) -> BOOL;
1583}
1584extern "C" {
1585    pub fn EnumWindows(lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> BOOL;
1586}
1587extern "C" {
1588    pub fn EnumThreadWindows(
1589        dwThreadId: DWORD,
1590        lpfn: WNDENUMPROC,
1591        lParam: LPARAM,
1592    ) -> BOOL;
1593}
1594extern "C" {
1595    pub fn EnumDisplaySettingsA(
1596        lpszDeviceName: LPCSTR,
1597        iModeNum: DWORD,
1598        lpDevMode: *mut DEVMODEA,
1599    ) -> BOOL;
1600}
1601extern "C" {
1602    pub fn EnumDisplaySettingsW(
1603        lpszDeviceName: LPCWSTR,
1604        iModeNum: DWORD,
1605        lpDevMode: *mut DEVMODEW,
1606    ) -> BOOL;
1607}
1608extern "C" {
1609    pub fn EnumDisplaySettingsExA(
1610        lpszDeviceName: LPCSTR,
1611        iModeNum: DWORD,
1612        lpDevMode: *mut DEVMODEA,
1613        dwFlags: DWORD,
1614    ) -> BOOL;
1615}
1616extern "C" {
1617    pub fn EnumDisplaySettingsExW(
1618        lpszDeviceName: LPCWSTR,
1619        iModeNum: DWORD,
1620        lpDevMode: *mut DEVMODEW,
1621        dwFlags: DWORD,
1622    ) -> BOOL;
1623}
1624extern "C" {
1625    pub fn EnumDisplayDevicesA(
1626        lpDevice: LPCSTR,
1627        iDevNum: DWORD,
1628        lpDisplayDevice: PDISPLAY_DEVICEA,
1629        dwFlags: DWORD,
1630    ) -> BOOL;
1631}
1632extern "C" {
1633    pub fn EnumDisplayDevicesW(
1634        lpDevice: LPCWSTR,
1635        iDevNum: DWORD,
1636        lpDisplayDevice: PDISPLAY_DEVICEW,
1637        dwFlags: DWORD,
1638    ) -> BOOL;
1639}
1640pub type MONITORENUMPROC = ::std::option::Option<
1641    unsafe extern "C" fn(
1642        arg1: HMONITOR,
1643        arg2: HDC,
1644        arg3: LPRECT,
1645        arg4: LPARAM,
1646    ) -> BOOL,
1647>;
1648extern "C" {
1649    pub fn EnumDisplayMonitors(
1650        hdc: HDC,
1651        lprcClip: LPCRECT,
1652        lpfnEnum: MONITORENUMPROC,
1653        dwData: LPARAM,
1654    ) -> BOOL;
1655}
1656pub type LGRPID = DWORD;
1657pub type CALTYPE = DWORD;
1658pub type CALID = DWORD;
1659pub type GEOCLASS = DWORD;
1660pub type GEOID = LONG;
1661pub type LOCALE_ENUMPROCA =
1662    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
1663pub type LOCALE_ENUMPROCW =
1664    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
1665pub type LANGUAGEGROUP_ENUMPROCA = ::std::option::Option<
1666    unsafe extern "C" fn(
1667        arg1: LGRPID,
1668        arg2: LPSTR,
1669        arg3: LPSTR,
1670        arg4: DWORD,
1671        arg5: LONG_PTR,
1672    ) -> BOOL,
1673>;
1674pub type LANGGROUPLOCALE_ENUMPROCA = ::std::option::Option<
1675    unsafe extern "C" fn(
1676        arg1: LGRPID,
1677        arg2: LCID,
1678        arg3: LPSTR,
1679        arg4: LONG_PTR,
1680    ) -> BOOL,
1681>;
1682pub type UILANGUAGE_ENUMPROCA = ::std::option::Option<
1683    unsafe extern "C" fn(arg1: LPSTR, arg2: LONG_PTR) -> BOOL,
1684>;
1685pub type CODEPAGE_ENUMPROCA =
1686    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
1687pub type DATEFMT_ENUMPROCA =
1688    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
1689pub type DATEFMT_ENUMPROCEXA = ::std::option::Option<
1690    unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> BOOL,
1691>;
1692pub type TIMEFMT_ENUMPROCA =
1693    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
1694pub type CALINFO_ENUMPROCA =
1695    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
1696pub type CALINFO_ENUMPROCEXA = ::std::option::Option<
1697    unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> BOOL,
1698>;
1699pub type LANGUAGEGROUP_ENUMPROCW = ::std::option::Option<
1700    unsafe extern "C" fn(
1701        arg1: LGRPID,
1702        arg2: LPWSTR,
1703        arg3: LPWSTR,
1704        arg4: DWORD,
1705        arg5: LONG_PTR,
1706    ) -> BOOL,
1707>;
1708pub type LANGGROUPLOCALE_ENUMPROCW = ::std::option::Option<
1709    unsafe extern "C" fn(
1710        arg1: LGRPID,
1711        arg2: LCID,
1712        arg3: LPWSTR,
1713        arg4: LONG_PTR,
1714    ) -> BOOL,
1715>;
1716pub type UILANGUAGE_ENUMPROCW = ::std::option::Option<
1717    unsafe extern "C" fn(arg1: LPWSTR, arg2: LONG_PTR) -> BOOL,
1718>;
1719pub type CODEPAGE_ENUMPROCW =
1720    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
1721pub type DATEFMT_ENUMPROCW =
1722    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
1723pub type DATEFMT_ENUMPROCEXW = ::std::option::Option<
1724    unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> BOOL,
1725>;
1726pub type TIMEFMT_ENUMPROCW =
1727    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
1728pub type CALINFO_ENUMPROCW =
1729    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
1730pub type CALINFO_ENUMPROCEXW = ::std::option::Option<
1731    unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> BOOL,
1732>;
1733pub type GEO_ENUMPROC =
1734    ::std::option::Option<unsafe extern "C" fn(arg1: GEOID) -> BOOL>;
1735pub type GEO_ENUMNAMEPROC = ::std::option::Option<
1736    unsafe extern "C" fn(arg1: PWSTR, arg2: LPARAM) -> BOOL,
1737>;
1738extern "C" {
1739    pub fn EnumCalendarInfoA(
1740        lpCalInfoEnumProc: CALINFO_ENUMPROCA,
1741        Locale: LCID,
1742        Calendar: CALID,
1743        CalType: CALTYPE,
1744    ) -> BOOL;
1745}
1746extern "C" {
1747    pub fn EnumCalendarInfoW(
1748        lpCalInfoEnumProc: CALINFO_ENUMPROCW,
1749        Locale: LCID,
1750        Calendar: CALID,
1751        CalType: CALTYPE,
1752    ) -> BOOL;
1753}
1754extern "C" {
1755    pub fn EnumCalendarInfoExA(
1756        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA,
1757        Locale: LCID,
1758        Calendar: CALID,
1759        CalType: CALTYPE,
1760    ) -> BOOL;
1761}
1762extern "C" {
1763    pub fn EnumCalendarInfoExW(
1764        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW,
1765        Locale: LCID,
1766        Calendar: CALID,
1767        CalType: CALTYPE,
1768    ) -> BOOL;
1769}
1770extern "C" {
1771    pub fn EnumTimeFormatsA(
1772        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA,
1773        Locale: LCID,
1774        dwFlags: DWORD,
1775    ) -> BOOL;
1776}
1777extern "C" {
1778    pub fn EnumTimeFormatsW(
1779        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW,
1780        Locale: LCID,
1781        dwFlags: DWORD,
1782    ) -> BOOL;
1783}
1784extern "C" {
1785    pub fn EnumDateFormatsA(
1786        lpDateFmtEnumProc: DATEFMT_ENUMPROCA,
1787        Locale: LCID,
1788        dwFlags: DWORD,
1789    ) -> BOOL;
1790}
1791extern "C" {
1792    pub fn EnumDateFormatsW(
1793        lpDateFmtEnumProc: DATEFMT_ENUMPROCW,
1794        Locale: LCID,
1795        dwFlags: DWORD,
1796    ) -> BOOL;
1797}
1798extern "C" {
1799    pub fn EnumDateFormatsExA(
1800        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA,
1801        Locale: LCID,
1802        dwFlags: DWORD,
1803    ) -> BOOL;
1804}
1805extern "C" {
1806    pub fn EnumDateFormatsExW(
1807        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW,
1808        Locale: LCID,
1809        dwFlags: DWORD,
1810    ) -> BOOL;
1811}
1812extern "C" {
1813    pub fn EnumSystemGeoID(
1814        GeoClass: GEOCLASS,
1815        ParentGeoId: GEOID,
1816        lpGeoEnumProc: GEO_ENUMPROC,
1817    ) -> BOOL;
1818}
1819extern "C" {
1820    pub fn EnumSystemGeoNames(
1821        geoClass: GEOCLASS,
1822        geoEnumProc: GEO_ENUMNAMEPROC,
1823        data: LPARAM,
1824    ) -> BOOL;
1825}
1826extern "C" {
1827    pub fn EnumSystemLocalesA(
1828        lpLocaleEnumProc: LOCALE_ENUMPROCA,
1829        dwFlags: DWORD,
1830    ) -> BOOL;
1831}
1832extern "C" {
1833    pub fn EnumSystemLocalesW(
1834        lpLocaleEnumProc: LOCALE_ENUMPROCW,
1835        dwFlags: DWORD,
1836    ) -> BOOL;
1837}
1838extern "C" {
1839    pub fn EnumSystemLanguageGroupsA(
1840        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA,
1841        dwFlags: DWORD,
1842        lParam: LONG_PTR,
1843    ) -> BOOL;
1844}
1845extern "C" {
1846    pub fn EnumSystemLanguageGroupsW(
1847        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW,
1848        dwFlags: DWORD,
1849        lParam: LONG_PTR,
1850    ) -> BOOL;
1851}
1852extern "C" {
1853    pub fn EnumLanguageGroupLocalesA(
1854        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA,
1855        LanguageGroup: LGRPID,
1856        dwFlags: DWORD,
1857        lParam: LONG_PTR,
1858    ) -> BOOL;
1859}
1860extern "C" {
1861    pub fn EnumLanguageGroupLocalesW(
1862        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW,
1863        LanguageGroup: LGRPID,
1864        dwFlags: DWORD,
1865        lParam: LONG_PTR,
1866    ) -> BOOL;
1867}
1868extern "C" {
1869    pub fn EnumUILanguagesA(
1870        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA,
1871        dwFlags: DWORD,
1872        lParam: LONG_PTR,
1873    ) -> BOOL;
1874}
1875extern "C" {
1876    pub fn EnumUILanguagesW(
1877        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW,
1878        dwFlags: DWORD,
1879        lParam: LONG_PTR,
1880    ) -> BOOL;
1881}
1882extern "C" {
1883    pub fn EnumSystemCodePagesA(
1884        lpCodePageEnumProc: CODEPAGE_ENUMPROCA,
1885        dwFlags: DWORD,
1886    ) -> BOOL;
1887}
1888extern "C" {
1889    pub fn EnumSystemCodePagesW(
1890        lpCodePageEnumProc: CODEPAGE_ENUMPROCW,
1891        dwFlags: DWORD,
1892    ) -> BOOL;
1893}
1894pub type CALINFO_ENUMPROCEXEX = ::std::option::Option<
1895    unsafe extern "C" fn(
1896        arg1: LPWSTR,
1897        arg2: CALID,
1898        arg3: LPWSTR,
1899        arg4: LPARAM,
1900    ) -> BOOL,
1901>;
1902extern "C" {
1903    pub fn EnumCalendarInfoExEx(
1904        pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX,
1905        lpLocaleName: LPCWSTR,
1906        Calendar: CALID,
1907        lpReserved: LPCWSTR,
1908        CalType: CALTYPE,
1909        lParam: LPARAM,
1910    ) -> BOOL;
1911}
1912pub type DATEFMT_ENUMPROCEXEX = ::std::option::Option<
1913    unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID, arg3: LPARAM) -> BOOL,
1914>;
1915extern "C" {
1916    pub fn EnumDateFormatsExEx(
1917        lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX,
1918        lpLocaleName: LPCWSTR,
1919        dwFlags: DWORD,
1920        lParam: LPARAM,
1921    ) -> BOOL;
1922}
1923pub type TIMEFMT_ENUMPROCEX = ::std::option::Option<
1924    unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> BOOL,
1925>;
1926extern "C" {
1927    pub fn EnumTimeFormatsEx(
1928        lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX,
1929        lpLocaleName: LPCWSTR,
1930        dwFlags: DWORD,
1931        lParam: LPARAM,
1932    ) -> BOOL;
1933}
1934pub type LOCALE_ENUMPROCEX = ::std::option::Option<
1935    unsafe extern "C" fn(arg1: LPWSTR, arg2: DWORD, arg3: LPARAM) -> BOOL,
1936>;
1937extern "C" {
1938    pub fn EnumSystemLocalesEx(
1939        lpLocaleEnumProcEx: LOCALE_ENUMPROCEX,
1940        dwFlags: DWORD,
1941        lParam: LPARAM,
1942        lpReserved: LPVOID,
1943    ) -> BOOL;
1944}
1945pub type UUID = GUID;
1946extern "C" {
1947    pub fn EnumPrintersA(
1948        Flags: DWORD,
1949        Name: LPSTR,
1950        Level: DWORD,
1951        pPrinterEnum: LPBYTE,
1952        cbBuf: DWORD,
1953        pcbNeeded: LPDWORD,
1954        pcReturned: LPDWORD,
1955    ) -> BOOL;
1956}
1957extern "C" {
1958    pub fn EnumPrintersW(
1959        Flags: DWORD,
1960        Name: LPWSTR,
1961        Level: DWORD,
1962        pPrinterEnum: LPBYTE,
1963        cbBuf: DWORD,
1964        pcbNeeded: LPDWORD,
1965        pcReturned: LPDWORD,
1966    ) -> BOOL;
1967}
1968extern "C" {
1969    pub fn EnumJobsA(
1970        hPrinter: HANDLE,
1971        FirstJob: DWORD,
1972        NoJobs: DWORD,
1973        Level: DWORD,
1974        pJob: LPBYTE,
1975        cbBuf: DWORD,
1976        pcbNeeded: LPDWORD,
1977        pcReturned: LPDWORD,
1978    ) -> BOOL;
1979}
1980extern "C" {
1981    pub fn EnumJobsW(
1982        hPrinter: HANDLE,
1983        FirstJob: DWORD,
1984        NoJobs: DWORD,
1985        Level: DWORD,
1986        pJob: LPBYTE,
1987        cbBuf: DWORD,
1988        pcbNeeded: LPDWORD,
1989        pcReturned: LPDWORD,
1990    ) -> BOOL;
1991}
1992extern "C" {
1993    pub fn EnumPrinterDriversA(
1994        pName: LPSTR,
1995        pEnvironment: LPSTR,
1996        Level: DWORD,
1997        pDriverInfo: LPBYTE,
1998        cbBuf: DWORD,
1999        pcbNeeded: LPDWORD,
2000        pcReturned: LPDWORD,
2001    ) -> BOOL;
2002}
2003extern "C" {
2004    pub fn EnumPrinterDriversW(
2005        pName: LPWSTR,
2006        pEnvironment: LPWSTR,
2007        Level: DWORD,
2008        pDriverInfo: LPBYTE,
2009        cbBuf: DWORD,
2010        pcbNeeded: LPDWORD,
2011        pcReturned: LPDWORD,
2012    ) -> BOOL;
2013}
2014extern "C" {
2015    pub fn EnumPrintProcessorsA(
2016        pName: LPSTR,
2017        pEnvironment: LPSTR,
2018        Level: DWORD,
2019        pPrintProcessorInfo: LPBYTE,
2020        cbBuf: DWORD,
2021        pcbNeeded: LPDWORD,
2022        pcReturned: LPDWORD,
2023    ) -> BOOL;
2024}
2025extern "C" {
2026    pub fn EnumPrintProcessorsW(
2027        pName: LPWSTR,
2028        pEnvironment: LPWSTR,
2029        Level: DWORD,
2030        pPrintProcessorInfo: LPBYTE,
2031        cbBuf: DWORD,
2032        pcbNeeded: LPDWORD,
2033        pcReturned: LPDWORD,
2034    ) -> BOOL;
2035}
2036extern "C" {
2037    pub fn EnumPrintProcessorDatatypesA(
2038        pName: LPSTR,
2039        pPrintProcessorName: LPSTR,
2040        Level: DWORD,
2041        pDatatypes: LPBYTE,
2042        cbBuf: DWORD,
2043        pcbNeeded: LPDWORD,
2044        pcReturned: LPDWORD,
2045    ) -> BOOL;
2046}
2047extern "C" {
2048    pub fn EnumPrintProcessorDatatypesW(
2049        pName: LPWSTR,
2050        pPrintProcessorName: LPWSTR,
2051        Level: DWORD,
2052        pDatatypes: LPBYTE,
2053        cbBuf: DWORD,
2054        pcbNeeded: LPDWORD,
2055        pcReturned: LPDWORD,
2056    ) -> BOOL;
2057}
2058extern "C" {
2059    pub fn EnumPrinterDataA(
2060        hPrinter: HANDLE,
2061        dwIndex: DWORD,
2062        pValueName: LPSTR,
2063        cbValueName: DWORD,
2064        pcbValueName: LPDWORD,
2065        pType: LPDWORD,
2066        pData: LPBYTE,
2067        cbData: DWORD,
2068        pcbData: LPDWORD,
2069    ) -> DWORD;
2070}
2071extern "C" {
2072    pub fn EnumPrinterDataW(
2073        hPrinter: HANDLE,
2074        dwIndex: DWORD,
2075        pValueName: LPWSTR,
2076        cbValueName: DWORD,
2077        pcbValueName: LPDWORD,
2078        pType: LPDWORD,
2079        pData: LPBYTE,
2080        cbData: DWORD,
2081        pcbData: LPDWORD,
2082    ) -> DWORD;
2083}
2084extern "C" {
2085    pub fn EnumPrinterDataExA(
2086        hPrinter: HANDLE,
2087        pKeyName: LPCSTR,
2088        pEnumValues: LPBYTE,
2089        cbEnumValues: DWORD,
2090        pcbEnumValues: LPDWORD,
2091        pnEnumValues: LPDWORD,
2092    ) -> DWORD;
2093}
2094extern "C" {
2095    pub fn EnumPrinterDataExW(
2096        hPrinter: HANDLE,
2097        pKeyName: LPCWSTR,
2098        pEnumValues: LPBYTE,
2099        cbEnumValues: DWORD,
2100        pcbEnumValues: LPDWORD,
2101        pnEnumValues: LPDWORD,
2102    ) -> DWORD;
2103}
2104extern "C" {
2105    pub fn EnumPrinterKeyA(
2106        hPrinter: HANDLE,
2107        pKeyName: LPCSTR,
2108        pSubkey: LPSTR,
2109        cbSubkey: DWORD,
2110        pcbSubkey: LPDWORD,
2111    ) -> DWORD;
2112}
2113extern "C" {
2114    pub fn EnumPrinterKeyW(
2115        hPrinter: HANDLE,
2116        pKeyName: LPCWSTR,
2117        pSubkey: LPWSTR,
2118        cbSubkey: DWORD,
2119        pcbSubkey: LPDWORD,
2120    ) -> DWORD;
2121}
2122extern "C" {
2123    pub fn EnumFormsA(
2124        hPrinter: HANDLE,
2125        Level: DWORD,
2126        pForm: LPBYTE,
2127        cbBuf: DWORD,
2128        pcbNeeded: LPDWORD,
2129        pcReturned: LPDWORD,
2130    ) -> BOOL;
2131}
2132extern "C" {
2133    pub fn EnumFormsW(
2134        hPrinter: HANDLE,
2135        Level: DWORD,
2136        pForm: LPBYTE,
2137        cbBuf: DWORD,
2138        pcbNeeded: LPDWORD,
2139        pcReturned: LPDWORD,
2140    ) -> BOOL;
2141}
2142extern "C" {
2143    pub fn EnumMonitorsA(
2144        pName: LPSTR,
2145        Level: DWORD,
2146        pMonitor: LPBYTE,
2147        cbBuf: DWORD,
2148        pcbNeeded: LPDWORD,
2149        pcReturned: LPDWORD,
2150    ) -> BOOL;
2151}
2152extern "C" {
2153    pub fn EnumMonitorsW(
2154        pName: LPWSTR,
2155        Level: DWORD,
2156        pMonitor: LPBYTE,
2157        cbBuf: DWORD,
2158        pcbNeeded: LPDWORD,
2159        pcReturned: LPDWORD,
2160    ) -> BOOL;
2161}
2162extern "C" {
2163    pub fn EnumPortsA(
2164        pName: LPSTR,
2165        Level: DWORD,
2166        pPort: LPBYTE,
2167        cbBuf: DWORD,
2168        pcbNeeded: LPDWORD,
2169        pcReturned: LPDWORD,
2170    ) -> BOOL;
2171}
2172extern "C" {
2173    pub fn EnumPortsW(
2174        pName: LPWSTR,
2175        Level: DWORD,
2176        pPort: LPBYTE,
2177        cbBuf: DWORD,
2178        pcbNeeded: LPDWORD,
2179        pcReturned: LPDWORD,
2180    ) -> BOOL;
2181}
2182pub const EPrintPropertyType_kPropertyTypeString: EPrintPropertyType = 1;
2183pub const EPrintPropertyType_kPropertyTypeInt32: EPrintPropertyType = 2;
2184pub const EPrintPropertyType_kPropertyTypeInt64: EPrintPropertyType = 3;
2185pub const EPrintPropertyType_kPropertyTypeByte: EPrintPropertyType = 4;
2186pub const EPrintPropertyType_kPropertyTypeTime: EPrintPropertyType = 5;
2187pub const EPrintPropertyType_kPropertyTypeDevMode: EPrintPropertyType = 6;
2188pub const EPrintPropertyType_kPropertyTypeSD: EPrintPropertyType = 7;
2189pub const EPrintPropertyType_kPropertyTypeNotificationReply:
2190    EPrintPropertyType = 8;
2191pub const EPrintPropertyType_kPropertyTypeNotificationOptions:
2192    EPrintPropertyType = 9;
2193pub const EPrintPropertyType_kPropertyTypeBuffer: EPrintPropertyType = 10;
2194pub type EPrintPropertyType = ::std::os::raw::c_int;
2195#[repr(C)]
2196#[derive(Copy, Clone)]
2197pub struct PrintPropertyValue {
2198    pub ePropertyType: EPrintPropertyType,
2199    pub value: PrintPropertyValue__bindgen_ty_1,
2200}
2201#[repr(C)]
2202#[derive(Copy, Clone)]
2203pub union PrintPropertyValue__bindgen_ty_1 {
2204    pub propertyByte: BYTE,
2205    pub propertyString: PWSTR,
2206    pub propertyInt32: LONG,
2207    pub propertyInt64: LONGLONG,
2208    pub propertyBlob: PrintPropertyValue__bindgen_ty_1__bindgen_ty_1,
2209}
2210#[repr(C)]
2211#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2212pub struct PrintPropertyValue__bindgen_ty_1__bindgen_ty_1 {
2213    pub cbBuf: DWORD,
2214    pub pBuf: LPVOID,
2215}
2216impl Default for PrintPropertyValue__bindgen_ty_1__bindgen_ty_1 {
2217    fn default() -> Self {
2218        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2219        unsafe {
2220            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2221            s.assume_init()
2222        }
2223    }
2224}
2225impl Default for PrintPropertyValue__bindgen_ty_1 {
2226    fn default() -> Self {
2227        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2228        unsafe {
2229            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2230            s.assume_init()
2231        }
2232    }
2233}
2234impl ::std::fmt::Debug for PrintPropertyValue__bindgen_ty_1 {
2235    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2236        write!(f, "PrintPropertyValue__bindgen_ty_1 {{ union }}")
2237    }
2238}
2239impl Default for PrintPropertyValue {
2240    fn default() -> Self {
2241        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2242        unsafe {
2243            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2244            s.assume_init()
2245        }
2246    }
2247}
2248impl ::std::fmt::Debug for PrintPropertyValue {
2249    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2250        write!(
2251            f,
2252            "PrintPropertyValue {{ ePropertyType: {:?}, value: {:?} }}",
2253            self.ePropertyType, self.value
2254        )
2255    }
2256}
2257#[repr(C)]
2258#[derive(Copy, Clone)]
2259pub struct PrintNamedProperty {
2260    pub propertyName: *mut WCHAR,
2261    pub propertyValue: PrintPropertyValue,
2262}
2263impl Default for PrintNamedProperty {
2264    fn default() -> Self {
2265        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2266        unsafe {
2267            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2268            s.assume_init()
2269        }
2270    }
2271}
2272impl ::std::fmt::Debug for PrintNamedProperty {
2273    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2274        write!(
2275            f,
2276            "PrintNamedProperty {{ propertyName: {:?}, propertyValue: {:?} }}",
2277            self.propertyName, self.propertyValue
2278        )
2279    }
2280}
2281extern "C" {
2282    pub fn EnumJobNamedProperties(
2283        hPrinter: HANDLE,
2284        JobId: DWORD,
2285        pcProperties: *mut DWORD,
2286        ppProperties: *mut *mut PrintNamedProperty,
2287    ) -> DWORD;
2288}
2289extern "C" {
2290    pub static IID_IUnknown: IID;
2291}
2292#[repr(C)]
2293#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2294pub struct IUnknownVtbl {
2295    pub QueryInterface: ::std::option::Option<
2296        unsafe extern "C" fn(
2297            This: *mut IUnknown,
2298            riid: *const IID,
2299            ppvObject: *mut *mut ::std::os::raw::c_void,
2300        ) -> HRESULT,
2301    >,
2302    pub AddRef: ::std::option::Option<
2303        unsafe extern "C" fn(This: *mut IUnknown) -> ULONG,
2304    >,
2305    pub Release: ::std::option::Option<
2306        unsafe extern "C" fn(This: *mut IUnknown) -> ULONG,
2307    >,
2308}
2309#[repr(C)]
2310#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2311pub struct IUnknown {
2312    pub lpVtbl: *mut IUnknownVtbl,
2313}
2314impl Default for IUnknown {
2315    fn default() -> Self {
2316        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2317        unsafe {
2318            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2319            s.assume_init()
2320        }
2321    }
2322}
2323extern "C" {
2324    pub static IID_AsyncIUnknown: IID;
2325}
2326extern "C" {
2327    pub static IID_IClassFactory: IID;
2328}
2329extern "C" {
2330    pub static IID_IMarshal: IID;
2331}
2332extern "C" {
2333    pub static IID_INoMarshal: IID;
2334}
2335extern "C" {
2336    pub static IID_IAgileObject: IID;
2337}
2338extern "C" {
2339    pub static IID_IActivationFilter: IID;
2340}
2341extern "C" {
2342    pub static IID_IMarshal2: IID;
2343}
2344extern "C" {
2345    pub static IID_IMalloc: IID;
2346}
2347extern "C" {
2348    pub static IID_IStdMarshalInfo: IID;
2349}
2350extern "C" {
2351    pub static IID_IExternalConnection: IID;
2352}
2353extern "C" {
2354    pub static IID_IMultiQI: IID;
2355}
2356extern "C" {
2357    pub static IID_AsyncIMultiQI: IID;
2358}
2359extern "C" {
2360    pub static IID_IInternalUnknown: IID;
2361}
2362extern "C" {
2363    pub static IID_IEnumUnknown: IID;
2364}
2365extern "C" {
2366    pub static IID_IEnumString: IID;
2367}
2368extern "C" {
2369    pub static IID_ISequentialStream: IID;
2370}
2371extern "C" {
2372    pub static IID_IStream: IID;
2373}
2374extern "C" {
2375    pub static IID_IRpcChannelBuffer: IID;
2376}
2377extern "C" {
2378    pub static IID_IRpcChannelBuffer2: IID;
2379}
2380extern "C" {
2381    pub static IID_IAsyncRpcChannelBuffer: IID;
2382}
2383extern "C" {
2384    pub static IID_IRpcChannelBuffer3: IID;
2385}
2386extern "C" {
2387    pub static IID_IRpcSyntaxNegotiate: IID;
2388}
2389extern "C" {
2390    pub static IID_IRpcProxyBuffer: IID;
2391}
2392extern "C" {
2393    pub static IID_IRpcStubBuffer: IID;
2394}
2395extern "C" {
2396    pub static IID_IPSFactoryBuffer: IID;
2397}
2398extern "C" {
2399    pub static IID_IChannelHook: IID;
2400}
2401extern "C" {
2402    pub static IID_IClientSecurity: IID;
2403}
2404extern "C" {
2405    pub static IID_IServerSecurity: IID;
2406}
2407extern "C" {
2408    pub static IID_IRpcOptions: IID;
2409}
2410extern "C" {
2411    pub static IID_IGlobalOptions: IID;
2412}
2413extern "C" {
2414    pub static IID_ISurrogate: IID;
2415}
2416extern "C" {
2417    pub static IID_IGlobalInterfaceTable: IID;
2418}
2419extern "C" {
2420    pub static IID_ISynchronize: IID;
2421}
2422extern "C" {
2423    pub static IID_ISynchronizeHandle: IID;
2424}
2425extern "C" {
2426    pub static IID_ISynchronizeEvent: IID;
2427}
2428extern "C" {
2429    pub static IID_ISynchronizeContainer: IID;
2430}
2431extern "C" {
2432    pub static IID_ISynchronizeMutex: IID;
2433}
2434extern "C" {
2435    pub static IID_ICancelMethodCalls: IID;
2436}
2437extern "C" {
2438    pub static IID_IAsyncManager: IID;
2439}
2440extern "C" {
2441    pub static IID_ICallFactory: IID;
2442}
2443extern "C" {
2444    pub static IID_IRpcHelper: IID;
2445}
2446extern "C" {
2447    pub static IID_IReleaseMarshalBuffers: IID;
2448}
2449extern "C" {
2450    pub static IID_IWaitMultiple: IID;
2451}
2452extern "C" {
2453    pub static IID_IAddrTrackingControl: IID;
2454}
2455extern "C" {
2456    pub static IID_IAddrExclusionControl: IID;
2457}
2458extern "C" {
2459    pub static IID_IPipeByte: IID;
2460}
2461extern "C" {
2462    pub static IID_AsyncIPipeByte: IID;
2463}
2464extern "C" {
2465    pub static IID_IPipeLong: IID;
2466}
2467extern "C" {
2468    pub static IID_AsyncIPipeLong: IID;
2469}
2470extern "C" {
2471    pub static IID_IPipeDouble: IID;
2472}
2473extern "C" {
2474    pub static IID_AsyncIPipeDouble: IID;
2475}
2476extern "C" {
2477    pub static IID_IComThreadingInfo: IID;
2478}
2479extern "C" {
2480    pub static IID_IProcessInitControl: IID;
2481}
2482extern "C" {
2483    pub static IID_IFastRundown: IID;
2484}
2485extern "C" {
2486    pub static IID_IMarshalingStream: IID;
2487}
2488extern "C" {
2489    pub static IID_IAgileReference: IID;
2490}
2491extern "C" {
2492    pub static IID_ICallbackWithNoReentrancyToApplicationSTA: GUID;
2493}
2494extern "C" {
2495    pub static IID_IMachineGlobalObjectTable: IID;
2496}
2497extern "C" {
2498    pub static IID_IRpcChannel: IID;
2499}
2500extern "C" {
2501    pub static IID_IRpcStub: IID;
2502}
2503extern "C" {
2504    pub static IID_IStubManager: IID;
2505}
2506extern "C" {
2507    pub static IID_IRpcProxy: IID;
2508}
2509extern "C" {
2510    pub static IID_IProxyManager: IID;
2511}
2512extern "C" {
2513    pub static IID_IPSFactory: IID;
2514}
2515extern "C" {
2516    pub static IID_IInternalMoniker: IID;
2517}
2518extern "C" {
2519    pub static IID_IDfReserved1: IID;
2520}
2521extern "C" {
2522    pub static IID_IDfReserved2: IID;
2523}
2524extern "C" {
2525    pub static IID_IDfReserved3: IID;
2526}
2527extern "C" {
2528    pub static IID_IStub: IID;
2529}
2530extern "C" {
2531    pub static IID_IProxy: IID;
2532}
2533extern "C" {
2534    pub static IID_IEnumGeneric: IID;
2535}
2536extern "C" {
2537    pub static IID_IEnumHolder: IID;
2538}
2539extern "C" {
2540    pub static IID_IEnumCallback: IID;
2541}
2542extern "C" {
2543    pub static IID_IOleManager: IID;
2544}
2545extern "C" {
2546    pub static IID_IOlePresObj: IID;
2547}
2548extern "C" {
2549    pub static IID_IDebug: IID;
2550}
2551extern "C" {
2552    pub static IID_IDebugStream: IID;
2553}
2554extern "C" {
2555    pub static IID_IMallocSpy: IID;
2556}
2557extern "C" {
2558    pub static IID_IBindCtx: IID;
2559}
2560extern "C" {
2561    pub static IID_IEnumMoniker: IID;
2562}
2563extern "C" {
2564    pub static IID_IRunnableObject: IID;
2565}
2566extern "C" {
2567    pub static IID_IRunningObjectTable: IID;
2568}
2569extern "C" {
2570    pub static IID_IPersist: IID;
2571}
2572extern "C" {
2573    pub static IID_IPersistStream: IID;
2574}
2575extern "C" {
2576    pub static IID_IMoniker: IID;
2577}
2578extern "C" {
2579    pub static IID_IROTData: IID;
2580}
2581extern "C" {
2582    pub static IID_IEnumSTATSTG: IID;
2583}
2584extern "C" {
2585    pub static IID_IStorage: IID;
2586}
2587extern "C" {
2588    pub static IID_IPersistFile: IID;
2589}
2590extern "C" {
2591    pub static IID_IPersistStorage: IID;
2592}
2593extern "C" {
2594    pub static IID_ILockBytes: IID;
2595}
2596extern "C" {
2597    pub static IID_IEnumFORMATETC: IID;
2598}
2599extern "C" {
2600    pub static IID_IEnumSTATDATA: IID;
2601}
2602extern "C" {
2603    pub static IID_IRootStorage: IID;
2604}
2605extern "C" {
2606    pub static IID_IAdviseSink: IID;
2607}
2608extern "C" {
2609    pub static IID_AsyncIAdviseSink: IID;
2610}
2611extern "C" {
2612    pub static IID_IAdviseSink2: IID;
2613}
2614extern "C" {
2615    pub static IID_AsyncIAdviseSink2: IID;
2616}
2617extern "C" {
2618    pub static IID_IDataObject: IID;
2619}
2620extern "C" {
2621    pub static IID_IDataAdviseHolder: IID;
2622}
2623extern "C" {
2624    pub static IID_IMessageFilter: IID;
2625}
2626extern "C" {
2627    pub static IID_IClassActivator: IID;
2628}
2629extern "C" {
2630    pub static IID_IFillLockBytes: IID;
2631}
2632extern "C" {
2633    pub static IID_IProgressNotify: IID;
2634}
2635extern "C" {
2636    pub static IID_ILayoutStorage: IID;
2637}
2638extern "C" {
2639    pub static IID_IBlockingLock: IID;
2640}
2641extern "C" {
2642    pub static IID_ITimeAndNoticeControl: IID;
2643}
2644extern "C" {
2645    pub static IID_IOplockStorage: IID;
2646}
2647extern "C" {
2648    pub static IID_IDirectWriterLock: IID;
2649}
2650extern "C" {
2651    pub static IID_IUrlMon: IID;
2652}
2653extern "C" {
2654    pub static IID_IForegroundTransfer: IID;
2655}
2656extern "C" {
2657    pub static IID_IThumbnailExtractor: IID;
2658}
2659extern "C" {
2660    pub static IID_IDummyHICONIncluder: IID;
2661}
2662extern "C" {
2663    pub static IID_IProcessLock: IID;
2664}
2665extern "C" {
2666    pub static IID_ISurrogateService: IID;
2667}
2668extern "C" {
2669    pub static IID_IInitializeSpy: IID;
2670}
2671extern "C" {
2672    pub static IID_IApartmentShutdown: IID;
2673}
2674extern "C" {
2675    pub static IID_ICreateTypeInfo: IID;
2676}
2677extern "C" {
2678    pub static IID_ICreateTypeInfo2: IID;
2679}
2680extern "C" {
2681    pub static IID_ICreateTypeLib: IID;
2682}
2683extern "C" {
2684    pub static IID_ICreateTypeLib2: IID;
2685}
2686extern "C" {
2687    pub static IID_IDispatch: IID;
2688}
2689extern "C" {
2690    pub static IID_IEnumVARIANT: IID;
2691}
2692extern "C" {
2693    pub static IID_ITypeComp: IID;
2694}
2695extern "C" {
2696    pub static IID_ITypeInfo: IID;
2697}
2698extern "C" {
2699    pub static IID_ITypeInfo2: IID;
2700}
2701extern "C" {
2702    pub static IID_ITypeLib: IID;
2703}
2704extern "C" {
2705    pub static IID_ITypeLib2: IID;
2706}
2707extern "C" {
2708    pub static IID_ITypeChangeEvents: IID;
2709}
2710extern "C" {
2711    pub static IID_IErrorInfo: IID;
2712}
2713extern "C" {
2714    pub static IID_ICreateErrorInfo: IID;
2715}
2716extern "C" {
2717    pub static IID_ISupportErrorInfo: IID;
2718}
2719extern "C" {
2720    pub static IID_ITypeFactory: IID;
2721}
2722extern "C" {
2723    pub static IID_ITypeMarshal: IID;
2724}
2725extern "C" {
2726    pub static IID_IRecordInfo: IID;
2727}
2728extern "C" {
2729    pub static IID_IErrorLog: IID;
2730}
2731extern "C" {
2732    pub static IID_IPropertyBag: IID;
2733}
2734extern "C" {
2735    pub static IID_ITypeLibRegistrationReader: IID;
2736}
2737extern "C" {
2738    pub static IID_ITypeLibRegistration: IID;
2739}
2740extern "C" {
2741    pub static IID_IPropertyStorage: IID;
2742}
2743extern "C" {
2744    pub static IID_IPropertySetStorage: IID;
2745}
2746extern "C" {
2747    pub static IID_IEnumSTATPROPSTG: IID;
2748}
2749extern "C" {
2750    pub static IID_IEnumSTATPROPSETSTG: IID;
2751}
2752extern "C" {
2753    pub static IID_IOleAdviseHolder: IID;
2754}
2755extern "C" {
2756    pub static IID_IOleCache: IID;
2757}
2758extern "C" {
2759    pub static IID_IOleCache2: IID;
2760}
2761extern "C" {
2762    pub static IID_IOleCacheControl: IID;
2763}
2764extern "C" {
2765    pub static IID_IParseDisplayName: IID;
2766}
2767extern "C" {
2768    pub static IID_IOleContainer: IID;
2769}
2770extern "C" {
2771    pub static IID_IOleClientSite: IID;
2772}
2773extern "C" {
2774    pub static IID_IOleObject: IID;
2775}
2776extern "C" {
2777    pub static IID_IOleWindow: IID;
2778}
2779extern "C" {
2780    pub static IID_IOleLink: IID;
2781}
2782extern "C" {
2783    pub static IID_IOleItemContainer: IID;
2784}
2785extern "C" {
2786    pub static IID_IOleInPlaceUIWindow: IID;
2787}
2788extern "C" {
2789    pub static IID_IOleInPlaceActiveObject: IID;
2790}
2791extern "C" {
2792    pub static IID_IOleInPlaceFrame: IID;
2793}
2794extern "C" {
2795    pub static IID_IOleInPlaceObject: IID;
2796}
2797extern "C" {
2798    pub static IID_IOleInPlaceSite: IID;
2799}
2800extern "C" {
2801    pub static IID_IContinue: IID;
2802}
2803extern "C" {
2804    pub static IID_IViewObject: IID;
2805}
2806extern "C" {
2807    pub static IID_IViewObject2: IID;
2808}
2809extern "C" {
2810    pub static IID_IDropSource: IID;
2811}
2812extern "C" {
2813    pub static IID_IDropTarget: IID;
2814}
2815extern "C" {
2816    pub static IID_IDropSourceNotify: IID;
2817}
2818extern "C" {
2819    pub static IID_IEnterpriseDropTarget: IID;
2820}
2821extern "C" {
2822    pub static IID_IEnumOLEVERB: IID;
2823}
2824extern "C" {
2825    pub static IID_IServiceProvider: IID;
2826}
2827extern "C" {
2828    pub static IID_IXMLDOMImplementation: IID;
2829}
2830extern "C" {
2831    pub static IID_IXMLDOMNode: IID;
2832}
2833extern "C" {
2834    pub static IID_IXMLDOMDocumentFragment: IID;
2835}
2836extern "C" {
2837    pub static IID_IXMLDOMDocument: IID;
2838}
2839extern "C" {
2840    pub static IID_IXMLDOMNodeList: IID;
2841}
2842extern "C" {
2843    pub static IID_IXMLDOMNamedNodeMap: IID;
2844}
2845extern "C" {
2846    pub static IID_IXMLDOMCharacterData: IID;
2847}
2848extern "C" {
2849    pub static IID_IXMLDOMAttribute: IID;
2850}
2851extern "C" {
2852    pub static IID_IXMLDOMElement: IID;
2853}
2854extern "C" {
2855    pub static IID_IXMLDOMText: IID;
2856}
2857extern "C" {
2858    pub static IID_IXMLDOMComment: IID;
2859}
2860extern "C" {
2861    pub static IID_IXMLDOMProcessingInstruction: IID;
2862}
2863extern "C" {
2864    pub static IID_IXMLDOMCDATASection: IID;
2865}
2866extern "C" {
2867    pub static IID_IXMLDOMDocumentType: IID;
2868}
2869extern "C" {
2870    pub static IID_IXMLDOMNotation: IID;
2871}
2872extern "C" {
2873    pub static IID_IXMLDOMEntity: IID;
2874}
2875extern "C" {
2876    pub static IID_IXMLDOMEntityReference: IID;
2877}
2878extern "C" {
2879    pub static IID_IXMLDOMParseError: IID;
2880}
2881extern "C" {
2882    pub static IID_IXTLRuntime: IID;
2883}
2884extern "C" {
2885    pub static DIID_XMLDOMDocumentEvents: IID;
2886}
2887extern "C" {
2888    pub static IID_IXMLHttpRequest: IID;
2889}
2890extern "C" {
2891    pub static IID_IXMLDSOControl: IID;
2892}
2893extern "C" {
2894    pub static IID_IXMLElementCollection: IID;
2895}
2896extern "C" {
2897    pub static IID_IXMLDocument: IID;
2898}
2899extern "C" {
2900    pub static IID_IXMLDocument2: IID;
2901}
2902extern "C" {
2903    pub static IID_IXMLElement: IID;
2904}
2905extern "C" {
2906    pub static IID_IXMLElement2: IID;
2907}
2908extern "C" {
2909    pub static IID_IXMLAttribute: IID;
2910}
2911extern "C" {
2912    pub static IID_IXMLError: IID;
2913}
2914extern "C" {
2915    pub static IID_IAsyncMoniker: IID;
2916}
2917extern "C" {
2918    pub static IID_IAsyncBindCtx: IID;
2919}
2920extern "C" {
2921    pub static IID_IPersistMoniker: IID;
2922}
2923extern "C" {
2924    pub static IID_IMonikerProp: IID;
2925}
2926extern "C" {
2927    pub static IID_IBindProtocol: IID;
2928}
2929extern "C" {
2930    pub static IID_IBinding: IID;
2931}
2932extern "C" {
2933    pub static IID_IBindStatusCallback: IID;
2934}
2935extern "C" {
2936    pub static IID_IBindStatusCallbackEx: IID;
2937}
2938extern "C" {
2939    pub static IID_IAuthenticate: IID;
2940}
2941extern "C" {
2942    pub static IID_IAuthenticateEx: IID;
2943}
2944extern "C" {
2945    pub static IID_IHttpNegotiate: IID;
2946}
2947extern "C" {
2948    pub static IID_IHttpNegotiate2: IID;
2949}
2950extern "C" {
2951    pub static IID_IHttpNegotiate3: IID;
2952}
2953extern "C" {
2954    pub static IID_IWinInetFileStream: IID;
2955}
2956extern "C" {
2957    pub static IID_IWindowForBindingUI: IID;
2958}
2959extern "C" {
2960    pub static IID_ICodeInstall: IID;
2961}
2962extern "C" {
2963    pub static IID_IUri: IID;
2964}
2965extern "C" {
2966    pub static IID_IUriContainer: IID;
2967}
2968extern "C" {
2969    pub static IID_IUriBuilder: IID;
2970}
2971extern "C" {
2972    pub static IID_IUriBuilderFactory: IID;
2973}
2974extern "C" {
2975    pub static IID_IWinInetInfo: IID;
2976}
2977extern "C" {
2978    pub static IID_IHttpSecurity: IID;
2979}
2980extern "C" {
2981    pub static IID_IWinInetHttpInfo: IID;
2982}
2983extern "C" {
2984    pub static IID_IWinInetHttpTimeouts: IID;
2985}
2986extern "C" {
2987    pub static IID_IWinInetCacheHints: IID;
2988}
2989extern "C" {
2990    pub static IID_IWinInetCacheHints2: IID;
2991}
2992extern "C" {
2993    pub static IID_IBindHost: IID;
2994}
2995extern "C" {
2996    pub static IID_IInternet: IID;
2997}
2998extern "C" {
2999    pub static IID_IInternetBindInfo: IID;
3000}
3001extern "C" {
3002    pub static IID_IInternetBindInfoEx: IID;
3003}
3004extern "C" {
3005    pub static IID_IInternetProtocolRoot: IID;
3006}
3007extern "C" {
3008    pub static IID_IInternetProtocol: IID;
3009}
3010extern "C" {
3011    pub static IID_IInternetProtocolEx: IID;
3012}
3013extern "C" {
3014    pub static IID_IInternetProtocolSink: IID;
3015}
3016extern "C" {
3017    pub static IID_IInternetProtocolSinkStackable: IID;
3018}
3019extern "C" {
3020    pub static IID_IInternetSession: IID;
3021}
3022extern "C" {
3023    pub static IID_IInternetThreadSwitch: IID;
3024}
3025extern "C" {
3026    pub static IID_IInternetPriority: IID;
3027}
3028extern "C" {
3029    pub static IID_IInternetProtocolInfo: IID;
3030}
3031extern "C" {
3032    pub static IID_IInternetSecurityMgrSite: IID;
3033}
3034extern "C" {
3035    pub static IID_IInternetSecurityManager: IID;
3036}
3037extern "C" {
3038    pub static IID_IInternetSecurityManagerEx: IID;
3039}
3040extern "C" {
3041    pub static IID_IInternetSecurityManagerEx2: IID;
3042}
3043extern "C" {
3044    pub static IID_IZoneIdentifier: IID;
3045}
3046extern "C" {
3047    pub static IID_IZoneIdentifier2: IID;
3048}
3049extern "C" {
3050    pub static IID_IInternetHostSecurityManager: IID;
3051}
3052extern "C" {
3053    pub static IID_IInternetZoneManager: IID;
3054}
3055extern "C" {
3056    pub static IID_IInternetZoneManagerEx: IID;
3057}
3058extern "C" {
3059    pub static IID_IInternetZoneManagerEx2: IID;
3060}
3061extern "C" {
3062    pub static IID_ISoftDistExt: IID;
3063}
3064extern "C" {
3065    pub static IID_ICatalogFileInfo: IID;
3066}
3067extern "C" {
3068    pub static IID_IDataFilter: IID;
3069}
3070extern "C" {
3071    pub static IID_IEncodingFilterFactory: IID;
3072}
3073extern "C" {
3074    pub static IID_IWrappedProtocol: IID;
3075}
3076extern "C" {
3077    pub static IID_IGetBindHandle: IID;
3078}
3079extern "C" {
3080    pub static IID_IBindCallbackRedirect: IID;
3081}
3082extern "C" {
3083    pub static IID_IBindHttpSecurity: IID;
3084}
3085extern "C" {
3086    pub static IID_StdOle: IID;
3087}
3088extern "C" {
3089    pub static IID_IPrintDialogCallback: GUID;
3090}
3091extern "C" {
3092    pub static IID_IPrintDialogServices: GUID;
3093}
3094#[repr(C)]
3095#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3096pub struct SC_HANDLE__ {
3097    pub unused: ::std::os::raw::c_int,
3098}
3099pub type SC_HANDLE = *mut SC_HANDLE__;
3100pub const _SC_ENUM_TYPE_SC_ENUM_PROCESS_INFO: _SC_ENUM_TYPE = 0;
3101pub type _SC_ENUM_TYPE = ::std::os::raw::c_int;
3102pub use self::_SC_ENUM_TYPE as SC_ENUM_TYPE;
3103#[repr(C)]
3104#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3105pub struct _SERVICE_STATUS {
3106    pub dwServiceType: DWORD,
3107    pub dwCurrentState: DWORD,
3108    pub dwControlsAccepted: DWORD,
3109    pub dwWin32ExitCode: DWORD,
3110    pub dwServiceSpecificExitCode: DWORD,
3111    pub dwCheckPoint: DWORD,
3112    pub dwWaitHint: DWORD,
3113}
3114pub type SERVICE_STATUS = _SERVICE_STATUS;
3115#[repr(C)]
3116#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3117pub struct _ENUM_SERVICE_STATUSA {
3118    pub lpServiceName: LPSTR,
3119    pub lpDisplayName: LPSTR,
3120    pub ServiceStatus: SERVICE_STATUS,
3121}
3122impl Default for _ENUM_SERVICE_STATUSA {
3123    fn default() -> Self {
3124        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3125        unsafe {
3126            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3127            s.assume_init()
3128        }
3129    }
3130}
3131pub type LPENUM_SERVICE_STATUSA = *mut _ENUM_SERVICE_STATUSA;
3132#[repr(C)]
3133#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3134pub struct _ENUM_SERVICE_STATUSW {
3135    pub lpServiceName: LPWSTR,
3136    pub lpDisplayName: LPWSTR,
3137    pub ServiceStatus: SERVICE_STATUS,
3138}
3139impl Default for _ENUM_SERVICE_STATUSW {
3140    fn default() -> Self {
3141        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3142        unsafe {
3143            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3144            s.assume_init()
3145        }
3146    }
3147}
3148pub type LPENUM_SERVICE_STATUSW = *mut _ENUM_SERVICE_STATUSW;
3149extern "C" {
3150    pub fn EnumDependentServicesA(
3151        hService: SC_HANDLE,
3152        dwServiceState: DWORD,
3153        lpServices: LPENUM_SERVICE_STATUSA,
3154        cbBufSize: DWORD,
3155        pcbBytesNeeded: LPDWORD,
3156        lpServicesReturned: LPDWORD,
3157    ) -> BOOL;
3158}
3159extern "C" {
3160    pub fn EnumDependentServicesW(
3161        hService: SC_HANDLE,
3162        dwServiceState: DWORD,
3163        lpServices: LPENUM_SERVICE_STATUSW,
3164        cbBufSize: DWORD,
3165        pcbBytesNeeded: LPDWORD,
3166        lpServicesReturned: LPDWORD,
3167    ) -> BOOL;
3168}
3169extern "C" {
3170    pub fn EnumServicesStatusA(
3171        hSCManager: SC_HANDLE,
3172        dwServiceType: DWORD,
3173        dwServiceState: DWORD,
3174        lpServices: LPENUM_SERVICE_STATUSA,
3175        cbBufSize: DWORD,
3176        pcbBytesNeeded: LPDWORD,
3177        lpServicesReturned: LPDWORD,
3178        lpResumeHandle: LPDWORD,
3179    ) -> BOOL;
3180}
3181extern "C" {
3182    pub fn EnumServicesStatusW(
3183        hSCManager: SC_HANDLE,
3184        dwServiceType: DWORD,
3185        dwServiceState: DWORD,
3186        lpServices: LPENUM_SERVICE_STATUSW,
3187        cbBufSize: DWORD,
3188        pcbBytesNeeded: LPDWORD,
3189        lpServicesReturned: LPDWORD,
3190        lpResumeHandle: LPDWORD,
3191    ) -> BOOL;
3192}
3193extern "C" {
3194    pub fn EnumServicesStatusExA(
3195        hSCManager: SC_HANDLE,
3196        InfoLevel: SC_ENUM_TYPE,
3197        dwServiceType: DWORD,
3198        dwServiceState: DWORD,
3199        lpServices: LPBYTE,
3200        cbBufSize: DWORD,
3201        pcbBytesNeeded: LPDWORD,
3202        lpServicesReturned: LPDWORD,
3203        lpResumeHandle: LPDWORD,
3204        pszGroupName: LPCSTR,
3205    ) -> BOOL;
3206}
3207extern "C" {
3208    pub fn EnumServicesStatusExW(
3209        hSCManager: SC_HANDLE,
3210        InfoLevel: SC_ENUM_TYPE,
3211        dwServiceType: DWORD,
3212        dwServiceState: DWORD,
3213        lpServices: LPBYTE,
3214        cbBufSize: DWORD,
3215        pcbBytesNeeded: LPDWORD,
3216        lpServicesReturned: LPDWORD,
3217        lpResumeHandle: LPDWORD,
3218        pszGroupName: LPCWSTR,
3219    ) -> BOOL;
3220}
3221extern "C" {
3222    pub static IID_IEnumConnections: IID;
3223}
3224extern "C" {
3225    pub static IID_IConnectionPoint: IID;
3226}
3227extern "C" {
3228    pub static IID_IEnumConnectionPoints: IID;
3229}
3230extern "C" {
3231    pub static IID_IConnectionPointContainer: IID;
3232}
3233extern "C" {
3234    pub static IID_IClassFactory2: IID;
3235}
3236extern "C" {
3237    pub static IID_IProvideClassInfo: IID;
3238}
3239extern "C" {
3240    pub static IID_IProvideClassInfo2: IID;
3241}
3242extern "C" {
3243    pub static IID_IProvideMultipleClassInfo: IID;
3244}
3245extern "C" {
3246    pub static IID_IOleControl: IID;
3247}
3248extern "C" {
3249    pub static IID_IOleControlSite: IID;
3250}
3251extern "C" {
3252    pub static IID_IPropertyPage: IID;
3253}
3254extern "C" {
3255    pub static IID_IPropertyPage2: IID;
3256}
3257extern "C" {
3258    pub static IID_IPropertyPageSite: IID;
3259}
3260extern "C" {
3261    pub static IID_IPropertyNotifySink: IID;
3262}
3263extern "C" {
3264    pub static IID_ISpecifyPropertyPages: IID;
3265}
3266extern "C" {
3267    pub static IID_IPersistMemory: IID;
3268}
3269extern "C" {
3270    pub static IID_IPersistStreamInit: IID;
3271}
3272extern "C" {
3273    pub static IID_IPersistPropertyBag: IID;
3274}
3275extern "C" {
3276    pub static IID_ISimpleFrameSite: IID;
3277}
3278extern "C" {
3279    pub static IID_IFont: IID;
3280}
3281extern "C" {
3282    pub static IID_IPicture: IID;
3283}
3284extern "C" {
3285    pub static IID_IPicture2: IID;
3286}
3287extern "C" {
3288    pub static IID_IFontEventsDisp: IID;
3289}
3290extern "C" {
3291    pub static IID_IFontDisp: IID;
3292}
3293extern "C" {
3294    pub static IID_IPictureDisp: IID;
3295}
3296extern "C" {
3297    pub static IID_IOleInPlaceObjectWindowless: IID;
3298}
3299extern "C" {
3300    pub static IID_IOleInPlaceSiteEx: IID;
3301}
3302extern "C" {
3303    pub static IID_IOleInPlaceSiteWindowless: IID;
3304}
3305extern "C" {
3306    pub static IID_IViewObjectEx: IID;
3307}
3308extern "C" {
3309    pub static IID_IOleUndoUnit: IID;
3310}
3311extern "C" {
3312    pub static IID_IOleParentUndoUnit: IID;
3313}
3314extern "C" {
3315    pub static IID_IEnumOleUndoUnits: IID;
3316}
3317extern "C" {
3318    pub static IID_IOleUndoManager: IID;
3319}
3320extern "C" {
3321    pub static IID_IPointerInactive: IID;
3322}
3323extern "C" {
3324    pub static IID_IObjectWithSite: IID;
3325}
3326extern "C" {
3327    pub static IID_IPerPropertyBrowsing: IID;
3328}
3329extern "C" {
3330    pub static IID_IPropertyBag2: IID;
3331}
3332extern "C" {
3333    pub static IID_IPersistPropertyBag2: IID;
3334}
3335extern "C" {
3336    pub static IID_IAdviseSinkEx: IID;
3337}
3338extern "C" {
3339    pub static IID_IQuickActivate: IID;
3340}
3341#[repr(C)]
3342#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3343pub struct DXGI_RATIONAL {
3344    pub Numerator: UINT,
3345    pub Denominator: UINT,
3346}
3347#[repr(C)]
3348#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3349pub struct DXGI_SAMPLE_DESC {
3350    pub Count: UINT,
3351    pub Quality: UINT,
3352}
3353pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709:
3354    DXGI_COLOR_SPACE_TYPE = 0;
3355pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709:
3356    DXGI_COLOR_SPACE_TYPE = 1;
3357pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709:
3358    DXGI_COLOR_SPACE_TYPE = 2;
3359pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020:
3360    DXGI_COLOR_SPACE_TYPE = 3;
3361pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RESERVED:
3362    DXGI_COLOR_SPACE_TYPE = 4;
3363pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 : DXGI_COLOR_SPACE_TYPE = 5 ;
3364pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601:
3365    DXGI_COLOR_SPACE_TYPE = 6;
3366pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601:
3367    DXGI_COLOR_SPACE_TYPE = 7;
3368pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709:
3369    DXGI_COLOR_SPACE_TYPE = 8;
3370pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709:
3371    DXGI_COLOR_SPACE_TYPE = 9;
3372pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020:
3373    DXGI_COLOR_SPACE_TYPE = 10;
3374pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020:
3375    DXGI_COLOR_SPACE_TYPE = 11;
3376pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020:
3377    DXGI_COLOR_SPACE_TYPE = 12;
3378pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 13 ;
3379pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020:
3380    DXGI_COLOR_SPACE_TYPE = 14;
3381pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 15 ;
3382pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 16 ;
3383pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020:
3384    DXGI_COLOR_SPACE_TYPE = 17;
3385pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 18 ;
3386pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 19 ;
3387pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709:
3388    DXGI_COLOR_SPACE_TYPE = 20;
3389pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020:
3390    DXGI_COLOR_SPACE_TYPE = 21;
3391pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709:
3392    DXGI_COLOR_SPACE_TYPE = 22;
3393pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020:
3394    DXGI_COLOR_SPACE_TYPE = 23;
3395pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 : DXGI_COLOR_SPACE_TYPE = 24 ;
3396pub const DXGI_COLOR_SPACE_TYPE_DXGI_COLOR_SPACE_CUSTOM: DXGI_COLOR_SPACE_TYPE =
3397    -1;
3398pub type DXGI_COLOR_SPACE_TYPE = ::std::os::raw::c_int;
3399pub const DXGI_FORMAT_DXGI_FORMAT_UNKNOWN: DXGI_FORMAT = 0;
3400pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32A32_TYPELESS: DXGI_FORMAT = 1;
3401pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32A32_FLOAT: DXGI_FORMAT = 2;
3402pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32A32_UINT: DXGI_FORMAT = 3;
3403pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32A32_SINT: DXGI_FORMAT = 4;
3404pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32_TYPELESS: DXGI_FORMAT = 5;
3405pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32_FLOAT: DXGI_FORMAT = 6;
3406pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32_UINT: DXGI_FORMAT = 7;
3407pub const DXGI_FORMAT_DXGI_FORMAT_R32G32B32_SINT: DXGI_FORMAT = 8;
3408pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_TYPELESS: DXGI_FORMAT = 9;
3409pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_FLOAT: DXGI_FORMAT = 10;
3410pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_UNORM: DXGI_FORMAT = 11;
3411pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_UINT: DXGI_FORMAT = 12;
3412pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_SNORM: DXGI_FORMAT = 13;
3413pub const DXGI_FORMAT_DXGI_FORMAT_R16G16B16A16_SINT: DXGI_FORMAT = 14;
3414pub const DXGI_FORMAT_DXGI_FORMAT_R32G32_TYPELESS: DXGI_FORMAT = 15;
3415pub const DXGI_FORMAT_DXGI_FORMAT_R32G32_FLOAT: DXGI_FORMAT = 16;
3416pub const DXGI_FORMAT_DXGI_FORMAT_R32G32_UINT: DXGI_FORMAT = 17;
3417pub const DXGI_FORMAT_DXGI_FORMAT_R32G32_SINT: DXGI_FORMAT = 18;
3418pub const DXGI_FORMAT_DXGI_FORMAT_R32G8X24_TYPELESS: DXGI_FORMAT = 19;
3419pub const DXGI_FORMAT_DXGI_FORMAT_D32_FLOAT_S8X24_UINT: DXGI_FORMAT = 20;
3420pub const DXGI_FORMAT_DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: DXGI_FORMAT = 21;
3421pub const DXGI_FORMAT_DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: DXGI_FORMAT = 22;
3422pub const DXGI_FORMAT_DXGI_FORMAT_R10G10B10A2_TYPELESS: DXGI_FORMAT = 23;
3423pub const DXGI_FORMAT_DXGI_FORMAT_R10G10B10A2_UNORM: DXGI_FORMAT = 24;
3424pub const DXGI_FORMAT_DXGI_FORMAT_R10G10B10A2_UINT: DXGI_FORMAT = 25;
3425pub const DXGI_FORMAT_DXGI_FORMAT_R11G11B10_FLOAT: DXGI_FORMAT = 26;
3426pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_TYPELESS: DXGI_FORMAT = 27;
3427pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_UNORM: DXGI_FORMAT = 28;
3428pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: DXGI_FORMAT = 29;
3429pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_UINT: DXGI_FORMAT = 30;
3430pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_SNORM: DXGI_FORMAT = 31;
3431pub const DXGI_FORMAT_DXGI_FORMAT_R8G8B8A8_SINT: DXGI_FORMAT = 32;
3432pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_TYPELESS: DXGI_FORMAT = 33;
3433pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_FLOAT: DXGI_FORMAT = 34;
3434pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_UNORM: DXGI_FORMAT = 35;
3435pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_UINT: DXGI_FORMAT = 36;
3436pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_SNORM: DXGI_FORMAT = 37;
3437pub const DXGI_FORMAT_DXGI_FORMAT_R16G16_SINT: DXGI_FORMAT = 38;
3438pub const DXGI_FORMAT_DXGI_FORMAT_R32_TYPELESS: DXGI_FORMAT = 39;
3439pub const DXGI_FORMAT_DXGI_FORMAT_D32_FLOAT: DXGI_FORMAT = 40;
3440pub const DXGI_FORMAT_DXGI_FORMAT_R32_FLOAT: DXGI_FORMAT = 41;
3441pub const DXGI_FORMAT_DXGI_FORMAT_R32_UINT: DXGI_FORMAT = 42;
3442pub const DXGI_FORMAT_DXGI_FORMAT_R32_SINT: DXGI_FORMAT = 43;
3443pub const DXGI_FORMAT_DXGI_FORMAT_R24G8_TYPELESS: DXGI_FORMAT = 44;
3444pub const DXGI_FORMAT_DXGI_FORMAT_D24_UNORM_S8_UINT: DXGI_FORMAT = 45;
3445pub const DXGI_FORMAT_DXGI_FORMAT_R24_UNORM_X8_TYPELESS: DXGI_FORMAT = 46;
3446pub const DXGI_FORMAT_DXGI_FORMAT_X24_TYPELESS_G8_UINT: DXGI_FORMAT = 47;
3447pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_TYPELESS: DXGI_FORMAT = 48;
3448pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_UNORM: DXGI_FORMAT = 49;
3449pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_UINT: DXGI_FORMAT = 50;
3450pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_SNORM: DXGI_FORMAT = 51;
3451pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_SINT: DXGI_FORMAT = 52;
3452pub const DXGI_FORMAT_DXGI_FORMAT_R16_TYPELESS: DXGI_FORMAT = 53;
3453pub const DXGI_FORMAT_DXGI_FORMAT_R16_FLOAT: DXGI_FORMAT = 54;
3454pub const DXGI_FORMAT_DXGI_FORMAT_D16_UNORM: DXGI_FORMAT = 55;
3455pub const DXGI_FORMAT_DXGI_FORMAT_R16_UNORM: DXGI_FORMAT = 56;
3456pub const DXGI_FORMAT_DXGI_FORMAT_R16_UINT: DXGI_FORMAT = 57;
3457pub const DXGI_FORMAT_DXGI_FORMAT_R16_SNORM: DXGI_FORMAT = 58;
3458pub const DXGI_FORMAT_DXGI_FORMAT_R16_SINT: DXGI_FORMAT = 59;
3459pub const DXGI_FORMAT_DXGI_FORMAT_R8_TYPELESS: DXGI_FORMAT = 60;
3460pub const DXGI_FORMAT_DXGI_FORMAT_R8_UNORM: DXGI_FORMAT = 61;
3461pub const DXGI_FORMAT_DXGI_FORMAT_R8_UINT: DXGI_FORMAT = 62;
3462pub const DXGI_FORMAT_DXGI_FORMAT_R8_SNORM: DXGI_FORMAT = 63;
3463pub const DXGI_FORMAT_DXGI_FORMAT_R8_SINT: DXGI_FORMAT = 64;
3464pub const DXGI_FORMAT_DXGI_FORMAT_A8_UNORM: DXGI_FORMAT = 65;
3465pub const DXGI_FORMAT_DXGI_FORMAT_R1_UNORM: DXGI_FORMAT = 66;
3466pub const DXGI_FORMAT_DXGI_FORMAT_R9G9B9E5_SHAREDEXP: DXGI_FORMAT = 67;
3467pub const DXGI_FORMAT_DXGI_FORMAT_R8G8_B8G8_UNORM: DXGI_FORMAT = 68;
3468pub const DXGI_FORMAT_DXGI_FORMAT_G8R8_G8B8_UNORM: DXGI_FORMAT = 69;
3469pub const DXGI_FORMAT_DXGI_FORMAT_BC1_TYPELESS: DXGI_FORMAT = 70;
3470pub const DXGI_FORMAT_DXGI_FORMAT_BC1_UNORM: DXGI_FORMAT = 71;
3471pub const DXGI_FORMAT_DXGI_FORMAT_BC1_UNORM_SRGB: DXGI_FORMAT = 72;
3472pub const DXGI_FORMAT_DXGI_FORMAT_BC2_TYPELESS: DXGI_FORMAT = 73;
3473pub const DXGI_FORMAT_DXGI_FORMAT_BC2_UNORM: DXGI_FORMAT = 74;
3474pub const DXGI_FORMAT_DXGI_FORMAT_BC2_UNORM_SRGB: DXGI_FORMAT = 75;
3475pub const DXGI_FORMAT_DXGI_FORMAT_BC3_TYPELESS: DXGI_FORMAT = 76;
3476pub const DXGI_FORMAT_DXGI_FORMAT_BC3_UNORM: DXGI_FORMAT = 77;
3477pub const DXGI_FORMAT_DXGI_FORMAT_BC3_UNORM_SRGB: DXGI_FORMAT = 78;
3478pub const DXGI_FORMAT_DXGI_FORMAT_BC4_TYPELESS: DXGI_FORMAT = 79;
3479pub const DXGI_FORMAT_DXGI_FORMAT_BC4_UNORM: DXGI_FORMAT = 80;
3480pub const DXGI_FORMAT_DXGI_FORMAT_BC4_SNORM: DXGI_FORMAT = 81;
3481pub const DXGI_FORMAT_DXGI_FORMAT_BC5_TYPELESS: DXGI_FORMAT = 82;
3482pub const DXGI_FORMAT_DXGI_FORMAT_BC5_UNORM: DXGI_FORMAT = 83;
3483pub const DXGI_FORMAT_DXGI_FORMAT_BC5_SNORM: DXGI_FORMAT = 84;
3484pub const DXGI_FORMAT_DXGI_FORMAT_B5G6R5_UNORM: DXGI_FORMAT = 85;
3485pub const DXGI_FORMAT_DXGI_FORMAT_B5G5R5A1_UNORM: DXGI_FORMAT = 86;
3486pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8A8_UNORM: DXGI_FORMAT = 87;
3487pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8X8_UNORM: DXGI_FORMAT = 88;
3488pub const DXGI_FORMAT_DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: DXGI_FORMAT = 89;
3489pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8A8_TYPELESS: DXGI_FORMAT = 90;
3490pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: DXGI_FORMAT = 91;
3491pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8X8_TYPELESS: DXGI_FORMAT = 92;
3492pub const DXGI_FORMAT_DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: DXGI_FORMAT = 93;
3493pub const DXGI_FORMAT_DXGI_FORMAT_BC6H_TYPELESS: DXGI_FORMAT = 94;
3494pub const DXGI_FORMAT_DXGI_FORMAT_BC6H_UF16: DXGI_FORMAT = 95;
3495pub const DXGI_FORMAT_DXGI_FORMAT_BC6H_SF16: DXGI_FORMAT = 96;
3496pub const DXGI_FORMAT_DXGI_FORMAT_BC7_TYPELESS: DXGI_FORMAT = 97;
3497pub const DXGI_FORMAT_DXGI_FORMAT_BC7_UNORM: DXGI_FORMAT = 98;
3498pub const DXGI_FORMAT_DXGI_FORMAT_BC7_UNORM_SRGB: DXGI_FORMAT = 99;
3499pub const DXGI_FORMAT_DXGI_FORMAT_AYUV: DXGI_FORMAT = 100;
3500pub const DXGI_FORMAT_DXGI_FORMAT_Y410: DXGI_FORMAT = 101;
3501pub const DXGI_FORMAT_DXGI_FORMAT_Y416: DXGI_FORMAT = 102;
3502pub const DXGI_FORMAT_DXGI_FORMAT_NV12: DXGI_FORMAT = 103;
3503pub const DXGI_FORMAT_DXGI_FORMAT_P010: DXGI_FORMAT = 104;
3504pub const DXGI_FORMAT_DXGI_FORMAT_P016: DXGI_FORMAT = 105;
3505pub const DXGI_FORMAT_DXGI_FORMAT_420_OPAQUE: DXGI_FORMAT = 106;
3506pub const DXGI_FORMAT_DXGI_FORMAT_YUY2: DXGI_FORMAT = 107;
3507pub const DXGI_FORMAT_DXGI_FORMAT_Y210: DXGI_FORMAT = 108;
3508pub const DXGI_FORMAT_DXGI_FORMAT_Y216: DXGI_FORMAT = 109;
3509pub const DXGI_FORMAT_DXGI_FORMAT_NV11: DXGI_FORMAT = 110;
3510pub const DXGI_FORMAT_DXGI_FORMAT_AI44: DXGI_FORMAT = 111;
3511pub const DXGI_FORMAT_DXGI_FORMAT_IA44: DXGI_FORMAT = 112;
3512pub const DXGI_FORMAT_DXGI_FORMAT_P8: DXGI_FORMAT = 113;
3513pub const DXGI_FORMAT_DXGI_FORMAT_A8P8: DXGI_FORMAT = 114;
3514pub const DXGI_FORMAT_DXGI_FORMAT_B4G4R4A4_UNORM: DXGI_FORMAT = 115;
3515pub const DXGI_FORMAT_DXGI_FORMAT_P208: DXGI_FORMAT = 130;
3516pub const DXGI_FORMAT_DXGI_FORMAT_V208: DXGI_FORMAT = 131;
3517pub const DXGI_FORMAT_DXGI_FORMAT_V408: DXGI_FORMAT = 132;
3518pub const DXGI_FORMAT_DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: DXGI_FORMAT =
3519    189;
3520pub const DXGI_FORMAT_DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE:
3521    DXGI_FORMAT = 190;
3522pub const DXGI_FORMAT_DXGI_FORMAT_FORCE_UINT: DXGI_FORMAT = -1;
3523pub type DXGI_FORMAT = ::std::os::raw::c_int;
3524pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_1_0_CORE: D3D_FEATURE_LEVEL =
3525    4096;
3526pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_9_1: D3D_FEATURE_LEVEL = 37120;
3527pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_9_2: D3D_FEATURE_LEVEL = 37376;
3528pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_9_3: D3D_FEATURE_LEVEL = 37632;
3529pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_10_0: D3D_FEATURE_LEVEL = 40960;
3530pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_10_1: D3D_FEATURE_LEVEL = 41216;
3531pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_11_0: D3D_FEATURE_LEVEL = 45056;
3532pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_11_1: D3D_FEATURE_LEVEL = 45312;
3533pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_12_0: D3D_FEATURE_LEVEL = 49152;
3534pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_12_1: D3D_FEATURE_LEVEL = 49408;
3535pub const D3D_FEATURE_LEVEL_D3D_FEATURE_LEVEL_12_2: D3D_FEATURE_LEVEL = 49664;
3536pub type D3D_FEATURE_LEVEL = ::std::os::raw::c_int;
3537pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_UNDEFINED:
3538    D3D_PRIMITIVE_TOPOLOGY = 0;
3539pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_POINTLIST:
3540    D3D_PRIMITIVE_TOPOLOGY = 1;
3541pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_LINELIST:
3542    D3D_PRIMITIVE_TOPOLOGY = 2;
3543pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_LINESTRIP:
3544    D3D_PRIMITIVE_TOPOLOGY = 3;
3545pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST:
3546    D3D_PRIMITIVE_TOPOLOGY = 4;
3547pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP:
3548    D3D_PRIMITIVE_TOPOLOGY = 5;
3549pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ:
3550    D3D_PRIMITIVE_TOPOLOGY = 10;
3551pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ:
3552    D3D_PRIMITIVE_TOPOLOGY = 11;
3553pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ:
3554    D3D_PRIMITIVE_TOPOLOGY = 12;
3555pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ:
3556    D3D_PRIMITIVE_TOPOLOGY = 13;
3557pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 33 ;
3558pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 34 ;
3559pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 35 ;
3560pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 36 ;
3561pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 37 ;
3562pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 38 ;
3563pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 39 ;
3564pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 40 ;
3565pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 41 ;
3566pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 42 ;
3567pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 43 ;
3568pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 44 ;
3569pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 45 ;
3570pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 46 ;
3571pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 47 ;
3572pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 48 ;
3573pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 49 ;
3574pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 50 ;
3575pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 51 ;
3576pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 52 ;
3577pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 53 ;
3578pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 54 ;
3579pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 55 ;
3580pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 56 ;
3581pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 57 ;
3582pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 58 ;
3583pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 59 ;
3584pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 60 ;
3585pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 61 ;
3586pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 62 ;
3587pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 63 ;
3588pub const D3D_PRIMITIVE_TOPOLOGY_D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 64 ;
3589pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED:
3590    D3D_PRIMITIVE_TOPOLOGY = 0;
3591pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_POINTLIST:
3592    D3D_PRIMITIVE_TOPOLOGY = 1;
3593pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_LINELIST:
3594    D3D_PRIMITIVE_TOPOLOGY = 2;
3595pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP:
3596    D3D_PRIMITIVE_TOPOLOGY = 3;
3597pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST:
3598    D3D_PRIMITIVE_TOPOLOGY = 4;
3599pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP:
3600    D3D_PRIMITIVE_TOPOLOGY = 5;
3601pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ:
3602    D3D_PRIMITIVE_TOPOLOGY = 10;
3603pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ:
3604    D3D_PRIMITIVE_TOPOLOGY = 11;
3605pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ:
3606    D3D_PRIMITIVE_TOPOLOGY = 12;
3607pub const D3D_PRIMITIVE_TOPOLOGY_D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ:
3608    D3D_PRIMITIVE_TOPOLOGY = 13;
3609pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED:
3610    D3D_PRIMITIVE_TOPOLOGY = 0;
3611pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_POINTLIST:
3612    D3D_PRIMITIVE_TOPOLOGY = 1;
3613pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_LINELIST:
3614    D3D_PRIMITIVE_TOPOLOGY = 2;
3615pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP:
3616    D3D_PRIMITIVE_TOPOLOGY = 3;
3617pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST:
3618    D3D_PRIMITIVE_TOPOLOGY = 4;
3619pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP:
3620    D3D_PRIMITIVE_TOPOLOGY = 5;
3621pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ:
3622    D3D_PRIMITIVE_TOPOLOGY = 10;
3623pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ:
3624    D3D_PRIMITIVE_TOPOLOGY = 11;
3625pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ:
3626    D3D_PRIMITIVE_TOPOLOGY = 12;
3627pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ:
3628    D3D_PRIMITIVE_TOPOLOGY = 13;
3629pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 33 ;
3630pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 34 ;
3631pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 35 ;
3632pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 36 ;
3633pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 37 ;
3634pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 38 ;
3635pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 39 ;
3636pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 40 ;
3637pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 41 ;
3638pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 42 ;
3639pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 43 ;
3640pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 44 ;
3641pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 45 ;
3642pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 46 ;
3643pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 47 ;
3644pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 48 ;
3645pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 49 ;
3646pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 50 ;
3647pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 51 ;
3648pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 52 ;
3649pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 53 ;
3650pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 54 ;
3651pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 55 ;
3652pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 56 ;
3653pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 57 ;
3654pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 58 ;
3655pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 59 ;
3656pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 60 ;
3657pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 61 ;
3658pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 62 ;
3659pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 63 ;
3660pub const D3D_PRIMITIVE_TOPOLOGY_D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST : D3D_PRIMITIVE_TOPOLOGY = 64 ;
3661pub type D3D_PRIMITIVE_TOPOLOGY = ::std::os::raw::c_int;
3662pub const D3D_PRIMITIVE_D3D_PRIMITIVE_UNDEFINED: D3D_PRIMITIVE = 0;
3663pub const D3D_PRIMITIVE_D3D_PRIMITIVE_POINT: D3D_PRIMITIVE = 1;
3664pub const D3D_PRIMITIVE_D3D_PRIMITIVE_LINE: D3D_PRIMITIVE = 2;
3665pub const D3D_PRIMITIVE_D3D_PRIMITIVE_TRIANGLE: D3D_PRIMITIVE = 3;
3666pub const D3D_PRIMITIVE_D3D_PRIMITIVE_LINE_ADJ: D3D_PRIMITIVE = 6;
3667pub const D3D_PRIMITIVE_D3D_PRIMITIVE_TRIANGLE_ADJ: D3D_PRIMITIVE = 7;
3668pub const D3D_PRIMITIVE_D3D_PRIMITIVE_1_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 8;
3669pub const D3D_PRIMITIVE_D3D_PRIMITIVE_2_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 9;
3670pub const D3D_PRIMITIVE_D3D_PRIMITIVE_3_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 10;
3671pub const D3D_PRIMITIVE_D3D_PRIMITIVE_4_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 11;
3672pub const D3D_PRIMITIVE_D3D_PRIMITIVE_5_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 12;
3673pub const D3D_PRIMITIVE_D3D_PRIMITIVE_6_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 13;
3674pub const D3D_PRIMITIVE_D3D_PRIMITIVE_7_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 14;
3675pub const D3D_PRIMITIVE_D3D_PRIMITIVE_8_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 15;
3676pub const D3D_PRIMITIVE_D3D_PRIMITIVE_9_CONTROL_POINT_PATCH: D3D_PRIMITIVE = 16;
3677pub const D3D_PRIMITIVE_D3D_PRIMITIVE_10_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3678    17;
3679pub const D3D_PRIMITIVE_D3D_PRIMITIVE_11_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3680    18;
3681pub const D3D_PRIMITIVE_D3D_PRIMITIVE_12_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3682    19;
3683pub const D3D_PRIMITIVE_D3D_PRIMITIVE_13_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3684    20;
3685pub const D3D_PRIMITIVE_D3D_PRIMITIVE_14_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3686    21;
3687pub const D3D_PRIMITIVE_D3D_PRIMITIVE_15_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3688    22;
3689pub const D3D_PRIMITIVE_D3D_PRIMITIVE_16_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3690    23;
3691pub const D3D_PRIMITIVE_D3D_PRIMITIVE_17_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3692    24;
3693pub const D3D_PRIMITIVE_D3D_PRIMITIVE_18_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3694    25;
3695pub const D3D_PRIMITIVE_D3D_PRIMITIVE_19_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3696    26;
3697pub const D3D_PRIMITIVE_D3D_PRIMITIVE_20_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3698    27;
3699pub const D3D_PRIMITIVE_D3D_PRIMITIVE_21_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3700    28;
3701pub const D3D_PRIMITIVE_D3D_PRIMITIVE_22_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3702    29;
3703pub const D3D_PRIMITIVE_D3D_PRIMITIVE_23_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3704    30;
3705pub const D3D_PRIMITIVE_D3D_PRIMITIVE_24_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3706    31;
3707pub const D3D_PRIMITIVE_D3D_PRIMITIVE_25_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3708    32;
3709pub const D3D_PRIMITIVE_D3D_PRIMITIVE_26_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3710    33;
3711pub const D3D_PRIMITIVE_D3D_PRIMITIVE_27_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3712    34;
3713pub const D3D_PRIMITIVE_D3D_PRIMITIVE_28_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3714    35;
3715pub const D3D_PRIMITIVE_D3D_PRIMITIVE_29_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3716    36;
3717pub const D3D_PRIMITIVE_D3D_PRIMITIVE_30_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3718    37;
3719pub const D3D_PRIMITIVE_D3D_PRIMITIVE_31_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3720    38;
3721pub const D3D_PRIMITIVE_D3D_PRIMITIVE_32_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3722    39;
3723pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_UNDEFINED: D3D_PRIMITIVE = 0;
3724pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_POINT: D3D_PRIMITIVE = 1;
3725pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_LINE: D3D_PRIMITIVE = 2;
3726pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_TRIANGLE: D3D_PRIMITIVE = 3;
3727pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_LINE_ADJ: D3D_PRIMITIVE = 6;
3728pub const D3D_PRIMITIVE_D3D10_PRIMITIVE_TRIANGLE_ADJ: D3D_PRIMITIVE = 7;
3729pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_UNDEFINED: D3D_PRIMITIVE = 0;
3730pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_POINT: D3D_PRIMITIVE = 1;
3731pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_LINE: D3D_PRIMITIVE = 2;
3732pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_TRIANGLE: D3D_PRIMITIVE = 3;
3733pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_LINE_ADJ: D3D_PRIMITIVE = 6;
3734pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_TRIANGLE_ADJ: D3D_PRIMITIVE = 7;
3735pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3736    8;
3737pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3738    9;
3739pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3740    10;
3741pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3742    11;
3743pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3744    12;
3745pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3746    13;
3747pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3748    14;
3749pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3750    15;
3751pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3752    16;
3753pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3754    17;
3755pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3756    18;
3757pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3758    19;
3759pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3760    20;
3761pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3762    21;
3763pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3764    22;
3765pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3766    23;
3767pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3768    24;
3769pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3770    25;
3771pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3772    26;
3773pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3774    27;
3775pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3776    28;
3777pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3778    29;
3779pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3780    30;
3781pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3782    31;
3783pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3784    32;
3785pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3786    33;
3787pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3788    34;
3789pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3790    35;
3791pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3792    36;
3793pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3794    37;
3795pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3796    38;
3797pub const D3D_PRIMITIVE_D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH: D3D_PRIMITIVE =
3798    39;
3799pub type D3D_PRIMITIVE = ::std::os::raw::c_int;
3800extern "C" {
3801    pub static IID_ID3D10Blob: GUID;
3802}
3803#[repr(C)]
3804#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3805pub struct ID3D10BlobVtbl {
3806    pub QueryInterface: ::std::option::Option<
3807        unsafe extern "C" fn(
3808            This: *mut ID3D10Blob,
3809            riid: *const IID,
3810            ppvObject: *mut *mut ::std::os::raw::c_void,
3811        ) -> HRESULT,
3812    >,
3813    pub AddRef: ::std::option::Option<
3814        unsafe extern "C" fn(This: *mut ID3D10Blob) -> ULONG,
3815    >,
3816    pub Release: ::std::option::Option<
3817        unsafe extern "C" fn(This: *mut ID3D10Blob) -> ULONG,
3818    >,
3819    pub GetBufferPointer: ::std::option::Option<
3820        unsafe extern "C" fn(This: *mut ID3D10Blob) -> LPVOID,
3821    >,
3822    pub GetBufferSize: ::std::option::Option<
3823        unsafe extern "C" fn(This: *mut ID3D10Blob) -> SIZE_T,
3824    >,
3825}
3826#[repr(C)]
3827#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3828pub struct ID3D10Blob {
3829    pub lpVtbl: *mut ID3D10BlobVtbl,
3830}
3831impl Default for ID3D10Blob {
3832    fn default() -> Self {
3833        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3834        unsafe {
3835            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3836            s.assume_init()
3837        }
3838    }
3839}
3840pub type ID3DBlob = ID3D10Blob;
3841extern "C" {
3842    pub static IID_ID3DDestructionNotifier: IID;
3843}
3844extern "C" {
3845    pub static WKPDID_D3DDebugObjectName: GUID;
3846}
3847extern "C" {
3848    pub static WKPDID_D3DDebugObjectNameW: GUID;
3849}
3850extern "C" {
3851    pub static WKPDID_CommentStringW: GUID;
3852}
3853extern "C" {
3854    pub static WKPDID_D3D12UniqueObjectId: GUID;
3855}
3856pub type D3D12_GPU_VIRTUAL_ADDRESS = UINT64;
3857pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_DIRECT:
3858    D3D12_COMMAND_LIST_TYPE = 0;
3859pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_BUNDLE:
3860    D3D12_COMMAND_LIST_TYPE = 1;
3861pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_COMPUTE:
3862    D3D12_COMMAND_LIST_TYPE = 2;
3863pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_COPY:
3864    D3D12_COMMAND_LIST_TYPE = 3;
3865pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE:
3866    D3D12_COMMAND_LIST_TYPE = 4;
3867pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS:
3868    D3D12_COMMAND_LIST_TYPE = 5;
3869pub const D3D12_COMMAND_LIST_TYPE_D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE:
3870    D3D12_COMMAND_LIST_TYPE = 6;
3871pub type D3D12_COMMAND_LIST_TYPE = ::std::os::raw::c_int;
3872pub const D3D12_COMMAND_QUEUE_FLAGS_D3D12_COMMAND_QUEUE_FLAG_NONE:
3873    D3D12_COMMAND_QUEUE_FLAGS = 0;
3874pub const D3D12_COMMAND_QUEUE_FLAGS_D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT : D3D12_COMMAND_QUEUE_FLAGS = 1 ;
3875pub type D3D12_COMMAND_QUEUE_FLAGS = ::std::os::raw::c_int;
3876pub const D3D12_COMMAND_QUEUE_PRIORITY_D3D12_COMMAND_QUEUE_PRIORITY_NORMAL:
3877    D3D12_COMMAND_QUEUE_PRIORITY = 0;
3878pub const D3D12_COMMAND_QUEUE_PRIORITY_D3D12_COMMAND_QUEUE_PRIORITY_HIGH:
3879    D3D12_COMMAND_QUEUE_PRIORITY = 100;
3880pub const D3D12_COMMAND_QUEUE_PRIORITY_D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME : D3D12_COMMAND_QUEUE_PRIORITY = 10000 ;
3881pub type D3D12_COMMAND_QUEUE_PRIORITY = ::std::os::raw::c_int;
3882#[repr(C)]
3883#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3884pub struct D3D12_COMMAND_QUEUE_DESC {
3885    pub Type: D3D12_COMMAND_LIST_TYPE,
3886    pub Priority: INT,
3887    pub Flags: D3D12_COMMAND_QUEUE_FLAGS,
3888    pub NodeMask: UINT,
3889}
3890impl Default for D3D12_COMMAND_QUEUE_DESC {
3891    fn default() -> Self {
3892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3893        unsafe {
3894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3895            s.assume_init()
3896        }
3897    }
3898}
3899pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED : D3D12_PRIMITIVE_TOPOLOGY_TYPE = 0 ;
3900pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT:
3901    D3D12_PRIMITIVE_TOPOLOGY_TYPE = 1;
3902pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE:
3903    D3D12_PRIMITIVE_TOPOLOGY_TYPE = 2;
3904pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE : D3D12_PRIMITIVE_TOPOLOGY_TYPE = 3 ;
3905pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH:
3906    D3D12_PRIMITIVE_TOPOLOGY_TYPE = 4;
3907pub type D3D12_PRIMITIVE_TOPOLOGY_TYPE = ::std::os::raw::c_int;
3908pub const D3D12_INPUT_CLASSIFICATION_D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA : D3D12_INPUT_CLASSIFICATION = 0 ;
3909pub const D3D12_INPUT_CLASSIFICATION_D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA : D3D12_INPUT_CLASSIFICATION = 1 ;
3910pub type D3D12_INPUT_CLASSIFICATION = ::std::os::raw::c_int;
3911#[repr(C)]
3912#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3913pub struct D3D12_INPUT_ELEMENT_DESC {
3914    pub SemanticName: LPCSTR,
3915    pub SemanticIndex: UINT,
3916    pub Format: DXGI_FORMAT,
3917    pub InputSlot: UINT,
3918    pub AlignedByteOffset: UINT,
3919    pub InputSlotClass: D3D12_INPUT_CLASSIFICATION,
3920    pub InstanceDataStepRate: UINT,
3921}
3922impl Default for D3D12_INPUT_ELEMENT_DESC {
3923    fn default() -> Self {
3924        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3925        unsafe {
3926            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3927            s.assume_init()
3928        }
3929    }
3930}
3931pub const D3D12_FILL_MODE_D3D12_FILL_MODE_WIREFRAME: D3D12_FILL_MODE = 2;
3932pub const D3D12_FILL_MODE_D3D12_FILL_MODE_SOLID: D3D12_FILL_MODE = 3;
3933pub type D3D12_FILL_MODE = ::std::os::raw::c_int;
3934pub use self::D3D_PRIMITIVE as D3D12_PRIMITIVE;
3935pub use self::D3D_PRIMITIVE_TOPOLOGY as D3D12_PRIMITIVE_TOPOLOGY;
3936pub const D3D12_CULL_MODE_D3D12_CULL_MODE_NONE: D3D12_CULL_MODE = 1;
3937pub const D3D12_CULL_MODE_D3D12_CULL_MODE_FRONT: D3D12_CULL_MODE = 2;
3938pub const D3D12_CULL_MODE_D3D12_CULL_MODE_BACK: D3D12_CULL_MODE = 3;
3939pub type D3D12_CULL_MODE = ::std::os::raw::c_int;
3940#[repr(C)]
3941#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3942pub struct D3D12_SO_DECLARATION_ENTRY {
3943    pub Stream: UINT,
3944    pub SemanticName: LPCSTR,
3945    pub SemanticIndex: UINT,
3946    pub StartComponent: BYTE,
3947    pub ComponentCount: BYTE,
3948    pub OutputSlot: BYTE,
3949}
3950impl Default for D3D12_SO_DECLARATION_ENTRY {
3951    fn default() -> Self {
3952        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3953        unsafe {
3954            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3955            s.assume_init()
3956        }
3957    }
3958}
3959#[repr(C)]
3960#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
3961pub struct D3D12_VIEWPORT {
3962    pub TopLeftX: FLOAT,
3963    pub TopLeftY: FLOAT,
3964    pub Width: FLOAT,
3965    pub Height: FLOAT,
3966    pub MinDepth: FLOAT,
3967    pub MaxDepth: FLOAT,
3968}
3969pub type D3D12_RECT = RECT;
3970#[repr(C)]
3971#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
3972pub struct D3D12_BOX {
3973    pub left: UINT,
3974    pub top: UINT,
3975    pub front: UINT,
3976    pub right: UINT,
3977    pub bottom: UINT,
3978    pub back: UINT,
3979}
3980pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_NEVER:
3981    D3D12_COMPARISON_FUNC = 1;
3982pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_LESS:
3983    D3D12_COMPARISON_FUNC = 2;
3984pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_EQUAL:
3985    D3D12_COMPARISON_FUNC = 3;
3986pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_LESS_EQUAL:
3987    D3D12_COMPARISON_FUNC = 4;
3988pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_GREATER:
3989    D3D12_COMPARISON_FUNC = 5;
3990pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_NOT_EQUAL:
3991    D3D12_COMPARISON_FUNC = 6;
3992pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_GREATER_EQUAL:
3993    D3D12_COMPARISON_FUNC = 7;
3994pub const D3D12_COMPARISON_FUNC_D3D12_COMPARISON_FUNC_ALWAYS:
3995    D3D12_COMPARISON_FUNC = 8;
3996pub type D3D12_COMPARISON_FUNC = ::std::os::raw::c_int;
3997pub const D3D12_DEPTH_WRITE_MASK_D3D12_DEPTH_WRITE_MASK_ZERO:
3998    D3D12_DEPTH_WRITE_MASK = 0;
3999pub const D3D12_DEPTH_WRITE_MASK_D3D12_DEPTH_WRITE_MASK_ALL:
4000    D3D12_DEPTH_WRITE_MASK = 1;
4001pub type D3D12_DEPTH_WRITE_MASK = ::std::os::raw::c_int;
4002pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_KEEP: D3D12_STENCIL_OP = 1;
4003pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_ZERO: D3D12_STENCIL_OP = 2;
4004pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_REPLACE: D3D12_STENCIL_OP = 3;
4005pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_INCR_SAT: D3D12_STENCIL_OP = 4;
4006pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_DECR_SAT: D3D12_STENCIL_OP = 5;
4007pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_INVERT: D3D12_STENCIL_OP = 6;
4008pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_INCR: D3D12_STENCIL_OP = 7;
4009pub const D3D12_STENCIL_OP_D3D12_STENCIL_OP_DECR: D3D12_STENCIL_OP = 8;
4010pub type D3D12_STENCIL_OP = ::std::os::raw::c_int;
4011#[repr(C)]
4012#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4013pub struct D3D12_DEPTH_STENCILOP_DESC {
4014    pub StencilFailOp: D3D12_STENCIL_OP,
4015    pub StencilDepthFailOp: D3D12_STENCIL_OP,
4016    pub StencilPassOp: D3D12_STENCIL_OP,
4017    pub StencilFunc: D3D12_COMPARISON_FUNC,
4018}
4019impl Default for D3D12_DEPTH_STENCILOP_DESC {
4020    fn default() -> Self {
4021        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4022        unsafe {
4023            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4024            s.assume_init()
4025        }
4026    }
4027}
4028#[repr(C)]
4029#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4030pub struct D3D12_DEPTH_STENCIL_DESC {
4031    pub DepthEnable: BOOL,
4032    pub DepthWriteMask: D3D12_DEPTH_WRITE_MASK,
4033    pub DepthFunc: D3D12_COMPARISON_FUNC,
4034    pub StencilEnable: BOOL,
4035    pub StencilReadMask: UINT8,
4036    pub StencilWriteMask: UINT8,
4037    pub FrontFace: D3D12_DEPTH_STENCILOP_DESC,
4038    pub BackFace: D3D12_DEPTH_STENCILOP_DESC,
4039}
4040impl Default for D3D12_DEPTH_STENCIL_DESC {
4041    fn default() -> Self {
4042        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4043        unsafe {
4044            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4045            s.assume_init()
4046        }
4047    }
4048}
4049#[repr(C)]
4050#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4051pub struct D3D12_DEPTH_STENCIL_DESC1 {
4052    pub DepthEnable: BOOL,
4053    pub DepthWriteMask: D3D12_DEPTH_WRITE_MASK,
4054    pub DepthFunc: D3D12_COMPARISON_FUNC,
4055    pub StencilEnable: BOOL,
4056    pub StencilReadMask: UINT8,
4057    pub StencilWriteMask: UINT8,
4058    pub FrontFace: D3D12_DEPTH_STENCILOP_DESC,
4059    pub BackFace: D3D12_DEPTH_STENCILOP_DESC,
4060    pub DepthBoundsTestEnable: BOOL,
4061}
4062impl Default for D3D12_DEPTH_STENCIL_DESC1 {
4063    fn default() -> Self {
4064        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4065        unsafe {
4066            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4067            s.assume_init()
4068        }
4069    }
4070}
4071pub const D3D12_BLEND_D3D12_BLEND_ZERO: D3D12_BLEND = 1;
4072pub const D3D12_BLEND_D3D12_BLEND_ONE: D3D12_BLEND = 2;
4073pub const D3D12_BLEND_D3D12_BLEND_SRC_COLOR: D3D12_BLEND = 3;
4074pub const D3D12_BLEND_D3D12_BLEND_INV_SRC_COLOR: D3D12_BLEND = 4;
4075pub const D3D12_BLEND_D3D12_BLEND_SRC_ALPHA: D3D12_BLEND = 5;
4076pub const D3D12_BLEND_D3D12_BLEND_INV_SRC_ALPHA: D3D12_BLEND = 6;
4077pub const D3D12_BLEND_D3D12_BLEND_DEST_ALPHA: D3D12_BLEND = 7;
4078pub const D3D12_BLEND_D3D12_BLEND_INV_DEST_ALPHA: D3D12_BLEND = 8;
4079pub const D3D12_BLEND_D3D12_BLEND_DEST_COLOR: D3D12_BLEND = 9;
4080pub const D3D12_BLEND_D3D12_BLEND_INV_DEST_COLOR: D3D12_BLEND = 10;
4081pub const D3D12_BLEND_D3D12_BLEND_SRC_ALPHA_SAT: D3D12_BLEND = 11;
4082pub const D3D12_BLEND_D3D12_BLEND_BLEND_FACTOR: D3D12_BLEND = 14;
4083pub const D3D12_BLEND_D3D12_BLEND_INV_BLEND_FACTOR: D3D12_BLEND = 15;
4084pub const D3D12_BLEND_D3D12_BLEND_SRC1_COLOR: D3D12_BLEND = 16;
4085pub const D3D12_BLEND_D3D12_BLEND_INV_SRC1_COLOR: D3D12_BLEND = 17;
4086pub const D3D12_BLEND_D3D12_BLEND_SRC1_ALPHA: D3D12_BLEND = 18;
4087pub const D3D12_BLEND_D3D12_BLEND_INV_SRC1_ALPHA: D3D12_BLEND = 19;
4088pub type D3D12_BLEND = ::std::os::raw::c_int;
4089pub const D3D12_BLEND_OP_D3D12_BLEND_OP_ADD: D3D12_BLEND_OP = 1;
4090pub const D3D12_BLEND_OP_D3D12_BLEND_OP_SUBTRACT: D3D12_BLEND_OP = 2;
4091pub const D3D12_BLEND_OP_D3D12_BLEND_OP_REV_SUBTRACT: D3D12_BLEND_OP = 3;
4092pub const D3D12_BLEND_OP_D3D12_BLEND_OP_MIN: D3D12_BLEND_OP = 4;
4093pub const D3D12_BLEND_OP_D3D12_BLEND_OP_MAX: D3D12_BLEND_OP = 5;
4094pub type D3D12_BLEND_OP = ::std::os::raw::c_int;
4095pub const D3D12_COLOR_WRITE_ENABLE_D3D12_COLOR_WRITE_ENABLE_RED:
4096    D3D12_COLOR_WRITE_ENABLE = 1;
4097pub const D3D12_COLOR_WRITE_ENABLE_D3D12_COLOR_WRITE_ENABLE_GREEN:
4098    D3D12_COLOR_WRITE_ENABLE = 2;
4099pub const D3D12_COLOR_WRITE_ENABLE_D3D12_COLOR_WRITE_ENABLE_BLUE:
4100    D3D12_COLOR_WRITE_ENABLE = 4;
4101pub const D3D12_COLOR_WRITE_ENABLE_D3D12_COLOR_WRITE_ENABLE_ALPHA:
4102    D3D12_COLOR_WRITE_ENABLE = 8;
4103pub const D3D12_COLOR_WRITE_ENABLE_D3D12_COLOR_WRITE_ENABLE_ALL:
4104    D3D12_COLOR_WRITE_ENABLE = 15;
4105pub type D3D12_COLOR_WRITE_ENABLE = ::std::os::raw::c_int;
4106pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_CLEAR: D3D12_LOGIC_OP = 0;
4107pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_SET: D3D12_LOGIC_OP = 1;
4108pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_COPY: D3D12_LOGIC_OP = 2;
4109pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_COPY_INVERTED: D3D12_LOGIC_OP = 3;
4110pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_NOOP: D3D12_LOGIC_OP = 4;
4111pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_INVERT: D3D12_LOGIC_OP = 5;
4112pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_AND: D3D12_LOGIC_OP = 6;
4113pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_NAND: D3D12_LOGIC_OP = 7;
4114pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_OR: D3D12_LOGIC_OP = 8;
4115pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_NOR: D3D12_LOGIC_OP = 9;
4116pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_XOR: D3D12_LOGIC_OP = 10;
4117pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_EQUIV: D3D12_LOGIC_OP = 11;
4118pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_AND_REVERSE: D3D12_LOGIC_OP = 12;
4119pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_AND_INVERTED: D3D12_LOGIC_OP = 13;
4120pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_OR_REVERSE: D3D12_LOGIC_OP = 14;
4121pub const D3D12_LOGIC_OP_D3D12_LOGIC_OP_OR_INVERTED: D3D12_LOGIC_OP = 15;
4122pub type D3D12_LOGIC_OP = ::std::os::raw::c_int;
4123#[repr(C)]
4124#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4125pub struct D3D12_RENDER_TARGET_BLEND_DESC {
4126    pub BlendEnable: BOOL,
4127    pub LogicOpEnable: BOOL,
4128    pub SrcBlend: D3D12_BLEND,
4129    pub DestBlend: D3D12_BLEND,
4130    pub BlendOp: D3D12_BLEND_OP,
4131    pub SrcBlendAlpha: D3D12_BLEND,
4132    pub DestBlendAlpha: D3D12_BLEND,
4133    pub BlendOpAlpha: D3D12_BLEND_OP,
4134    pub LogicOp: D3D12_LOGIC_OP,
4135    pub RenderTargetWriteMask: UINT8,
4136}
4137impl Default for D3D12_RENDER_TARGET_BLEND_DESC {
4138    fn default() -> Self {
4139        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4140        unsafe {
4141            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4142            s.assume_init()
4143        }
4144    }
4145}
4146#[repr(C)]
4147#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4148pub struct D3D12_BLEND_DESC {
4149    pub AlphaToCoverageEnable: BOOL,
4150    pub IndependentBlendEnable: BOOL,
4151    pub RenderTarget: [D3D12_RENDER_TARGET_BLEND_DESC; 8usize],
4152}
4153impl Default for D3D12_BLEND_DESC {
4154    fn default() -> Self {
4155        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4156        unsafe {
4157            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4158            s.assume_init()
4159        }
4160    }
4161}
4162pub const D3D12_CONSERVATIVE_RASTERIZATION_MODE_D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF : D3D12_CONSERVATIVE_RASTERIZATION_MODE = 0 ;
4163pub const D3D12_CONSERVATIVE_RASTERIZATION_MODE_D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON : D3D12_CONSERVATIVE_RASTERIZATION_MODE = 1 ;
4164pub type D3D12_CONSERVATIVE_RASTERIZATION_MODE = ::std::os::raw::c_int;
4165#[repr(C)]
4166#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
4167pub struct D3D12_RASTERIZER_DESC {
4168    pub FillMode: D3D12_FILL_MODE,
4169    pub CullMode: D3D12_CULL_MODE,
4170    pub FrontCounterClockwise: BOOL,
4171    pub DepthBias: INT,
4172    pub DepthBiasClamp: FLOAT,
4173    pub SlopeScaledDepthBias: FLOAT,
4174    pub DepthClipEnable: BOOL,
4175    pub MultisampleEnable: BOOL,
4176    pub AntialiasedLineEnable: BOOL,
4177    pub ForcedSampleCount: UINT,
4178    pub ConservativeRaster: D3D12_CONSERVATIVE_RASTERIZATION_MODE,
4179}
4180impl Default for D3D12_RASTERIZER_DESC {
4181    fn default() -> Self {
4182        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4183        unsafe {
4184            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4185            s.assume_init()
4186        }
4187    }
4188}
4189extern "C" {
4190    pub static IID_ID3D12Object: IID;
4191}
4192#[repr(C)]
4193#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4194pub struct ID3D12ObjectVtbl {
4195    pub QueryInterface: ::std::option::Option<
4196        unsafe extern "C" fn(
4197            This: *mut ID3D12Object,
4198            riid: *const IID,
4199            ppvObject: *mut *mut ::std::os::raw::c_void,
4200        ) -> HRESULT,
4201    >,
4202    pub AddRef: ::std::option::Option<
4203        unsafe extern "C" fn(This: *mut ID3D12Object) -> ULONG,
4204    >,
4205    pub Release: ::std::option::Option<
4206        unsafe extern "C" fn(This: *mut ID3D12Object) -> ULONG,
4207    >,
4208    pub GetPrivateData: ::std::option::Option<
4209        unsafe extern "C" fn(
4210            This: *mut ID3D12Object,
4211            guid: *const GUID,
4212            pDataSize: *mut UINT,
4213            pData: *mut ::std::os::raw::c_void,
4214        ) -> HRESULT,
4215    >,
4216    pub SetPrivateData: ::std::option::Option<
4217        unsafe extern "C" fn(
4218            This: *mut ID3D12Object,
4219            guid: *const GUID,
4220            DataSize: UINT,
4221            pData: *const ::std::os::raw::c_void,
4222        ) -> HRESULT,
4223    >,
4224    pub SetPrivateDataInterface: ::std::option::Option<
4225        unsafe extern "C" fn(
4226            This: *mut ID3D12Object,
4227            guid: *const GUID,
4228            pData: *const IUnknown,
4229        ) -> HRESULT,
4230    >,
4231    pub SetName: ::std::option::Option<
4232        unsafe extern "C" fn(This: *mut ID3D12Object, Name: LPCWSTR) -> HRESULT,
4233    >,
4234}
4235#[repr(C)]
4236#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4237pub struct ID3D12Object {
4238    pub lpVtbl: *mut ID3D12ObjectVtbl,
4239}
4240impl Default for ID3D12Object {
4241    fn default() -> Self {
4242        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4243        unsafe {
4244            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4245            s.assume_init()
4246        }
4247    }
4248}
4249extern "C" {
4250    pub static IID_ID3D12DeviceChild: IID;
4251}
4252#[repr(C)]
4253#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4254pub struct ID3D12DeviceChildVtbl {
4255    pub QueryInterface: ::std::option::Option<
4256        unsafe extern "C" fn(
4257            This: *mut ID3D12DeviceChild,
4258            riid: *const IID,
4259            ppvObject: *mut *mut ::std::os::raw::c_void,
4260        ) -> HRESULT,
4261    >,
4262    pub AddRef: ::std::option::Option<
4263        unsafe extern "C" fn(This: *mut ID3D12DeviceChild) -> ULONG,
4264    >,
4265    pub Release: ::std::option::Option<
4266        unsafe extern "C" fn(This: *mut ID3D12DeviceChild) -> ULONG,
4267    >,
4268    pub GetPrivateData: ::std::option::Option<
4269        unsafe extern "C" fn(
4270            This: *mut ID3D12DeviceChild,
4271            guid: *const GUID,
4272            pDataSize: *mut UINT,
4273            pData: *mut ::std::os::raw::c_void,
4274        ) -> HRESULT,
4275    >,
4276    pub SetPrivateData: ::std::option::Option<
4277        unsafe extern "C" fn(
4278            This: *mut ID3D12DeviceChild,
4279            guid: *const GUID,
4280            DataSize: UINT,
4281            pData: *const ::std::os::raw::c_void,
4282        ) -> HRESULT,
4283    >,
4284    pub SetPrivateDataInterface: ::std::option::Option<
4285        unsafe extern "C" fn(
4286            This: *mut ID3D12DeviceChild,
4287            guid: *const GUID,
4288            pData: *const IUnknown,
4289        ) -> HRESULT,
4290    >,
4291    pub SetName: ::std::option::Option<
4292        unsafe extern "C" fn(
4293            This: *mut ID3D12DeviceChild,
4294            Name: LPCWSTR,
4295        ) -> HRESULT,
4296    >,
4297    pub GetDevice: ::std::option::Option<
4298        unsafe extern "C" fn(
4299            This: *mut ID3D12DeviceChild,
4300            riid: *const IID,
4301            ppvDevice: *mut *mut ::std::os::raw::c_void,
4302        ) -> HRESULT,
4303    >,
4304}
4305#[repr(C)]
4306#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4307pub struct ID3D12DeviceChild {
4308    pub lpVtbl: *mut ID3D12DeviceChildVtbl,
4309}
4310impl Default for ID3D12DeviceChild {
4311    fn default() -> Self {
4312        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4313        unsafe {
4314            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4315            s.assume_init()
4316        }
4317    }
4318}
4319extern "C" {
4320    pub static IID_ID3D12RootSignature: IID;
4321}
4322#[repr(C)]
4323#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4324pub struct ID3D12RootSignatureVtbl {
4325    pub QueryInterface: ::std::option::Option<
4326        unsafe extern "C" fn(
4327            This: *mut ID3D12RootSignature,
4328            riid: *const IID,
4329            ppvObject: *mut *mut ::std::os::raw::c_void,
4330        ) -> HRESULT,
4331    >,
4332    pub AddRef: ::std::option::Option<
4333        unsafe extern "C" fn(This: *mut ID3D12RootSignature) -> ULONG,
4334    >,
4335    pub Release: ::std::option::Option<
4336        unsafe extern "C" fn(This: *mut ID3D12RootSignature) -> ULONG,
4337    >,
4338    pub GetPrivateData: ::std::option::Option<
4339        unsafe extern "C" fn(
4340            This: *mut ID3D12RootSignature,
4341            guid: *const GUID,
4342            pDataSize: *mut UINT,
4343            pData: *mut ::std::os::raw::c_void,
4344        ) -> HRESULT,
4345    >,
4346    pub SetPrivateData: ::std::option::Option<
4347        unsafe extern "C" fn(
4348            This: *mut ID3D12RootSignature,
4349            guid: *const GUID,
4350            DataSize: UINT,
4351            pData: *const ::std::os::raw::c_void,
4352        ) -> HRESULT,
4353    >,
4354    pub SetPrivateDataInterface: ::std::option::Option<
4355        unsafe extern "C" fn(
4356            This: *mut ID3D12RootSignature,
4357            guid: *const GUID,
4358            pData: *const IUnknown,
4359        ) -> HRESULT,
4360    >,
4361    pub SetName: ::std::option::Option<
4362        unsafe extern "C" fn(
4363            This: *mut ID3D12RootSignature,
4364            Name: LPCWSTR,
4365        ) -> HRESULT,
4366    >,
4367    pub GetDevice: ::std::option::Option<
4368        unsafe extern "C" fn(
4369            This: *mut ID3D12RootSignature,
4370            riid: *const IID,
4371            ppvDevice: *mut *mut ::std::os::raw::c_void,
4372        ) -> HRESULT,
4373    >,
4374}
4375#[repr(C)]
4376#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4377pub struct ID3D12RootSignature {
4378    pub lpVtbl: *mut ID3D12RootSignatureVtbl,
4379}
4380impl Default for ID3D12RootSignature {
4381    fn default() -> Self {
4382        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4383        unsafe {
4384            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4385            s.assume_init()
4386        }
4387    }
4388}
4389#[repr(C)]
4390#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4391pub struct D3D12_SHADER_BYTECODE {
4392    pub pShaderBytecode: *const ::std::os::raw::c_void,
4393    pub BytecodeLength: SIZE_T,
4394}
4395impl Default for D3D12_SHADER_BYTECODE {
4396    fn default() -> Self {
4397        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4398        unsafe {
4399            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4400            s.assume_init()
4401        }
4402    }
4403}
4404#[repr(C)]
4405#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4406pub struct D3D12_STREAM_OUTPUT_DESC {
4407    pub pSODeclaration: *const D3D12_SO_DECLARATION_ENTRY,
4408    pub NumEntries: UINT,
4409    pub pBufferStrides: *const UINT,
4410    pub NumStrides: UINT,
4411    pub RasterizedStream: UINT,
4412}
4413impl Default for D3D12_STREAM_OUTPUT_DESC {
4414    fn default() -> Self {
4415        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4416        unsafe {
4417            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4418            s.assume_init()
4419        }
4420    }
4421}
4422#[repr(C)]
4423#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4424pub struct D3D12_INPUT_LAYOUT_DESC {
4425    pub pInputElementDescs: *const D3D12_INPUT_ELEMENT_DESC,
4426    pub NumElements: UINT,
4427}
4428impl Default for D3D12_INPUT_LAYOUT_DESC {
4429    fn default() -> Self {
4430        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4431        unsafe {
4432            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4433            s.assume_init()
4434        }
4435    }
4436}
4437pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED : D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = 0 ;
4438pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF : D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = 1 ;
4439pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF : D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = 2 ;
4440pub type D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = ::std::os::raw::c_int;
4441#[repr(C)]
4442#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4443pub struct D3D12_CACHED_PIPELINE_STATE {
4444    pub pCachedBlob: *const ::std::os::raw::c_void,
4445    pub CachedBlobSizeInBytes: SIZE_T,
4446}
4447impl Default for D3D12_CACHED_PIPELINE_STATE {
4448    fn default() -> Self {
4449        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4450        unsafe {
4451            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4452            s.assume_init()
4453        }
4454    }
4455}
4456pub const D3D12_PIPELINE_STATE_FLAGS_D3D12_PIPELINE_STATE_FLAG_NONE:
4457    D3D12_PIPELINE_STATE_FLAGS = 0;
4458pub const D3D12_PIPELINE_STATE_FLAGS_D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG:
4459    D3D12_PIPELINE_STATE_FLAGS = 1;
4460pub type D3D12_PIPELINE_STATE_FLAGS = ::std::os::raw::c_int;
4461#[repr(C)]
4462#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
4463pub struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
4464    pub pRootSignature: *mut ID3D12RootSignature,
4465    pub VS: D3D12_SHADER_BYTECODE,
4466    pub PS: D3D12_SHADER_BYTECODE,
4467    pub DS: D3D12_SHADER_BYTECODE,
4468    pub HS: D3D12_SHADER_BYTECODE,
4469    pub GS: D3D12_SHADER_BYTECODE,
4470    pub StreamOutput: D3D12_STREAM_OUTPUT_DESC,
4471    pub BlendState: D3D12_BLEND_DESC,
4472    pub SampleMask: UINT,
4473    pub RasterizerState: D3D12_RASTERIZER_DESC,
4474    pub DepthStencilState: D3D12_DEPTH_STENCIL_DESC,
4475    pub InputLayout: D3D12_INPUT_LAYOUT_DESC,
4476    pub IBStripCutValue: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE,
4477    pub PrimitiveTopologyType: D3D12_PRIMITIVE_TOPOLOGY_TYPE,
4478    pub NumRenderTargets: UINT,
4479    pub RTVFormats: [DXGI_FORMAT; 8usize],
4480    pub DSVFormat: DXGI_FORMAT,
4481    pub SampleDesc: DXGI_SAMPLE_DESC,
4482    pub NodeMask: UINT,
4483    pub CachedPSO: D3D12_CACHED_PIPELINE_STATE,
4484    pub Flags: D3D12_PIPELINE_STATE_FLAGS,
4485}
4486impl Default for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
4487    fn default() -> Self {
4488        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4489        unsafe {
4490            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4491            s.assume_init()
4492        }
4493    }
4494}
4495#[repr(C)]
4496#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4497pub struct D3D12_COMPUTE_PIPELINE_STATE_DESC {
4498    pub pRootSignature: *mut ID3D12RootSignature,
4499    pub CS: D3D12_SHADER_BYTECODE,
4500    pub NodeMask: UINT,
4501    pub CachedPSO: D3D12_CACHED_PIPELINE_STATE,
4502    pub Flags: D3D12_PIPELINE_STATE_FLAGS,
4503}
4504impl Default for D3D12_COMPUTE_PIPELINE_STATE_DESC {
4505    fn default() -> Self {
4506        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4507        unsafe {
4508            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4509            s.assume_init()
4510        }
4511    }
4512}
4513#[repr(C)]
4514#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4515pub struct D3D12_RT_FORMAT_ARRAY {
4516    pub RTFormats: [DXGI_FORMAT; 8usize],
4517    pub NumRenderTargets: UINT,
4518}
4519impl Default for D3D12_RT_FORMAT_ARRAY {
4520    fn default() -> Self {
4521        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4522        unsafe {
4523            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4524            s.assume_init()
4525        }
4526    }
4527}
4528#[repr(C)]
4529#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4530pub struct D3D12_PIPELINE_STATE_STREAM_DESC {
4531    pub SizeInBytes: SIZE_T,
4532    pub pPipelineStateSubobjectStream: *mut ::std::os::raw::c_void,
4533}
4534impl Default for D3D12_PIPELINE_STATE_STREAM_DESC {
4535    fn default() -> Self {
4536        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4537        unsafe {
4538            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4539            s.assume_init()
4540        }
4541    }
4542}
4543pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 0 ;
4544pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 1 ;
4545pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 2 ;
4546pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 3 ;
4547pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 4 ;
4548pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 5 ;
4549pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 6 ;
4550pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 7 ;
4551pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 8 ;
4552pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 9 ;
4553pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 10 ;
4554pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 11 ;
4555pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 12 ;
4556pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 13 ;
4557pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 14 ;
4558pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 15 ;
4559pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 16 ;
4560pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 17 ;
4561pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 18 ;
4562pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 19 ;
4563pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 20 ;
4564pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 21 ;
4565pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 22 ;
4566pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 24 ;
4567pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 25 ;
4568pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID : D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = 26 ;
4569pub type D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = ::std::os::raw::c_int;
4570pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS: D3D12_FEATURE = 0;
4571pub const D3D12_FEATURE_D3D12_FEATURE_ARCHITECTURE: D3D12_FEATURE = 1;
4572pub const D3D12_FEATURE_D3D12_FEATURE_FEATURE_LEVELS: D3D12_FEATURE = 2;
4573pub const D3D12_FEATURE_D3D12_FEATURE_FORMAT_SUPPORT: D3D12_FEATURE = 3;
4574pub const D3D12_FEATURE_D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS:
4575    D3D12_FEATURE = 4;
4576pub const D3D12_FEATURE_D3D12_FEATURE_FORMAT_INFO: D3D12_FEATURE = 5;
4577pub const D3D12_FEATURE_D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT:
4578    D3D12_FEATURE = 6;
4579pub const D3D12_FEATURE_D3D12_FEATURE_SHADER_MODEL: D3D12_FEATURE = 7;
4580pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS1: D3D12_FEATURE = 8;
4581pub const D3D12_FEATURE_D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT:
4582    D3D12_FEATURE = 10;
4583pub const D3D12_FEATURE_D3D12_FEATURE_ROOT_SIGNATURE: D3D12_FEATURE = 12;
4584pub const D3D12_FEATURE_D3D12_FEATURE_ARCHITECTURE1: D3D12_FEATURE = 16;
4585pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS2: D3D12_FEATURE = 18;
4586pub const D3D12_FEATURE_D3D12_FEATURE_SHADER_CACHE: D3D12_FEATURE = 19;
4587pub const D3D12_FEATURE_D3D12_FEATURE_COMMAND_QUEUE_PRIORITY: D3D12_FEATURE =
4588    20;
4589pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS3: D3D12_FEATURE = 21;
4590pub const D3D12_FEATURE_D3D12_FEATURE_EXISTING_HEAPS: D3D12_FEATURE = 22;
4591pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS4: D3D12_FEATURE = 23;
4592pub const D3D12_FEATURE_D3D12_FEATURE_SERIALIZATION: D3D12_FEATURE = 24;
4593pub const D3D12_FEATURE_D3D12_FEATURE_CROSS_NODE: D3D12_FEATURE = 25;
4594pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS5: D3D12_FEATURE = 27;
4595pub const D3D12_FEATURE_D3D12_FEATURE_DISPLAYABLE: D3D12_FEATURE = 28;
4596pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS6: D3D12_FEATURE = 30;
4597pub const D3D12_FEATURE_D3D12_FEATURE_QUERY_META_COMMAND: D3D12_FEATURE = 31;
4598pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS7: D3D12_FEATURE = 32;
4599pub const D3D12_FEATURE_D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT:
4600    D3D12_FEATURE = 33;
4601pub const D3D12_FEATURE_D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES:
4602    D3D12_FEATURE = 34;
4603pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS8: D3D12_FEATURE = 36;
4604pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS9: D3D12_FEATURE = 37;
4605pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS10: D3D12_FEATURE = 39;
4606pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS11: D3D12_FEATURE = 40;
4607pub const D3D12_FEATURE_D3D12_FEATURE_D3D12_OPTIONS12: D3D12_FEATURE = 41;
4608pub type D3D12_FEATURE = ::std::os::raw::c_int;
4609pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE : D3D12_SHADER_MIN_PRECISION_SUPPORT = 0 ;
4610pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT : D3D12_SHADER_MIN_PRECISION_SUPPORT = 1 ;
4611pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT : D3D12_SHADER_MIN_PRECISION_SUPPORT = 2 ;
4612pub type D3D12_SHADER_MIN_PRECISION_SUPPORT = ::std::os::raw::c_int;
4613pub const D3D12_TILED_RESOURCES_TIER_D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED : D3D12_TILED_RESOURCES_TIER = 0 ;
4614pub const D3D12_TILED_RESOURCES_TIER_D3D12_TILED_RESOURCES_TIER_1:
4615    D3D12_TILED_RESOURCES_TIER = 1;
4616pub const D3D12_TILED_RESOURCES_TIER_D3D12_TILED_RESOURCES_TIER_2:
4617    D3D12_TILED_RESOURCES_TIER = 2;
4618pub const D3D12_TILED_RESOURCES_TIER_D3D12_TILED_RESOURCES_TIER_3:
4619    D3D12_TILED_RESOURCES_TIER = 3;
4620pub const D3D12_TILED_RESOURCES_TIER_D3D12_TILED_RESOURCES_TIER_4:
4621    D3D12_TILED_RESOURCES_TIER = 4;
4622pub type D3D12_TILED_RESOURCES_TIER = ::std::os::raw::c_int;
4623pub const D3D12_RESOURCE_BINDING_TIER_D3D12_RESOURCE_BINDING_TIER_1:
4624    D3D12_RESOURCE_BINDING_TIER = 1;
4625pub const D3D12_RESOURCE_BINDING_TIER_D3D12_RESOURCE_BINDING_TIER_2:
4626    D3D12_RESOURCE_BINDING_TIER = 2;
4627pub const D3D12_RESOURCE_BINDING_TIER_D3D12_RESOURCE_BINDING_TIER_3:
4628    D3D12_RESOURCE_BINDING_TIER = 3;
4629pub type D3D12_RESOURCE_BINDING_TIER = ::std::os::raw::c_int;
4630pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED : D3D12_CONSERVATIVE_RASTERIZATION_TIER = 0 ;
4631pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 : D3D12_CONSERVATIVE_RASTERIZATION_TIER = 1 ;
4632pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 : D3D12_CONSERVATIVE_RASTERIZATION_TIER = 2 ;
4633pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 : D3D12_CONSERVATIVE_RASTERIZATION_TIER = 3 ;
4634pub type D3D12_CONSERVATIVE_RASTERIZATION_TIER = ::std::os::raw::c_int;
4635pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_NONE:
4636    D3D12_FORMAT_SUPPORT1 = 0;
4637pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_BUFFER:
4638    D3D12_FORMAT_SUPPORT1 = 1;
4639pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER:
4640    D3D12_FORMAT_SUPPORT1 = 2;
4641pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER:
4642    D3D12_FORMAT_SUPPORT1 = 4;
4643pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SO_BUFFER:
4644    D3D12_FORMAT_SUPPORT1 = 8;
4645pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_TEXTURE1D:
4646    D3D12_FORMAT_SUPPORT1 = 16;
4647pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_TEXTURE2D:
4648    D3D12_FORMAT_SUPPORT1 = 32;
4649pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_TEXTURE3D:
4650    D3D12_FORMAT_SUPPORT1 = 64;
4651pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_TEXTURECUBE:
4652    D3D12_FORMAT_SUPPORT1 = 128;
4653pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_LOAD:
4654    D3D12_FORMAT_SUPPORT1 = 256;
4655pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE:
4656    D3D12_FORMAT_SUPPORT1 = 512;
4657pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON : D3D12_FORMAT_SUPPORT1 = 1024 ;
4658pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT : D3D12_FORMAT_SUPPORT1 = 2048 ;
4659pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_MIP:
4660    D3D12_FORMAT_SUPPORT1 = 4096;
4661pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_RENDER_TARGET:
4662    D3D12_FORMAT_SUPPORT1 = 16384;
4663pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_BLENDABLE:
4664    D3D12_FORMAT_SUPPORT1 = 32768;
4665pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL:
4666    D3D12_FORMAT_SUPPORT1 = 65536;
4667pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE:
4668    D3D12_FORMAT_SUPPORT1 = 262144;
4669pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_DISPLAY:
4670    D3D12_FORMAT_SUPPORT1 = 524288;
4671pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT:
4672    D3D12_FORMAT_SUPPORT1 = 1048576;
4673pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET : D3D12_FORMAT_SUPPORT1 = 2097152 ;
4674pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD:
4675    D3D12_FORMAT_SUPPORT1 = 4194304;
4676pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_GATHER:
4677    D3D12_FORMAT_SUPPORT1 = 8388608;
4678pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST:
4679    D3D12_FORMAT_SUPPORT1 = 16777216;
4680pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW : D3D12_FORMAT_SUPPORT1 = 33554432 ;
4681pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON : D3D12_FORMAT_SUPPORT1 = 67108864 ;
4682pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT:
4683    D3D12_FORMAT_SUPPORT1 = 134217728;
4684pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT:
4685    D3D12_FORMAT_SUPPORT1 = 268435456;
4686pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT:
4687    D3D12_FORMAT_SUPPORT1 = 536870912;
4688pub const D3D12_FORMAT_SUPPORT1_D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER:
4689    D3D12_FORMAT_SUPPORT1 = 1073741824;
4690pub type D3D12_FORMAT_SUPPORT1 = ::std::os::raw::c_int;
4691pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_NONE:
4692    D3D12_FORMAT_SUPPORT2 = 0;
4693pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD:
4694    D3D12_FORMAT_SUPPORT2 = 1;
4695pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS:
4696    D3D12_FORMAT_SUPPORT2 = 2;
4697pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE : D3D12_FORMAT_SUPPORT2 = 4 ;
4698pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE:
4699    D3D12_FORMAT_SUPPORT2 = 8;
4700pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX : D3D12_FORMAT_SUPPORT2 = 16 ;
4701pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX : D3D12_FORMAT_SUPPORT2 = 32 ;
4702pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD:
4703    D3D12_FORMAT_SUPPORT2 = 64;
4704pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE:
4705    D3D12_FORMAT_SUPPORT2 = 128;
4706pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP:
4707    D3D12_FORMAT_SUPPORT2 = 256;
4708pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_TILED:
4709    D3D12_FORMAT_SUPPORT2 = 512;
4710pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY:
4711    D3D12_FORMAT_SUPPORT2 = 16384;
4712pub const D3D12_FORMAT_SUPPORT2_D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK:
4713    D3D12_FORMAT_SUPPORT2 = 32768;
4714pub type D3D12_FORMAT_SUPPORT2 = ::std::os::raw::c_int;
4715pub const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS_D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE : D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS = 0 ;
4716pub const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS_D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE : D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS = 1 ;
4717pub type D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS = ::std::os::raw::c_int;
4718pub const D3D12_CROSS_NODE_SHARING_TIER_D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED : D3D12_CROSS_NODE_SHARING_TIER = 0 ;
4719pub const D3D12_CROSS_NODE_SHARING_TIER_D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED : D3D12_CROSS_NODE_SHARING_TIER = 1 ;
4720pub const D3D12_CROSS_NODE_SHARING_TIER_D3D12_CROSS_NODE_SHARING_TIER_1:
4721    D3D12_CROSS_NODE_SHARING_TIER = 2;
4722pub const D3D12_CROSS_NODE_SHARING_TIER_D3D12_CROSS_NODE_SHARING_TIER_2:
4723    D3D12_CROSS_NODE_SHARING_TIER = 3;
4724pub const D3D12_CROSS_NODE_SHARING_TIER_D3D12_CROSS_NODE_SHARING_TIER_3:
4725    D3D12_CROSS_NODE_SHARING_TIER = 4;
4726pub type D3D12_CROSS_NODE_SHARING_TIER = ::std::os::raw::c_int;
4727pub const D3D12_RESOURCE_HEAP_TIER_D3D12_RESOURCE_HEAP_TIER_1:
4728    D3D12_RESOURCE_HEAP_TIER = 1;
4729pub const D3D12_RESOURCE_HEAP_TIER_D3D12_RESOURCE_HEAP_TIER_2:
4730    D3D12_RESOURCE_HEAP_TIER = 2;
4731pub type D3D12_RESOURCE_HEAP_TIER = ::std::os::raw::c_int;
4732pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED : D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = 0 ;
4733pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 : D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = 1 ;
4734pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 : D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = 2 ;
4735pub type D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = ::std::os::raw::c_int;
4736pub const D3D12_VIEW_INSTANCING_TIER_D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED : D3D12_VIEW_INSTANCING_TIER = 0 ;
4737pub const D3D12_VIEW_INSTANCING_TIER_D3D12_VIEW_INSTANCING_TIER_1:
4738    D3D12_VIEW_INSTANCING_TIER = 1;
4739pub const D3D12_VIEW_INSTANCING_TIER_D3D12_VIEW_INSTANCING_TIER_2:
4740    D3D12_VIEW_INSTANCING_TIER = 2;
4741pub const D3D12_VIEW_INSTANCING_TIER_D3D12_VIEW_INSTANCING_TIER_3:
4742    D3D12_VIEW_INSTANCING_TIER = 3;
4743pub type D3D12_VIEW_INSTANCING_TIER = ::std::os::raw::c_int;
4744#[repr(C)]
4745#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4746pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
4747    pub DoublePrecisionFloatShaderOps: BOOL,
4748    pub OutputMergerLogicOp: BOOL,
4749    pub MinPrecisionSupport: D3D12_SHADER_MIN_PRECISION_SUPPORT,
4750    pub TiledResourcesTier: D3D12_TILED_RESOURCES_TIER,
4751    pub ResourceBindingTier: D3D12_RESOURCE_BINDING_TIER,
4752    pub PSSpecifiedStencilRefSupported: BOOL,
4753    pub TypedUAVLoadAdditionalFormats: BOOL,
4754    pub ROVsSupported: BOOL,
4755    pub ConservativeRasterizationTier: D3D12_CONSERVATIVE_RASTERIZATION_TIER,
4756    pub MaxGPUVirtualAddressBitsPerResource: UINT,
4757    pub StandardSwizzle64KBSupported: BOOL,
4758    pub CrossNodeSharingTier: D3D12_CROSS_NODE_SHARING_TIER,
4759    pub CrossAdapterRowMajorTextureSupported: BOOL,
4760    pub VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation:
4761        BOOL,
4762    pub ResourceHeapTier: D3D12_RESOURCE_HEAP_TIER,
4763}
4764impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS {
4765    fn default() -> Self {
4766        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4767        unsafe {
4768            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4769            s.assume_init()
4770        }
4771    }
4772}
4773#[repr(C)]
4774#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4775pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
4776    pub WaveOps: BOOL,
4777    pub WaveLaneCountMin: UINT,
4778    pub WaveLaneCountMax: UINT,
4779    pub TotalLaneCount: UINT,
4780    pub ExpandedComputeResourceStates: BOOL,
4781    pub Int64ShaderOps: BOOL,
4782}
4783#[repr(C)]
4784#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4785pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
4786    pub DepthBoundsTestSupported: BOOL,
4787    pub ProgrammableSamplePositionsTier:
4788        D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER,
4789}
4790impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
4791    fn default() -> Self {
4792        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4793        unsafe {
4794            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4795            s.assume_init()
4796        }
4797    }
4798}
4799pub const D3D_ROOT_SIGNATURE_VERSION_D3D_ROOT_SIGNATURE_VERSION_1:
4800    D3D_ROOT_SIGNATURE_VERSION = 1;
4801pub const D3D_ROOT_SIGNATURE_VERSION_D3D_ROOT_SIGNATURE_VERSION_1_0:
4802    D3D_ROOT_SIGNATURE_VERSION = 1;
4803pub const D3D_ROOT_SIGNATURE_VERSION_D3D_ROOT_SIGNATURE_VERSION_1_1:
4804    D3D_ROOT_SIGNATURE_VERSION = 2;
4805pub type D3D_ROOT_SIGNATURE_VERSION = ::std::os::raw::c_int;
4806#[repr(C)]
4807#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4808pub struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
4809    pub HighestVersion: D3D_ROOT_SIGNATURE_VERSION,
4810}
4811impl Default for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
4812    fn default() -> Self {
4813        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4814        unsafe {
4815            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4816            s.assume_init()
4817        }
4818    }
4819}
4820#[repr(C)]
4821#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4822pub struct D3D12_FEATURE_DATA_ARCHITECTURE {
4823    pub NodeIndex: UINT,
4824    pub TileBasedRenderer: BOOL,
4825    pub UMA: BOOL,
4826    pub CacheCoherentUMA: BOOL,
4827}
4828#[repr(C)]
4829#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4830pub struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
4831    pub NodeIndex: UINT,
4832    pub TileBasedRenderer: BOOL,
4833    pub UMA: BOOL,
4834    pub CacheCoherentUMA: BOOL,
4835    pub IsolatedMMU: BOOL,
4836}
4837#[repr(C)]
4838#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4839pub struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
4840    pub NumFeatureLevels: UINT,
4841    pub pFeatureLevelsRequested: *const D3D_FEATURE_LEVEL,
4842    pub MaxSupportedFeatureLevel: D3D_FEATURE_LEVEL,
4843}
4844impl Default for D3D12_FEATURE_DATA_FEATURE_LEVELS {
4845    fn default() -> Self {
4846        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4847        unsafe {
4848            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4849            s.assume_init()
4850        }
4851    }
4852}
4853pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_5_1: D3D_SHADER_MODEL = 81;
4854pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_0: D3D_SHADER_MODEL = 96;
4855pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_1: D3D_SHADER_MODEL = 97;
4856pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_2: D3D_SHADER_MODEL = 98;
4857pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_3: D3D_SHADER_MODEL = 99;
4858pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_4: D3D_SHADER_MODEL = 100;
4859pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_5: D3D_SHADER_MODEL = 101;
4860pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_6: D3D_SHADER_MODEL = 102;
4861pub const D3D_SHADER_MODEL_D3D_SHADER_MODEL_6_7: D3D_SHADER_MODEL = 103;
4862pub const D3D_SHADER_MODEL_D3D_HIGHEST_SHADER_MODEL: D3D_SHADER_MODEL = 103;
4863pub type D3D_SHADER_MODEL = ::std::os::raw::c_int;
4864#[repr(C)]
4865#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4866pub struct D3D12_FEATURE_DATA_SHADER_MODEL {
4867    pub HighestShaderModel: D3D_SHADER_MODEL,
4868}
4869impl Default for D3D12_FEATURE_DATA_SHADER_MODEL {
4870    fn default() -> Self {
4871        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4872        unsafe {
4873            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4874            s.assume_init()
4875        }
4876    }
4877}
4878#[repr(C)]
4879#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4880pub struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
4881    pub Format: DXGI_FORMAT,
4882    pub Support1: D3D12_FORMAT_SUPPORT1,
4883    pub Support2: D3D12_FORMAT_SUPPORT2,
4884}
4885impl Default for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
4886    fn default() -> Self {
4887        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4888        unsafe {
4889            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4890            s.assume_init()
4891        }
4892    }
4893}
4894#[repr(C)]
4895#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4896pub struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
4897    pub Format: DXGI_FORMAT,
4898    pub SampleCount: UINT,
4899    pub Flags: D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS,
4900    pub NumQualityLevels: UINT,
4901}
4902impl Default for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
4903    fn default() -> Self {
4904        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4905        unsafe {
4906            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4907            s.assume_init()
4908        }
4909    }
4910}
4911#[repr(C)]
4912#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4913pub struct D3D12_FEATURE_DATA_FORMAT_INFO {
4914    pub Format: DXGI_FORMAT,
4915    pub PlaneCount: UINT8,
4916}
4917impl Default for D3D12_FEATURE_DATA_FORMAT_INFO {
4918    fn default() -> Self {
4919        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4920        unsafe {
4921            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4922            s.assume_init()
4923        }
4924    }
4925}
4926#[repr(C)]
4927#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4928pub struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
4929    pub MaxGPUVirtualAddressBitsPerResource: UINT,
4930    pub MaxGPUVirtualAddressBitsPerProcess: UINT,
4931}
4932pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_NONE:
4933    D3D12_SHADER_CACHE_SUPPORT_FLAGS = 0;
4934pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 1 ;
4935pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_LIBRARY : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 2 ;
4936pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 4 ;
4937pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 8 ;
4938pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 16 ;
4939pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 32 ;
4940pub const D3D12_SHADER_CACHE_SUPPORT_FLAGS_D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE : D3D12_SHADER_CACHE_SUPPORT_FLAGS = 64 ;
4941pub type D3D12_SHADER_CACHE_SUPPORT_FLAGS = ::std::os::raw::c_int;
4942#[repr(C)]
4943#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4944pub struct D3D12_FEATURE_DATA_SHADER_CACHE {
4945    pub SupportFlags: D3D12_SHADER_CACHE_SUPPORT_FLAGS,
4946}
4947impl Default for D3D12_FEATURE_DATA_SHADER_CACHE {
4948    fn default() -> Self {
4949        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4950        unsafe {
4951            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4952            s.assume_init()
4953        }
4954    }
4955}
4956#[repr(C)]
4957#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4958pub struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
4959    pub CommandListType: D3D12_COMMAND_LIST_TYPE,
4960    pub Priority: UINT,
4961    pub PriorityForTypeIsSupported: BOOL,
4962}
4963impl Default for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
4964    fn default() -> Self {
4965        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4966        unsafe {
4967            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4968            s.assume_init()
4969        }
4970    }
4971}
4972pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 0 ;
4973pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 1 ;
4974pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 2 ;
4975pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 4 ;
4976pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 8 ;
4977pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 16 ;
4978pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 32 ;
4979pub const D3D12_COMMAND_LIST_SUPPORT_FLAGS_D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE : D3D12_COMMAND_LIST_SUPPORT_FLAGS = 64 ;
4980pub type D3D12_COMMAND_LIST_SUPPORT_FLAGS = ::std::os::raw::c_int;
4981#[repr(C)]
4982#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
4983pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
4984    pub CopyQueueTimestampQueriesSupported: BOOL,
4985    pub CastingFullyTypedFormatSupported: BOOL,
4986    pub WriteBufferImmediateSupportFlags: D3D12_COMMAND_LIST_SUPPORT_FLAGS,
4987    pub ViewInstancingTier: D3D12_VIEW_INSTANCING_TIER,
4988    pub BarycentricsSupported: BOOL,
4989}
4990impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
4991    fn default() -> Self {
4992        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4993        unsafe {
4994            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4995            s.assume_init()
4996        }
4997    }
4998}
4999#[repr(C)]
5000#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5001pub struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
5002    pub Supported: BOOL,
5003}
5004pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 : D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = 0 ;
5005pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 : D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = 1 ;
5006pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 : D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = 2 ;
5007pub type D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = ::std::os::raw::c_int;
5008#[repr(C)]
5009#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5010pub struct D3D12_FEATURE_DATA_DISPLAYABLE {
5011    pub DisplayableTexture: BOOL,
5012    pub SharedResourceCompatibilityTier:
5013        D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER,
5014}
5015impl Default for D3D12_FEATURE_DATA_DISPLAYABLE {
5016    fn default() -> Self {
5017        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5018        unsafe {
5019            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5020            s.assume_init()
5021        }
5022    }
5023}
5024#[repr(C)]
5025#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5026pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
5027    pub MSAA64KBAlignedTextureSupported: BOOL,
5028    pub SharedResourceCompatibilityTier:
5029        D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER,
5030    pub Native16BitShaderOpsSupported: BOOL,
5031}
5032impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
5033    fn default() -> Self {
5034        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5035        unsafe {
5036            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5037            s.assume_init()
5038        }
5039    }
5040}
5041pub const D3D12_HEAP_SERIALIZATION_TIER_D3D12_HEAP_SERIALIZATION_TIER_0:
5042    D3D12_HEAP_SERIALIZATION_TIER = 0;
5043pub const D3D12_HEAP_SERIALIZATION_TIER_D3D12_HEAP_SERIALIZATION_TIER_10:
5044    D3D12_HEAP_SERIALIZATION_TIER = 10;
5045pub type D3D12_HEAP_SERIALIZATION_TIER = ::std::os::raw::c_int;
5046#[repr(C)]
5047#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5048pub struct D3D12_FEATURE_DATA_SERIALIZATION {
5049    pub NodeIndex: UINT,
5050    pub HeapSerializationTier: D3D12_HEAP_SERIALIZATION_TIER,
5051}
5052impl Default for D3D12_FEATURE_DATA_SERIALIZATION {
5053    fn default() -> Self {
5054        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5055        unsafe {
5056            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5057            s.assume_init()
5058        }
5059    }
5060}
5061#[repr(C)]
5062#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5063pub struct D3D12_FEATURE_DATA_CROSS_NODE {
5064    pub SharingTier: D3D12_CROSS_NODE_SHARING_TIER,
5065    pub AtomicShaderInstructions: BOOL,
5066}
5067impl Default for D3D12_FEATURE_DATA_CROSS_NODE {
5068    fn default() -> Self {
5069        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5070        unsafe {
5071            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5072            s.assume_init()
5073        }
5074    }
5075}
5076pub const D3D12_RENDER_PASS_TIER_D3D12_RENDER_PASS_TIER_0:
5077    D3D12_RENDER_PASS_TIER = 0;
5078pub const D3D12_RENDER_PASS_TIER_D3D12_RENDER_PASS_TIER_1:
5079    D3D12_RENDER_PASS_TIER = 1;
5080pub const D3D12_RENDER_PASS_TIER_D3D12_RENDER_PASS_TIER_2:
5081    D3D12_RENDER_PASS_TIER = 2;
5082pub type D3D12_RENDER_PASS_TIER = ::std::os::raw::c_int;
5083pub const D3D12_RAYTRACING_TIER_D3D12_RAYTRACING_TIER_NOT_SUPPORTED:
5084    D3D12_RAYTRACING_TIER = 0;
5085pub const D3D12_RAYTRACING_TIER_D3D12_RAYTRACING_TIER_1_0:
5086    D3D12_RAYTRACING_TIER = 10;
5087pub const D3D12_RAYTRACING_TIER_D3D12_RAYTRACING_TIER_1_1:
5088    D3D12_RAYTRACING_TIER = 11;
5089pub type D3D12_RAYTRACING_TIER = ::std::os::raw::c_int;
5090#[repr(C)]
5091#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5092pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
5093    pub SRVOnlyTiledResourceTier3: BOOL,
5094    pub RenderPassesTier: D3D12_RENDER_PASS_TIER,
5095    pub RaytracingTier: D3D12_RAYTRACING_TIER,
5096}
5097impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
5098    fn default() -> Self {
5099        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5100        unsafe {
5101            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5102            s.assume_init()
5103        }
5104    }
5105}
5106pub const D3D12_VARIABLE_SHADING_RATE_TIER_D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED : D3D12_VARIABLE_SHADING_RATE_TIER = 0 ;
5107pub const D3D12_VARIABLE_SHADING_RATE_TIER_D3D12_VARIABLE_SHADING_RATE_TIER_1 : D3D12_VARIABLE_SHADING_RATE_TIER = 1 ;
5108pub const D3D12_VARIABLE_SHADING_RATE_TIER_D3D12_VARIABLE_SHADING_RATE_TIER_2 : D3D12_VARIABLE_SHADING_RATE_TIER = 2 ;
5109pub type D3D12_VARIABLE_SHADING_RATE_TIER = ::std::os::raw::c_int;
5110#[repr(C)]
5111#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5112pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
5113    pub AdditionalShadingRatesSupported: BOOL,
5114    pub PerPrimitiveShadingRateSupportedWithViewportIndexing: BOOL,
5115    pub VariableShadingRateTier: D3D12_VARIABLE_SHADING_RATE_TIER,
5116    pub ShadingRateImageTileSize: UINT,
5117    pub BackgroundProcessingSupported: BOOL,
5118}
5119impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
5120    fn default() -> Self {
5121        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5122        unsafe {
5123            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5124            s.assume_init()
5125        }
5126    }
5127}
5128pub const D3D12_MESH_SHADER_TIER_D3D12_MESH_SHADER_TIER_NOT_SUPPORTED:
5129    D3D12_MESH_SHADER_TIER = 0;
5130pub const D3D12_MESH_SHADER_TIER_D3D12_MESH_SHADER_TIER_1:
5131    D3D12_MESH_SHADER_TIER = 10;
5132pub type D3D12_MESH_SHADER_TIER = ::std::os::raw::c_int;
5133pub const D3D12_SAMPLER_FEEDBACK_TIER_D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED : D3D12_SAMPLER_FEEDBACK_TIER = 0 ;
5134pub const D3D12_SAMPLER_FEEDBACK_TIER_D3D12_SAMPLER_FEEDBACK_TIER_0_9:
5135    D3D12_SAMPLER_FEEDBACK_TIER = 90;
5136pub const D3D12_SAMPLER_FEEDBACK_TIER_D3D12_SAMPLER_FEEDBACK_TIER_1_0:
5137    D3D12_SAMPLER_FEEDBACK_TIER = 100;
5138pub type D3D12_SAMPLER_FEEDBACK_TIER = ::std::os::raw::c_int;
5139#[repr(C)]
5140#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5141pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
5142    pub MeshShaderTier: D3D12_MESH_SHADER_TIER,
5143    pub SamplerFeedbackTier: D3D12_SAMPLER_FEEDBACK_TIER,
5144}
5145impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
5146    fn default() -> Self {
5147        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5148        unsafe {
5149            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5150            s.assume_init()
5151        }
5152    }
5153}
5154#[repr(C)]
5155#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5156pub struct D3D12_FEATURE_DATA_QUERY_META_COMMAND {
5157    pub CommandId: GUID,
5158    pub NodeMask: UINT,
5159    pub pQueryInputData: *const ::std::os::raw::c_void,
5160    pub QueryInputDataSizeInBytes: SIZE_T,
5161    pub pQueryOutputData: *mut ::std::os::raw::c_void,
5162    pub QueryOutputDataSizeInBytes: SIZE_T,
5163}
5164impl Default for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
5165    fn default() -> Self {
5166        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5167        unsafe {
5168            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5169            s.assume_init()
5170        }
5171    }
5172}
5173#[repr(C)]
5174#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5175pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
5176    pub UnalignedBlockTexturesSupported: BOOL,
5177}
5178pub const D3D12_WAVE_MMA_TIER_D3D12_WAVE_MMA_TIER_NOT_SUPPORTED:
5179    D3D12_WAVE_MMA_TIER = 0;
5180pub const D3D12_WAVE_MMA_TIER_D3D12_WAVE_MMA_TIER_1_0: D3D12_WAVE_MMA_TIER = 10;
5181pub type D3D12_WAVE_MMA_TIER = ::std::os::raw::c_int;
5182#[repr(C)]
5183#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5184pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
5185    pub MeshShaderPipelineStatsSupported: BOOL,
5186    pub MeshShaderSupportsFullRangeRenderTargetArrayIndex: BOOL,
5187    pub AtomicInt64OnTypedResourceSupported: BOOL,
5188    pub AtomicInt64OnGroupSharedSupported: BOOL,
5189    pub DerivativesInMeshAndAmplificationShadersSupported: BOOL,
5190    pub WaveMMATier: D3D12_WAVE_MMA_TIER,
5191}
5192impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
5193    fn default() -> Self {
5194        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5195        unsafe {
5196            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5197            s.assume_init()
5198        }
5199    }
5200}
5201#[repr(C)]
5202#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5203pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
5204    pub VariableRateShadingSumCombinerSupported: BOOL,
5205    pub MeshShaderPerPrimitiveShadingRateSupported: BOOL,
5206}
5207#[repr(C)]
5208#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5209pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
5210    pub AtomicInt64OnDescriptorHeapResourceSupported: BOOL,
5211}
5212pub const D3D12_TRI_STATE_D3D12_TRI_STATE_UNKNOWN: D3D12_TRI_STATE = -1;
5213pub const D3D12_TRI_STATE_D3D12_TRI_STATE_FALSE: D3D12_TRI_STATE = 0;
5214pub const D3D12_TRI_STATE_D3D12_TRI_STATE_TRUE: D3D12_TRI_STATE = 1;
5215pub type D3D12_TRI_STATE = ::std::os::raw::c_int;
5216#[repr(C)]
5217#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5218pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
5219    pub MSPrimitivesPipelineStatisticIncludesCulledPrimitives: D3D12_TRI_STATE,
5220    pub EnhancedBarriersSupported: BOOL,
5221    pub RelaxedFormatCastingSupported: BOOL,
5222}
5223impl Default for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
5224    fn default() -> Self {
5225        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5226        unsafe {
5227            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5228            s.assume_init()
5229        }
5230    }
5231}
5232#[repr(C)]
5233#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5234pub struct D3D12_RESOURCE_ALLOCATION_INFO {
5235    pub SizeInBytes: UINT64,
5236    pub Alignment: UINT64,
5237}
5238#[repr(C)]
5239#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5240pub struct D3D12_RESOURCE_ALLOCATION_INFO1 {
5241    pub Offset: UINT64,
5242    pub Alignment: UINT64,
5243    pub SizeInBytes: UINT64,
5244}
5245pub const D3D12_HEAP_TYPE_D3D12_HEAP_TYPE_DEFAULT: D3D12_HEAP_TYPE = 1;
5246pub const D3D12_HEAP_TYPE_D3D12_HEAP_TYPE_UPLOAD: D3D12_HEAP_TYPE = 2;
5247pub const D3D12_HEAP_TYPE_D3D12_HEAP_TYPE_READBACK: D3D12_HEAP_TYPE = 3;
5248pub const D3D12_HEAP_TYPE_D3D12_HEAP_TYPE_CUSTOM: D3D12_HEAP_TYPE = 4;
5249pub type D3D12_HEAP_TYPE = ::std::os::raw::c_int;
5250pub const D3D12_CPU_PAGE_PROPERTY_D3D12_CPU_PAGE_PROPERTY_UNKNOWN:
5251    D3D12_CPU_PAGE_PROPERTY = 0;
5252pub const D3D12_CPU_PAGE_PROPERTY_D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE:
5253    D3D12_CPU_PAGE_PROPERTY = 1;
5254pub const D3D12_CPU_PAGE_PROPERTY_D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE:
5255    D3D12_CPU_PAGE_PROPERTY = 2;
5256pub const D3D12_CPU_PAGE_PROPERTY_D3D12_CPU_PAGE_PROPERTY_WRITE_BACK:
5257    D3D12_CPU_PAGE_PROPERTY = 3;
5258pub type D3D12_CPU_PAGE_PROPERTY = ::std::os::raw::c_int;
5259pub const D3D12_MEMORY_POOL_D3D12_MEMORY_POOL_UNKNOWN: D3D12_MEMORY_POOL = 0;
5260pub const D3D12_MEMORY_POOL_D3D12_MEMORY_POOL_L0: D3D12_MEMORY_POOL = 1;
5261pub const D3D12_MEMORY_POOL_D3D12_MEMORY_POOL_L1: D3D12_MEMORY_POOL = 2;
5262pub type D3D12_MEMORY_POOL = ::std::os::raw::c_int;
5263#[repr(C)]
5264#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5265pub struct D3D12_HEAP_PROPERTIES {
5266    pub Type: D3D12_HEAP_TYPE,
5267    pub CPUPageProperty: D3D12_CPU_PAGE_PROPERTY,
5268    pub MemoryPoolPreference: D3D12_MEMORY_POOL,
5269    pub CreationNodeMask: UINT,
5270    pub VisibleNodeMask: UINT,
5271}
5272impl Default for D3D12_HEAP_PROPERTIES {
5273    fn default() -> Self {
5274        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5275        unsafe {
5276            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5277            s.assume_init()
5278        }
5279    }
5280}
5281pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_NONE: D3D12_HEAP_FLAGS = 0;
5282pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_SHARED: D3D12_HEAP_FLAGS = 1;
5283pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_DENY_BUFFERS: D3D12_HEAP_FLAGS = 4;
5284pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_DISPLAY: D3D12_HEAP_FLAGS = 8;
5285pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER:
5286    D3D12_HEAP_FLAGS = 32;
5287pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES:
5288    D3D12_HEAP_FLAGS = 64;
5289pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES:
5290    D3D12_HEAP_FLAGS = 128;
5291pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_HARDWARE_PROTECTED:
5292    D3D12_HEAP_FLAGS = 256;
5293pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH: D3D12_HEAP_FLAGS =
5294    512;
5295pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS:
5296    D3D12_HEAP_FLAGS = 1024;
5297pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT:
5298    D3D12_HEAP_FLAGS = 2048;
5299pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_CREATE_NOT_ZEROED: D3D12_HEAP_FLAGS =
5300    4096;
5301pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES:
5302    D3D12_HEAP_FLAGS = 0;
5303pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS:
5304    D3D12_HEAP_FLAGS = 192;
5305pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES:
5306    D3D12_HEAP_FLAGS = 68;
5307pub const D3D12_HEAP_FLAGS_D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES:
5308    D3D12_HEAP_FLAGS = 132;
5309pub type D3D12_HEAP_FLAGS = ::std::os::raw::c_int;
5310#[repr(C)]
5311#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5312pub struct D3D12_HEAP_DESC {
5313    pub SizeInBytes: UINT64,
5314    pub Properties: D3D12_HEAP_PROPERTIES,
5315    pub Alignment: UINT64,
5316    pub Flags: D3D12_HEAP_FLAGS,
5317}
5318impl Default for D3D12_HEAP_DESC {
5319    fn default() -> Self {
5320        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5321        unsafe {
5322            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5323            s.assume_init()
5324        }
5325    }
5326}
5327pub const D3D12_RESOURCE_DIMENSION_D3D12_RESOURCE_DIMENSION_UNKNOWN:
5328    D3D12_RESOURCE_DIMENSION = 0;
5329pub const D3D12_RESOURCE_DIMENSION_D3D12_RESOURCE_DIMENSION_BUFFER:
5330    D3D12_RESOURCE_DIMENSION = 1;
5331pub const D3D12_RESOURCE_DIMENSION_D3D12_RESOURCE_DIMENSION_TEXTURE1D:
5332    D3D12_RESOURCE_DIMENSION = 2;
5333pub const D3D12_RESOURCE_DIMENSION_D3D12_RESOURCE_DIMENSION_TEXTURE2D:
5334    D3D12_RESOURCE_DIMENSION = 3;
5335pub const D3D12_RESOURCE_DIMENSION_D3D12_RESOURCE_DIMENSION_TEXTURE3D:
5336    D3D12_RESOURCE_DIMENSION = 4;
5337pub type D3D12_RESOURCE_DIMENSION = ::std::os::raw::c_int;
5338pub const D3D12_TEXTURE_LAYOUT_D3D12_TEXTURE_LAYOUT_UNKNOWN:
5339    D3D12_TEXTURE_LAYOUT = 0;
5340pub const D3D12_TEXTURE_LAYOUT_D3D12_TEXTURE_LAYOUT_ROW_MAJOR:
5341    D3D12_TEXTURE_LAYOUT = 1;
5342pub const D3D12_TEXTURE_LAYOUT_D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE:
5343    D3D12_TEXTURE_LAYOUT = 2;
5344pub const D3D12_TEXTURE_LAYOUT_D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE:
5345    D3D12_TEXTURE_LAYOUT = 3;
5346pub type D3D12_TEXTURE_LAYOUT = ::std::os::raw::c_int;
5347pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_NONE: D3D12_RESOURCE_FLAGS =
5348    0;
5349pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET:
5350    D3D12_RESOURCE_FLAGS = 1;
5351pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL:
5352    D3D12_RESOURCE_FLAGS = 2;
5353pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS:
5354    D3D12_RESOURCE_FLAGS = 4;
5355pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE:
5356    D3D12_RESOURCE_FLAGS = 8;
5357pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER:
5358    D3D12_RESOURCE_FLAGS = 16;
5359pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS:
5360    D3D12_RESOURCE_FLAGS = 32;
5361pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY : D3D12_RESOURCE_FLAGS = 64 ;
5362pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY : D3D12_RESOURCE_FLAGS = 128 ;
5363pub const D3D12_RESOURCE_FLAGS_D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_RESOURCE_FLAGS = 256 ;
5364pub type D3D12_RESOURCE_FLAGS = ::std::os::raw::c_int;
5365#[repr(C)]
5366#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5367pub struct D3D12_MIP_REGION {
5368    pub Width: UINT,
5369    pub Height: UINT,
5370    pub Depth: UINT,
5371}
5372#[repr(C)]
5373#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5374pub struct D3D12_RESOURCE_DESC {
5375    pub Dimension: D3D12_RESOURCE_DIMENSION,
5376    pub Alignment: UINT64,
5377    pub Width: UINT64,
5378    pub Height: UINT,
5379    pub DepthOrArraySize: UINT16,
5380    pub MipLevels: UINT16,
5381    pub Format: DXGI_FORMAT,
5382    pub SampleDesc: DXGI_SAMPLE_DESC,
5383    pub Layout: D3D12_TEXTURE_LAYOUT,
5384    pub Flags: D3D12_RESOURCE_FLAGS,
5385}
5386impl Default for D3D12_RESOURCE_DESC {
5387    fn default() -> Self {
5388        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5389        unsafe {
5390            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5391            s.assume_init()
5392        }
5393    }
5394}
5395#[repr(C)]
5396#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5397pub struct D3D12_RESOURCE_DESC1 {
5398    pub Dimension: D3D12_RESOURCE_DIMENSION,
5399    pub Alignment: UINT64,
5400    pub Width: UINT64,
5401    pub Height: UINT,
5402    pub DepthOrArraySize: UINT16,
5403    pub MipLevels: UINT16,
5404    pub Format: DXGI_FORMAT,
5405    pub SampleDesc: DXGI_SAMPLE_DESC,
5406    pub Layout: D3D12_TEXTURE_LAYOUT,
5407    pub Flags: D3D12_RESOURCE_FLAGS,
5408    pub SamplerFeedbackMipRegion: D3D12_MIP_REGION,
5409}
5410impl Default for D3D12_RESOURCE_DESC1 {
5411    fn default() -> Self {
5412        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5413        unsafe {
5414            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5415            s.assume_init()
5416        }
5417    }
5418}
5419#[repr(C)]
5420#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5421pub struct D3D12_DEPTH_STENCIL_VALUE {
5422    pub Depth: FLOAT,
5423    pub Stencil: UINT8,
5424}
5425#[repr(C)]
5426#[derive(Copy, Clone)]
5427pub struct D3D12_CLEAR_VALUE {
5428    pub Format: DXGI_FORMAT,
5429    pub __bindgen_anon_1: D3D12_CLEAR_VALUE__bindgen_ty_1,
5430}
5431#[repr(C)]
5432#[derive(Copy, Clone)]
5433pub union D3D12_CLEAR_VALUE__bindgen_ty_1 {
5434    pub Color: [FLOAT; 4usize],
5435    pub DepthStencil: D3D12_DEPTH_STENCIL_VALUE,
5436}
5437impl Default for D3D12_CLEAR_VALUE__bindgen_ty_1 {
5438    fn default() -> Self {
5439        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5440        unsafe {
5441            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5442            s.assume_init()
5443        }
5444    }
5445}
5446impl ::std::fmt::Debug for D3D12_CLEAR_VALUE__bindgen_ty_1 {
5447    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5448        write!(f, "D3D12_CLEAR_VALUE__bindgen_ty_1 {{ union }}")
5449    }
5450}
5451impl Default for D3D12_CLEAR_VALUE {
5452    fn default() -> Self {
5453        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5454        unsafe {
5455            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5456            s.assume_init()
5457        }
5458    }
5459}
5460impl ::std::fmt::Debug for D3D12_CLEAR_VALUE {
5461    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5462        write!(
5463            f,
5464            "D3D12_CLEAR_VALUE {{ Format: {:?}, __bindgen_anon_1: {:?} }}",
5465            self.Format, self.__bindgen_anon_1
5466        )
5467    }
5468}
5469#[repr(C)]
5470#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5471pub struct D3D12_RANGE {
5472    pub Begin: SIZE_T,
5473    pub End: SIZE_T,
5474}
5475#[repr(C)]
5476#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5477pub struct D3D12_RANGE_UINT64 {
5478    pub Begin: UINT64,
5479    pub End: UINT64,
5480}
5481#[repr(C)]
5482#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5483pub struct D3D12_SUBRESOURCE_RANGE_UINT64 {
5484    pub Subresource: UINT,
5485    pub Range: D3D12_RANGE_UINT64,
5486}
5487#[repr(C)]
5488#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5489pub struct D3D12_SUBRESOURCE_INFO {
5490    pub Offset: UINT64,
5491    pub RowPitch: UINT,
5492    pub DepthPitch: UINT,
5493}
5494#[repr(C)]
5495#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5496pub struct D3D12_TILED_RESOURCE_COORDINATE {
5497    pub X: UINT,
5498    pub Y: UINT,
5499    pub Z: UINT,
5500    pub Subresource: UINT,
5501}
5502#[repr(C)]
5503#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5504pub struct D3D12_TILE_REGION_SIZE {
5505    pub NumTiles: UINT,
5506    pub UseBox: BOOL,
5507    pub Width: UINT,
5508    pub Height: UINT16,
5509    pub Depth: UINT16,
5510}
5511pub const D3D12_TILE_RANGE_FLAGS_D3D12_TILE_RANGE_FLAG_NONE:
5512    D3D12_TILE_RANGE_FLAGS = 0;
5513pub const D3D12_TILE_RANGE_FLAGS_D3D12_TILE_RANGE_FLAG_NULL:
5514    D3D12_TILE_RANGE_FLAGS = 1;
5515pub const D3D12_TILE_RANGE_FLAGS_D3D12_TILE_RANGE_FLAG_SKIP:
5516    D3D12_TILE_RANGE_FLAGS = 2;
5517pub const D3D12_TILE_RANGE_FLAGS_D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE:
5518    D3D12_TILE_RANGE_FLAGS = 4;
5519pub type D3D12_TILE_RANGE_FLAGS = ::std::os::raw::c_int;
5520#[repr(C)]
5521#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5522pub struct D3D12_SUBRESOURCE_TILING {
5523    pub WidthInTiles: UINT,
5524    pub HeightInTiles: UINT16,
5525    pub DepthInTiles: UINT16,
5526    pub StartTileIndexInOverallResource: UINT,
5527}
5528#[repr(C)]
5529#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5530pub struct D3D12_TILE_SHAPE {
5531    pub WidthInTexels: UINT,
5532    pub HeightInTexels: UINT,
5533    pub DepthInTexels: UINT,
5534}
5535#[repr(C)]
5536#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5537pub struct D3D12_PACKED_MIP_INFO {
5538    pub NumStandardMips: UINT8,
5539    pub NumPackedMips: UINT8,
5540    pub NumTilesForPackedMips: UINT,
5541    pub StartTileIndexInOverallResource: UINT,
5542}
5543pub const D3D12_TILE_MAPPING_FLAGS_D3D12_TILE_MAPPING_FLAG_NONE:
5544    D3D12_TILE_MAPPING_FLAGS = 0;
5545pub const D3D12_TILE_MAPPING_FLAGS_D3D12_TILE_MAPPING_FLAG_NO_HAZARD:
5546    D3D12_TILE_MAPPING_FLAGS = 1;
5547pub type D3D12_TILE_MAPPING_FLAGS = ::std::os::raw::c_int;
5548pub const D3D12_TILE_COPY_FLAGS_D3D12_TILE_COPY_FLAG_NONE:
5549    D3D12_TILE_COPY_FLAGS = 0;
5550pub const D3D12_TILE_COPY_FLAGS_D3D12_TILE_COPY_FLAG_NO_HAZARD:
5551    D3D12_TILE_COPY_FLAGS = 1;
5552pub const D3D12_TILE_COPY_FLAGS_D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE : D3D12_TILE_COPY_FLAGS = 2 ;
5553pub const D3D12_TILE_COPY_FLAGS_D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER : D3D12_TILE_COPY_FLAGS = 4 ;
5554pub type D3D12_TILE_COPY_FLAGS = ::std::os::raw::c_int;
5555pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_COMMON:
5556    D3D12_RESOURCE_STATES = 0;
5557pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER : D3D12_RESOURCE_STATES = 1 ;
5558pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_INDEX_BUFFER:
5559    D3D12_RESOURCE_STATES = 2;
5560pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_RENDER_TARGET:
5561    D3D12_RESOURCE_STATES = 4;
5562pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_UNORDERED_ACCESS:
5563    D3D12_RESOURCE_STATES = 8;
5564pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_DEPTH_WRITE:
5565    D3D12_RESOURCE_STATES = 16;
5566pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_DEPTH_READ:
5567    D3D12_RESOURCE_STATES = 32;
5568pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE : D3D12_RESOURCE_STATES = 64 ;
5569pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE:
5570    D3D12_RESOURCE_STATES = 128;
5571pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_STREAM_OUT:
5572    D3D12_RESOURCE_STATES = 256;
5573pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT:
5574    D3D12_RESOURCE_STATES = 512;
5575pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_COPY_DEST:
5576    D3D12_RESOURCE_STATES = 1024;
5577pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_COPY_SOURCE:
5578    D3D12_RESOURCE_STATES = 2048;
5579pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_RESOLVE_DEST:
5580    D3D12_RESOURCE_STATES = 4096;
5581pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_RESOLVE_SOURCE:
5582    D3D12_RESOURCE_STATES = 8192;
5583pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_RESOURCE_STATES = 4194304 ;
5584pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE:
5585    D3D12_RESOURCE_STATES = 16777216;
5586pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_GENERIC_READ:
5587    D3D12_RESOURCE_STATES = 2755;
5588pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE:
5589    D3D12_RESOURCE_STATES = 192;
5590pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_PRESENT:
5591    D3D12_RESOURCE_STATES = 0;
5592pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_PREDICATION:
5593    D3D12_RESOURCE_STATES = 512;
5594pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_DECODE_READ:
5595    D3D12_RESOURCE_STATES = 65536;
5596pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE:
5597    D3D12_RESOURCE_STATES = 131072;
5598pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ:
5599    D3D12_RESOURCE_STATES = 262144;
5600pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE:
5601    D3D12_RESOURCE_STATES = 524288;
5602pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ:
5603    D3D12_RESOURCE_STATES = 2097152;
5604pub const D3D12_RESOURCE_STATES_D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE:
5605    D3D12_RESOURCE_STATES = 8388608;
5606pub type D3D12_RESOURCE_STATES = ::std::os::raw::c_int;
5607pub const D3D12_RESOURCE_BARRIER_TYPE_D3D12_RESOURCE_BARRIER_TYPE_TRANSITION:
5608    D3D12_RESOURCE_BARRIER_TYPE = 0;
5609pub const D3D12_RESOURCE_BARRIER_TYPE_D3D12_RESOURCE_BARRIER_TYPE_ALIASING:
5610    D3D12_RESOURCE_BARRIER_TYPE = 1;
5611pub const D3D12_RESOURCE_BARRIER_TYPE_D3D12_RESOURCE_BARRIER_TYPE_UAV:
5612    D3D12_RESOURCE_BARRIER_TYPE = 2;
5613pub type D3D12_RESOURCE_BARRIER_TYPE = ::std::os::raw::c_int;
5614#[repr(C)]
5615#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5616pub struct D3D12_RESOURCE_TRANSITION_BARRIER {
5617    pub pResource: *mut ID3D12Resource,
5618    pub Subresource: UINT,
5619    pub StateBefore: D3D12_RESOURCE_STATES,
5620    pub StateAfter: D3D12_RESOURCE_STATES,
5621}
5622impl Default for D3D12_RESOURCE_TRANSITION_BARRIER {
5623    fn default() -> Self {
5624        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5625        unsafe {
5626            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5627            s.assume_init()
5628        }
5629    }
5630}
5631#[repr(C)]
5632#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5633pub struct D3D12_RESOURCE_ALIASING_BARRIER {
5634    pub pResourceBefore: *mut ID3D12Resource,
5635    pub pResourceAfter: *mut ID3D12Resource,
5636}
5637impl Default for D3D12_RESOURCE_ALIASING_BARRIER {
5638    fn default() -> Self {
5639        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5640        unsafe {
5641            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5642            s.assume_init()
5643        }
5644    }
5645}
5646#[repr(C)]
5647#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5648pub struct D3D12_RESOURCE_UAV_BARRIER {
5649    pub pResource: *mut ID3D12Resource,
5650}
5651impl Default for D3D12_RESOURCE_UAV_BARRIER {
5652    fn default() -> Self {
5653        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5654        unsafe {
5655            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5656            s.assume_init()
5657        }
5658    }
5659}
5660pub const D3D12_RESOURCE_BARRIER_FLAGS_D3D12_RESOURCE_BARRIER_FLAG_NONE:
5661    D3D12_RESOURCE_BARRIER_FLAGS = 0;
5662pub const D3D12_RESOURCE_BARRIER_FLAGS_D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY : D3D12_RESOURCE_BARRIER_FLAGS = 1 ;
5663pub const D3D12_RESOURCE_BARRIER_FLAGS_D3D12_RESOURCE_BARRIER_FLAG_END_ONLY:
5664    D3D12_RESOURCE_BARRIER_FLAGS = 2;
5665pub type D3D12_RESOURCE_BARRIER_FLAGS = ::std::os::raw::c_int;
5666#[repr(C)]
5667#[derive(Copy, Clone)]
5668pub struct D3D12_RESOURCE_BARRIER {
5669    pub Type: D3D12_RESOURCE_BARRIER_TYPE,
5670    pub Flags: D3D12_RESOURCE_BARRIER_FLAGS,
5671    pub __bindgen_anon_1: D3D12_RESOURCE_BARRIER__bindgen_ty_1,
5672}
5673#[repr(C)]
5674#[derive(Copy, Clone)]
5675pub union D3D12_RESOURCE_BARRIER__bindgen_ty_1 {
5676    pub Transition: D3D12_RESOURCE_TRANSITION_BARRIER,
5677    pub Aliasing: D3D12_RESOURCE_ALIASING_BARRIER,
5678    pub UAV: D3D12_RESOURCE_UAV_BARRIER,
5679}
5680impl Default for D3D12_RESOURCE_BARRIER__bindgen_ty_1 {
5681    fn default() -> Self {
5682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5683        unsafe {
5684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5685            s.assume_init()
5686        }
5687    }
5688}
5689impl ::std::fmt::Debug for D3D12_RESOURCE_BARRIER__bindgen_ty_1 {
5690    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5691        write!(f, "D3D12_RESOURCE_BARRIER__bindgen_ty_1 {{ union }}")
5692    }
5693}
5694impl Default for D3D12_RESOURCE_BARRIER {
5695    fn default() -> Self {
5696        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5697        unsafe {
5698            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5699            s.assume_init()
5700        }
5701    }
5702}
5703impl ::std::fmt::Debug for D3D12_RESOURCE_BARRIER {
5704    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5705        write ! (f , "D3D12_RESOURCE_BARRIER {{ Type: {:?}, Flags: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . Flags , self . __bindgen_anon_1)
5706    }
5707}
5708#[repr(C)]
5709#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5710pub struct D3D12_SUBRESOURCE_FOOTPRINT {
5711    pub Format: DXGI_FORMAT,
5712    pub Width: UINT,
5713    pub Height: UINT,
5714    pub Depth: UINT,
5715    pub RowPitch: UINT,
5716}
5717impl Default for D3D12_SUBRESOURCE_FOOTPRINT {
5718    fn default() -> Self {
5719        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5720        unsafe {
5721            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5722            s.assume_init()
5723        }
5724    }
5725}
5726#[repr(C)]
5727#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5728pub struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
5729    pub Offset: UINT64,
5730    pub Footprint: D3D12_SUBRESOURCE_FOOTPRINT,
5731}
5732impl Default for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
5733    fn default() -> Self {
5734        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5735        unsafe {
5736            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5737            s.assume_init()
5738        }
5739    }
5740}
5741pub const D3D12_TEXTURE_COPY_TYPE_D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX:
5742    D3D12_TEXTURE_COPY_TYPE = 0;
5743pub const D3D12_TEXTURE_COPY_TYPE_D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT:
5744    D3D12_TEXTURE_COPY_TYPE = 1;
5745pub type D3D12_TEXTURE_COPY_TYPE = ::std::os::raw::c_int;
5746#[repr(C)]
5747#[derive(Copy, Clone)]
5748pub struct D3D12_TEXTURE_COPY_LOCATION {
5749    pub pResource: *mut ID3D12Resource,
5750    pub Type: D3D12_TEXTURE_COPY_TYPE,
5751    pub __bindgen_anon_1: D3D12_TEXTURE_COPY_LOCATION__bindgen_ty_1,
5752}
5753#[repr(C)]
5754#[derive(Copy, Clone)]
5755pub union D3D12_TEXTURE_COPY_LOCATION__bindgen_ty_1 {
5756    pub PlacedFootprint: D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
5757    pub SubresourceIndex: UINT,
5758}
5759impl Default for D3D12_TEXTURE_COPY_LOCATION__bindgen_ty_1 {
5760    fn default() -> Self {
5761        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5762        unsafe {
5763            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5764            s.assume_init()
5765        }
5766    }
5767}
5768impl ::std::fmt::Debug for D3D12_TEXTURE_COPY_LOCATION__bindgen_ty_1 {
5769    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5770        write!(f, "D3D12_TEXTURE_COPY_LOCATION__bindgen_ty_1 {{ union }}")
5771    }
5772}
5773impl Default for D3D12_TEXTURE_COPY_LOCATION {
5774    fn default() -> Self {
5775        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5776        unsafe {
5777            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5778            s.assume_init()
5779        }
5780    }
5781}
5782impl ::std::fmt::Debug for D3D12_TEXTURE_COPY_LOCATION {
5783    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5784        write ! (f , "D3D12_TEXTURE_COPY_LOCATION {{ pResource: {:?}, Type: {:?}, __bindgen_anon_1: {:?} }}" , self . pResource , self . Type , self . __bindgen_anon_1)
5785    }
5786}
5787pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_DECOMPRESS: D3D12_RESOLVE_MODE =
5788    0;
5789pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_MIN: D3D12_RESOLVE_MODE = 1;
5790pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_MAX: D3D12_RESOLVE_MODE = 2;
5791pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_AVERAGE: D3D12_RESOLVE_MODE = 3;
5792pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK:
5793    D3D12_RESOLVE_MODE = 4;
5794pub const D3D12_RESOLVE_MODE_D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK:
5795    D3D12_RESOLVE_MODE = 5;
5796pub type D3D12_RESOLVE_MODE = ::std::os::raw::c_int;
5797#[repr(C)]
5798#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5799pub struct D3D12_SAMPLE_POSITION {
5800    pub X: INT8,
5801    pub Y: INT8,
5802}
5803#[repr(C)]
5804#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5805pub struct D3D12_VIEW_INSTANCE_LOCATION {
5806    pub ViewportArrayIndex: UINT,
5807    pub RenderTargetArrayIndex: UINT,
5808}
5809pub const D3D12_VIEW_INSTANCING_FLAGS_D3D12_VIEW_INSTANCING_FLAG_NONE:
5810    D3D12_VIEW_INSTANCING_FLAGS = 0;
5811pub const D3D12_VIEW_INSTANCING_FLAGS_D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING : D3D12_VIEW_INSTANCING_FLAGS = 1 ;
5812pub type D3D12_VIEW_INSTANCING_FLAGS = ::std::os::raw::c_int;
5813#[repr(C)]
5814#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5815pub struct D3D12_VIEW_INSTANCING_DESC {
5816    pub ViewInstanceCount: UINT,
5817    pub pViewInstanceLocations: *const D3D12_VIEW_INSTANCE_LOCATION,
5818    pub Flags: D3D12_VIEW_INSTANCING_FLAGS,
5819}
5820impl Default for D3D12_VIEW_INSTANCING_DESC {
5821    fn default() -> Self {
5822        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5823        unsafe {
5824            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5825            s.assume_init()
5826        }
5827    }
5828}
5829pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 : D3D12_SHADER_COMPONENT_MAPPING = 0 ;
5830pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 : D3D12_SHADER_COMPONENT_MAPPING = 1 ;
5831pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 : D3D12_SHADER_COMPONENT_MAPPING = 2 ;
5832pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 : D3D12_SHADER_COMPONENT_MAPPING = 3 ;
5833pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 : D3D12_SHADER_COMPONENT_MAPPING = 4 ;
5834pub const D3D12_SHADER_COMPONENT_MAPPING_D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 : D3D12_SHADER_COMPONENT_MAPPING = 5 ;
5835pub type D3D12_SHADER_COMPONENT_MAPPING = ::std::os::raw::c_int;
5836pub const D3D12_BUFFER_SRV_FLAGS_D3D12_BUFFER_SRV_FLAG_NONE:
5837    D3D12_BUFFER_SRV_FLAGS = 0;
5838pub const D3D12_BUFFER_SRV_FLAGS_D3D12_BUFFER_SRV_FLAG_RAW:
5839    D3D12_BUFFER_SRV_FLAGS = 1;
5840pub type D3D12_BUFFER_SRV_FLAGS = ::std::os::raw::c_int;
5841#[repr(C)]
5842#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5843pub struct D3D12_BUFFER_SRV {
5844    pub FirstElement: UINT64,
5845    pub NumElements: UINT,
5846    pub StructureByteStride: UINT,
5847    pub Flags: D3D12_BUFFER_SRV_FLAGS,
5848}
5849impl Default for D3D12_BUFFER_SRV {
5850    fn default() -> Self {
5851        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5852        unsafe {
5853            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5854            s.assume_init()
5855        }
5856    }
5857}
5858#[repr(C)]
5859#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5860pub struct D3D12_TEX1D_SRV {
5861    pub MostDetailedMip: UINT,
5862    pub MipLevels: UINT,
5863    pub ResourceMinLODClamp: FLOAT,
5864}
5865#[repr(C)]
5866#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5867pub struct D3D12_TEX1D_ARRAY_SRV {
5868    pub MostDetailedMip: UINT,
5869    pub MipLevels: UINT,
5870    pub FirstArraySlice: UINT,
5871    pub ArraySize: UINT,
5872    pub ResourceMinLODClamp: FLOAT,
5873}
5874#[repr(C)]
5875#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5876pub struct D3D12_TEX2D_SRV {
5877    pub MostDetailedMip: UINT,
5878    pub MipLevels: UINT,
5879    pub PlaneSlice: UINT,
5880    pub ResourceMinLODClamp: FLOAT,
5881}
5882#[repr(C)]
5883#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5884pub struct D3D12_TEX2D_ARRAY_SRV {
5885    pub MostDetailedMip: UINT,
5886    pub MipLevels: UINT,
5887    pub FirstArraySlice: UINT,
5888    pub ArraySize: UINT,
5889    pub PlaneSlice: UINT,
5890    pub ResourceMinLODClamp: FLOAT,
5891}
5892#[repr(C)]
5893#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5894pub struct D3D12_TEX3D_SRV {
5895    pub MostDetailedMip: UINT,
5896    pub MipLevels: UINT,
5897    pub ResourceMinLODClamp: FLOAT,
5898}
5899#[repr(C)]
5900#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5901pub struct D3D12_TEXCUBE_SRV {
5902    pub MostDetailedMip: UINT,
5903    pub MipLevels: UINT,
5904    pub ResourceMinLODClamp: FLOAT,
5905}
5906#[repr(C)]
5907#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
5908pub struct D3D12_TEXCUBE_ARRAY_SRV {
5909    pub MostDetailedMip: UINT,
5910    pub MipLevels: UINT,
5911    pub First2DArrayFace: UINT,
5912    pub NumCubes: UINT,
5913    pub ResourceMinLODClamp: FLOAT,
5914}
5915#[repr(C)]
5916#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5917pub struct D3D12_TEX2DMS_SRV {
5918    pub UnusedField_NothingToDefine: UINT,
5919}
5920#[repr(C)]
5921#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5922pub struct D3D12_TEX2DMS_ARRAY_SRV {
5923    pub FirstArraySlice: UINT,
5924    pub ArraySize: UINT,
5925}
5926#[repr(C)]
5927#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
5928pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
5929    pub Location: D3D12_GPU_VIRTUAL_ADDRESS,
5930}
5931pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_UNKNOWN: D3D12_SRV_DIMENSION =
5932    0;
5933pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_BUFFER: D3D12_SRV_DIMENSION =
5934    1;
5935pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE1D:
5936    D3D12_SRV_DIMENSION = 2;
5937pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE1DARRAY:
5938    D3D12_SRV_DIMENSION = 3;
5939pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE2D:
5940    D3D12_SRV_DIMENSION = 4;
5941pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE2DARRAY:
5942    D3D12_SRV_DIMENSION = 5;
5943pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE2DMS:
5944    D3D12_SRV_DIMENSION = 6;
5945pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY:
5946    D3D12_SRV_DIMENSION = 7;
5947pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURE3D:
5948    D3D12_SRV_DIMENSION = 8;
5949pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURECUBE:
5950    D3D12_SRV_DIMENSION = 9;
5951pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_TEXTURECUBEARRAY:
5952    D3D12_SRV_DIMENSION = 10;
5953pub const D3D12_SRV_DIMENSION_D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_SRV_DIMENSION = 11 ;
5954pub type D3D12_SRV_DIMENSION = ::std::os::raw::c_int;
5955#[repr(C)]
5956#[derive(Copy, Clone)]
5957pub struct D3D12_SHADER_RESOURCE_VIEW_DESC {
5958    pub Format: DXGI_FORMAT,
5959    pub ViewDimension: D3D12_SRV_DIMENSION,
5960    pub Shader4ComponentMapping: UINT,
5961    pub __bindgen_anon_1: D3D12_SHADER_RESOURCE_VIEW_DESC__bindgen_ty_1,
5962}
5963#[repr(C)]
5964#[derive(Copy, Clone)]
5965pub union D3D12_SHADER_RESOURCE_VIEW_DESC__bindgen_ty_1 {
5966    pub Buffer: D3D12_BUFFER_SRV,
5967    pub Texture1D: D3D12_TEX1D_SRV,
5968    pub Texture1DArray: D3D12_TEX1D_ARRAY_SRV,
5969    pub Texture2D: D3D12_TEX2D_SRV,
5970    pub Texture2DArray: D3D12_TEX2D_ARRAY_SRV,
5971    pub Texture2DMS: D3D12_TEX2DMS_SRV,
5972    pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_SRV,
5973    pub Texture3D: D3D12_TEX3D_SRV,
5974    pub TextureCube: D3D12_TEXCUBE_SRV,
5975    pub TextureCubeArray: D3D12_TEXCUBE_ARRAY_SRV,
5976    pub RaytracingAccelerationStructure:
5977        D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV,
5978}
5979impl Default for D3D12_SHADER_RESOURCE_VIEW_DESC__bindgen_ty_1 {
5980    fn default() -> Self {
5981        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5982        unsafe {
5983            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5984            s.assume_init()
5985        }
5986    }
5987}
5988impl ::std::fmt::Debug for D3D12_SHADER_RESOURCE_VIEW_DESC__bindgen_ty_1 {
5989    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5990        write!(
5991            f,
5992            "D3D12_SHADER_RESOURCE_VIEW_DESC__bindgen_ty_1 {{ union }}"
5993        )
5994    }
5995}
5996impl Default for D3D12_SHADER_RESOURCE_VIEW_DESC {
5997    fn default() -> Self {
5998        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5999        unsafe {
6000            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6001            s.assume_init()
6002        }
6003    }
6004}
6005impl ::std::fmt::Debug for D3D12_SHADER_RESOURCE_VIEW_DESC {
6006    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6007        write ! (f , "D3D12_SHADER_RESOURCE_VIEW_DESC {{ Format: {:?}, ViewDimension: {:?}, Shader4ComponentMapping: {:?}, __bindgen_anon_1: {:?} }}" , self . Format , self . ViewDimension , self . Shader4ComponentMapping , self . __bindgen_anon_1)
6008    }
6009}
6010#[repr(C)]
6011#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6012pub struct D3D12_CONSTANT_BUFFER_VIEW_DESC {
6013    pub BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
6014    pub SizeInBytes: UINT,
6015}
6016pub const D3D12_FILTER_D3D12_FILTER_MIN_MAG_MIP_POINT: D3D12_FILTER = 0;
6017pub const D3D12_FILTER_D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: D3D12_FILTER = 1;
6018pub const D3D12_FILTER_D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT:
6019    D3D12_FILTER = 4;
6020pub const D3D12_FILTER_D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: D3D12_FILTER = 5;
6021pub const D3D12_FILTER_D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: D3D12_FILTER = 16;
6022pub const D3D12_FILTER_D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR:
6023    D3D12_FILTER = 17;
6024pub const D3D12_FILTER_D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: D3D12_FILTER = 20;
6025pub const D3D12_FILTER_D3D12_FILTER_MIN_MAG_MIP_LINEAR: D3D12_FILTER = 21;
6026pub const D3D12_FILTER_D3D12_FILTER_ANISOTROPIC: D3D12_FILTER = 85;
6027pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: D3D12_FILTER =
6028    128;
6029pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR:
6030    D3D12_FILTER = 129;
6031pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT : D3D12_FILTER = 132 ;
6032pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR:
6033    D3D12_FILTER = 133;
6034pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT:
6035    D3D12_FILTER = 144;
6036pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR : D3D12_FILTER = 145 ;
6037pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT:
6038    D3D12_FILTER = 148;
6039pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR:
6040    D3D12_FILTER = 149;
6041pub const D3D12_FILTER_D3D12_FILTER_COMPARISON_ANISOTROPIC: D3D12_FILTER = 213;
6042pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: D3D12_FILTER =
6043    256;
6044pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR:
6045    D3D12_FILTER = 257;
6046pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT:
6047    D3D12_FILTER = 260;
6048pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR:
6049    D3D12_FILTER = 261;
6050pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT:
6051    D3D12_FILTER = 272;
6052pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR:
6053    D3D12_FILTER = 273;
6054pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT:
6055    D3D12_FILTER = 276;
6056pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: D3D12_FILTER =
6057    277;
6058pub const D3D12_FILTER_D3D12_FILTER_MINIMUM_ANISOTROPIC: D3D12_FILTER = 341;
6059pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: D3D12_FILTER =
6060    384;
6061pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR:
6062    D3D12_FILTER = 385;
6063pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT:
6064    D3D12_FILTER = 388;
6065pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR:
6066    D3D12_FILTER = 389;
6067pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT:
6068    D3D12_FILTER = 400;
6069pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR:
6070    D3D12_FILTER = 401;
6071pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT:
6072    D3D12_FILTER = 404;
6073pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: D3D12_FILTER =
6074    405;
6075pub const D3D12_FILTER_D3D12_FILTER_MAXIMUM_ANISOTROPIC: D3D12_FILTER = 469;
6076pub type D3D12_FILTER = ::std::os::raw::c_int;
6077pub const D3D12_FILTER_TYPE_D3D12_FILTER_TYPE_POINT: D3D12_FILTER_TYPE = 0;
6078pub const D3D12_FILTER_TYPE_D3D12_FILTER_TYPE_LINEAR: D3D12_FILTER_TYPE = 1;
6079pub type D3D12_FILTER_TYPE = ::std::os::raw::c_int;
6080pub const D3D12_FILTER_REDUCTION_TYPE_D3D12_FILTER_REDUCTION_TYPE_STANDARD:
6081    D3D12_FILTER_REDUCTION_TYPE = 0;
6082pub const D3D12_FILTER_REDUCTION_TYPE_D3D12_FILTER_REDUCTION_TYPE_COMPARISON:
6083    D3D12_FILTER_REDUCTION_TYPE = 1;
6084pub const D3D12_FILTER_REDUCTION_TYPE_D3D12_FILTER_REDUCTION_TYPE_MINIMUM:
6085    D3D12_FILTER_REDUCTION_TYPE = 2;
6086pub const D3D12_FILTER_REDUCTION_TYPE_D3D12_FILTER_REDUCTION_TYPE_MAXIMUM:
6087    D3D12_FILTER_REDUCTION_TYPE = 3;
6088pub type D3D12_FILTER_REDUCTION_TYPE = ::std::os::raw::c_int;
6089pub const D3D12_TEXTURE_ADDRESS_MODE_D3D12_TEXTURE_ADDRESS_MODE_WRAP:
6090    D3D12_TEXTURE_ADDRESS_MODE = 1;
6091pub const D3D12_TEXTURE_ADDRESS_MODE_D3D12_TEXTURE_ADDRESS_MODE_MIRROR:
6092    D3D12_TEXTURE_ADDRESS_MODE = 2;
6093pub const D3D12_TEXTURE_ADDRESS_MODE_D3D12_TEXTURE_ADDRESS_MODE_CLAMP:
6094    D3D12_TEXTURE_ADDRESS_MODE = 3;
6095pub const D3D12_TEXTURE_ADDRESS_MODE_D3D12_TEXTURE_ADDRESS_MODE_BORDER:
6096    D3D12_TEXTURE_ADDRESS_MODE = 4;
6097pub const D3D12_TEXTURE_ADDRESS_MODE_D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE:
6098    D3D12_TEXTURE_ADDRESS_MODE = 5;
6099pub type D3D12_TEXTURE_ADDRESS_MODE = ::std::os::raw::c_int;
6100#[repr(C)]
6101#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
6102pub struct D3D12_SAMPLER_DESC {
6103    pub Filter: D3D12_FILTER,
6104    pub AddressU: D3D12_TEXTURE_ADDRESS_MODE,
6105    pub AddressV: D3D12_TEXTURE_ADDRESS_MODE,
6106    pub AddressW: D3D12_TEXTURE_ADDRESS_MODE,
6107    pub MipLODBias: FLOAT,
6108    pub MaxAnisotropy: UINT,
6109    pub ComparisonFunc: D3D12_COMPARISON_FUNC,
6110    pub BorderColor: [FLOAT; 4usize],
6111    pub MinLOD: FLOAT,
6112    pub MaxLOD: FLOAT,
6113}
6114impl Default for D3D12_SAMPLER_DESC {
6115    fn default() -> Self {
6116        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6117        unsafe {
6118            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6119            s.assume_init()
6120        }
6121    }
6122}
6123pub const D3D12_BUFFER_UAV_FLAGS_D3D12_BUFFER_UAV_FLAG_NONE:
6124    D3D12_BUFFER_UAV_FLAGS = 0;
6125pub const D3D12_BUFFER_UAV_FLAGS_D3D12_BUFFER_UAV_FLAG_RAW:
6126    D3D12_BUFFER_UAV_FLAGS = 1;
6127pub type D3D12_BUFFER_UAV_FLAGS = ::std::os::raw::c_int;
6128#[repr(C)]
6129#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6130pub struct D3D12_BUFFER_UAV {
6131    pub FirstElement: UINT64,
6132    pub NumElements: UINT,
6133    pub StructureByteStride: UINT,
6134    pub CounterOffsetInBytes: UINT64,
6135    pub Flags: D3D12_BUFFER_UAV_FLAGS,
6136}
6137impl Default for D3D12_BUFFER_UAV {
6138    fn default() -> Self {
6139        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6140        unsafe {
6141            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6142            s.assume_init()
6143        }
6144    }
6145}
6146#[repr(C)]
6147#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6148pub struct D3D12_TEX1D_UAV {
6149    pub MipSlice: UINT,
6150}
6151#[repr(C)]
6152#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6153pub struct D3D12_TEX1D_ARRAY_UAV {
6154    pub MipSlice: UINT,
6155    pub FirstArraySlice: UINT,
6156    pub ArraySize: UINT,
6157}
6158#[repr(C)]
6159#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6160pub struct D3D12_TEX2D_UAV {
6161    pub MipSlice: UINT,
6162    pub PlaneSlice: UINT,
6163}
6164#[repr(C)]
6165#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6166pub struct D3D12_TEX2D_ARRAY_UAV {
6167    pub MipSlice: UINT,
6168    pub FirstArraySlice: UINT,
6169    pub ArraySize: UINT,
6170    pub PlaneSlice: UINT,
6171}
6172#[repr(C)]
6173#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6174pub struct D3D12_TEX3D_UAV {
6175    pub MipSlice: UINT,
6176    pub FirstWSlice: UINT,
6177    pub WSize: UINT,
6178}
6179pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_UNKNOWN: D3D12_UAV_DIMENSION =
6180    0;
6181pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_BUFFER: D3D12_UAV_DIMENSION =
6182    1;
6183pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_TEXTURE1D:
6184    D3D12_UAV_DIMENSION = 2;
6185pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_TEXTURE1DARRAY:
6186    D3D12_UAV_DIMENSION = 3;
6187pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_TEXTURE2D:
6188    D3D12_UAV_DIMENSION = 4;
6189pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_TEXTURE2DARRAY:
6190    D3D12_UAV_DIMENSION = 5;
6191pub const D3D12_UAV_DIMENSION_D3D12_UAV_DIMENSION_TEXTURE3D:
6192    D3D12_UAV_DIMENSION = 8;
6193pub type D3D12_UAV_DIMENSION = ::std::os::raw::c_int;
6194#[repr(C)]
6195#[derive(Copy, Clone)]
6196pub struct D3D12_UNORDERED_ACCESS_VIEW_DESC {
6197    pub Format: DXGI_FORMAT,
6198    pub ViewDimension: D3D12_UAV_DIMENSION,
6199    pub __bindgen_anon_1: D3D12_UNORDERED_ACCESS_VIEW_DESC__bindgen_ty_1,
6200}
6201#[repr(C)]
6202#[derive(Copy, Clone)]
6203pub union D3D12_UNORDERED_ACCESS_VIEW_DESC__bindgen_ty_1 {
6204    pub Buffer: D3D12_BUFFER_UAV,
6205    pub Texture1D: D3D12_TEX1D_UAV,
6206    pub Texture1DArray: D3D12_TEX1D_ARRAY_UAV,
6207    pub Texture2D: D3D12_TEX2D_UAV,
6208    pub Texture2DArray: D3D12_TEX2D_ARRAY_UAV,
6209    pub Texture3D: D3D12_TEX3D_UAV,
6210}
6211impl Default for D3D12_UNORDERED_ACCESS_VIEW_DESC__bindgen_ty_1 {
6212    fn default() -> Self {
6213        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6214        unsafe {
6215            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6216            s.assume_init()
6217        }
6218    }
6219}
6220impl ::std::fmt::Debug for D3D12_UNORDERED_ACCESS_VIEW_DESC__bindgen_ty_1 {
6221    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6222        write!(
6223            f,
6224            "D3D12_UNORDERED_ACCESS_VIEW_DESC__bindgen_ty_1 {{ union }}"
6225        )
6226    }
6227}
6228impl Default for D3D12_UNORDERED_ACCESS_VIEW_DESC {
6229    fn default() -> Self {
6230        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6231        unsafe {
6232            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6233            s.assume_init()
6234        }
6235    }
6236}
6237impl ::std::fmt::Debug for D3D12_UNORDERED_ACCESS_VIEW_DESC {
6238    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6239        write ! (f , "D3D12_UNORDERED_ACCESS_VIEW_DESC {{ Format: {:?}, ViewDimension: {:?}, __bindgen_anon_1: {:?} }}" , self . Format , self . ViewDimension , self . __bindgen_anon_1)
6240    }
6241}
6242#[repr(C)]
6243#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6244pub struct D3D12_BUFFER_RTV {
6245    pub FirstElement: UINT64,
6246    pub NumElements: UINT,
6247}
6248#[repr(C)]
6249#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6250pub struct D3D12_TEX1D_RTV {
6251    pub MipSlice: UINT,
6252}
6253#[repr(C)]
6254#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6255pub struct D3D12_TEX1D_ARRAY_RTV {
6256    pub MipSlice: UINT,
6257    pub FirstArraySlice: UINT,
6258    pub ArraySize: UINT,
6259}
6260#[repr(C)]
6261#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6262pub struct D3D12_TEX2D_RTV {
6263    pub MipSlice: UINT,
6264    pub PlaneSlice: UINT,
6265}
6266#[repr(C)]
6267#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6268pub struct D3D12_TEX2DMS_RTV {
6269    pub UnusedField_NothingToDefine: UINT,
6270}
6271#[repr(C)]
6272#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6273pub struct D3D12_TEX2D_ARRAY_RTV {
6274    pub MipSlice: UINT,
6275    pub FirstArraySlice: UINT,
6276    pub ArraySize: UINT,
6277    pub PlaneSlice: UINT,
6278}
6279#[repr(C)]
6280#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6281pub struct D3D12_TEX2DMS_ARRAY_RTV {
6282    pub FirstArraySlice: UINT,
6283    pub ArraySize: UINT,
6284}
6285#[repr(C)]
6286#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6287pub struct D3D12_TEX3D_RTV {
6288    pub MipSlice: UINT,
6289    pub FirstWSlice: UINT,
6290    pub WSize: UINT,
6291}
6292pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_UNKNOWN: D3D12_RTV_DIMENSION =
6293    0;
6294pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_BUFFER: D3D12_RTV_DIMENSION =
6295    1;
6296pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE1D:
6297    D3D12_RTV_DIMENSION = 2;
6298pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE1DARRAY:
6299    D3D12_RTV_DIMENSION = 3;
6300pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE2D:
6301    D3D12_RTV_DIMENSION = 4;
6302pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE2DARRAY:
6303    D3D12_RTV_DIMENSION = 5;
6304pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE2DMS:
6305    D3D12_RTV_DIMENSION = 6;
6306pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY:
6307    D3D12_RTV_DIMENSION = 7;
6308pub const D3D12_RTV_DIMENSION_D3D12_RTV_DIMENSION_TEXTURE3D:
6309    D3D12_RTV_DIMENSION = 8;
6310pub type D3D12_RTV_DIMENSION = ::std::os::raw::c_int;
6311#[repr(C)]
6312#[derive(Copy, Clone)]
6313pub struct D3D12_RENDER_TARGET_VIEW_DESC {
6314    pub Format: DXGI_FORMAT,
6315    pub ViewDimension: D3D12_RTV_DIMENSION,
6316    pub __bindgen_anon_1: D3D12_RENDER_TARGET_VIEW_DESC__bindgen_ty_1,
6317}
6318#[repr(C)]
6319#[derive(Copy, Clone)]
6320pub union D3D12_RENDER_TARGET_VIEW_DESC__bindgen_ty_1 {
6321    pub Buffer: D3D12_BUFFER_RTV,
6322    pub Texture1D: D3D12_TEX1D_RTV,
6323    pub Texture1DArray: D3D12_TEX1D_ARRAY_RTV,
6324    pub Texture2D: D3D12_TEX2D_RTV,
6325    pub Texture2DArray: D3D12_TEX2D_ARRAY_RTV,
6326    pub Texture2DMS: D3D12_TEX2DMS_RTV,
6327    pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_RTV,
6328    pub Texture3D: D3D12_TEX3D_RTV,
6329}
6330impl Default for D3D12_RENDER_TARGET_VIEW_DESC__bindgen_ty_1 {
6331    fn default() -> Self {
6332        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6333        unsafe {
6334            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6335            s.assume_init()
6336        }
6337    }
6338}
6339impl ::std::fmt::Debug for D3D12_RENDER_TARGET_VIEW_DESC__bindgen_ty_1 {
6340    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6341        write!(f, "D3D12_RENDER_TARGET_VIEW_DESC__bindgen_ty_1 {{ union }}")
6342    }
6343}
6344impl Default for D3D12_RENDER_TARGET_VIEW_DESC {
6345    fn default() -> Self {
6346        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6347        unsafe {
6348            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6349            s.assume_init()
6350        }
6351    }
6352}
6353impl ::std::fmt::Debug for D3D12_RENDER_TARGET_VIEW_DESC {
6354    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6355        write ! (f , "D3D12_RENDER_TARGET_VIEW_DESC {{ Format: {:?}, ViewDimension: {:?}, __bindgen_anon_1: {:?} }}" , self . Format , self . ViewDimension , self . __bindgen_anon_1)
6356    }
6357}
6358#[repr(C)]
6359#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6360pub struct D3D12_TEX1D_DSV {
6361    pub MipSlice: UINT,
6362}
6363#[repr(C)]
6364#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6365pub struct D3D12_TEX1D_ARRAY_DSV {
6366    pub MipSlice: UINT,
6367    pub FirstArraySlice: UINT,
6368    pub ArraySize: UINT,
6369}
6370#[repr(C)]
6371#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6372pub struct D3D12_TEX2D_DSV {
6373    pub MipSlice: UINT,
6374}
6375#[repr(C)]
6376#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6377pub struct D3D12_TEX2D_ARRAY_DSV {
6378    pub MipSlice: UINT,
6379    pub FirstArraySlice: UINT,
6380    pub ArraySize: UINT,
6381}
6382#[repr(C)]
6383#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6384pub struct D3D12_TEX2DMS_DSV {
6385    pub UnusedField_NothingToDefine: UINT,
6386}
6387#[repr(C)]
6388#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6389pub struct D3D12_TEX2DMS_ARRAY_DSV {
6390    pub FirstArraySlice: UINT,
6391    pub ArraySize: UINT,
6392}
6393pub const D3D12_DSV_FLAGS_D3D12_DSV_FLAG_NONE: D3D12_DSV_FLAGS = 0;
6394pub const D3D12_DSV_FLAGS_D3D12_DSV_FLAG_READ_ONLY_DEPTH: D3D12_DSV_FLAGS = 1;
6395pub const D3D12_DSV_FLAGS_D3D12_DSV_FLAG_READ_ONLY_STENCIL: D3D12_DSV_FLAGS = 2;
6396pub type D3D12_DSV_FLAGS = ::std::os::raw::c_int;
6397pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_UNKNOWN: D3D12_DSV_DIMENSION =
6398    0;
6399pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE1D:
6400    D3D12_DSV_DIMENSION = 1;
6401pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE1DARRAY:
6402    D3D12_DSV_DIMENSION = 2;
6403pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE2D:
6404    D3D12_DSV_DIMENSION = 3;
6405pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE2DARRAY:
6406    D3D12_DSV_DIMENSION = 4;
6407pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE2DMS:
6408    D3D12_DSV_DIMENSION = 5;
6409pub const D3D12_DSV_DIMENSION_D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY:
6410    D3D12_DSV_DIMENSION = 6;
6411pub type D3D12_DSV_DIMENSION = ::std::os::raw::c_int;
6412#[repr(C)]
6413#[derive(Copy, Clone)]
6414pub struct D3D12_DEPTH_STENCIL_VIEW_DESC {
6415    pub Format: DXGI_FORMAT,
6416    pub ViewDimension: D3D12_DSV_DIMENSION,
6417    pub Flags: D3D12_DSV_FLAGS,
6418    pub __bindgen_anon_1: D3D12_DEPTH_STENCIL_VIEW_DESC__bindgen_ty_1,
6419}
6420#[repr(C)]
6421#[derive(Copy, Clone)]
6422pub union D3D12_DEPTH_STENCIL_VIEW_DESC__bindgen_ty_1 {
6423    pub Texture1D: D3D12_TEX1D_DSV,
6424    pub Texture1DArray: D3D12_TEX1D_ARRAY_DSV,
6425    pub Texture2D: D3D12_TEX2D_DSV,
6426    pub Texture2DArray: D3D12_TEX2D_ARRAY_DSV,
6427    pub Texture2DMS: D3D12_TEX2DMS_DSV,
6428    pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_DSV,
6429}
6430impl Default for D3D12_DEPTH_STENCIL_VIEW_DESC__bindgen_ty_1 {
6431    fn default() -> Self {
6432        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6433        unsafe {
6434            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6435            s.assume_init()
6436        }
6437    }
6438}
6439impl ::std::fmt::Debug for D3D12_DEPTH_STENCIL_VIEW_DESC__bindgen_ty_1 {
6440    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6441        write!(f, "D3D12_DEPTH_STENCIL_VIEW_DESC__bindgen_ty_1 {{ union }}")
6442    }
6443}
6444impl Default for D3D12_DEPTH_STENCIL_VIEW_DESC {
6445    fn default() -> Self {
6446        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6447        unsafe {
6448            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6449            s.assume_init()
6450        }
6451    }
6452}
6453impl ::std::fmt::Debug for D3D12_DEPTH_STENCIL_VIEW_DESC {
6454    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6455        write ! (f , "D3D12_DEPTH_STENCIL_VIEW_DESC {{ Format: {:?}, ViewDimension: {:?}, Flags: {:?}, __bindgen_anon_1: {:?} }}" , self . Format , self . ViewDimension , self . Flags , self . __bindgen_anon_1)
6456    }
6457}
6458pub const D3D12_CLEAR_FLAGS_D3D12_CLEAR_FLAG_DEPTH: D3D12_CLEAR_FLAGS = 1;
6459pub const D3D12_CLEAR_FLAGS_D3D12_CLEAR_FLAG_STENCIL: D3D12_CLEAR_FLAGS = 2;
6460pub type D3D12_CLEAR_FLAGS = ::std::os::raw::c_int;
6461pub const D3D12_FENCE_FLAGS_D3D12_FENCE_FLAG_NONE: D3D12_FENCE_FLAGS = 0;
6462pub const D3D12_FENCE_FLAGS_D3D12_FENCE_FLAG_SHARED: D3D12_FENCE_FLAGS = 1;
6463pub const D3D12_FENCE_FLAGS_D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER:
6464    D3D12_FENCE_FLAGS = 2;
6465pub const D3D12_FENCE_FLAGS_D3D12_FENCE_FLAG_NON_MONITORED: D3D12_FENCE_FLAGS =
6466    4;
6467pub type D3D12_FENCE_FLAGS = ::std::os::raw::c_int;
6468pub const D3D12_DESCRIPTOR_HEAP_TYPE_D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV:
6469    D3D12_DESCRIPTOR_HEAP_TYPE = 0;
6470pub const D3D12_DESCRIPTOR_HEAP_TYPE_D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER:
6471    D3D12_DESCRIPTOR_HEAP_TYPE = 1;
6472pub const D3D12_DESCRIPTOR_HEAP_TYPE_D3D12_DESCRIPTOR_HEAP_TYPE_RTV:
6473    D3D12_DESCRIPTOR_HEAP_TYPE = 2;
6474pub const D3D12_DESCRIPTOR_HEAP_TYPE_D3D12_DESCRIPTOR_HEAP_TYPE_DSV:
6475    D3D12_DESCRIPTOR_HEAP_TYPE = 3;
6476pub const D3D12_DESCRIPTOR_HEAP_TYPE_D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES:
6477    D3D12_DESCRIPTOR_HEAP_TYPE = 4;
6478pub type D3D12_DESCRIPTOR_HEAP_TYPE = ::std::os::raw::c_int;
6479pub const D3D12_DESCRIPTOR_HEAP_FLAGS_D3D12_DESCRIPTOR_HEAP_FLAG_NONE:
6480    D3D12_DESCRIPTOR_HEAP_FLAGS = 0;
6481pub const D3D12_DESCRIPTOR_HEAP_FLAGS_D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE : D3D12_DESCRIPTOR_HEAP_FLAGS = 1 ;
6482pub type D3D12_DESCRIPTOR_HEAP_FLAGS = ::std::os::raw::c_int;
6483#[repr(C)]
6484#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6485pub struct D3D12_DESCRIPTOR_HEAP_DESC {
6486    pub Type: D3D12_DESCRIPTOR_HEAP_TYPE,
6487    pub NumDescriptors: UINT,
6488    pub Flags: D3D12_DESCRIPTOR_HEAP_FLAGS,
6489    pub NodeMask: UINT,
6490}
6491impl Default for D3D12_DESCRIPTOR_HEAP_DESC {
6492    fn default() -> Self {
6493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6494        unsafe {
6495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6496            s.assume_init()
6497        }
6498    }
6499}
6500pub const D3D12_DESCRIPTOR_RANGE_TYPE_D3D12_DESCRIPTOR_RANGE_TYPE_SRV:
6501    D3D12_DESCRIPTOR_RANGE_TYPE = 0;
6502pub const D3D12_DESCRIPTOR_RANGE_TYPE_D3D12_DESCRIPTOR_RANGE_TYPE_UAV:
6503    D3D12_DESCRIPTOR_RANGE_TYPE = 1;
6504pub const D3D12_DESCRIPTOR_RANGE_TYPE_D3D12_DESCRIPTOR_RANGE_TYPE_CBV:
6505    D3D12_DESCRIPTOR_RANGE_TYPE = 2;
6506pub const D3D12_DESCRIPTOR_RANGE_TYPE_D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER:
6507    D3D12_DESCRIPTOR_RANGE_TYPE = 3;
6508pub type D3D12_DESCRIPTOR_RANGE_TYPE = ::std::os::raw::c_int;
6509#[repr(C)]
6510#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6511pub struct D3D12_DESCRIPTOR_RANGE {
6512    pub RangeType: D3D12_DESCRIPTOR_RANGE_TYPE,
6513    pub NumDescriptors: UINT,
6514    pub BaseShaderRegister: UINT,
6515    pub RegisterSpace: UINT,
6516    pub OffsetInDescriptorsFromTableStart: UINT,
6517}
6518impl Default for D3D12_DESCRIPTOR_RANGE {
6519    fn default() -> Self {
6520        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6521        unsafe {
6522            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6523            s.assume_init()
6524        }
6525    }
6526}
6527#[repr(C)]
6528#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6529pub struct D3D12_ROOT_DESCRIPTOR_TABLE {
6530    pub NumDescriptorRanges: UINT,
6531    pub pDescriptorRanges: *const D3D12_DESCRIPTOR_RANGE,
6532}
6533impl Default for D3D12_ROOT_DESCRIPTOR_TABLE {
6534    fn default() -> Self {
6535        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6536        unsafe {
6537            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6538            s.assume_init()
6539        }
6540    }
6541}
6542#[repr(C)]
6543#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6544pub struct D3D12_ROOT_CONSTANTS {
6545    pub ShaderRegister: UINT,
6546    pub RegisterSpace: UINT,
6547    pub Num32BitValues: UINT,
6548}
6549#[repr(C)]
6550#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6551pub struct D3D12_ROOT_DESCRIPTOR {
6552    pub ShaderRegister: UINT,
6553    pub RegisterSpace: UINT,
6554}
6555pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_ALL:
6556    D3D12_SHADER_VISIBILITY = 0;
6557pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_VERTEX:
6558    D3D12_SHADER_VISIBILITY = 1;
6559pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_HULL:
6560    D3D12_SHADER_VISIBILITY = 2;
6561pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_DOMAIN:
6562    D3D12_SHADER_VISIBILITY = 3;
6563pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_GEOMETRY:
6564    D3D12_SHADER_VISIBILITY = 4;
6565pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_PIXEL:
6566    D3D12_SHADER_VISIBILITY = 5;
6567pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_AMPLIFICATION:
6568    D3D12_SHADER_VISIBILITY = 6;
6569pub const D3D12_SHADER_VISIBILITY_D3D12_SHADER_VISIBILITY_MESH:
6570    D3D12_SHADER_VISIBILITY = 7;
6571pub type D3D12_SHADER_VISIBILITY = ::std::os::raw::c_int;
6572pub const D3D12_ROOT_PARAMETER_TYPE_D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE : D3D12_ROOT_PARAMETER_TYPE = 0 ;
6573pub const D3D12_ROOT_PARAMETER_TYPE_D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS : D3D12_ROOT_PARAMETER_TYPE = 1 ;
6574pub const D3D12_ROOT_PARAMETER_TYPE_D3D12_ROOT_PARAMETER_TYPE_CBV:
6575    D3D12_ROOT_PARAMETER_TYPE = 2;
6576pub const D3D12_ROOT_PARAMETER_TYPE_D3D12_ROOT_PARAMETER_TYPE_SRV:
6577    D3D12_ROOT_PARAMETER_TYPE = 3;
6578pub const D3D12_ROOT_PARAMETER_TYPE_D3D12_ROOT_PARAMETER_TYPE_UAV:
6579    D3D12_ROOT_PARAMETER_TYPE = 4;
6580pub type D3D12_ROOT_PARAMETER_TYPE = ::std::os::raw::c_int;
6581#[repr(C)]
6582#[derive(Copy, Clone)]
6583pub struct D3D12_ROOT_PARAMETER {
6584    pub ParameterType: D3D12_ROOT_PARAMETER_TYPE,
6585    pub __bindgen_anon_1: D3D12_ROOT_PARAMETER__bindgen_ty_1,
6586    pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
6587}
6588#[repr(C)]
6589#[derive(Copy, Clone)]
6590pub union D3D12_ROOT_PARAMETER__bindgen_ty_1 {
6591    pub DescriptorTable: D3D12_ROOT_DESCRIPTOR_TABLE,
6592    pub Constants: D3D12_ROOT_CONSTANTS,
6593    pub Descriptor: D3D12_ROOT_DESCRIPTOR,
6594}
6595impl Default for D3D12_ROOT_PARAMETER__bindgen_ty_1 {
6596    fn default() -> Self {
6597        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6598        unsafe {
6599            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6600            s.assume_init()
6601        }
6602    }
6603}
6604impl ::std::fmt::Debug for D3D12_ROOT_PARAMETER__bindgen_ty_1 {
6605    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6606        write!(f, "D3D12_ROOT_PARAMETER__bindgen_ty_1 {{ union }}")
6607    }
6608}
6609impl Default for D3D12_ROOT_PARAMETER {
6610    fn default() -> Self {
6611        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6612        unsafe {
6613            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6614            s.assume_init()
6615        }
6616    }
6617}
6618impl ::std::fmt::Debug for D3D12_ROOT_PARAMETER {
6619    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6620        write ! (f , "D3D12_ROOT_PARAMETER {{ ParameterType: {:?}, __bindgen_anon_1: {:?}, ShaderVisibility: {:?} }}" , self . ParameterType , self . __bindgen_anon_1 , self . ShaderVisibility)
6621    }
6622}
6623pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_NONE:
6624    D3D12_ROOT_SIGNATURE_FLAGS = 0;
6625pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT : D3D12_ROOT_SIGNATURE_FLAGS = 1 ;
6626pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 2 ;
6627pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 4 ;
6628pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 8 ;
6629pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 16 ;
6630pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 32 ;
6631pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT : D3D12_ROOT_SIGNATURE_FLAGS = 64 ;
6632pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE : D3D12_ROOT_SIGNATURE_FLAGS = 128 ;
6633pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 256 ;
6634pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS : D3D12_ROOT_SIGNATURE_FLAGS = 512 ;
6635pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED : D3D12_ROOT_SIGNATURE_FLAGS = 1024 ;
6636pub const D3D12_ROOT_SIGNATURE_FLAGS_D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED : D3D12_ROOT_SIGNATURE_FLAGS = 2048 ;
6637pub type D3D12_ROOT_SIGNATURE_FLAGS = ::std::os::raw::c_int;
6638pub const D3D12_STATIC_BORDER_COLOR_D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK : D3D12_STATIC_BORDER_COLOR = 0 ;
6639pub const D3D12_STATIC_BORDER_COLOR_D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK:
6640    D3D12_STATIC_BORDER_COLOR = 1;
6641pub const D3D12_STATIC_BORDER_COLOR_D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE:
6642    D3D12_STATIC_BORDER_COLOR = 2;
6643pub type D3D12_STATIC_BORDER_COLOR = ::std::os::raw::c_int;
6644#[repr(C)]
6645#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
6646pub struct D3D12_STATIC_SAMPLER_DESC {
6647    pub Filter: D3D12_FILTER,
6648    pub AddressU: D3D12_TEXTURE_ADDRESS_MODE,
6649    pub AddressV: D3D12_TEXTURE_ADDRESS_MODE,
6650    pub AddressW: D3D12_TEXTURE_ADDRESS_MODE,
6651    pub MipLODBias: FLOAT,
6652    pub MaxAnisotropy: UINT,
6653    pub ComparisonFunc: D3D12_COMPARISON_FUNC,
6654    pub BorderColor: D3D12_STATIC_BORDER_COLOR,
6655    pub MinLOD: FLOAT,
6656    pub MaxLOD: FLOAT,
6657    pub ShaderRegister: UINT,
6658    pub RegisterSpace: UINT,
6659    pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
6660}
6661impl Default for D3D12_STATIC_SAMPLER_DESC {
6662    fn default() -> Self {
6663        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6664        unsafe {
6665            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6666            s.assume_init()
6667        }
6668    }
6669}
6670#[repr(C)]
6671#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6672pub struct D3D12_ROOT_SIGNATURE_DESC {
6673    pub NumParameters: UINT,
6674    pub pParameters: *const D3D12_ROOT_PARAMETER,
6675    pub NumStaticSamplers: UINT,
6676    pub pStaticSamplers: *const D3D12_STATIC_SAMPLER_DESC,
6677    pub Flags: D3D12_ROOT_SIGNATURE_FLAGS,
6678}
6679impl Default for D3D12_ROOT_SIGNATURE_DESC {
6680    fn default() -> Self {
6681        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6682        unsafe {
6683            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6684            s.assume_init()
6685        }
6686    }
6687}
6688pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_NONE:
6689    D3D12_DESCRIPTOR_RANGE_FLAGS = 0;
6690pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE : D3D12_DESCRIPTOR_RANGE_FLAGS = 1 ;
6691pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE : D3D12_DESCRIPTOR_RANGE_FLAGS = 2 ;
6692pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE : D3D12_DESCRIPTOR_RANGE_FLAGS = 4 ;
6693pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC : D3D12_DESCRIPTOR_RANGE_FLAGS = 8 ;
6694pub const D3D12_DESCRIPTOR_RANGE_FLAGS_D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS : D3D12_DESCRIPTOR_RANGE_FLAGS = 65536 ;
6695pub type D3D12_DESCRIPTOR_RANGE_FLAGS = ::std::os::raw::c_int;
6696#[repr(C)]
6697#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6698pub struct D3D12_DESCRIPTOR_RANGE1 {
6699    pub RangeType: D3D12_DESCRIPTOR_RANGE_TYPE,
6700    pub NumDescriptors: UINT,
6701    pub BaseShaderRegister: UINT,
6702    pub RegisterSpace: UINT,
6703    pub Flags: D3D12_DESCRIPTOR_RANGE_FLAGS,
6704    pub OffsetInDescriptorsFromTableStart: UINT,
6705}
6706impl Default for D3D12_DESCRIPTOR_RANGE1 {
6707    fn default() -> Self {
6708        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6709        unsafe {
6710            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6711            s.assume_init()
6712        }
6713    }
6714}
6715#[repr(C)]
6716#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6717pub struct D3D12_ROOT_DESCRIPTOR_TABLE1 {
6718    pub NumDescriptorRanges: UINT,
6719    pub pDescriptorRanges: *const D3D12_DESCRIPTOR_RANGE1,
6720}
6721impl Default for D3D12_ROOT_DESCRIPTOR_TABLE1 {
6722    fn default() -> Self {
6723        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6724        unsafe {
6725            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6726            s.assume_init()
6727        }
6728    }
6729}
6730pub const D3D12_ROOT_DESCRIPTOR_FLAGS_D3D12_ROOT_DESCRIPTOR_FLAG_NONE:
6731    D3D12_ROOT_DESCRIPTOR_FLAGS = 0;
6732pub const D3D12_ROOT_DESCRIPTOR_FLAGS_D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE : D3D12_ROOT_DESCRIPTOR_FLAGS = 2 ;
6733pub const D3D12_ROOT_DESCRIPTOR_FLAGS_D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE : D3D12_ROOT_DESCRIPTOR_FLAGS = 4 ;
6734pub const D3D12_ROOT_DESCRIPTOR_FLAGS_D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC:
6735    D3D12_ROOT_DESCRIPTOR_FLAGS = 8;
6736pub type D3D12_ROOT_DESCRIPTOR_FLAGS = ::std::os::raw::c_int;
6737#[repr(C)]
6738#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6739pub struct D3D12_ROOT_DESCRIPTOR1 {
6740    pub ShaderRegister: UINT,
6741    pub RegisterSpace: UINT,
6742    pub Flags: D3D12_ROOT_DESCRIPTOR_FLAGS,
6743}
6744impl Default for D3D12_ROOT_DESCRIPTOR1 {
6745    fn default() -> Self {
6746        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6747        unsafe {
6748            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6749            s.assume_init()
6750        }
6751    }
6752}
6753#[repr(C)]
6754#[derive(Copy, Clone)]
6755pub struct D3D12_ROOT_PARAMETER1 {
6756    pub ParameterType: D3D12_ROOT_PARAMETER_TYPE,
6757    pub __bindgen_anon_1: D3D12_ROOT_PARAMETER1__bindgen_ty_1,
6758    pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
6759}
6760#[repr(C)]
6761#[derive(Copy, Clone)]
6762pub union D3D12_ROOT_PARAMETER1__bindgen_ty_1 {
6763    pub DescriptorTable: D3D12_ROOT_DESCRIPTOR_TABLE1,
6764    pub Constants: D3D12_ROOT_CONSTANTS,
6765    pub Descriptor: D3D12_ROOT_DESCRIPTOR1,
6766}
6767impl Default for D3D12_ROOT_PARAMETER1__bindgen_ty_1 {
6768    fn default() -> Self {
6769        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6770        unsafe {
6771            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6772            s.assume_init()
6773        }
6774    }
6775}
6776impl ::std::fmt::Debug for D3D12_ROOT_PARAMETER1__bindgen_ty_1 {
6777    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6778        write!(f, "D3D12_ROOT_PARAMETER1__bindgen_ty_1 {{ union }}")
6779    }
6780}
6781impl Default for D3D12_ROOT_PARAMETER1 {
6782    fn default() -> Self {
6783        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6784        unsafe {
6785            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6786            s.assume_init()
6787        }
6788    }
6789}
6790impl ::std::fmt::Debug for D3D12_ROOT_PARAMETER1 {
6791    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6792        write ! (f , "D3D12_ROOT_PARAMETER1 {{ ParameterType: {:?}, __bindgen_anon_1: {:?}, ShaderVisibility: {:?} }}" , self . ParameterType , self . __bindgen_anon_1 , self . ShaderVisibility)
6793    }
6794}
6795#[repr(C)]
6796#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6797pub struct D3D12_ROOT_SIGNATURE_DESC1 {
6798    pub NumParameters: UINT,
6799    pub pParameters: *const D3D12_ROOT_PARAMETER1,
6800    pub NumStaticSamplers: UINT,
6801    pub pStaticSamplers: *const D3D12_STATIC_SAMPLER_DESC,
6802    pub Flags: D3D12_ROOT_SIGNATURE_FLAGS,
6803}
6804impl Default for D3D12_ROOT_SIGNATURE_DESC1 {
6805    fn default() -> Self {
6806        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6807        unsafe {
6808            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6809            s.assume_init()
6810        }
6811    }
6812}
6813#[repr(C)]
6814#[derive(Copy, Clone)]
6815pub struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
6816    pub Version: D3D_ROOT_SIGNATURE_VERSION,
6817    pub __bindgen_anon_1: D3D12_VERSIONED_ROOT_SIGNATURE_DESC__bindgen_ty_1,
6818}
6819#[repr(C)]
6820#[derive(Copy, Clone)]
6821pub union D3D12_VERSIONED_ROOT_SIGNATURE_DESC__bindgen_ty_1 {
6822    pub Desc_1_0: D3D12_ROOT_SIGNATURE_DESC,
6823    pub Desc_1_1: D3D12_ROOT_SIGNATURE_DESC1,
6824}
6825impl Default for D3D12_VERSIONED_ROOT_SIGNATURE_DESC__bindgen_ty_1 {
6826    fn default() -> Self {
6827        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6828        unsafe {
6829            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6830            s.assume_init()
6831        }
6832    }
6833}
6834impl ::std::fmt::Debug for D3D12_VERSIONED_ROOT_SIGNATURE_DESC__bindgen_ty_1 {
6835    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6836        write!(
6837            f,
6838            "D3D12_VERSIONED_ROOT_SIGNATURE_DESC__bindgen_ty_1 {{ union }}"
6839        )
6840    }
6841}
6842impl Default for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
6843    fn default() -> Self {
6844        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6845        unsafe {
6846            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6847            s.assume_init()
6848        }
6849    }
6850}
6851impl ::std::fmt::Debug for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
6852    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6853        write ! (f , "D3D12_VERSIONED_ROOT_SIGNATURE_DESC {{ Version: {:?}, __bindgen_anon_1: {:?} }}" , self . Version , self . __bindgen_anon_1)
6854    }
6855}
6856extern "C" {
6857    pub static IID_ID3D12RootSignatureDeserializer: IID;
6858}
6859#[repr(C)]
6860#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6861pub struct ID3D12RootSignatureDeserializerVtbl {
6862    pub QueryInterface: ::std::option::Option<
6863        unsafe extern "C" fn(
6864            This: *mut ID3D12RootSignatureDeserializer,
6865            riid: *const IID,
6866            ppvObject: *mut *mut ::std::os::raw::c_void,
6867        ) -> HRESULT,
6868    >,
6869    pub AddRef: ::std::option::Option<
6870        unsafe extern "C" fn(
6871            This: *mut ID3D12RootSignatureDeserializer,
6872        ) -> ULONG,
6873    >,
6874    pub Release: ::std::option::Option<
6875        unsafe extern "C" fn(
6876            This: *mut ID3D12RootSignatureDeserializer,
6877        ) -> ULONG,
6878    >,
6879    pub GetRootSignatureDesc: ::std::option::Option<
6880        unsafe extern "C" fn(
6881            This: *mut ID3D12RootSignatureDeserializer,
6882        ) -> *const D3D12_ROOT_SIGNATURE_DESC,
6883    >,
6884}
6885#[repr(C)]
6886#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6887pub struct ID3D12RootSignatureDeserializer {
6888    pub lpVtbl: *mut ID3D12RootSignatureDeserializerVtbl,
6889}
6890impl Default for ID3D12RootSignatureDeserializer {
6891    fn default() -> Self {
6892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6893        unsafe {
6894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6895            s.assume_init()
6896        }
6897    }
6898}
6899extern "C" {
6900    pub static IID_ID3D12VersionedRootSignatureDeserializer: IID;
6901}
6902#[repr(C)]
6903#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6904pub struct ID3D12VersionedRootSignatureDeserializerVtbl {
6905    pub QueryInterface: ::std::option::Option<
6906        unsafe extern "C" fn(
6907            This: *mut ID3D12VersionedRootSignatureDeserializer,
6908            riid: *const IID,
6909            ppvObject: *mut *mut ::std::os::raw::c_void,
6910        ) -> HRESULT,
6911    >,
6912    pub AddRef: ::std::option::Option<
6913        unsafe extern "C" fn(
6914            This: *mut ID3D12VersionedRootSignatureDeserializer,
6915        ) -> ULONG,
6916    >,
6917    pub Release: ::std::option::Option<
6918        unsafe extern "C" fn(
6919            This: *mut ID3D12VersionedRootSignatureDeserializer,
6920        ) -> ULONG,
6921    >,
6922    pub GetRootSignatureDescAtVersion: ::std::option::Option<
6923        unsafe extern "C" fn(
6924            This: *mut ID3D12VersionedRootSignatureDeserializer,
6925            convertToVersion: D3D_ROOT_SIGNATURE_VERSION,
6926            ppDesc: *mut *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC,
6927        ) -> HRESULT,
6928    >,
6929    pub GetUnconvertedRootSignatureDesc: ::std::option::Option<
6930        unsafe extern "C" fn(
6931            This: *mut ID3D12VersionedRootSignatureDeserializer,
6932        )
6933            -> *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC,
6934    >,
6935}
6936#[repr(C)]
6937#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
6938pub struct ID3D12VersionedRootSignatureDeserializer {
6939    pub lpVtbl: *mut ID3D12VersionedRootSignatureDeserializerVtbl,
6940}
6941impl Default for ID3D12VersionedRootSignatureDeserializer {
6942    fn default() -> Self {
6943        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6944        unsafe {
6945            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6946            s.assume_init()
6947        }
6948    }
6949}
6950pub type PFN_D3D12_SERIALIZE_ROOT_SIGNATURE = ::std::option::Option<
6951    unsafe extern "C" fn(
6952        pRootSignature: *const D3D12_ROOT_SIGNATURE_DESC,
6953        Version: D3D_ROOT_SIGNATURE_VERSION,
6954        ppBlob: *mut *mut ID3DBlob,
6955        ppErrorBlob: *mut *mut ID3DBlob,
6956    ) -> HRESULT,
6957>;
6958extern "C" {
6959    pub fn D3D12SerializeRootSignature(
6960        pRootSignature: *const D3D12_ROOT_SIGNATURE_DESC,
6961        Version: D3D_ROOT_SIGNATURE_VERSION,
6962        ppBlob: *mut *mut ID3DBlob,
6963        ppErrorBlob: *mut *mut ID3DBlob,
6964    ) -> HRESULT;
6965}
6966pub type PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER = ::std::option::Option<
6967    unsafe extern "C" fn(
6968        pSrcData: LPCVOID,
6969        SrcDataSizeInBytes: SIZE_T,
6970        pRootSignatureDeserializerInterface: *const IID,
6971        ppRootSignatureDeserializer: *mut *mut ::std::os::raw::c_void,
6972    ) -> HRESULT,
6973>;
6974extern "C" {
6975    pub fn D3D12CreateRootSignatureDeserializer(
6976        pSrcData: LPCVOID,
6977        SrcDataSizeInBytes: SIZE_T,
6978        pRootSignatureDeserializerInterface: *const IID,
6979        ppRootSignatureDeserializer: *mut *mut ::std::os::raw::c_void,
6980    ) -> HRESULT;
6981}
6982pub type PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE = ::std::option::Option<
6983    unsafe extern "C" fn(
6984        pRootSignature: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC,
6985        ppBlob: *mut *mut ID3DBlob,
6986        ppErrorBlob: *mut *mut ID3DBlob,
6987    ) -> HRESULT,
6988>;
6989extern "C" {
6990    pub fn D3D12SerializeVersionedRootSignature(
6991        pRootSignature: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC,
6992        ppBlob: *mut *mut ID3DBlob,
6993        ppErrorBlob: *mut *mut ID3DBlob,
6994    ) -> HRESULT;
6995}
6996pub type PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER =
6997    ::std::option::Option<
6998        unsafe extern "C" fn(
6999            pSrcData: LPCVOID,
7000            SrcDataSizeInBytes: SIZE_T,
7001            pRootSignatureDeserializerInterface: *const IID,
7002            ppRootSignatureDeserializer: *mut *mut ::std::os::raw::c_void,
7003        ) -> HRESULT,
7004    >;
7005extern "C" {
7006    pub fn D3D12CreateVersionedRootSignatureDeserializer(
7007        pSrcData: LPCVOID,
7008        SrcDataSizeInBytes: SIZE_T,
7009        pRootSignatureDeserializerInterface: *const IID,
7010        ppRootSignatureDeserializer: *mut *mut ::std::os::raw::c_void,
7011    ) -> HRESULT;
7012}
7013#[repr(C)]
7014#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7015pub struct D3D12_CPU_DESCRIPTOR_HANDLE {
7016    pub ptr: SIZE_T,
7017}
7018#[repr(C)]
7019#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7020pub struct D3D12_GPU_DESCRIPTOR_HANDLE {
7021    pub ptr: UINT64,
7022}
7023#[repr(C)]
7024#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7025pub struct D3D12_DISCARD_REGION {
7026    pub NumRects: UINT,
7027    pub pRects: *const D3D12_RECT,
7028    pub FirstSubresource: UINT,
7029    pub NumSubresources: UINT,
7030}
7031impl Default for D3D12_DISCARD_REGION {
7032    fn default() -> Self {
7033        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7034        unsafe {
7035            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7036            s.assume_init()
7037        }
7038    }
7039}
7040pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_OCCLUSION:
7041    D3D12_QUERY_HEAP_TYPE = 0;
7042pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_TIMESTAMP:
7043    D3D12_QUERY_HEAP_TYPE = 1;
7044pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS:
7045    D3D12_QUERY_HEAP_TYPE = 2;
7046pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_SO_STATISTICS:
7047    D3D12_QUERY_HEAP_TYPE = 3;
7048pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS : D3D12_QUERY_HEAP_TYPE = 4 ;
7049pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP:
7050    D3D12_QUERY_HEAP_TYPE = 5;
7051pub const D3D12_QUERY_HEAP_TYPE_D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1:
7052    D3D12_QUERY_HEAP_TYPE = 7;
7053pub type D3D12_QUERY_HEAP_TYPE = ::std::os::raw::c_int;
7054#[repr(C)]
7055#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7056pub struct D3D12_QUERY_HEAP_DESC {
7057    pub Type: D3D12_QUERY_HEAP_TYPE,
7058    pub Count: UINT,
7059    pub NodeMask: UINT,
7060}
7061impl Default for D3D12_QUERY_HEAP_DESC {
7062    fn default() -> Self {
7063        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7064        unsafe {
7065            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7066            s.assume_init()
7067        }
7068    }
7069}
7070pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_OCCLUSION: D3D12_QUERY_TYPE = 0;
7071pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_BINARY_OCCLUSION: D3D12_QUERY_TYPE =
7072    1;
7073pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_TIMESTAMP: D3D12_QUERY_TYPE = 2;
7074pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_PIPELINE_STATISTICS:
7075    D3D12_QUERY_TYPE = 3;
7076pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0:
7077    D3D12_QUERY_TYPE = 4;
7078pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1:
7079    D3D12_QUERY_TYPE = 5;
7080pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2:
7081    D3D12_QUERY_TYPE = 6;
7082pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3:
7083    D3D12_QUERY_TYPE = 7;
7084pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS:
7085    D3D12_QUERY_TYPE = 8;
7086pub const D3D12_QUERY_TYPE_D3D12_QUERY_TYPE_PIPELINE_STATISTICS1:
7087    D3D12_QUERY_TYPE = 10;
7088pub type D3D12_QUERY_TYPE = ::std::os::raw::c_int;
7089pub const D3D12_PREDICATION_OP_D3D12_PREDICATION_OP_EQUAL_ZERO:
7090    D3D12_PREDICATION_OP = 0;
7091pub const D3D12_PREDICATION_OP_D3D12_PREDICATION_OP_NOT_EQUAL_ZERO:
7092    D3D12_PREDICATION_OP = 1;
7093pub type D3D12_PREDICATION_OP = ::std::os::raw::c_int;
7094#[repr(C)]
7095#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7096pub struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
7097    pub IAVertices: UINT64,
7098    pub IAPrimitives: UINT64,
7099    pub VSInvocations: UINT64,
7100    pub GSInvocations: UINT64,
7101    pub GSPrimitives: UINT64,
7102    pub CInvocations: UINT64,
7103    pub CPrimitives: UINT64,
7104    pub PSInvocations: UINT64,
7105    pub HSInvocations: UINT64,
7106    pub DSInvocations: UINT64,
7107    pub CSInvocations: UINT64,
7108}
7109#[repr(C)]
7110#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7111pub struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
7112    pub IAVertices: UINT64,
7113    pub IAPrimitives: UINT64,
7114    pub VSInvocations: UINT64,
7115    pub GSInvocations: UINT64,
7116    pub GSPrimitives: UINT64,
7117    pub CInvocations: UINT64,
7118    pub CPrimitives: UINT64,
7119    pub PSInvocations: UINT64,
7120    pub HSInvocations: UINT64,
7121    pub DSInvocations: UINT64,
7122    pub CSInvocations: UINT64,
7123    pub ASInvocations: UINT64,
7124    pub MSInvocations: UINT64,
7125    pub MSPrimitives: UINT64,
7126}
7127#[repr(C)]
7128#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7129pub struct D3D12_QUERY_DATA_SO_STATISTICS {
7130    pub NumPrimitivesWritten: UINT64,
7131    pub PrimitivesStorageNeeded: UINT64,
7132}
7133#[repr(C)]
7134#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7135pub struct D3D12_STREAM_OUTPUT_BUFFER_VIEW {
7136    pub BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
7137    pub SizeInBytes: UINT64,
7138    pub BufferFilledSizeLocation: D3D12_GPU_VIRTUAL_ADDRESS,
7139}
7140#[repr(C)]
7141#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7142pub struct D3D12_DRAW_ARGUMENTS {
7143    pub VertexCountPerInstance: UINT,
7144    pub InstanceCount: UINT,
7145    pub StartVertexLocation: UINT,
7146    pub StartInstanceLocation: UINT,
7147}
7148#[repr(C)]
7149#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7150pub struct D3D12_DRAW_INDEXED_ARGUMENTS {
7151    pub IndexCountPerInstance: UINT,
7152    pub InstanceCount: UINT,
7153    pub StartIndexLocation: UINT,
7154    pub BaseVertexLocation: INT,
7155    pub StartInstanceLocation: UINT,
7156}
7157#[repr(C)]
7158#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7159pub struct D3D12_DISPATCH_ARGUMENTS {
7160    pub ThreadGroupCountX: UINT,
7161    pub ThreadGroupCountY: UINT,
7162    pub ThreadGroupCountZ: UINT,
7163}
7164#[repr(C)]
7165#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7166pub struct D3D12_VERTEX_BUFFER_VIEW {
7167    pub BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
7168    pub SizeInBytes: UINT,
7169    pub StrideInBytes: UINT,
7170}
7171#[repr(C)]
7172#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7173pub struct D3D12_INDEX_BUFFER_VIEW {
7174    pub BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
7175    pub SizeInBytes: UINT,
7176    pub Format: DXGI_FORMAT,
7177}
7178impl Default for D3D12_INDEX_BUFFER_VIEW {
7179    fn default() -> Self {
7180        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7181        unsafe {
7182            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7183            s.assume_init()
7184        }
7185    }
7186}
7187pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_DRAW:
7188    D3D12_INDIRECT_ARGUMENT_TYPE = 0;
7189pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED : D3D12_INDIRECT_ARGUMENT_TYPE = 1 ;
7190pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH:
7191    D3D12_INDIRECT_ARGUMENT_TYPE = 2;
7192pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW : D3D12_INDIRECT_ARGUMENT_TYPE = 3 ;
7193pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW : D3D12_INDIRECT_ARGUMENT_TYPE = 4 ;
7194pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT:
7195    D3D12_INDIRECT_ARGUMENT_TYPE = 5;
7196pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW : D3D12_INDIRECT_ARGUMENT_TYPE = 6 ;
7197pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW : D3D12_INDIRECT_ARGUMENT_TYPE = 7 ;
7198pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW : D3D12_INDIRECT_ARGUMENT_TYPE = 8 ;
7199pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS : D3D12_INDIRECT_ARGUMENT_TYPE = 9 ;
7200pub const D3D12_INDIRECT_ARGUMENT_TYPE_D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH : D3D12_INDIRECT_ARGUMENT_TYPE = 10 ;
7201pub type D3D12_INDIRECT_ARGUMENT_TYPE = ::std::os::raw::c_int;
7202#[repr(C)]
7203#[derive(Copy, Clone)]
7204pub struct D3D12_INDIRECT_ARGUMENT_DESC {
7205    pub Type: D3D12_INDIRECT_ARGUMENT_TYPE,
7206    pub __bindgen_anon_1: D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1,
7207}
7208#[repr(C)]
7209#[derive(Copy, Clone)]
7210pub union D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1 {
7211    pub VertexBuffer: D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_1,
7212    pub Constant: D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_2,
7213    pub ConstantBufferView:
7214        D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_3,
7215    pub ShaderResourceView:
7216        D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_4,
7217    pub UnorderedAccessView:
7218        D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_5,
7219}
7220#[repr(C)]
7221#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7222pub struct D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_1 {
7223    pub Slot: UINT,
7224}
7225#[repr(C)]
7226#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7227pub struct D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_2 {
7228    pub RootParameterIndex: UINT,
7229    pub DestOffsetIn32BitValues: UINT,
7230    pub Num32BitValuesToSet: UINT,
7231}
7232#[repr(C)]
7233#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7234pub struct D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_3 {
7235    pub RootParameterIndex: UINT,
7236}
7237#[repr(C)]
7238#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7239pub struct D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_4 {
7240    pub RootParameterIndex: UINT,
7241}
7242#[repr(C)]
7243#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7244pub struct D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1__bindgen_ty_5 {
7245    pub RootParameterIndex: UINT,
7246}
7247impl Default for D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1 {
7248    fn default() -> Self {
7249        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7250        unsafe {
7251            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7252            s.assume_init()
7253        }
7254    }
7255}
7256impl ::std::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1 {
7257    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7258        write!(f, "D3D12_INDIRECT_ARGUMENT_DESC__bindgen_ty_1 {{ union }}")
7259    }
7260}
7261impl Default for D3D12_INDIRECT_ARGUMENT_DESC {
7262    fn default() -> Self {
7263        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7264        unsafe {
7265            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7266            s.assume_init()
7267        }
7268    }
7269}
7270impl ::std::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC {
7271    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7272        write ! (f , "D3D12_INDIRECT_ARGUMENT_DESC {{ Type: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . __bindgen_anon_1)
7273    }
7274}
7275#[repr(C)]
7276#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7277pub struct D3D12_COMMAND_SIGNATURE_DESC {
7278    pub ByteStride: UINT,
7279    pub NumArgumentDescs: UINT,
7280    pub pArgumentDescs: *const D3D12_INDIRECT_ARGUMENT_DESC,
7281    pub NodeMask: UINT,
7282}
7283impl Default for D3D12_COMMAND_SIGNATURE_DESC {
7284    fn default() -> Self {
7285        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7286        unsafe {
7287            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7288            s.assume_init()
7289        }
7290    }
7291}
7292extern "C" {
7293    pub static IID_ID3D12Pageable: IID;
7294}
7295#[repr(C)]
7296#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7297pub struct ID3D12PageableVtbl {
7298    pub QueryInterface: ::std::option::Option<
7299        unsafe extern "C" fn(
7300            This: *mut ID3D12Pageable,
7301            riid: *const IID,
7302            ppvObject: *mut *mut ::std::os::raw::c_void,
7303        ) -> HRESULT,
7304    >,
7305    pub AddRef: ::std::option::Option<
7306        unsafe extern "C" fn(This: *mut ID3D12Pageable) -> ULONG,
7307    >,
7308    pub Release: ::std::option::Option<
7309        unsafe extern "C" fn(This: *mut ID3D12Pageable) -> ULONG,
7310    >,
7311    pub GetPrivateData: ::std::option::Option<
7312        unsafe extern "C" fn(
7313            This: *mut ID3D12Pageable,
7314            guid: *const GUID,
7315            pDataSize: *mut UINT,
7316            pData: *mut ::std::os::raw::c_void,
7317        ) -> HRESULT,
7318    >,
7319    pub SetPrivateData: ::std::option::Option<
7320        unsafe extern "C" fn(
7321            This: *mut ID3D12Pageable,
7322            guid: *const GUID,
7323            DataSize: UINT,
7324            pData: *const ::std::os::raw::c_void,
7325        ) -> HRESULT,
7326    >,
7327    pub SetPrivateDataInterface: ::std::option::Option<
7328        unsafe extern "C" fn(
7329            This: *mut ID3D12Pageable,
7330            guid: *const GUID,
7331            pData: *const IUnknown,
7332        ) -> HRESULT,
7333    >,
7334    pub SetName: ::std::option::Option<
7335        unsafe extern "C" fn(
7336            This: *mut ID3D12Pageable,
7337            Name: LPCWSTR,
7338        ) -> HRESULT,
7339    >,
7340    pub GetDevice: ::std::option::Option<
7341        unsafe extern "C" fn(
7342            This: *mut ID3D12Pageable,
7343            riid: *const IID,
7344            ppvDevice: *mut *mut ::std::os::raw::c_void,
7345        ) -> HRESULT,
7346    >,
7347}
7348#[repr(C)]
7349#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7350pub struct ID3D12Pageable {
7351    pub lpVtbl: *mut ID3D12PageableVtbl,
7352}
7353impl Default for ID3D12Pageable {
7354    fn default() -> Self {
7355        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7356        unsafe {
7357            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7358            s.assume_init()
7359        }
7360    }
7361}
7362extern "C" {
7363    pub static IID_ID3D12Heap: IID;
7364}
7365#[repr(C)]
7366#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7367pub struct ID3D12HeapVtbl {
7368    pub QueryInterface: ::std::option::Option<
7369        unsafe extern "C" fn(
7370            This: *mut ID3D12Heap,
7371            riid: *const IID,
7372            ppvObject: *mut *mut ::std::os::raw::c_void,
7373        ) -> HRESULT,
7374    >,
7375    pub AddRef: ::std::option::Option<
7376        unsafe extern "C" fn(This: *mut ID3D12Heap) -> ULONG,
7377    >,
7378    pub Release: ::std::option::Option<
7379        unsafe extern "C" fn(This: *mut ID3D12Heap) -> ULONG,
7380    >,
7381    pub GetPrivateData: ::std::option::Option<
7382        unsafe extern "C" fn(
7383            This: *mut ID3D12Heap,
7384            guid: *const GUID,
7385            pDataSize: *mut UINT,
7386            pData: *mut ::std::os::raw::c_void,
7387        ) -> HRESULT,
7388    >,
7389    pub SetPrivateData: ::std::option::Option<
7390        unsafe extern "C" fn(
7391            This: *mut ID3D12Heap,
7392            guid: *const GUID,
7393            DataSize: UINT,
7394            pData: *const ::std::os::raw::c_void,
7395        ) -> HRESULT,
7396    >,
7397    pub SetPrivateDataInterface: ::std::option::Option<
7398        unsafe extern "C" fn(
7399            This: *mut ID3D12Heap,
7400            guid: *const GUID,
7401            pData: *const IUnknown,
7402        ) -> HRESULT,
7403    >,
7404    pub SetName: ::std::option::Option<
7405        unsafe extern "C" fn(This: *mut ID3D12Heap, Name: LPCWSTR) -> HRESULT,
7406    >,
7407    pub GetDevice: ::std::option::Option<
7408        unsafe extern "C" fn(
7409            This: *mut ID3D12Heap,
7410            riid: *const IID,
7411            ppvDevice: *mut *mut ::std::os::raw::c_void,
7412        ) -> HRESULT,
7413    >,
7414    pub GetDesc: ::std::option::Option<
7415        unsafe extern "C" fn(
7416            This: *mut ID3D12Heap,
7417            RetVal: *mut D3D12_HEAP_DESC,
7418        ) -> *mut D3D12_HEAP_DESC,
7419    >,
7420}
7421#[repr(C)]
7422#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7423pub struct ID3D12Heap {
7424    pub lpVtbl: *mut ID3D12HeapVtbl,
7425}
7426impl Default for ID3D12Heap {
7427    fn default() -> Self {
7428        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7429        unsafe {
7430            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7431            s.assume_init()
7432        }
7433    }
7434}
7435extern "C" {
7436    pub static IID_ID3D12Resource: IID;
7437}
7438#[repr(C)]
7439#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7440pub struct ID3D12ResourceVtbl {
7441    pub QueryInterface: ::std::option::Option<
7442        unsafe extern "C" fn(
7443            This: *mut ID3D12Resource,
7444            riid: *const IID,
7445            ppvObject: *mut *mut ::std::os::raw::c_void,
7446        ) -> HRESULT,
7447    >,
7448    pub AddRef: ::std::option::Option<
7449        unsafe extern "C" fn(This: *mut ID3D12Resource) -> ULONG,
7450    >,
7451    pub Release: ::std::option::Option<
7452        unsafe extern "C" fn(This: *mut ID3D12Resource) -> ULONG,
7453    >,
7454    pub GetPrivateData: ::std::option::Option<
7455        unsafe extern "C" fn(
7456            This: *mut ID3D12Resource,
7457            guid: *const GUID,
7458            pDataSize: *mut UINT,
7459            pData: *mut ::std::os::raw::c_void,
7460        ) -> HRESULT,
7461    >,
7462    pub SetPrivateData: ::std::option::Option<
7463        unsafe extern "C" fn(
7464            This: *mut ID3D12Resource,
7465            guid: *const GUID,
7466            DataSize: UINT,
7467            pData: *const ::std::os::raw::c_void,
7468        ) -> HRESULT,
7469    >,
7470    pub SetPrivateDataInterface: ::std::option::Option<
7471        unsafe extern "C" fn(
7472            This: *mut ID3D12Resource,
7473            guid: *const GUID,
7474            pData: *const IUnknown,
7475        ) -> HRESULT,
7476    >,
7477    pub SetName: ::std::option::Option<
7478        unsafe extern "C" fn(
7479            This: *mut ID3D12Resource,
7480            Name: LPCWSTR,
7481        ) -> HRESULT,
7482    >,
7483    pub GetDevice: ::std::option::Option<
7484        unsafe extern "C" fn(
7485            This: *mut ID3D12Resource,
7486            riid: *const IID,
7487            ppvDevice: *mut *mut ::std::os::raw::c_void,
7488        ) -> HRESULT,
7489    >,
7490    pub Map: ::std::option::Option<
7491        unsafe extern "C" fn(
7492            This: *mut ID3D12Resource,
7493            Subresource: UINT,
7494            pReadRange: *const D3D12_RANGE,
7495            ppData: *mut *mut ::std::os::raw::c_void,
7496        ) -> HRESULT,
7497    >,
7498    pub Unmap: ::std::option::Option<
7499        unsafe extern "C" fn(
7500            This: *mut ID3D12Resource,
7501            Subresource: UINT,
7502            pWrittenRange: *const D3D12_RANGE,
7503        ),
7504    >,
7505    pub GetDesc: ::std::option::Option<
7506        unsafe extern "C" fn(
7507            This: *mut ID3D12Resource,
7508            RetVal: *mut D3D12_RESOURCE_DESC,
7509        ) -> *mut D3D12_RESOURCE_DESC,
7510    >,
7511    pub GetGPUVirtualAddress: ::std::option::Option<
7512        unsafe extern "C" fn(
7513            This: *mut ID3D12Resource,
7514        ) -> D3D12_GPU_VIRTUAL_ADDRESS,
7515    >,
7516    pub WriteToSubresource: ::std::option::Option<
7517        unsafe extern "C" fn(
7518            This: *mut ID3D12Resource,
7519            DstSubresource: UINT,
7520            pDstBox: *const D3D12_BOX,
7521            pSrcData: *const ::std::os::raw::c_void,
7522            SrcRowPitch: UINT,
7523            SrcDepthPitch: UINT,
7524        ) -> HRESULT,
7525    >,
7526    pub ReadFromSubresource: ::std::option::Option<
7527        unsafe extern "C" fn(
7528            This: *mut ID3D12Resource,
7529            pDstData: *mut ::std::os::raw::c_void,
7530            DstRowPitch: UINT,
7531            DstDepthPitch: UINT,
7532            SrcSubresource: UINT,
7533            pSrcBox: *const D3D12_BOX,
7534        ) -> HRESULT,
7535    >,
7536    pub GetHeapProperties: ::std::option::Option<
7537        unsafe extern "C" fn(
7538            This: *mut ID3D12Resource,
7539            pHeapProperties: *mut D3D12_HEAP_PROPERTIES,
7540            pHeapFlags: *mut D3D12_HEAP_FLAGS,
7541        ) -> HRESULT,
7542    >,
7543}
7544#[repr(C)]
7545#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7546pub struct ID3D12Resource {
7547    pub lpVtbl: *mut ID3D12ResourceVtbl,
7548}
7549impl Default for ID3D12Resource {
7550    fn default() -> Self {
7551        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7552        unsafe {
7553            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7554            s.assume_init()
7555        }
7556    }
7557}
7558extern "C" {
7559    pub static IID_ID3D12CommandAllocator: IID;
7560}
7561#[repr(C)]
7562#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7563pub struct ID3D12CommandAllocatorVtbl {
7564    pub QueryInterface: ::std::option::Option<
7565        unsafe extern "C" fn(
7566            This: *mut ID3D12CommandAllocator,
7567            riid: *const IID,
7568            ppvObject: *mut *mut ::std::os::raw::c_void,
7569        ) -> HRESULT,
7570    >,
7571    pub AddRef: ::std::option::Option<
7572        unsafe extern "C" fn(This: *mut ID3D12CommandAllocator) -> ULONG,
7573    >,
7574    pub Release: ::std::option::Option<
7575        unsafe extern "C" fn(This: *mut ID3D12CommandAllocator) -> ULONG,
7576    >,
7577    pub GetPrivateData: ::std::option::Option<
7578        unsafe extern "C" fn(
7579            This: *mut ID3D12CommandAllocator,
7580            guid: *const GUID,
7581            pDataSize: *mut UINT,
7582            pData: *mut ::std::os::raw::c_void,
7583        ) -> HRESULT,
7584    >,
7585    pub SetPrivateData: ::std::option::Option<
7586        unsafe extern "C" fn(
7587            This: *mut ID3D12CommandAllocator,
7588            guid: *const GUID,
7589            DataSize: UINT,
7590            pData: *const ::std::os::raw::c_void,
7591        ) -> HRESULT,
7592    >,
7593    pub SetPrivateDataInterface: ::std::option::Option<
7594        unsafe extern "C" fn(
7595            This: *mut ID3D12CommandAllocator,
7596            guid: *const GUID,
7597            pData: *const IUnknown,
7598        ) -> HRESULT,
7599    >,
7600    pub SetName: ::std::option::Option<
7601        unsafe extern "C" fn(
7602            This: *mut ID3D12CommandAllocator,
7603            Name: LPCWSTR,
7604        ) -> HRESULT,
7605    >,
7606    pub GetDevice: ::std::option::Option<
7607        unsafe extern "C" fn(
7608            This: *mut ID3D12CommandAllocator,
7609            riid: *const IID,
7610            ppvDevice: *mut *mut ::std::os::raw::c_void,
7611        ) -> HRESULT,
7612    >,
7613    pub Reset: ::std::option::Option<
7614        unsafe extern "C" fn(This: *mut ID3D12CommandAllocator) -> HRESULT,
7615    >,
7616}
7617#[repr(C)]
7618#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7619pub struct ID3D12CommandAllocator {
7620    pub lpVtbl: *mut ID3D12CommandAllocatorVtbl,
7621}
7622impl Default for ID3D12CommandAllocator {
7623    fn default() -> Self {
7624        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7625        unsafe {
7626            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7627            s.assume_init()
7628        }
7629    }
7630}
7631extern "C" {
7632    pub static IID_ID3D12Fence: IID;
7633}
7634#[repr(C)]
7635#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7636pub struct ID3D12FenceVtbl {
7637    pub QueryInterface: ::std::option::Option<
7638        unsafe extern "C" fn(
7639            This: *mut ID3D12Fence,
7640            riid: *const IID,
7641            ppvObject: *mut *mut ::std::os::raw::c_void,
7642        ) -> HRESULT,
7643    >,
7644    pub AddRef: ::std::option::Option<
7645        unsafe extern "C" fn(This: *mut ID3D12Fence) -> ULONG,
7646    >,
7647    pub Release: ::std::option::Option<
7648        unsafe extern "C" fn(This: *mut ID3D12Fence) -> ULONG,
7649    >,
7650    pub GetPrivateData: ::std::option::Option<
7651        unsafe extern "C" fn(
7652            This: *mut ID3D12Fence,
7653            guid: *const GUID,
7654            pDataSize: *mut UINT,
7655            pData: *mut ::std::os::raw::c_void,
7656        ) -> HRESULT,
7657    >,
7658    pub SetPrivateData: ::std::option::Option<
7659        unsafe extern "C" fn(
7660            This: *mut ID3D12Fence,
7661            guid: *const GUID,
7662            DataSize: UINT,
7663            pData: *const ::std::os::raw::c_void,
7664        ) -> HRESULT,
7665    >,
7666    pub SetPrivateDataInterface: ::std::option::Option<
7667        unsafe extern "C" fn(
7668            This: *mut ID3D12Fence,
7669            guid: *const GUID,
7670            pData: *const IUnknown,
7671        ) -> HRESULT,
7672    >,
7673    pub SetName: ::std::option::Option<
7674        unsafe extern "C" fn(This: *mut ID3D12Fence, Name: LPCWSTR) -> HRESULT,
7675    >,
7676    pub GetDevice: ::std::option::Option<
7677        unsafe extern "C" fn(
7678            This: *mut ID3D12Fence,
7679            riid: *const IID,
7680            ppvDevice: *mut *mut ::std::os::raw::c_void,
7681        ) -> HRESULT,
7682    >,
7683    pub GetCompletedValue: ::std::option::Option<
7684        unsafe extern "C" fn(This: *mut ID3D12Fence) -> UINT64,
7685    >,
7686    pub SetEventOnCompletion: ::std::option::Option<
7687        unsafe extern "C" fn(
7688            This: *mut ID3D12Fence,
7689            Value: UINT64,
7690            hEvent: HANDLE,
7691        ) -> HRESULT,
7692    >,
7693    pub Signal: ::std::option::Option<
7694        unsafe extern "C" fn(This: *mut ID3D12Fence, Value: UINT64) -> HRESULT,
7695    >,
7696}
7697#[repr(C)]
7698#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7699pub struct ID3D12Fence {
7700    pub lpVtbl: *mut ID3D12FenceVtbl,
7701}
7702impl Default for ID3D12Fence {
7703    fn default() -> Self {
7704        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7705        unsafe {
7706            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7707            s.assume_init()
7708        }
7709    }
7710}
7711extern "C" {
7712    pub static IID_ID3D12Fence1: IID;
7713}
7714#[repr(C)]
7715#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7716pub struct ID3D12Fence1Vtbl {
7717    pub QueryInterface: ::std::option::Option<
7718        unsafe extern "C" fn(
7719            This: *mut ID3D12Fence1,
7720            riid: *const IID,
7721            ppvObject: *mut *mut ::std::os::raw::c_void,
7722        ) -> HRESULT,
7723    >,
7724    pub AddRef: ::std::option::Option<
7725        unsafe extern "C" fn(This: *mut ID3D12Fence1) -> ULONG,
7726    >,
7727    pub Release: ::std::option::Option<
7728        unsafe extern "C" fn(This: *mut ID3D12Fence1) -> ULONG,
7729    >,
7730    pub GetPrivateData: ::std::option::Option<
7731        unsafe extern "C" fn(
7732            This: *mut ID3D12Fence1,
7733            guid: *const GUID,
7734            pDataSize: *mut UINT,
7735            pData: *mut ::std::os::raw::c_void,
7736        ) -> HRESULT,
7737    >,
7738    pub SetPrivateData: ::std::option::Option<
7739        unsafe extern "C" fn(
7740            This: *mut ID3D12Fence1,
7741            guid: *const GUID,
7742            DataSize: UINT,
7743            pData: *const ::std::os::raw::c_void,
7744        ) -> HRESULT,
7745    >,
7746    pub SetPrivateDataInterface: ::std::option::Option<
7747        unsafe extern "C" fn(
7748            This: *mut ID3D12Fence1,
7749            guid: *const GUID,
7750            pData: *const IUnknown,
7751        ) -> HRESULT,
7752    >,
7753    pub SetName: ::std::option::Option<
7754        unsafe extern "C" fn(This: *mut ID3D12Fence1, Name: LPCWSTR) -> HRESULT,
7755    >,
7756    pub GetDevice: ::std::option::Option<
7757        unsafe extern "C" fn(
7758            This: *mut ID3D12Fence1,
7759            riid: *const IID,
7760            ppvDevice: *mut *mut ::std::os::raw::c_void,
7761        ) -> HRESULT,
7762    >,
7763    pub GetCompletedValue: ::std::option::Option<
7764        unsafe extern "C" fn(This: *mut ID3D12Fence1) -> UINT64,
7765    >,
7766    pub SetEventOnCompletion: ::std::option::Option<
7767        unsafe extern "C" fn(
7768            This: *mut ID3D12Fence1,
7769            Value: UINT64,
7770            hEvent: HANDLE,
7771        ) -> HRESULT,
7772    >,
7773    pub Signal: ::std::option::Option<
7774        unsafe extern "C" fn(This: *mut ID3D12Fence1, Value: UINT64) -> HRESULT,
7775    >,
7776    pub GetCreationFlags: ::std::option::Option<
7777        unsafe extern "C" fn(This: *mut ID3D12Fence1) -> D3D12_FENCE_FLAGS,
7778    >,
7779}
7780#[repr(C)]
7781#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7782pub struct ID3D12Fence1 {
7783    pub lpVtbl: *mut ID3D12Fence1Vtbl,
7784}
7785impl Default for ID3D12Fence1 {
7786    fn default() -> Self {
7787        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7788        unsafe {
7789            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7790            s.assume_init()
7791        }
7792    }
7793}
7794extern "C" {
7795    pub static IID_ID3D12PipelineState: IID;
7796}
7797#[repr(C)]
7798#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7799pub struct ID3D12PipelineStateVtbl {
7800    pub QueryInterface: ::std::option::Option<
7801        unsafe extern "C" fn(
7802            This: *mut ID3D12PipelineState,
7803            riid: *const IID,
7804            ppvObject: *mut *mut ::std::os::raw::c_void,
7805        ) -> HRESULT,
7806    >,
7807    pub AddRef: ::std::option::Option<
7808        unsafe extern "C" fn(This: *mut ID3D12PipelineState) -> ULONG,
7809    >,
7810    pub Release: ::std::option::Option<
7811        unsafe extern "C" fn(This: *mut ID3D12PipelineState) -> ULONG,
7812    >,
7813    pub GetPrivateData: ::std::option::Option<
7814        unsafe extern "C" fn(
7815            This: *mut ID3D12PipelineState,
7816            guid: *const GUID,
7817            pDataSize: *mut UINT,
7818            pData: *mut ::std::os::raw::c_void,
7819        ) -> HRESULT,
7820    >,
7821    pub SetPrivateData: ::std::option::Option<
7822        unsafe extern "C" fn(
7823            This: *mut ID3D12PipelineState,
7824            guid: *const GUID,
7825            DataSize: UINT,
7826            pData: *const ::std::os::raw::c_void,
7827        ) -> HRESULT,
7828    >,
7829    pub SetPrivateDataInterface: ::std::option::Option<
7830        unsafe extern "C" fn(
7831            This: *mut ID3D12PipelineState,
7832            guid: *const GUID,
7833            pData: *const IUnknown,
7834        ) -> HRESULT,
7835    >,
7836    pub SetName: ::std::option::Option<
7837        unsafe extern "C" fn(
7838            This: *mut ID3D12PipelineState,
7839            Name: LPCWSTR,
7840        ) -> HRESULT,
7841    >,
7842    pub GetDevice: ::std::option::Option<
7843        unsafe extern "C" fn(
7844            This: *mut ID3D12PipelineState,
7845            riid: *const IID,
7846            ppvDevice: *mut *mut ::std::os::raw::c_void,
7847        ) -> HRESULT,
7848    >,
7849    pub GetCachedBlob: ::std::option::Option<
7850        unsafe extern "C" fn(
7851            This: *mut ID3D12PipelineState,
7852            ppBlob: *mut *mut ID3DBlob,
7853        ) -> HRESULT,
7854    >,
7855}
7856#[repr(C)]
7857#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7858pub struct ID3D12PipelineState {
7859    pub lpVtbl: *mut ID3D12PipelineStateVtbl,
7860}
7861impl Default for ID3D12PipelineState {
7862    fn default() -> Self {
7863        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7864        unsafe {
7865            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7866            s.assume_init()
7867        }
7868    }
7869}
7870extern "C" {
7871    pub static IID_ID3D12DescriptorHeap: IID;
7872}
7873#[repr(C)]
7874#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7875pub struct ID3D12DescriptorHeapVtbl {
7876    pub QueryInterface: ::std::option::Option<
7877        unsafe extern "C" fn(
7878            This: *mut ID3D12DescriptorHeap,
7879            riid: *const IID,
7880            ppvObject: *mut *mut ::std::os::raw::c_void,
7881        ) -> HRESULT,
7882    >,
7883    pub AddRef: ::std::option::Option<
7884        unsafe extern "C" fn(This: *mut ID3D12DescriptorHeap) -> ULONG,
7885    >,
7886    pub Release: ::std::option::Option<
7887        unsafe extern "C" fn(This: *mut ID3D12DescriptorHeap) -> ULONG,
7888    >,
7889    pub GetPrivateData: ::std::option::Option<
7890        unsafe extern "C" fn(
7891            This: *mut ID3D12DescriptorHeap,
7892            guid: *const GUID,
7893            pDataSize: *mut UINT,
7894            pData: *mut ::std::os::raw::c_void,
7895        ) -> HRESULT,
7896    >,
7897    pub SetPrivateData: ::std::option::Option<
7898        unsafe extern "C" fn(
7899            This: *mut ID3D12DescriptorHeap,
7900            guid: *const GUID,
7901            DataSize: UINT,
7902            pData: *const ::std::os::raw::c_void,
7903        ) -> HRESULT,
7904    >,
7905    pub SetPrivateDataInterface: ::std::option::Option<
7906        unsafe extern "C" fn(
7907            This: *mut ID3D12DescriptorHeap,
7908            guid: *const GUID,
7909            pData: *const IUnknown,
7910        ) -> HRESULT,
7911    >,
7912    pub SetName: ::std::option::Option<
7913        unsafe extern "C" fn(
7914            This: *mut ID3D12DescriptorHeap,
7915            Name: LPCWSTR,
7916        ) -> HRESULT,
7917    >,
7918    pub GetDevice: ::std::option::Option<
7919        unsafe extern "C" fn(
7920            This: *mut ID3D12DescriptorHeap,
7921            riid: *const IID,
7922            ppvDevice: *mut *mut ::std::os::raw::c_void,
7923        ) -> HRESULT,
7924    >,
7925    pub GetDesc: ::std::option::Option<
7926        unsafe extern "C" fn(
7927            This: *mut ID3D12DescriptorHeap,
7928            RetVal: *mut D3D12_DESCRIPTOR_HEAP_DESC,
7929        ) -> *mut D3D12_DESCRIPTOR_HEAP_DESC,
7930    >,
7931    pub GetCPUDescriptorHandleForHeapStart: ::std::option::Option<
7932        unsafe extern "C" fn(
7933            This: *mut ID3D12DescriptorHeap,
7934            RetVal: *mut D3D12_CPU_DESCRIPTOR_HANDLE,
7935        ) -> *mut D3D12_CPU_DESCRIPTOR_HANDLE,
7936    >,
7937    pub GetGPUDescriptorHandleForHeapStart: ::std::option::Option<
7938        unsafe extern "C" fn(
7939            This: *mut ID3D12DescriptorHeap,
7940            RetVal: *mut D3D12_GPU_DESCRIPTOR_HANDLE,
7941        ) -> *mut D3D12_GPU_DESCRIPTOR_HANDLE,
7942    >,
7943}
7944#[repr(C)]
7945#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7946pub struct ID3D12DescriptorHeap {
7947    pub lpVtbl: *mut ID3D12DescriptorHeapVtbl,
7948}
7949impl Default for ID3D12DescriptorHeap {
7950    fn default() -> Self {
7951        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7952        unsafe {
7953            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7954            s.assume_init()
7955        }
7956    }
7957}
7958extern "C" {
7959    pub static IID_ID3D12QueryHeap: IID;
7960}
7961#[repr(C)]
7962#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7963pub struct ID3D12QueryHeapVtbl {
7964    pub QueryInterface: ::std::option::Option<
7965        unsafe extern "C" fn(
7966            This: *mut ID3D12QueryHeap,
7967            riid: *const IID,
7968            ppvObject: *mut *mut ::std::os::raw::c_void,
7969        ) -> HRESULT,
7970    >,
7971    pub AddRef: ::std::option::Option<
7972        unsafe extern "C" fn(This: *mut ID3D12QueryHeap) -> ULONG,
7973    >,
7974    pub Release: ::std::option::Option<
7975        unsafe extern "C" fn(This: *mut ID3D12QueryHeap) -> ULONG,
7976    >,
7977    pub GetPrivateData: ::std::option::Option<
7978        unsafe extern "C" fn(
7979            This: *mut ID3D12QueryHeap,
7980            guid: *const GUID,
7981            pDataSize: *mut UINT,
7982            pData: *mut ::std::os::raw::c_void,
7983        ) -> HRESULT,
7984    >,
7985    pub SetPrivateData: ::std::option::Option<
7986        unsafe extern "C" fn(
7987            This: *mut ID3D12QueryHeap,
7988            guid: *const GUID,
7989            DataSize: UINT,
7990            pData: *const ::std::os::raw::c_void,
7991        ) -> HRESULT,
7992    >,
7993    pub SetPrivateDataInterface: ::std::option::Option<
7994        unsafe extern "C" fn(
7995            This: *mut ID3D12QueryHeap,
7996            guid: *const GUID,
7997            pData: *const IUnknown,
7998        ) -> HRESULT,
7999    >,
8000    pub SetName: ::std::option::Option<
8001        unsafe extern "C" fn(
8002            This: *mut ID3D12QueryHeap,
8003            Name: LPCWSTR,
8004        ) -> HRESULT,
8005    >,
8006    pub GetDevice: ::std::option::Option<
8007        unsafe extern "C" fn(
8008            This: *mut ID3D12QueryHeap,
8009            riid: *const IID,
8010            ppvDevice: *mut *mut ::std::os::raw::c_void,
8011        ) -> HRESULT,
8012    >,
8013}
8014#[repr(C)]
8015#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8016pub struct ID3D12QueryHeap {
8017    pub lpVtbl: *mut ID3D12QueryHeapVtbl,
8018}
8019impl Default for ID3D12QueryHeap {
8020    fn default() -> Self {
8021        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8022        unsafe {
8023            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8024            s.assume_init()
8025        }
8026    }
8027}
8028extern "C" {
8029    pub static IID_ID3D12CommandSignature: IID;
8030}
8031#[repr(C)]
8032#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8033pub struct ID3D12CommandSignatureVtbl {
8034    pub QueryInterface: ::std::option::Option<
8035        unsafe extern "C" fn(
8036            This: *mut ID3D12CommandSignature,
8037            riid: *const IID,
8038            ppvObject: *mut *mut ::std::os::raw::c_void,
8039        ) -> HRESULT,
8040    >,
8041    pub AddRef: ::std::option::Option<
8042        unsafe extern "C" fn(This: *mut ID3D12CommandSignature) -> ULONG,
8043    >,
8044    pub Release: ::std::option::Option<
8045        unsafe extern "C" fn(This: *mut ID3D12CommandSignature) -> ULONG,
8046    >,
8047    pub GetPrivateData: ::std::option::Option<
8048        unsafe extern "C" fn(
8049            This: *mut ID3D12CommandSignature,
8050            guid: *const GUID,
8051            pDataSize: *mut UINT,
8052            pData: *mut ::std::os::raw::c_void,
8053        ) -> HRESULT,
8054    >,
8055    pub SetPrivateData: ::std::option::Option<
8056        unsafe extern "C" fn(
8057            This: *mut ID3D12CommandSignature,
8058            guid: *const GUID,
8059            DataSize: UINT,
8060            pData: *const ::std::os::raw::c_void,
8061        ) -> HRESULT,
8062    >,
8063    pub SetPrivateDataInterface: ::std::option::Option<
8064        unsafe extern "C" fn(
8065            This: *mut ID3D12CommandSignature,
8066            guid: *const GUID,
8067            pData: *const IUnknown,
8068        ) -> HRESULT,
8069    >,
8070    pub SetName: ::std::option::Option<
8071        unsafe extern "C" fn(
8072            This: *mut ID3D12CommandSignature,
8073            Name: LPCWSTR,
8074        ) -> HRESULT,
8075    >,
8076    pub GetDevice: ::std::option::Option<
8077        unsafe extern "C" fn(
8078            This: *mut ID3D12CommandSignature,
8079            riid: *const IID,
8080            ppvDevice: *mut *mut ::std::os::raw::c_void,
8081        ) -> HRESULT,
8082    >,
8083}
8084#[repr(C)]
8085#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8086pub struct ID3D12CommandSignature {
8087    pub lpVtbl: *mut ID3D12CommandSignatureVtbl,
8088}
8089impl Default for ID3D12CommandSignature {
8090    fn default() -> Self {
8091        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8092        unsafe {
8093            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8094            s.assume_init()
8095        }
8096    }
8097}
8098extern "C" {
8099    pub static IID_ID3D12CommandList: IID;
8100}
8101#[repr(C)]
8102#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8103pub struct ID3D12CommandListVtbl {
8104    pub QueryInterface: ::std::option::Option<
8105        unsafe extern "C" fn(
8106            This: *mut ID3D12CommandList,
8107            riid: *const IID,
8108            ppvObject: *mut *mut ::std::os::raw::c_void,
8109        ) -> HRESULT,
8110    >,
8111    pub AddRef: ::std::option::Option<
8112        unsafe extern "C" fn(This: *mut ID3D12CommandList) -> ULONG,
8113    >,
8114    pub Release: ::std::option::Option<
8115        unsafe extern "C" fn(This: *mut ID3D12CommandList) -> ULONG,
8116    >,
8117    pub GetPrivateData: ::std::option::Option<
8118        unsafe extern "C" fn(
8119            This: *mut ID3D12CommandList,
8120            guid: *const GUID,
8121            pDataSize: *mut UINT,
8122            pData: *mut ::std::os::raw::c_void,
8123        ) -> HRESULT,
8124    >,
8125    pub SetPrivateData: ::std::option::Option<
8126        unsafe extern "C" fn(
8127            This: *mut ID3D12CommandList,
8128            guid: *const GUID,
8129            DataSize: UINT,
8130            pData: *const ::std::os::raw::c_void,
8131        ) -> HRESULT,
8132    >,
8133    pub SetPrivateDataInterface: ::std::option::Option<
8134        unsafe extern "C" fn(
8135            This: *mut ID3D12CommandList,
8136            guid: *const GUID,
8137            pData: *const IUnknown,
8138        ) -> HRESULT,
8139    >,
8140    pub SetName: ::std::option::Option<
8141        unsafe extern "C" fn(
8142            This: *mut ID3D12CommandList,
8143            Name: LPCWSTR,
8144        ) -> HRESULT,
8145    >,
8146    pub GetDevice: ::std::option::Option<
8147        unsafe extern "C" fn(
8148            This: *mut ID3D12CommandList,
8149            riid: *const IID,
8150            ppvDevice: *mut *mut ::std::os::raw::c_void,
8151        ) -> HRESULT,
8152    >,
8153    pub GetType: ::std::option::Option<
8154        unsafe extern "C" fn(
8155            This: *mut ID3D12CommandList,
8156        ) -> D3D12_COMMAND_LIST_TYPE,
8157    >,
8158}
8159#[repr(C)]
8160#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8161pub struct ID3D12CommandList {
8162    pub lpVtbl: *mut ID3D12CommandListVtbl,
8163}
8164impl Default for ID3D12CommandList {
8165    fn default() -> Self {
8166        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8167        unsafe {
8168            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8169            s.assume_init()
8170        }
8171    }
8172}
8173extern "C" {
8174    pub static IID_ID3D12GraphicsCommandList: IID;
8175}
8176#[repr(C)]
8177#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8178pub struct ID3D12GraphicsCommandListVtbl {
8179    pub QueryInterface: ::std::option::Option<
8180        unsafe extern "C" fn(
8181            This: *mut ID3D12GraphicsCommandList,
8182            riid: *const IID,
8183            ppvObject: *mut *mut ::std::os::raw::c_void,
8184        ) -> HRESULT,
8185    >,
8186    pub AddRef: ::std::option::Option<
8187        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList) -> ULONG,
8188    >,
8189    pub Release: ::std::option::Option<
8190        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList) -> ULONG,
8191    >,
8192    pub GetPrivateData: ::std::option::Option<
8193        unsafe extern "C" fn(
8194            This: *mut ID3D12GraphicsCommandList,
8195            guid: *const GUID,
8196            pDataSize: *mut UINT,
8197            pData: *mut ::std::os::raw::c_void,
8198        ) -> HRESULT,
8199    >,
8200    pub SetPrivateData: ::std::option::Option<
8201        unsafe extern "C" fn(
8202            This: *mut ID3D12GraphicsCommandList,
8203            guid: *const GUID,
8204            DataSize: UINT,
8205            pData: *const ::std::os::raw::c_void,
8206        ) -> HRESULT,
8207    >,
8208    pub SetPrivateDataInterface: ::std::option::Option<
8209        unsafe extern "C" fn(
8210            This: *mut ID3D12GraphicsCommandList,
8211            guid: *const GUID,
8212            pData: *const IUnknown,
8213        ) -> HRESULT,
8214    >,
8215    pub SetName: ::std::option::Option<
8216        unsafe extern "C" fn(
8217            This: *mut ID3D12GraphicsCommandList,
8218            Name: LPCWSTR,
8219        ) -> HRESULT,
8220    >,
8221    pub GetDevice: ::std::option::Option<
8222        unsafe extern "C" fn(
8223            This: *mut ID3D12GraphicsCommandList,
8224            riid: *const IID,
8225            ppvDevice: *mut *mut ::std::os::raw::c_void,
8226        ) -> HRESULT,
8227    >,
8228    pub GetType: ::std::option::Option<
8229        unsafe extern "C" fn(
8230            This: *mut ID3D12GraphicsCommandList,
8231        ) -> D3D12_COMMAND_LIST_TYPE,
8232    >,
8233    pub Close: ::std::option::Option<
8234        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList) -> HRESULT,
8235    >,
8236    pub Reset: ::std::option::Option<
8237        unsafe extern "C" fn(
8238            This: *mut ID3D12GraphicsCommandList,
8239            pAllocator: *mut ID3D12CommandAllocator,
8240            pInitialState: *mut ID3D12PipelineState,
8241        ) -> HRESULT,
8242    >,
8243    pub ClearState: ::std::option::Option<
8244        unsafe extern "C" fn(
8245            This: *mut ID3D12GraphicsCommandList,
8246            pPipelineState: *mut ID3D12PipelineState,
8247        ),
8248    >,
8249    pub DrawInstanced: ::std::option::Option<
8250        unsafe extern "C" fn(
8251            This: *mut ID3D12GraphicsCommandList,
8252            VertexCountPerInstance: UINT,
8253            InstanceCount: UINT,
8254            StartVertexLocation: UINT,
8255            StartInstanceLocation: UINT,
8256        ),
8257    >,
8258    pub DrawIndexedInstanced: ::std::option::Option<
8259        unsafe extern "C" fn(
8260            This: *mut ID3D12GraphicsCommandList,
8261            IndexCountPerInstance: UINT,
8262            InstanceCount: UINT,
8263            StartIndexLocation: UINT,
8264            BaseVertexLocation: INT,
8265            StartInstanceLocation: UINT,
8266        ),
8267    >,
8268    pub Dispatch: ::std::option::Option<
8269        unsafe extern "C" fn(
8270            This: *mut ID3D12GraphicsCommandList,
8271            ThreadGroupCountX: UINT,
8272            ThreadGroupCountY: UINT,
8273            ThreadGroupCountZ: UINT,
8274        ),
8275    >,
8276    pub CopyBufferRegion: ::std::option::Option<
8277        unsafe extern "C" fn(
8278            This: *mut ID3D12GraphicsCommandList,
8279            pDstBuffer: *mut ID3D12Resource,
8280            DstOffset: UINT64,
8281            pSrcBuffer: *mut ID3D12Resource,
8282            SrcOffset: UINT64,
8283            NumBytes: UINT64,
8284        ),
8285    >,
8286    pub CopyTextureRegion: ::std::option::Option<
8287        unsafe extern "C" fn(
8288            This: *mut ID3D12GraphicsCommandList,
8289            pDst: *const D3D12_TEXTURE_COPY_LOCATION,
8290            DstX: UINT,
8291            DstY: UINT,
8292            DstZ: UINT,
8293            pSrc: *const D3D12_TEXTURE_COPY_LOCATION,
8294            pSrcBox: *const D3D12_BOX,
8295        ),
8296    >,
8297    pub CopyResource: ::std::option::Option<
8298        unsafe extern "C" fn(
8299            This: *mut ID3D12GraphicsCommandList,
8300            pDstResource: *mut ID3D12Resource,
8301            pSrcResource: *mut ID3D12Resource,
8302        ),
8303    >,
8304    pub CopyTiles: ::std::option::Option<
8305        unsafe extern "C" fn(
8306            This: *mut ID3D12GraphicsCommandList,
8307            pTiledResource: *mut ID3D12Resource,
8308            pTileRegionStartCoordinate: *const D3D12_TILED_RESOURCE_COORDINATE,
8309            pTileRegionSize: *const D3D12_TILE_REGION_SIZE,
8310            pBuffer: *mut ID3D12Resource,
8311            BufferStartOffsetInBytes: UINT64,
8312            Flags: D3D12_TILE_COPY_FLAGS,
8313        ),
8314    >,
8315    pub ResolveSubresource: ::std::option::Option<
8316        unsafe extern "C" fn(
8317            This: *mut ID3D12GraphicsCommandList,
8318            pDstResource: *mut ID3D12Resource,
8319            DstSubresource: UINT,
8320            pSrcResource: *mut ID3D12Resource,
8321            SrcSubresource: UINT,
8322            Format: DXGI_FORMAT,
8323        ),
8324    >,
8325    pub IASetPrimitiveTopology: ::std::option::Option<
8326        unsafe extern "C" fn(
8327            This: *mut ID3D12GraphicsCommandList,
8328            PrimitiveTopology: D3D12_PRIMITIVE_TOPOLOGY,
8329        ),
8330    >,
8331    pub RSSetViewports: ::std::option::Option<
8332        unsafe extern "C" fn(
8333            This: *mut ID3D12GraphicsCommandList,
8334            NumViewports: UINT,
8335            pViewports: *const D3D12_VIEWPORT,
8336        ),
8337    >,
8338    pub RSSetScissorRects: ::std::option::Option<
8339        unsafe extern "C" fn(
8340            This: *mut ID3D12GraphicsCommandList,
8341            NumRects: UINT,
8342            pRects: *const D3D12_RECT,
8343        ),
8344    >,
8345    pub OMSetBlendFactor: ::std::option::Option<
8346        unsafe extern "C" fn(
8347            This: *mut ID3D12GraphicsCommandList,
8348            BlendFactor: *const FLOAT,
8349        ),
8350    >,
8351    pub OMSetStencilRef: ::std::option::Option<
8352        unsafe extern "C" fn(
8353            This: *mut ID3D12GraphicsCommandList,
8354            StencilRef: UINT,
8355        ),
8356    >,
8357    pub SetPipelineState: ::std::option::Option<
8358        unsafe extern "C" fn(
8359            This: *mut ID3D12GraphicsCommandList,
8360            pPipelineState: *mut ID3D12PipelineState,
8361        ),
8362    >,
8363    pub ResourceBarrier: ::std::option::Option<
8364        unsafe extern "C" fn(
8365            This: *mut ID3D12GraphicsCommandList,
8366            NumBarriers: UINT,
8367            pBarriers: *const D3D12_RESOURCE_BARRIER,
8368        ),
8369    >,
8370    pub ExecuteBundle: ::std::option::Option<
8371        unsafe extern "C" fn(
8372            This: *mut ID3D12GraphicsCommandList,
8373            pCommandList: *mut ID3D12GraphicsCommandList,
8374        ),
8375    >,
8376    pub SetDescriptorHeaps: ::std::option::Option<
8377        unsafe extern "C" fn(
8378            This: *mut ID3D12GraphicsCommandList,
8379            NumDescriptorHeaps: UINT,
8380            ppDescriptorHeaps: *const *mut ID3D12DescriptorHeap,
8381        ),
8382    >,
8383    pub SetComputeRootSignature: ::std::option::Option<
8384        unsafe extern "C" fn(
8385            This: *mut ID3D12GraphicsCommandList,
8386            pRootSignature: *mut ID3D12RootSignature,
8387        ),
8388    >,
8389    pub SetGraphicsRootSignature: ::std::option::Option<
8390        unsafe extern "C" fn(
8391            This: *mut ID3D12GraphicsCommandList,
8392            pRootSignature: *mut ID3D12RootSignature,
8393        ),
8394    >,
8395    pub SetComputeRootDescriptorTable: ::std::option::Option<
8396        unsafe extern "C" fn(
8397            This: *mut ID3D12GraphicsCommandList,
8398            RootParameterIndex: UINT,
8399            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
8400        ),
8401    >,
8402    pub SetGraphicsRootDescriptorTable: ::std::option::Option<
8403        unsafe extern "C" fn(
8404            This: *mut ID3D12GraphicsCommandList,
8405            RootParameterIndex: UINT,
8406            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
8407        ),
8408    >,
8409    pub SetComputeRoot32BitConstant: ::std::option::Option<
8410        unsafe extern "C" fn(
8411            This: *mut ID3D12GraphicsCommandList,
8412            RootParameterIndex: UINT,
8413            SrcData: UINT,
8414            DestOffsetIn32BitValues: UINT,
8415        ),
8416    >,
8417    pub SetGraphicsRoot32BitConstant: ::std::option::Option<
8418        unsafe extern "C" fn(
8419            This: *mut ID3D12GraphicsCommandList,
8420            RootParameterIndex: UINT,
8421            SrcData: UINT,
8422            DestOffsetIn32BitValues: UINT,
8423        ),
8424    >,
8425    pub SetComputeRoot32BitConstants: ::std::option::Option<
8426        unsafe extern "C" fn(
8427            This: *mut ID3D12GraphicsCommandList,
8428            RootParameterIndex: UINT,
8429            Num32BitValuesToSet: UINT,
8430            pSrcData: *const ::std::os::raw::c_void,
8431            DestOffsetIn32BitValues: UINT,
8432        ),
8433    >,
8434    pub SetGraphicsRoot32BitConstants: ::std::option::Option<
8435        unsafe extern "C" fn(
8436            This: *mut ID3D12GraphicsCommandList,
8437            RootParameterIndex: UINT,
8438            Num32BitValuesToSet: UINT,
8439            pSrcData: *const ::std::os::raw::c_void,
8440            DestOffsetIn32BitValues: UINT,
8441        ),
8442    >,
8443    pub SetComputeRootConstantBufferView: ::std::option::Option<
8444        unsafe extern "C" fn(
8445            This: *mut ID3D12GraphicsCommandList,
8446            RootParameterIndex: UINT,
8447            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8448        ),
8449    >,
8450    pub SetGraphicsRootConstantBufferView: ::std::option::Option<
8451        unsafe extern "C" fn(
8452            This: *mut ID3D12GraphicsCommandList,
8453            RootParameterIndex: UINT,
8454            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8455        ),
8456    >,
8457    pub SetComputeRootShaderResourceView: ::std::option::Option<
8458        unsafe extern "C" fn(
8459            This: *mut ID3D12GraphicsCommandList,
8460            RootParameterIndex: UINT,
8461            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8462        ),
8463    >,
8464    pub SetGraphicsRootShaderResourceView: ::std::option::Option<
8465        unsafe extern "C" fn(
8466            This: *mut ID3D12GraphicsCommandList,
8467            RootParameterIndex: UINT,
8468            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8469        ),
8470    >,
8471    pub SetComputeRootUnorderedAccessView: ::std::option::Option<
8472        unsafe extern "C" fn(
8473            This: *mut ID3D12GraphicsCommandList,
8474            RootParameterIndex: UINT,
8475            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8476        ),
8477    >,
8478    pub SetGraphicsRootUnorderedAccessView: ::std::option::Option<
8479        unsafe extern "C" fn(
8480            This: *mut ID3D12GraphicsCommandList,
8481            RootParameterIndex: UINT,
8482            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8483        ),
8484    >,
8485    pub IASetIndexBuffer: ::std::option::Option<
8486        unsafe extern "C" fn(
8487            This: *mut ID3D12GraphicsCommandList,
8488            pView: *const D3D12_INDEX_BUFFER_VIEW,
8489        ),
8490    >,
8491    pub IASetVertexBuffers: ::std::option::Option<
8492        unsafe extern "C" fn(
8493            This: *mut ID3D12GraphicsCommandList,
8494            StartSlot: UINT,
8495            NumViews: UINT,
8496            pViews: *const D3D12_VERTEX_BUFFER_VIEW,
8497        ),
8498    >,
8499    pub SOSetTargets: ::std::option::Option<
8500        unsafe extern "C" fn(
8501            This: *mut ID3D12GraphicsCommandList,
8502            StartSlot: UINT,
8503            NumViews: UINT,
8504            pViews: *const D3D12_STREAM_OUTPUT_BUFFER_VIEW,
8505        ),
8506    >,
8507    pub OMSetRenderTargets: ::std::option::Option<
8508        unsafe extern "C" fn(
8509            This: *mut ID3D12GraphicsCommandList,
8510            NumRenderTargetDescriptors: UINT,
8511            pRenderTargetDescriptors: *const D3D12_CPU_DESCRIPTOR_HANDLE,
8512            RTsSingleHandleToDescriptorRange: BOOL,
8513            pDepthStencilDescriptor: *const D3D12_CPU_DESCRIPTOR_HANDLE,
8514        ),
8515    >,
8516    pub ClearDepthStencilView: ::std::option::Option<
8517        unsafe extern "C" fn(
8518            This: *mut ID3D12GraphicsCommandList,
8519            DepthStencilView: D3D12_CPU_DESCRIPTOR_HANDLE,
8520            ClearFlags: D3D12_CLEAR_FLAGS,
8521            Depth: FLOAT,
8522            Stencil: UINT8,
8523            NumRects: UINT,
8524            pRects: *const D3D12_RECT,
8525        ),
8526    >,
8527    pub ClearRenderTargetView: ::std::option::Option<
8528        unsafe extern "C" fn(
8529            This: *mut ID3D12GraphicsCommandList,
8530            RenderTargetView: D3D12_CPU_DESCRIPTOR_HANDLE,
8531            ColorRGBA: *const FLOAT,
8532            NumRects: UINT,
8533            pRects: *const D3D12_RECT,
8534        ),
8535    >,
8536    pub ClearUnorderedAccessViewUint: ::std::option::Option<
8537        unsafe extern "C" fn(
8538            This: *mut ID3D12GraphicsCommandList,
8539            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
8540            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
8541            pResource: *mut ID3D12Resource,
8542            Values: *const UINT,
8543            NumRects: UINT,
8544            pRects: *const D3D12_RECT,
8545        ),
8546    >,
8547    pub ClearUnorderedAccessViewFloat: ::std::option::Option<
8548        unsafe extern "C" fn(
8549            This: *mut ID3D12GraphicsCommandList,
8550            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
8551            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
8552            pResource: *mut ID3D12Resource,
8553            Values: *const FLOAT,
8554            NumRects: UINT,
8555            pRects: *const D3D12_RECT,
8556        ),
8557    >,
8558    pub DiscardResource: ::std::option::Option<
8559        unsafe extern "C" fn(
8560            This: *mut ID3D12GraphicsCommandList,
8561            pResource: *mut ID3D12Resource,
8562            pRegion: *const D3D12_DISCARD_REGION,
8563        ),
8564    >,
8565    pub BeginQuery: ::std::option::Option<
8566        unsafe extern "C" fn(
8567            This: *mut ID3D12GraphicsCommandList,
8568            pQueryHeap: *mut ID3D12QueryHeap,
8569            Type: D3D12_QUERY_TYPE,
8570            Index: UINT,
8571        ),
8572    >,
8573    pub EndQuery: ::std::option::Option<
8574        unsafe extern "C" fn(
8575            This: *mut ID3D12GraphicsCommandList,
8576            pQueryHeap: *mut ID3D12QueryHeap,
8577            Type: D3D12_QUERY_TYPE,
8578            Index: UINT,
8579        ),
8580    >,
8581    pub ResolveQueryData: ::std::option::Option<
8582        unsafe extern "C" fn(
8583            This: *mut ID3D12GraphicsCommandList,
8584            pQueryHeap: *mut ID3D12QueryHeap,
8585            Type: D3D12_QUERY_TYPE,
8586            StartIndex: UINT,
8587            NumQueries: UINT,
8588            pDestinationBuffer: *mut ID3D12Resource,
8589            AlignedDestinationBufferOffset: UINT64,
8590        ),
8591    >,
8592    pub SetPredication: ::std::option::Option<
8593        unsafe extern "C" fn(
8594            This: *mut ID3D12GraphicsCommandList,
8595            pBuffer: *mut ID3D12Resource,
8596            AlignedBufferOffset: UINT64,
8597            Operation: D3D12_PREDICATION_OP,
8598        ),
8599    >,
8600    pub SetMarker: ::std::option::Option<
8601        unsafe extern "C" fn(
8602            This: *mut ID3D12GraphicsCommandList,
8603            Metadata: UINT,
8604            pData: *const ::std::os::raw::c_void,
8605            Size: UINT,
8606        ),
8607    >,
8608    pub BeginEvent: ::std::option::Option<
8609        unsafe extern "C" fn(
8610            This: *mut ID3D12GraphicsCommandList,
8611            Metadata: UINT,
8612            pData: *const ::std::os::raw::c_void,
8613            Size: UINT,
8614        ),
8615    >,
8616    pub EndEvent: ::std::option::Option<
8617        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList),
8618    >,
8619    pub ExecuteIndirect: ::std::option::Option<
8620        unsafe extern "C" fn(
8621            This: *mut ID3D12GraphicsCommandList,
8622            pCommandSignature: *mut ID3D12CommandSignature,
8623            MaxCommandCount: UINT,
8624            pArgumentBuffer: *mut ID3D12Resource,
8625            ArgumentBufferOffset: UINT64,
8626            pCountBuffer: *mut ID3D12Resource,
8627            CountBufferOffset: UINT64,
8628        ),
8629    >,
8630}
8631#[repr(C)]
8632#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8633pub struct ID3D12GraphicsCommandList {
8634    pub lpVtbl: *mut ID3D12GraphicsCommandListVtbl,
8635}
8636impl Default for ID3D12GraphicsCommandList {
8637    fn default() -> Self {
8638        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8639        unsafe {
8640            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8641            s.assume_init()
8642        }
8643    }
8644}
8645extern "C" {
8646    pub static IID_ID3D12GraphicsCommandList1: IID;
8647}
8648#[repr(C)]
8649#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
8650pub struct ID3D12GraphicsCommandList1Vtbl {
8651    pub QueryInterface: ::std::option::Option<
8652        unsafe extern "C" fn(
8653            This: *mut ID3D12GraphicsCommandList1,
8654            riid: *const IID,
8655            ppvObject: *mut *mut ::std::os::raw::c_void,
8656        ) -> HRESULT,
8657    >,
8658    pub AddRef: ::std::option::Option<
8659        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList1) -> ULONG,
8660    >,
8661    pub Release: ::std::option::Option<
8662        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList1) -> ULONG,
8663    >,
8664    pub GetPrivateData: ::std::option::Option<
8665        unsafe extern "C" fn(
8666            This: *mut ID3D12GraphicsCommandList1,
8667            guid: *const GUID,
8668            pDataSize: *mut UINT,
8669            pData: *mut ::std::os::raw::c_void,
8670        ) -> HRESULT,
8671    >,
8672    pub SetPrivateData: ::std::option::Option<
8673        unsafe extern "C" fn(
8674            This: *mut ID3D12GraphicsCommandList1,
8675            guid: *const GUID,
8676            DataSize: UINT,
8677            pData: *const ::std::os::raw::c_void,
8678        ) -> HRESULT,
8679    >,
8680    pub SetPrivateDataInterface: ::std::option::Option<
8681        unsafe extern "C" fn(
8682            This: *mut ID3D12GraphicsCommandList1,
8683            guid: *const GUID,
8684            pData: *const IUnknown,
8685        ) -> HRESULT,
8686    >,
8687    pub SetName: ::std::option::Option<
8688        unsafe extern "C" fn(
8689            This: *mut ID3D12GraphicsCommandList1,
8690            Name: LPCWSTR,
8691        ) -> HRESULT,
8692    >,
8693    pub GetDevice: ::std::option::Option<
8694        unsafe extern "C" fn(
8695            This: *mut ID3D12GraphicsCommandList1,
8696            riid: *const IID,
8697            ppvDevice: *mut *mut ::std::os::raw::c_void,
8698        ) -> HRESULT,
8699    >,
8700    pub GetType: ::std::option::Option<
8701        unsafe extern "C" fn(
8702            This: *mut ID3D12GraphicsCommandList1,
8703        ) -> D3D12_COMMAND_LIST_TYPE,
8704    >,
8705    pub Close: ::std::option::Option<
8706        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList1) -> HRESULT,
8707    >,
8708    pub Reset: ::std::option::Option<
8709        unsafe extern "C" fn(
8710            This: *mut ID3D12GraphicsCommandList1,
8711            pAllocator: *mut ID3D12CommandAllocator,
8712            pInitialState: *mut ID3D12PipelineState,
8713        ) -> HRESULT,
8714    >,
8715    pub ClearState: ::std::option::Option<
8716        unsafe extern "C" fn(
8717            This: *mut ID3D12GraphicsCommandList1,
8718            pPipelineState: *mut ID3D12PipelineState,
8719        ),
8720    >,
8721    pub DrawInstanced: ::std::option::Option<
8722        unsafe extern "C" fn(
8723            This: *mut ID3D12GraphicsCommandList1,
8724            VertexCountPerInstance: UINT,
8725            InstanceCount: UINT,
8726            StartVertexLocation: UINT,
8727            StartInstanceLocation: UINT,
8728        ),
8729    >,
8730    pub DrawIndexedInstanced: ::std::option::Option<
8731        unsafe extern "C" fn(
8732            This: *mut ID3D12GraphicsCommandList1,
8733            IndexCountPerInstance: UINT,
8734            InstanceCount: UINT,
8735            StartIndexLocation: UINT,
8736            BaseVertexLocation: INT,
8737            StartInstanceLocation: UINT,
8738        ),
8739    >,
8740    pub Dispatch: ::std::option::Option<
8741        unsafe extern "C" fn(
8742            This: *mut ID3D12GraphicsCommandList1,
8743            ThreadGroupCountX: UINT,
8744            ThreadGroupCountY: UINT,
8745            ThreadGroupCountZ: UINT,
8746        ),
8747    >,
8748    pub CopyBufferRegion: ::std::option::Option<
8749        unsafe extern "C" fn(
8750            This: *mut ID3D12GraphicsCommandList1,
8751            pDstBuffer: *mut ID3D12Resource,
8752            DstOffset: UINT64,
8753            pSrcBuffer: *mut ID3D12Resource,
8754            SrcOffset: UINT64,
8755            NumBytes: UINT64,
8756        ),
8757    >,
8758    pub CopyTextureRegion: ::std::option::Option<
8759        unsafe extern "C" fn(
8760            This: *mut ID3D12GraphicsCommandList1,
8761            pDst: *const D3D12_TEXTURE_COPY_LOCATION,
8762            DstX: UINT,
8763            DstY: UINT,
8764            DstZ: UINT,
8765            pSrc: *const D3D12_TEXTURE_COPY_LOCATION,
8766            pSrcBox: *const D3D12_BOX,
8767        ),
8768    >,
8769    pub CopyResource: ::std::option::Option<
8770        unsafe extern "C" fn(
8771            This: *mut ID3D12GraphicsCommandList1,
8772            pDstResource: *mut ID3D12Resource,
8773            pSrcResource: *mut ID3D12Resource,
8774        ),
8775    >,
8776    pub CopyTiles: ::std::option::Option<
8777        unsafe extern "C" fn(
8778            This: *mut ID3D12GraphicsCommandList1,
8779            pTiledResource: *mut ID3D12Resource,
8780            pTileRegionStartCoordinate: *const D3D12_TILED_RESOURCE_COORDINATE,
8781            pTileRegionSize: *const D3D12_TILE_REGION_SIZE,
8782            pBuffer: *mut ID3D12Resource,
8783            BufferStartOffsetInBytes: UINT64,
8784            Flags: D3D12_TILE_COPY_FLAGS,
8785        ),
8786    >,
8787    pub ResolveSubresource: ::std::option::Option<
8788        unsafe extern "C" fn(
8789            This: *mut ID3D12GraphicsCommandList1,
8790            pDstResource: *mut ID3D12Resource,
8791            DstSubresource: UINT,
8792            pSrcResource: *mut ID3D12Resource,
8793            SrcSubresource: UINT,
8794            Format: DXGI_FORMAT,
8795        ),
8796    >,
8797    pub IASetPrimitiveTopology: ::std::option::Option<
8798        unsafe extern "C" fn(
8799            This: *mut ID3D12GraphicsCommandList1,
8800            PrimitiveTopology: D3D12_PRIMITIVE_TOPOLOGY,
8801        ),
8802    >,
8803    pub RSSetViewports: ::std::option::Option<
8804        unsafe extern "C" fn(
8805            This: *mut ID3D12GraphicsCommandList1,
8806            NumViewports: UINT,
8807            pViewports: *const D3D12_VIEWPORT,
8808        ),
8809    >,
8810    pub RSSetScissorRects: ::std::option::Option<
8811        unsafe extern "C" fn(
8812            This: *mut ID3D12GraphicsCommandList1,
8813            NumRects: UINT,
8814            pRects: *const D3D12_RECT,
8815        ),
8816    >,
8817    pub OMSetBlendFactor: ::std::option::Option<
8818        unsafe extern "C" fn(
8819            This: *mut ID3D12GraphicsCommandList1,
8820            BlendFactor: *const FLOAT,
8821        ),
8822    >,
8823    pub OMSetStencilRef: ::std::option::Option<
8824        unsafe extern "C" fn(
8825            This: *mut ID3D12GraphicsCommandList1,
8826            StencilRef: UINT,
8827        ),
8828    >,
8829    pub SetPipelineState: ::std::option::Option<
8830        unsafe extern "C" fn(
8831            This: *mut ID3D12GraphicsCommandList1,
8832            pPipelineState: *mut ID3D12PipelineState,
8833        ),
8834    >,
8835    pub ResourceBarrier: ::std::option::Option<
8836        unsafe extern "C" fn(
8837            This: *mut ID3D12GraphicsCommandList1,
8838            NumBarriers: UINT,
8839            pBarriers: *const D3D12_RESOURCE_BARRIER,
8840        ),
8841    >,
8842    pub ExecuteBundle: ::std::option::Option<
8843        unsafe extern "C" fn(
8844            This: *mut ID3D12GraphicsCommandList1,
8845            pCommandList: *mut ID3D12GraphicsCommandList,
8846        ),
8847    >,
8848    pub SetDescriptorHeaps: ::std::option::Option<
8849        unsafe extern "C" fn(
8850            This: *mut ID3D12GraphicsCommandList1,
8851            NumDescriptorHeaps: UINT,
8852            ppDescriptorHeaps: *const *mut ID3D12DescriptorHeap,
8853        ),
8854    >,
8855    pub SetComputeRootSignature: ::std::option::Option<
8856        unsafe extern "C" fn(
8857            This: *mut ID3D12GraphicsCommandList1,
8858            pRootSignature: *mut ID3D12RootSignature,
8859        ),
8860    >,
8861    pub SetGraphicsRootSignature: ::std::option::Option<
8862        unsafe extern "C" fn(
8863            This: *mut ID3D12GraphicsCommandList1,
8864            pRootSignature: *mut ID3D12RootSignature,
8865        ),
8866    >,
8867    pub SetComputeRootDescriptorTable: ::std::option::Option<
8868        unsafe extern "C" fn(
8869            This: *mut ID3D12GraphicsCommandList1,
8870            RootParameterIndex: UINT,
8871            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
8872        ),
8873    >,
8874    pub SetGraphicsRootDescriptorTable: ::std::option::Option<
8875        unsafe extern "C" fn(
8876            This: *mut ID3D12GraphicsCommandList1,
8877            RootParameterIndex: UINT,
8878            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
8879        ),
8880    >,
8881    pub SetComputeRoot32BitConstant: ::std::option::Option<
8882        unsafe extern "C" fn(
8883            This: *mut ID3D12GraphicsCommandList1,
8884            RootParameterIndex: UINT,
8885            SrcData: UINT,
8886            DestOffsetIn32BitValues: UINT,
8887        ),
8888    >,
8889    pub SetGraphicsRoot32BitConstant: ::std::option::Option<
8890        unsafe extern "C" fn(
8891            This: *mut ID3D12GraphicsCommandList1,
8892            RootParameterIndex: UINT,
8893            SrcData: UINT,
8894            DestOffsetIn32BitValues: UINT,
8895        ),
8896    >,
8897    pub SetComputeRoot32BitConstants: ::std::option::Option<
8898        unsafe extern "C" fn(
8899            This: *mut ID3D12GraphicsCommandList1,
8900            RootParameterIndex: UINT,
8901            Num32BitValuesToSet: UINT,
8902            pSrcData: *const ::std::os::raw::c_void,
8903            DestOffsetIn32BitValues: UINT,
8904        ),
8905    >,
8906    pub SetGraphicsRoot32BitConstants: ::std::option::Option<
8907        unsafe extern "C" fn(
8908            This: *mut ID3D12GraphicsCommandList1,
8909            RootParameterIndex: UINT,
8910            Num32BitValuesToSet: UINT,
8911            pSrcData: *const ::std::os::raw::c_void,
8912            DestOffsetIn32BitValues: UINT,
8913        ),
8914    >,
8915    pub SetComputeRootConstantBufferView: ::std::option::Option<
8916        unsafe extern "C" fn(
8917            This: *mut ID3D12GraphicsCommandList1,
8918            RootParameterIndex: UINT,
8919            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8920        ),
8921    >,
8922    pub SetGraphicsRootConstantBufferView: ::std::option::Option<
8923        unsafe extern "C" fn(
8924            This: *mut ID3D12GraphicsCommandList1,
8925            RootParameterIndex: UINT,
8926            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8927        ),
8928    >,
8929    pub SetComputeRootShaderResourceView: ::std::option::Option<
8930        unsafe extern "C" fn(
8931            This: *mut ID3D12GraphicsCommandList1,
8932            RootParameterIndex: UINT,
8933            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8934        ),
8935    >,
8936    pub SetGraphicsRootShaderResourceView: ::std::option::Option<
8937        unsafe extern "C" fn(
8938            This: *mut ID3D12GraphicsCommandList1,
8939            RootParameterIndex: UINT,
8940            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8941        ),
8942    >,
8943    pub SetComputeRootUnorderedAccessView: ::std::option::Option<
8944        unsafe extern "C" fn(
8945            This: *mut ID3D12GraphicsCommandList1,
8946            RootParameterIndex: UINT,
8947            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8948        ),
8949    >,
8950    pub SetGraphicsRootUnorderedAccessView: ::std::option::Option<
8951        unsafe extern "C" fn(
8952            This: *mut ID3D12GraphicsCommandList1,
8953            RootParameterIndex: UINT,
8954            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
8955        ),
8956    >,
8957    pub IASetIndexBuffer: ::std::option::Option<
8958        unsafe extern "C" fn(
8959            This: *mut ID3D12GraphicsCommandList1,
8960            pView: *const D3D12_INDEX_BUFFER_VIEW,
8961        ),
8962    >,
8963    pub IASetVertexBuffers: ::std::option::Option<
8964        unsafe extern "C" fn(
8965            This: *mut ID3D12GraphicsCommandList1,
8966            StartSlot: UINT,
8967            NumViews: UINT,
8968            pViews: *const D3D12_VERTEX_BUFFER_VIEW,
8969        ),
8970    >,
8971    pub SOSetTargets: ::std::option::Option<
8972        unsafe extern "C" fn(
8973            This: *mut ID3D12GraphicsCommandList1,
8974            StartSlot: UINT,
8975            NumViews: UINT,
8976            pViews: *const D3D12_STREAM_OUTPUT_BUFFER_VIEW,
8977        ),
8978    >,
8979    pub OMSetRenderTargets: ::std::option::Option<
8980        unsafe extern "C" fn(
8981            This: *mut ID3D12GraphicsCommandList1,
8982            NumRenderTargetDescriptors: UINT,
8983            pRenderTargetDescriptors: *const D3D12_CPU_DESCRIPTOR_HANDLE,
8984            RTsSingleHandleToDescriptorRange: BOOL,
8985            pDepthStencilDescriptor: *const D3D12_CPU_DESCRIPTOR_HANDLE,
8986        ),
8987    >,
8988    pub ClearDepthStencilView: ::std::option::Option<
8989        unsafe extern "C" fn(
8990            This: *mut ID3D12GraphicsCommandList1,
8991            DepthStencilView: D3D12_CPU_DESCRIPTOR_HANDLE,
8992            ClearFlags: D3D12_CLEAR_FLAGS,
8993            Depth: FLOAT,
8994            Stencil: UINT8,
8995            NumRects: UINT,
8996            pRects: *const D3D12_RECT,
8997        ),
8998    >,
8999    pub ClearRenderTargetView: ::std::option::Option<
9000        unsafe extern "C" fn(
9001            This: *mut ID3D12GraphicsCommandList1,
9002            RenderTargetView: D3D12_CPU_DESCRIPTOR_HANDLE,
9003            ColorRGBA: *const FLOAT,
9004            NumRects: UINT,
9005            pRects: *const D3D12_RECT,
9006        ),
9007    >,
9008    pub ClearUnorderedAccessViewUint: ::std::option::Option<
9009        unsafe extern "C" fn(
9010            This: *mut ID3D12GraphicsCommandList1,
9011            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
9012            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
9013            pResource: *mut ID3D12Resource,
9014            Values: *const UINT,
9015            NumRects: UINT,
9016            pRects: *const D3D12_RECT,
9017        ),
9018    >,
9019    pub ClearUnorderedAccessViewFloat: ::std::option::Option<
9020        unsafe extern "C" fn(
9021            This: *mut ID3D12GraphicsCommandList1,
9022            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
9023            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
9024            pResource: *mut ID3D12Resource,
9025            Values: *const FLOAT,
9026            NumRects: UINT,
9027            pRects: *const D3D12_RECT,
9028        ),
9029    >,
9030    pub DiscardResource: ::std::option::Option<
9031        unsafe extern "C" fn(
9032            This: *mut ID3D12GraphicsCommandList1,
9033            pResource: *mut ID3D12Resource,
9034            pRegion: *const D3D12_DISCARD_REGION,
9035        ),
9036    >,
9037    pub BeginQuery: ::std::option::Option<
9038        unsafe extern "C" fn(
9039            This: *mut ID3D12GraphicsCommandList1,
9040            pQueryHeap: *mut ID3D12QueryHeap,
9041            Type: D3D12_QUERY_TYPE,
9042            Index: UINT,
9043        ),
9044    >,
9045    pub EndQuery: ::std::option::Option<
9046        unsafe extern "C" fn(
9047            This: *mut ID3D12GraphicsCommandList1,
9048            pQueryHeap: *mut ID3D12QueryHeap,
9049            Type: D3D12_QUERY_TYPE,
9050            Index: UINT,
9051        ),
9052    >,
9053    pub ResolveQueryData: ::std::option::Option<
9054        unsafe extern "C" fn(
9055            This: *mut ID3D12GraphicsCommandList1,
9056            pQueryHeap: *mut ID3D12QueryHeap,
9057            Type: D3D12_QUERY_TYPE,
9058            StartIndex: UINT,
9059            NumQueries: UINT,
9060            pDestinationBuffer: *mut ID3D12Resource,
9061            AlignedDestinationBufferOffset: UINT64,
9062        ),
9063    >,
9064    pub SetPredication: ::std::option::Option<
9065        unsafe extern "C" fn(
9066            This: *mut ID3D12GraphicsCommandList1,
9067            pBuffer: *mut ID3D12Resource,
9068            AlignedBufferOffset: UINT64,
9069            Operation: D3D12_PREDICATION_OP,
9070        ),
9071    >,
9072    pub SetMarker: ::std::option::Option<
9073        unsafe extern "C" fn(
9074            This: *mut ID3D12GraphicsCommandList1,
9075            Metadata: UINT,
9076            pData: *const ::std::os::raw::c_void,
9077            Size: UINT,
9078        ),
9079    >,
9080    pub BeginEvent: ::std::option::Option<
9081        unsafe extern "C" fn(
9082            This: *mut ID3D12GraphicsCommandList1,
9083            Metadata: UINT,
9084            pData: *const ::std::os::raw::c_void,
9085            Size: UINT,
9086        ),
9087    >,
9088    pub EndEvent: ::std::option::Option<
9089        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList1),
9090    >,
9091    pub ExecuteIndirect: ::std::option::Option<
9092        unsafe extern "C" fn(
9093            This: *mut ID3D12GraphicsCommandList1,
9094            pCommandSignature: *mut ID3D12CommandSignature,
9095            MaxCommandCount: UINT,
9096            pArgumentBuffer: *mut ID3D12Resource,
9097            ArgumentBufferOffset: UINT64,
9098            pCountBuffer: *mut ID3D12Resource,
9099            CountBufferOffset: UINT64,
9100        ),
9101    >,
9102    pub AtomicCopyBufferUINT: ::std::option::Option<
9103        unsafe extern "C" fn(
9104            This: *mut ID3D12GraphicsCommandList1,
9105            pDstBuffer: *mut ID3D12Resource,
9106            DstOffset: UINT64,
9107            pSrcBuffer: *mut ID3D12Resource,
9108            SrcOffset: UINT64,
9109            Dependencies: UINT,
9110            ppDependentResources: *const *mut ID3D12Resource,
9111            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
9112        ),
9113    >,
9114    pub AtomicCopyBufferUINT64: ::std::option::Option<
9115        unsafe extern "C" fn(
9116            This: *mut ID3D12GraphicsCommandList1,
9117            pDstBuffer: *mut ID3D12Resource,
9118            DstOffset: UINT64,
9119            pSrcBuffer: *mut ID3D12Resource,
9120            SrcOffset: UINT64,
9121            Dependencies: UINT,
9122            ppDependentResources: *const *mut ID3D12Resource,
9123            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
9124        ),
9125    >,
9126    pub OMSetDepthBounds: ::std::option::Option<
9127        unsafe extern "C" fn(
9128            This: *mut ID3D12GraphicsCommandList1,
9129            Min: FLOAT,
9130            Max: FLOAT,
9131        ),
9132    >,
9133    pub SetSamplePositions: ::std::option::Option<
9134        unsafe extern "C" fn(
9135            This: *mut ID3D12GraphicsCommandList1,
9136            NumSamplesPerPixel: UINT,
9137            NumPixels: UINT,
9138            pSamplePositions: *mut D3D12_SAMPLE_POSITION,
9139        ),
9140    >,
9141    pub ResolveSubresourceRegion: ::std::option::Option<
9142        unsafe extern "C" fn(
9143            This: *mut ID3D12GraphicsCommandList1,
9144            pDstResource: *mut ID3D12Resource,
9145            DstSubresource: UINT,
9146            DstX: UINT,
9147            DstY: UINT,
9148            pSrcResource: *mut ID3D12Resource,
9149            SrcSubresource: UINT,
9150            pSrcRect: *mut D3D12_RECT,
9151            Format: DXGI_FORMAT,
9152            ResolveMode: D3D12_RESOLVE_MODE,
9153        ),
9154    >,
9155    pub SetViewInstanceMask: ::std::option::Option<
9156        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList1, Mask: UINT),
9157    >,
9158}
9159#[repr(C)]
9160#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9161pub struct ID3D12GraphicsCommandList1 {
9162    pub lpVtbl: *mut ID3D12GraphicsCommandList1Vtbl,
9163}
9164impl Default for ID3D12GraphicsCommandList1 {
9165    fn default() -> Self {
9166        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9167        unsafe {
9168            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9169            s.assume_init()
9170        }
9171    }
9172}
9173#[repr(C)]
9174#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9175pub struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
9176    pub Dest: D3D12_GPU_VIRTUAL_ADDRESS,
9177    pub Value: UINT32,
9178}
9179pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT : D3D12_WRITEBUFFERIMMEDIATE_MODE = 0 ;
9180pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN : D3D12_WRITEBUFFERIMMEDIATE_MODE = 1 ;
9181pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT : D3D12_WRITEBUFFERIMMEDIATE_MODE = 2 ;
9182pub type D3D12_WRITEBUFFERIMMEDIATE_MODE = ::std::os::raw::c_int;
9183extern "C" {
9184    pub static IID_ID3D12GraphicsCommandList2: IID;
9185}
9186#[repr(C)]
9187#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9188pub struct ID3D12GraphicsCommandList2Vtbl {
9189    pub QueryInterface: ::std::option::Option<
9190        unsafe extern "C" fn(
9191            This: *mut ID3D12GraphicsCommandList2,
9192            riid: *const IID,
9193            ppvObject: *mut *mut ::std::os::raw::c_void,
9194        ) -> HRESULT,
9195    >,
9196    pub AddRef: ::std::option::Option<
9197        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList2) -> ULONG,
9198    >,
9199    pub Release: ::std::option::Option<
9200        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList2) -> ULONG,
9201    >,
9202    pub GetPrivateData: ::std::option::Option<
9203        unsafe extern "C" fn(
9204            This: *mut ID3D12GraphicsCommandList2,
9205            guid: *const GUID,
9206            pDataSize: *mut UINT,
9207            pData: *mut ::std::os::raw::c_void,
9208        ) -> HRESULT,
9209    >,
9210    pub SetPrivateData: ::std::option::Option<
9211        unsafe extern "C" fn(
9212            This: *mut ID3D12GraphicsCommandList2,
9213            guid: *const GUID,
9214            DataSize: UINT,
9215            pData: *const ::std::os::raw::c_void,
9216        ) -> HRESULT,
9217    >,
9218    pub SetPrivateDataInterface: ::std::option::Option<
9219        unsafe extern "C" fn(
9220            This: *mut ID3D12GraphicsCommandList2,
9221            guid: *const GUID,
9222            pData: *const IUnknown,
9223        ) -> HRESULT,
9224    >,
9225    pub SetName: ::std::option::Option<
9226        unsafe extern "C" fn(
9227            This: *mut ID3D12GraphicsCommandList2,
9228            Name: LPCWSTR,
9229        ) -> HRESULT,
9230    >,
9231    pub GetDevice: ::std::option::Option<
9232        unsafe extern "C" fn(
9233            This: *mut ID3D12GraphicsCommandList2,
9234            riid: *const IID,
9235            ppvDevice: *mut *mut ::std::os::raw::c_void,
9236        ) -> HRESULT,
9237    >,
9238    pub GetType: ::std::option::Option<
9239        unsafe extern "C" fn(
9240            This: *mut ID3D12GraphicsCommandList2,
9241        ) -> D3D12_COMMAND_LIST_TYPE,
9242    >,
9243    pub Close: ::std::option::Option<
9244        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList2) -> HRESULT,
9245    >,
9246    pub Reset: ::std::option::Option<
9247        unsafe extern "C" fn(
9248            This: *mut ID3D12GraphicsCommandList2,
9249            pAllocator: *mut ID3D12CommandAllocator,
9250            pInitialState: *mut ID3D12PipelineState,
9251        ) -> HRESULT,
9252    >,
9253    pub ClearState: ::std::option::Option<
9254        unsafe extern "C" fn(
9255            This: *mut ID3D12GraphicsCommandList2,
9256            pPipelineState: *mut ID3D12PipelineState,
9257        ),
9258    >,
9259    pub DrawInstanced: ::std::option::Option<
9260        unsafe extern "C" fn(
9261            This: *mut ID3D12GraphicsCommandList2,
9262            VertexCountPerInstance: UINT,
9263            InstanceCount: UINT,
9264            StartVertexLocation: UINT,
9265            StartInstanceLocation: UINT,
9266        ),
9267    >,
9268    pub DrawIndexedInstanced: ::std::option::Option<
9269        unsafe extern "C" fn(
9270            This: *mut ID3D12GraphicsCommandList2,
9271            IndexCountPerInstance: UINT,
9272            InstanceCount: UINT,
9273            StartIndexLocation: UINT,
9274            BaseVertexLocation: INT,
9275            StartInstanceLocation: UINT,
9276        ),
9277    >,
9278    pub Dispatch: ::std::option::Option<
9279        unsafe extern "C" fn(
9280            This: *mut ID3D12GraphicsCommandList2,
9281            ThreadGroupCountX: UINT,
9282            ThreadGroupCountY: UINT,
9283            ThreadGroupCountZ: UINT,
9284        ),
9285    >,
9286    pub CopyBufferRegion: ::std::option::Option<
9287        unsafe extern "C" fn(
9288            This: *mut ID3D12GraphicsCommandList2,
9289            pDstBuffer: *mut ID3D12Resource,
9290            DstOffset: UINT64,
9291            pSrcBuffer: *mut ID3D12Resource,
9292            SrcOffset: UINT64,
9293            NumBytes: UINT64,
9294        ),
9295    >,
9296    pub CopyTextureRegion: ::std::option::Option<
9297        unsafe extern "C" fn(
9298            This: *mut ID3D12GraphicsCommandList2,
9299            pDst: *const D3D12_TEXTURE_COPY_LOCATION,
9300            DstX: UINT,
9301            DstY: UINT,
9302            DstZ: UINT,
9303            pSrc: *const D3D12_TEXTURE_COPY_LOCATION,
9304            pSrcBox: *const D3D12_BOX,
9305        ),
9306    >,
9307    pub CopyResource: ::std::option::Option<
9308        unsafe extern "C" fn(
9309            This: *mut ID3D12GraphicsCommandList2,
9310            pDstResource: *mut ID3D12Resource,
9311            pSrcResource: *mut ID3D12Resource,
9312        ),
9313    >,
9314    pub CopyTiles: ::std::option::Option<
9315        unsafe extern "C" fn(
9316            This: *mut ID3D12GraphicsCommandList2,
9317            pTiledResource: *mut ID3D12Resource,
9318            pTileRegionStartCoordinate: *const D3D12_TILED_RESOURCE_COORDINATE,
9319            pTileRegionSize: *const D3D12_TILE_REGION_SIZE,
9320            pBuffer: *mut ID3D12Resource,
9321            BufferStartOffsetInBytes: UINT64,
9322            Flags: D3D12_TILE_COPY_FLAGS,
9323        ),
9324    >,
9325    pub ResolveSubresource: ::std::option::Option<
9326        unsafe extern "C" fn(
9327            This: *mut ID3D12GraphicsCommandList2,
9328            pDstResource: *mut ID3D12Resource,
9329            DstSubresource: UINT,
9330            pSrcResource: *mut ID3D12Resource,
9331            SrcSubresource: UINT,
9332            Format: DXGI_FORMAT,
9333        ),
9334    >,
9335    pub IASetPrimitiveTopology: ::std::option::Option<
9336        unsafe extern "C" fn(
9337            This: *mut ID3D12GraphicsCommandList2,
9338            PrimitiveTopology: D3D12_PRIMITIVE_TOPOLOGY,
9339        ),
9340    >,
9341    pub RSSetViewports: ::std::option::Option<
9342        unsafe extern "C" fn(
9343            This: *mut ID3D12GraphicsCommandList2,
9344            NumViewports: UINT,
9345            pViewports: *const D3D12_VIEWPORT,
9346        ),
9347    >,
9348    pub RSSetScissorRects: ::std::option::Option<
9349        unsafe extern "C" fn(
9350            This: *mut ID3D12GraphicsCommandList2,
9351            NumRects: UINT,
9352            pRects: *const D3D12_RECT,
9353        ),
9354    >,
9355    pub OMSetBlendFactor: ::std::option::Option<
9356        unsafe extern "C" fn(
9357            This: *mut ID3D12GraphicsCommandList2,
9358            BlendFactor: *const FLOAT,
9359        ),
9360    >,
9361    pub OMSetStencilRef: ::std::option::Option<
9362        unsafe extern "C" fn(
9363            This: *mut ID3D12GraphicsCommandList2,
9364            StencilRef: UINT,
9365        ),
9366    >,
9367    pub SetPipelineState: ::std::option::Option<
9368        unsafe extern "C" fn(
9369            This: *mut ID3D12GraphicsCommandList2,
9370            pPipelineState: *mut ID3D12PipelineState,
9371        ),
9372    >,
9373    pub ResourceBarrier: ::std::option::Option<
9374        unsafe extern "C" fn(
9375            This: *mut ID3D12GraphicsCommandList2,
9376            NumBarriers: UINT,
9377            pBarriers: *const D3D12_RESOURCE_BARRIER,
9378        ),
9379    >,
9380    pub ExecuteBundle: ::std::option::Option<
9381        unsafe extern "C" fn(
9382            This: *mut ID3D12GraphicsCommandList2,
9383            pCommandList: *mut ID3D12GraphicsCommandList,
9384        ),
9385    >,
9386    pub SetDescriptorHeaps: ::std::option::Option<
9387        unsafe extern "C" fn(
9388            This: *mut ID3D12GraphicsCommandList2,
9389            NumDescriptorHeaps: UINT,
9390            ppDescriptorHeaps: *const *mut ID3D12DescriptorHeap,
9391        ),
9392    >,
9393    pub SetComputeRootSignature: ::std::option::Option<
9394        unsafe extern "C" fn(
9395            This: *mut ID3D12GraphicsCommandList2,
9396            pRootSignature: *mut ID3D12RootSignature,
9397        ),
9398    >,
9399    pub SetGraphicsRootSignature: ::std::option::Option<
9400        unsafe extern "C" fn(
9401            This: *mut ID3D12GraphicsCommandList2,
9402            pRootSignature: *mut ID3D12RootSignature,
9403        ),
9404    >,
9405    pub SetComputeRootDescriptorTable: ::std::option::Option<
9406        unsafe extern "C" fn(
9407            This: *mut ID3D12GraphicsCommandList2,
9408            RootParameterIndex: UINT,
9409            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
9410        ),
9411    >,
9412    pub SetGraphicsRootDescriptorTable: ::std::option::Option<
9413        unsafe extern "C" fn(
9414            This: *mut ID3D12GraphicsCommandList2,
9415            RootParameterIndex: UINT,
9416            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
9417        ),
9418    >,
9419    pub SetComputeRoot32BitConstant: ::std::option::Option<
9420        unsafe extern "C" fn(
9421            This: *mut ID3D12GraphicsCommandList2,
9422            RootParameterIndex: UINT,
9423            SrcData: UINT,
9424            DestOffsetIn32BitValues: UINT,
9425        ),
9426    >,
9427    pub SetGraphicsRoot32BitConstant: ::std::option::Option<
9428        unsafe extern "C" fn(
9429            This: *mut ID3D12GraphicsCommandList2,
9430            RootParameterIndex: UINT,
9431            SrcData: UINT,
9432            DestOffsetIn32BitValues: UINT,
9433        ),
9434    >,
9435    pub SetComputeRoot32BitConstants: ::std::option::Option<
9436        unsafe extern "C" fn(
9437            This: *mut ID3D12GraphicsCommandList2,
9438            RootParameterIndex: UINT,
9439            Num32BitValuesToSet: UINT,
9440            pSrcData: *const ::std::os::raw::c_void,
9441            DestOffsetIn32BitValues: UINT,
9442        ),
9443    >,
9444    pub SetGraphicsRoot32BitConstants: ::std::option::Option<
9445        unsafe extern "C" fn(
9446            This: *mut ID3D12GraphicsCommandList2,
9447            RootParameterIndex: UINT,
9448            Num32BitValuesToSet: UINT,
9449            pSrcData: *const ::std::os::raw::c_void,
9450            DestOffsetIn32BitValues: UINT,
9451        ),
9452    >,
9453    pub SetComputeRootConstantBufferView: ::std::option::Option<
9454        unsafe extern "C" fn(
9455            This: *mut ID3D12GraphicsCommandList2,
9456            RootParameterIndex: UINT,
9457            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9458        ),
9459    >,
9460    pub SetGraphicsRootConstantBufferView: ::std::option::Option<
9461        unsafe extern "C" fn(
9462            This: *mut ID3D12GraphicsCommandList2,
9463            RootParameterIndex: UINT,
9464            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9465        ),
9466    >,
9467    pub SetComputeRootShaderResourceView: ::std::option::Option<
9468        unsafe extern "C" fn(
9469            This: *mut ID3D12GraphicsCommandList2,
9470            RootParameterIndex: UINT,
9471            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9472        ),
9473    >,
9474    pub SetGraphicsRootShaderResourceView: ::std::option::Option<
9475        unsafe extern "C" fn(
9476            This: *mut ID3D12GraphicsCommandList2,
9477            RootParameterIndex: UINT,
9478            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9479        ),
9480    >,
9481    pub SetComputeRootUnorderedAccessView: ::std::option::Option<
9482        unsafe extern "C" fn(
9483            This: *mut ID3D12GraphicsCommandList2,
9484            RootParameterIndex: UINT,
9485            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9486        ),
9487    >,
9488    pub SetGraphicsRootUnorderedAccessView: ::std::option::Option<
9489        unsafe extern "C" fn(
9490            This: *mut ID3D12GraphicsCommandList2,
9491            RootParameterIndex: UINT,
9492            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
9493        ),
9494    >,
9495    pub IASetIndexBuffer: ::std::option::Option<
9496        unsafe extern "C" fn(
9497            This: *mut ID3D12GraphicsCommandList2,
9498            pView: *const D3D12_INDEX_BUFFER_VIEW,
9499        ),
9500    >,
9501    pub IASetVertexBuffers: ::std::option::Option<
9502        unsafe extern "C" fn(
9503            This: *mut ID3D12GraphicsCommandList2,
9504            StartSlot: UINT,
9505            NumViews: UINT,
9506            pViews: *const D3D12_VERTEX_BUFFER_VIEW,
9507        ),
9508    >,
9509    pub SOSetTargets: ::std::option::Option<
9510        unsafe extern "C" fn(
9511            This: *mut ID3D12GraphicsCommandList2,
9512            StartSlot: UINT,
9513            NumViews: UINT,
9514            pViews: *const D3D12_STREAM_OUTPUT_BUFFER_VIEW,
9515        ),
9516    >,
9517    pub OMSetRenderTargets: ::std::option::Option<
9518        unsafe extern "C" fn(
9519            This: *mut ID3D12GraphicsCommandList2,
9520            NumRenderTargetDescriptors: UINT,
9521            pRenderTargetDescriptors: *const D3D12_CPU_DESCRIPTOR_HANDLE,
9522            RTsSingleHandleToDescriptorRange: BOOL,
9523            pDepthStencilDescriptor: *const D3D12_CPU_DESCRIPTOR_HANDLE,
9524        ),
9525    >,
9526    pub ClearDepthStencilView: ::std::option::Option<
9527        unsafe extern "C" fn(
9528            This: *mut ID3D12GraphicsCommandList2,
9529            DepthStencilView: D3D12_CPU_DESCRIPTOR_HANDLE,
9530            ClearFlags: D3D12_CLEAR_FLAGS,
9531            Depth: FLOAT,
9532            Stencil: UINT8,
9533            NumRects: UINT,
9534            pRects: *const D3D12_RECT,
9535        ),
9536    >,
9537    pub ClearRenderTargetView: ::std::option::Option<
9538        unsafe extern "C" fn(
9539            This: *mut ID3D12GraphicsCommandList2,
9540            RenderTargetView: D3D12_CPU_DESCRIPTOR_HANDLE,
9541            ColorRGBA: *const FLOAT,
9542            NumRects: UINT,
9543            pRects: *const D3D12_RECT,
9544        ),
9545    >,
9546    pub ClearUnorderedAccessViewUint: ::std::option::Option<
9547        unsafe extern "C" fn(
9548            This: *mut ID3D12GraphicsCommandList2,
9549            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
9550            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
9551            pResource: *mut ID3D12Resource,
9552            Values: *const UINT,
9553            NumRects: UINT,
9554            pRects: *const D3D12_RECT,
9555        ),
9556    >,
9557    pub ClearUnorderedAccessViewFloat: ::std::option::Option<
9558        unsafe extern "C" fn(
9559            This: *mut ID3D12GraphicsCommandList2,
9560            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
9561            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
9562            pResource: *mut ID3D12Resource,
9563            Values: *const FLOAT,
9564            NumRects: UINT,
9565            pRects: *const D3D12_RECT,
9566        ),
9567    >,
9568    pub DiscardResource: ::std::option::Option<
9569        unsafe extern "C" fn(
9570            This: *mut ID3D12GraphicsCommandList2,
9571            pResource: *mut ID3D12Resource,
9572            pRegion: *const D3D12_DISCARD_REGION,
9573        ),
9574    >,
9575    pub BeginQuery: ::std::option::Option<
9576        unsafe extern "C" fn(
9577            This: *mut ID3D12GraphicsCommandList2,
9578            pQueryHeap: *mut ID3D12QueryHeap,
9579            Type: D3D12_QUERY_TYPE,
9580            Index: UINT,
9581        ),
9582    >,
9583    pub EndQuery: ::std::option::Option<
9584        unsafe extern "C" fn(
9585            This: *mut ID3D12GraphicsCommandList2,
9586            pQueryHeap: *mut ID3D12QueryHeap,
9587            Type: D3D12_QUERY_TYPE,
9588            Index: UINT,
9589        ),
9590    >,
9591    pub ResolveQueryData: ::std::option::Option<
9592        unsafe extern "C" fn(
9593            This: *mut ID3D12GraphicsCommandList2,
9594            pQueryHeap: *mut ID3D12QueryHeap,
9595            Type: D3D12_QUERY_TYPE,
9596            StartIndex: UINT,
9597            NumQueries: UINT,
9598            pDestinationBuffer: *mut ID3D12Resource,
9599            AlignedDestinationBufferOffset: UINT64,
9600        ),
9601    >,
9602    pub SetPredication: ::std::option::Option<
9603        unsafe extern "C" fn(
9604            This: *mut ID3D12GraphicsCommandList2,
9605            pBuffer: *mut ID3D12Resource,
9606            AlignedBufferOffset: UINT64,
9607            Operation: D3D12_PREDICATION_OP,
9608        ),
9609    >,
9610    pub SetMarker: ::std::option::Option<
9611        unsafe extern "C" fn(
9612            This: *mut ID3D12GraphicsCommandList2,
9613            Metadata: UINT,
9614            pData: *const ::std::os::raw::c_void,
9615            Size: UINT,
9616        ),
9617    >,
9618    pub BeginEvent: ::std::option::Option<
9619        unsafe extern "C" fn(
9620            This: *mut ID3D12GraphicsCommandList2,
9621            Metadata: UINT,
9622            pData: *const ::std::os::raw::c_void,
9623            Size: UINT,
9624        ),
9625    >,
9626    pub EndEvent: ::std::option::Option<
9627        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList2),
9628    >,
9629    pub ExecuteIndirect: ::std::option::Option<
9630        unsafe extern "C" fn(
9631            This: *mut ID3D12GraphicsCommandList2,
9632            pCommandSignature: *mut ID3D12CommandSignature,
9633            MaxCommandCount: UINT,
9634            pArgumentBuffer: *mut ID3D12Resource,
9635            ArgumentBufferOffset: UINT64,
9636            pCountBuffer: *mut ID3D12Resource,
9637            CountBufferOffset: UINT64,
9638        ),
9639    >,
9640    pub AtomicCopyBufferUINT: ::std::option::Option<
9641        unsafe extern "C" fn(
9642            This: *mut ID3D12GraphicsCommandList2,
9643            pDstBuffer: *mut ID3D12Resource,
9644            DstOffset: UINT64,
9645            pSrcBuffer: *mut ID3D12Resource,
9646            SrcOffset: UINT64,
9647            Dependencies: UINT,
9648            ppDependentResources: *const *mut ID3D12Resource,
9649            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
9650        ),
9651    >,
9652    pub AtomicCopyBufferUINT64: ::std::option::Option<
9653        unsafe extern "C" fn(
9654            This: *mut ID3D12GraphicsCommandList2,
9655            pDstBuffer: *mut ID3D12Resource,
9656            DstOffset: UINT64,
9657            pSrcBuffer: *mut ID3D12Resource,
9658            SrcOffset: UINT64,
9659            Dependencies: UINT,
9660            ppDependentResources: *const *mut ID3D12Resource,
9661            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
9662        ),
9663    >,
9664    pub OMSetDepthBounds: ::std::option::Option<
9665        unsafe extern "C" fn(
9666            This: *mut ID3D12GraphicsCommandList2,
9667            Min: FLOAT,
9668            Max: FLOAT,
9669        ),
9670    >,
9671    pub SetSamplePositions: ::std::option::Option<
9672        unsafe extern "C" fn(
9673            This: *mut ID3D12GraphicsCommandList2,
9674            NumSamplesPerPixel: UINT,
9675            NumPixels: UINT,
9676            pSamplePositions: *mut D3D12_SAMPLE_POSITION,
9677        ),
9678    >,
9679    pub ResolveSubresourceRegion: ::std::option::Option<
9680        unsafe extern "C" fn(
9681            This: *mut ID3D12GraphicsCommandList2,
9682            pDstResource: *mut ID3D12Resource,
9683            DstSubresource: UINT,
9684            DstX: UINT,
9685            DstY: UINT,
9686            pSrcResource: *mut ID3D12Resource,
9687            SrcSubresource: UINT,
9688            pSrcRect: *mut D3D12_RECT,
9689            Format: DXGI_FORMAT,
9690            ResolveMode: D3D12_RESOLVE_MODE,
9691        ),
9692    >,
9693    pub SetViewInstanceMask: ::std::option::Option<
9694        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList2, Mask: UINT),
9695    >,
9696    pub WriteBufferImmediate: ::std::option::Option<
9697        unsafe extern "C" fn(
9698            This: *mut ID3D12GraphicsCommandList2,
9699            Count: UINT,
9700            pParams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
9701            pModes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE,
9702        ),
9703    >,
9704}
9705#[repr(C)]
9706#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9707pub struct ID3D12GraphicsCommandList2 {
9708    pub lpVtbl: *mut ID3D12GraphicsCommandList2Vtbl,
9709}
9710impl Default for ID3D12GraphicsCommandList2 {
9711    fn default() -> Self {
9712        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9713        unsafe {
9714            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9715            s.assume_init()
9716        }
9717    }
9718}
9719extern "C" {
9720    pub static IID_ID3D12CommandQueue: IID;
9721}
9722#[repr(C)]
9723#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9724pub struct ID3D12CommandQueueVtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , Name : LPCWSTR) -> HRESULT > , pub GetDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , riid : * const IID , ppvDevice : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub UpdateTileMappings : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pResource : * mut ID3D12Resource , NumResourceRegions : UINT , pResourceRegionStartCoordinates : * const D3D12_TILED_RESOURCE_COORDINATE , pResourceRegionSizes : * const D3D12_TILE_REGION_SIZE , pHeap : * mut ID3D12Heap , NumRanges : UINT , pRangeFlags : * const D3D12_TILE_RANGE_FLAGS , pHeapRangeStartOffsets : * const UINT , pRangeTileCounts : * const UINT , Flags : D3D12_TILE_MAPPING_FLAGS) > , pub CopyTileMappings : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pDstResource : * mut ID3D12Resource , pDstRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pSrcResource : * mut ID3D12Resource , pSrcRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pRegionSize : * const D3D12_TILE_REGION_SIZE , Flags : D3D12_TILE_MAPPING_FLAGS) > , pub ExecuteCommandLists : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , NumCommandLists : UINT , ppCommandLists : * const * mut ID3D12CommandList) > , pub SetMarker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub BeginEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub EndEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue) > , pub Signal : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pFence : * mut ID3D12Fence , Value : UINT64) -> HRESULT > , pub Wait : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pFence : * mut ID3D12Fence , Value : UINT64) -> HRESULT > , pub GetTimestampFrequency : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pFrequency : * mut UINT64) -> HRESULT > , pub GetClockCalibration : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , pGpuTimestamp : * mut UINT64 , pCpuTimestamp : * mut UINT64) -> HRESULT > , pub GetDesc : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12CommandQueue , RetVal : * mut D3D12_COMMAND_QUEUE_DESC) -> * mut D3D12_COMMAND_QUEUE_DESC > , }
9725#[repr(C)]
9726#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9727pub struct ID3D12CommandQueue {
9728    pub lpVtbl: *mut ID3D12CommandQueueVtbl,
9729}
9730impl Default for ID3D12CommandQueue {
9731    fn default() -> Self {
9732        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9733        unsafe {
9734            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9735            s.assume_init()
9736        }
9737    }
9738}
9739extern "C" {
9740    pub static IID_ID3D12Device: IID;
9741}
9742#[repr(C)]
9743#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
9744pub struct ID3D12DeviceVtbl {
9745    pub QueryInterface: ::std::option::Option<
9746        unsafe extern "C" fn(
9747            This: *mut ID3D12Device,
9748            riid: *const IID,
9749            ppvObject: *mut *mut ::std::os::raw::c_void,
9750        ) -> HRESULT,
9751    >,
9752    pub AddRef: ::std::option::Option<
9753        unsafe extern "C" fn(This: *mut ID3D12Device) -> ULONG,
9754    >,
9755    pub Release: ::std::option::Option<
9756        unsafe extern "C" fn(This: *mut ID3D12Device) -> ULONG,
9757    >,
9758    pub GetPrivateData: ::std::option::Option<
9759        unsafe extern "C" fn(
9760            This: *mut ID3D12Device,
9761            guid: *const GUID,
9762            pDataSize: *mut UINT,
9763            pData: *mut ::std::os::raw::c_void,
9764        ) -> HRESULT,
9765    >,
9766    pub SetPrivateData: ::std::option::Option<
9767        unsafe extern "C" fn(
9768            This: *mut ID3D12Device,
9769            guid: *const GUID,
9770            DataSize: UINT,
9771            pData: *const ::std::os::raw::c_void,
9772        ) -> HRESULT,
9773    >,
9774    pub SetPrivateDataInterface: ::std::option::Option<
9775        unsafe extern "C" fn(
9776            This: *mut ID3D12Device,
9777            guid: *const GUID,
9778            pData: *const IUnknown,
9779        ) -> HRESULT,
9780    >,
9781    pub SetName: ::std::option::Option<
9782        unsafe extern "C" fn(This: *mut ID3D12Device, Name: LPCWSTR) -> HRESULT,
9783    >,
9784    pub GetNodeCount: ::std::option::Option<
9785        unsafe extern "C" fn(This: *mut ID3D12Device) -> UINT,
9786    >,
9787    pub CreateCommandQueue: ::std::option::Option<
9788        unsafe extern "C" fn(
9789            This: *mut ID3D12Device,
9790            pDesc: *const D3D12_COMMAND_QUEUE_DESC,
9791            riid: *const IID,
9792            ppCommandQueue: *mut *mut ::std::os::raw::c_void,
9793        ) -> HRESULT,
9794    >,
9795    pub CreateCommandAllocator: ::std::option::Option<
9796        unsafe extern "C" fn(
9797            This: *mut ID3D12Device,
9798            type_: D3D12_COMMAND_LIST_TYPE,
9799            riid: *const IID,
9800            ppCommandAllocator: *mut *mut ::std::os::raw::c_void,
9801        ) -> HRESULT,
9802    >,
9803    pub CreateGraphicsPipelineState: ::std::option::Option<
9804        unsafe extern "C" fn(
9805            This: *mut ID3D12Device,
9806            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
9807            riid: *const IID,
9808            ppPipelineState: *mut *mut ::std::os::raw::c_void,
9809        ) -> HRESULT,
9810    >,
9811    pub CreateComputePipelineState: ::std::option::Option<
9812        unsafe extern "C" fn(
9813            This: *mut ID3D12Device,
9814            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
9815            riid: *const IID,
9816            ppPipelineState: *mut *mut ::std::os::raw::c_void,
9817        ) -> HRESULT,
9818    >,
9819    pub CreateCommandList: ::std::option::Option<
9820        unsafe extern "C" fn(
9821            This: *mut ID3D12Device,
9822            nodeMask: UINT,
9823            type_: D3D12_COMMAND_LIST_TYPE,
9824            pCommandAllocator: *mut ID3D12CommandAllocator,
9825            pInitialState: *mut ID3D12PipelineState,
9826            riid: *const IID,
9827            ppCommandList: *mut *mut ::std::os::raw::c_void,
9828        ) -> HRESULT,
9829    >,
9830    pub CheckFeatureSupport: ::std::option::Option<
9831        unsafe extern "C" fn(
9832            This: *mut ID3D12Device,
9833            Feature: D3D12_FEATURE,
9834            pFeatureSupportData: *mut ::std::os::raw::c_void,
9835            FeatureSupportDataSize: UINT,
9836        ) -> HRESULT,
9837    >,
9838    pub CreateDescriptorHeap: ::std::option::Option<
9839        unsafe extern "C" fn(
9840            This: *mut ID3D12Device,
9841            pDescriptorHeapDesc: *const D3D12_DESCRIPTOR_HEAP_DESC,
9842            riid: *const IID,
9843            ppvHeap: *mut *mut ::std::os::raw::c_void,
9844        ) -> HRESULT,
9845    >,
9846    pub GetDescriptorHandleIncrementSize: ::std::option::Option<
9847        unsafe extern "C" fn(
9848            This: *mut ID3D12Device,
9849            DescriptorHeapType: D3D12_DESCRIPTOR_HEAP_TYPE,
9850        ) -> UINT,
9851    >,
9852    pub CreateRootSignature: ::std::option::Option<
9853        unsafe extern "C" fn(
9854            This: *mut ID3D12Device,
9855            nodeMask: UINT,
9856            pBlobWithRootSignature: *const ::std::os::raw::c_void,
9857            blobLengthInBytes: SIZE_T,
9858            riid: *const IID,
9859            ppvRootSignature: *mut *mut ::std::os::raw::c_void,
9860        ) -> HRESULT,
9861    >,
9862    pub CreateConstantBufferView: ::std::option::Option<
9863        unsafe extern "C" fn(
9864            This: *mut ID3D12Device,
9865            pDesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC,
9866            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9867        ),
9868    >,
9869    pub CreateShaderResourceView: ::std::option::Option<
9870        unsafe extern "C" fn(
9871            This: *mut ID3D12Device,
9872            pResource: *mut ID3D12Resource,
9873            pDesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC,
9874            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9875        ),
9876    >,
9877    pub CreateUnorderedAccessView: ::std::option::Option<
9878        unsafe extern "C" fn(
9879            This: *mut ID3D12Device,
9880            pResource: *mut ID3D12Resource,
9881            pCounterResource: *mut ID3D12Resource,
9882            pDesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC,
9883            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9884        ),
9885    >,
9886    pub CreateRenderTargetView: ::std::option::Option<
9887        unsafe extern "C" fn(
9888            This: *mut ID3D12Device,
9889            pResource: *mut ID3D12Resource,
9890            pDesc: *const D3D12_RENDER_TARGET_VIEW_DESC,
9891            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9892        ),
9893    >,
9894    pub CreateDepthStencilView: ::std::option::Option<
9895        unsafe extern "C" fn(
9896            This: *mut ID3D12Device,
9897            pResource: *mut ID3D12Resource,
9898            pDesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC,
9899            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9900        ),
9901    >,
9902    pub CreateSampler: ::std::option::Option<
9903        unsafe extern "C" fn(
9904            This: *mut ID3D12Device,
9905            pDesc: *const D3D12_SAMPLER_DESC,
9906            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
9907        ),
9908    >,
9909    pub CopyDescriptors: ::std::option::Option<
9910        unsafe extern "C" fn(
9911            This: *mut ID3D12Device,
9912            NumDestDescriptorRanges: UINT,
9913            pDestDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
9914            pDestDescriptorRangeSizes: *const UINT,
9915            NumSrcDescriptorRanges: UINT,
9916            pSrcDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
9917            pSrcDescriptorRangeSizes: *const UINT,
9918            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
9919        ),
9920    >,
9921    pub CopyDescriptorsSimple: ::std::option::Option<
9922        unsafe extern "C" fn(
9923            This: *mut ID3D12Device,
9924            NumDescriptors: UINT,
9925            DestDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
9926            SrcDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
9927            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
9928        ),
9929    >,
9930    pub GetResourceAllocationInfo: ::std::option::Option<
9931        unsafe extern "C" fn(
9932            This: *mut ID3D12Device,
9933            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
9934            visibleMask: UINT,
9935            numResourceDescs: UINT,
9936            pResourceDescs: *const D3D12_RESOURCE_DESC,
9937        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
9938    >,
9939    pub GetCustomHeapProperties: ::std::option::Option<
9940        unsafe extern "C" fn(
9941            This: *mut ID3D12Device,
9942            RetVal: *mut D3D12_HEAP_PROPERTIES,
9943            nodeMask: UINT,
9944            heapType: D3D12_HEAP_TYPE,
9945        ) -> *mut D3D12_HEAP_PROPERTIES,
9946    >,
9947    pub CreateCommittedResource: ::std::option::Option<
9948        unsafe extern "C" fn(
9949            This: *mut ID3D12Device,
9950            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
9951            HeapFlags: D3D12_HEAP_FLAGS,
9952            pDesc: *const D3D12_RESOURCE_DESC,
9953            InitialResourceState: D3D12_RESOURCE_STATES,
9954            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
9955            riidResource: *const IID,
9956            ppvResource: *mut *mut ::std::os::raw::c_void,
9957        ) -> HRESULT,
9958    >,
9959    pub CreateHeap: ::std::option::Option<
9960        unsafe extern "C" fn(
9961            This: *mut ID3D12Device,
9962            pDesc: *const D3D12_HEAP_DESC,
9963            riid: *const IID,
9964            ppvHeap: *mut *mut ::std::os::raw::c_void,
9965        ) -> HRESULT,
9966    >,
9967    pub CreatePlacedResource: ::std::option::Option<
9968        unsafe extern "C" fn(
9969            This: *mut ID3D12Device,
9970            pHeap: *mut ID3D12Heap,
9971            HeapOffset: UINT64,
9972            pDesc: *const D3D12_RESOURCE_DESC,
9973            InitialState: D3D12_RESOURCE_STATES,
9974            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
9975            riid: *const IID,
9976            ppvResource: *mut *mut ::std::os::raw::c_void,
9977        ) -> HRESULT,
9978    >,
9979    pub CreateReservedResource: ::std::option::Option<
9980        unsafe extern "C" fn(
9981            This: *mut ID3D12Device,
9982            pDesc: *const D3D12_RESOURCE_DESC,
9983            InitialState: D3D12_RESOURCE_STATES,
9984            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
9985            riid: *const IID,
9986            ppvResource: *mut *mut ::std::os::raw::c_void,
9987        ) -> HRESULT,
9988    >,
9989    pub CreateSharedHandle: ::std::option::Option<
9990        unsafe extern "C" fn(
9991            This: *mut ID3D12Device,
9992            pObject: *mut ID3D12DeviceChild,
9993            pAttributes: *const SECURITY_ATTRIBUTES,
9994            Access: DWORD,
9995            Name: LPCWSTR,
9996            pHandle: *mut HANDLE,
9997        ) -> HRESULT,
9998    >,
9999    pub OpenSharedHandle: ::std::option::Option<
10000        unsafe extern "C" fn(
10001            This: *mut ID3D12Device,
10002            NTHandle: HANDLE,
10003            riid: *const IID,
10004            ppvObj: *mut *mut ::std::os::raw::c_void,
10005        ) -> HRESULT,
10006    >,
10007    pub OpenSharedHandleByName: ::std::option::Option<
10008        unsafe extern "C" fn(
10009            This: *mut ID3D12Device,
10010            Name: LPCWSTR,
10011            Access: DWORD,
10012            pNTHandle: *mut HANDLE,
10013        ) -> HRESULT,
10014    >,
10015    pub MakeResident: ::std::option::Option<
10016        unsafe extern "C" fn(
10017            This: *mut ID3D12Device,
10018            NumObjects: UINT,
10019            ppObjects: *const *mut ID3D12Pageable,
10020        ) -> HRESULT,
10021    >,
10022    pub Evict: ::std::option::Option<
10023        unsafe extern "C" fn(
10024            This: *mut ID3D12Device,
10025            NumObjects: UINT,
10026            ppObjects: *const *mut ID3D12Pageable,
10027        ) -> HRESULT,
10028    >,
10029    pub CreateFence: ::std::option::Option<
10030        unsafe extern "C" fn(
10031            This: *mut ID3D12Device,
10032            InitialValue: UINT64,
10033            Flags: D3D12_FENCE_FLAGS,
10034            riid: *const IID,
10035            ppFence: *mut *mut ::std::os::raw::c_void,
10036        ) -> HRESULT,
10037    >,
10038    pub GetDeviceRemovedReason: ::std::option::Option<
10039        unsafe extern "C" fn(This: *mut ID3D12Device) -> HRESULT,
10040    >,
10041    pub GetCopyableFootprints: ::std::option::Option<
10042        unsafe extern "C" fn(
10043            This: *mut ID3D12Device,
10044            pResourceDesc: *const D3D12_RESOURCE_DESC,
10045            FirstSubresource: UINT,
10046            NumSubresources: UINT,
10047            BaseOffset: UINT64,
10048            pLayouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
10049            pNumRows: *mut UINT,
10050            pRowSizeInBytes: *mut UINT64,
10051            pTotalBytes: *mut UINT64,
10052        ),
10053    >,
10054    pub CreateQueryHeap: ::std::option::Option<
10055        unsafe extern "C" fn(
10056            This: *mut ID3D12Device,
10057            pDesc: *const D3D12_QUERY_HEAP_DESC,
10058            riid: *const IID,
10059            ppvHeap: *mut *mut ::std::os::raw::c_void,
10060        ) -> HRESULT,
10061    >,
10062    pub SetStablePowerState: ::std::option::Option<
10063        unsafe extern "C" fn(This: *mut ID3D12Device, Enable: BOOL) -> HRESULT,
10064    >,
10065    pub CreateCommandSignature: ::std::option::Option<
10066        unsafe extern "C" fn(
10067            This: *mut ID3D12Device,
10068            pDesc: *const D3D12_COMMAND_SIGNATURE_DESC,
10069            pRootSignature: *mut ID3D12RootSignature,
10070            riid: *const IID,
10071            ppvCommandSignature: *mut *mut ::std::os::raw::c_void,
10072        ) -> HRESULT,
10073    >,
10074    pub GetResourceTiling: ::std::option::Option<
10075        unsafe extern "C" fn(
10076            This: *mut ID3D12Device,
10077            pTiledResource: *mut ID3D12Resource,
10078            pNumTilesForEntireResource: *mut UINT,
10079            pPackedMipDesc: *mut D3D12_PACKED_MIP_INFO,
10080            pStandardTileShapeForNonPackedMips: *mut D3D12_TILE_SHAPE,
10081            pNumSubresourceTilings: *mut UINT,
10082            FirstSubresourceTilingToGet: UINT,
10083            pSubresourceTilingsForNonPackedMips: *mut D3D12_SUBRESOURCE_TILING,
10084        ),
10085    >,
10086    pub GetAdapterLuid: ::std::option::Option<
10087        unsafe extern "C" fn(
10088            This: *mut ID3D12Device,
10089            RetVal: *mut LUID,
10090        ) -> *mut LUID,
10091    >,
10092}
10093#[repr(C)]
10094#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10095pub struct ID3D12Device {
10096    pub lpVtbl: *mut ID3D12DeviceVtbl,
10097}
10098impl Default for ID3D12Device {
10099    fn default() -> Self {
10100        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10101        unsafe {
10102            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10103            s.assume_init()
10104        }
10105    }
10106}
10107extern "C" {
10108    pub static IID_ID3D12PipelineLibrary: IID;
10109}
10110#[repr(C)]
10111#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10112pub struct ID3D12PipelineLibraryVtbl {
10113    pub QueryInterface: ::std::option::Option<
10114        unsafe extern "C" fn(
10115            This: *mut ID3D12PipelineLibrary,
10116            riid: *const IID,
10117            ppvObject: *mut *mut ::std::os::raw::c_void,
10118        ) -> HRESULT,
10119    >,
10120    pub AddRef: ::std::option::Option<
10121        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary) -> ULONG,
10122    >,
10123    pub Release: ::std::option::Option<
10124        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary) -> ULONG,
10125    >,
10126    pub GetPrivateData: ::std::option::Option<
10127        unsafe extern "C" fn(
10128            This: *mut ID3D12PipelineLibrary,
10129            guid: *const GUID,
10130            pDataSize: *mut UINT,
10131            pData: *mut ::std::os::raw::c_void,
10132        ) -> HRESULT,
10133    >,
10134    pub SetPrivateData: ::std::option::Option<
10135        unsafe extern "C" fn(
10136            This: *mut ID3D12PipelineLibrary,
10137            guid: *const GUID,
10138            DataSize: UINT,
10139            pData: *const ::std::os::raw::c_void,
10140        ) -> HRESULT,
10141    >,
10142    pub SetPrivateDataInterface: ::std::option::Option<
10143        unsafe extern "C" fn(
10144            This: *mut ID3D12PipelineLibrary,
10145            guid: *const GUID,
10146            pData: *const IUnknown,
10147        ) -> HRESULT,
10148    >,
10149    pub SetName: ::std::option::Option<
10150        unsafe extern "C" fn(
10151            This: *mut ID3D12PipelineLibrary,
10152            Name: LPCWSTR,
10153        ) -> HRESULT,
10154    >,
10155    pub GetDevice: ::std::option::Option<
10156        unsafe extern "C" fn(
10157            This: *mut ID3D12PipelineLibrary,
10158            riid: *const IID,
10159            ppvDevice: *mut *mut ::std::os::raw::c_void,
10160        ) -> HRESULT,
10161    >,
10162    pub StorePipeline: ::std::option::Option<
10163        unsafe extern "C" fn(
10164            This: *mut ID3D12PipelineLibrary,
10165            pName: LPCWSTR,
10166            pPipeline: *mut ID3D12PipelineState,
10167        ) -> HRESULT,
10168    >,
10169    pub LoadGraphicsPipeline: ::std::option::Option<
10170        unsafe extern "C" fn(
10171            This: *mut ID3D12PipelineLibrary,
10172            pName: LPCWSTR,
10173            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
10174            riid: *const IID,
10175            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10176        ) -> HRESULT,
10177    >,
10178    pub LoadComputePipeline: ::std::option::Option<
10179        unsafe extern "C" fn(
10180            This: *mut ID3D12PipelineLibrary,
10181            pName: LPCWSTR,
10182            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
10183            riid: *const IID,
10184            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10185        ) -> HRESULT,
10186    >,
10187    pub GetSerializedSize: ::std::option::Option<
10188        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary) -> SIZE_T,
10189    >,
10190    pub Serialize: ::std::option::Option<
10191        unsafe extern "C" fn(
10192            This: *mut ID3D12PipelineLibrary,
10193            pData: *mut ::std::os::raw::c_void,
10194            DataSizeInBytes: SIZE_T,
10195        ) -> HRESULT,
10196    >,
10197}
10198#[repr(C)]
10199#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10200pub struct ID3D12PipelineLibrary {
10201    pub lpVtbl: *mut ID3D12PipelineLibraryVtbl,
10202}
10203impl Default for ID3D12PipelineLibrary {
10204    fn default() -> Self {
10205        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10206        unsafe {
10207            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10208            s.assume_init()
10209        }
10210    }
10211}
10212extern "C" {
10213    pub static IID_ID3D12PipelineLibrary1: IID;
10214}
10215#[repr(C)]
10216#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10217pub struct ID3D12PipelineLibrary1Vtbl {
10218    pub QueryInterface: ::std::option::Option<
10219        unsafe extern "C" fn(
10220            This: *mut ID3D12PipelineLibrary1,
10221            riid: *const IID,
10222            ppvObject: *mut *mut ::std::os::raw::c_void,
10223        ) -> HRESULT,
10224    >,
10225    pub AddRef: ::std::option::Option<
10226        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary1) -> ULONG,
10227    >,
10228    pub Release: ::std::option::Option<
10229        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary1) -> ULONG,
10230    >,
10231    pub GetPrivateData: ::std::option::Option<
10232        unsafe extern "C" fn(
10233            This: *mut ID3D12PipelineLibrary1,
10234            guid: *const GUID,
10235            pDataSize: *mut UINT,
10236            pData: *mut ::std::os::raw::c_void,
10237        ) -> HRESULT,
10238    >,
10239    pub SetPrivateData: ::std::option::Option<
10240        unsafe extern "C" fn(
10241            This: *mut ID3D12PipelineLibrary1,
10242            guid: *const GUID,
10243            DataSize: UINT,
10244            pData: *const ::std::os::raw::c_void,
10245        ) -> HRESULT,
10246    >,
10247    pub SetPrivateDataInterface: ::std::option::Option<
10248        unsafe extern "C" fn(
10249            This: *mut ID3D12PipelineLibrary1,
10250            guid: *const GUID,
10251            pData: *const IUnknown,
10252        ) -> HRESULT,
10253    >,
10254    pub SetName: ::std::option::Option<
10255        unsafe extern "C" fn(
10256            This: *mut ID3D12PipelineLibrary1,
10257            Name: LPCWSTR,
10258        ) -> HRESULT,
10259    >,
10260    pub GetDevice: ::std::option::Option<
10261        unsafe extern "C" fn(
10262            This: *mut ID3D12PipelineLibrary1,
10263            riid: *const IID,
10264            ppvDevice: *mut *mut ::std::os::raw::c_void,
10265        ) -> HRESULT,
10266    >,
10267    pub StorePipeline: ::std::option::Option<
10268        unsafe extern "C" fn(
10269            This: *mut ID3D12PipelineLibrary1,
10270            pName: LPCWSTR,
10271            pPipeline: *mut ID3D12PipelineState,
10272        ) -> HRESULT,
10273    >,
10274    pub LoadGraphicsPipeline: ::std::option::Option<
10275        unsafe extern "C" fn(
10276            This: *mut ID3D12PipelineLibrary1,
10277            pName: LPCWSTR,
10278            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
10279            riid: *const IID,
10280            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10281        ) -> HRESULT,
10282    >,
10283    pub LoadComputePipeline: ::std::option::Option<
10284        unsafe extern "C" fn(
10285            This: *mut ID3D12PipelineLibrary1,
10286            pName: LPCWSTR,
10287            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
10288            riid: *const IID,
10289            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10290        ) -> HRESULT,
10291    >,
10292    pub GetSerializedSize: ::std::option::Option<
10293        unsafe extern "C" fn(This: *mut ID3D12PipelineLibrary1) -> SIZE_T,
10294    >,
10295    pub Serialize: ::std::option::Option<
10296        unsafe extern "C" fn(
10297            This: *mut ID3D12PipelineLibrary1,
10298            pData: *mut ::std::os::raw::c_void,
10299            DataSizeInBytes: SIZE_T,
10300        ) -> HRESULT,
10301    >,
10302    pub LoadPipeline: ::std::option::Option<
10303        unsafe extern "C" fn(
10304            This: *mut ID3D12PipelineLibrary1,
10305            pName: LPCWSTR,
10306            pDesc: *const D3D12_PIPELINE_STATE_STREAM_DESC,
10307            riid: *const IID,
10308            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10309        ) -> HRESULT,
10310    >,
10311}
10312#[repr(C)]
10313#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10314pub struct ID3D12PipelineLibrary1 {
10315    pub lpVtbl: *mut ID3D12PipelineLibrary1Vtbl,
10316}
10317impl Default for ID3D12PipelineLibrary1 {
10318    fn default() -> Self {
10319        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10320        unsafe {
10321            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10322            s.assume_init()
10323        }
10324    }
10325}
10326pub const D3D12_MULTIPLE_FENCE_WAIT_FLAGS_D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE : D3D12_MULTIPLE_FENCE_WAIT_FLAGS = 0 ;
10327pub const D3D12_MULTIPLE_FENCE_WAIT_FLAGS_D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY:
10328    D3D12_MULTIPLE_FENCE_WAIT_FLAGS = 1;
10329pub const D3D12_MULTIPLE_FENCE_WAIT_FLAGS_D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL:
10330    D3D12_MULTIPLE_FENCE_WAIT_FLAGS = 0;
10331pub type D3D12_MULTIPLE_FENCE_WAIT_FLAGS = ::std::os::raw::c_int;
10332pub const D3D12_RESIDENCY_PRIORITY_D3D12_RESIDENCY_PRIORITY_MINIMUM:
10333    D3D12_RESIDENCY_PRIORITY = 671088640;
10334pub const D3D12_RESIDENCY_PRIORITY_D3D12_RESIDENCY_PRIORITY_LOW:
10335    D3D12_RESIDENCY_PRIORITY = 1342177280;
10336pub const D3D12_RESIDENCY_PRIORITY_D3D12_RESIDENCY_PRIORITY_NORMAL:
10337    D3D12_RESIDENCY_PRIORITY = 2013265920;
10338pub const D3D12_RESIDENCY_PRIORITY_D3D12_RESIDENCY_PRIORITY_HIGH:
10339    D3D12_RESIDENCY_PRIORITY = -1610547200;
10340pub const D3D12_RESIDENCY_PRIORITY_D3D12_RESIDENCY_PRIORITY_MAXIMUM:
10341    D3D12_RESIDENCY_PRIORITY = -939524096;
10342pub type D3D12_RESIDENCY_PRIORITY = ::std::os::raw::c_int;
10343extern "C" {
10344    pub static IID_ID3D12Device1: IID;
10345}
10346#[repr(C)]
10347#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10348pub struct ID3D12Device1Vtbl {
10349    pub QueryInterface: ::std::option::Option<
10350        unsafe extern "C" fn(
10351            This: *mut ID3D12Device1,
10352            riid: *const IID,
10353            ppvObject: *mut *mut ::std::os::raw::c_void,
10354        ) -> HRESULT,
10355    >,
10356    pub AddRef: ::std::option::Option<
10357        unsafe extern "C" fn(This: *mut ID3D12Device1) -> ULONG,
10358    >,
10359    pub Release: ::std::option::Option<
10360        unsafe extern "C" fn(This: *mut ID3D12Device1) -> ULONG,
10361    >,
10362    pub GetPrivateData: ::std::option::Option<
10363        unsafe extern "C" fn(
10364            This: *mut ID3D12Device1,
10365            guid: *const GUID,
10366            pDataSize: *mut UINT,
10367            pData: *mut ::std::os::raw::c_void,
10368        ) -> HRESULT,
10369    >,
10370    pub SetPrivateData: ::std::option::Option<
10371        unsafe extern "C" fn(
10372            This: *mut ID3D12Device1,
10373            guid: *const GUID,
10374            DataSize: UINT,
10375            pData: *const ::std::os::raw::c_void,
10376        ) -> HRESULT,
10377    >,
10378    pub SetPrivateDataInterface: ::std::option::Option<
10379        unsafe extern "C" fn(
10380            This: *mut ID3D12Device1,
10381            guid: *const GUID,
10382            pData: *const IUnknown,
10383        ) -> HRESULT,
10384    >,
10385    pub SetName: ::std::option::Option<
10386        unsafe extern "C" fn(
10387            This: *mut ID3D12Device1,
10388            Name: LPCWSTR,
10389        ) -> HRESULT,
10390    >,
10391    pub GetNodeCount: ::std::option::Option<
10392        unsafe extern "C" fn(This: *mut ID3D12Device1) -> UINT,
10393    >,
10394    pub CreateCommandQueue: ::std::option::Option<
10395        unsafe extern "C" fn(
10396            This: *mut ID3D12Device1,
10397            pDesc: *const D3D12_COMMAND_QUEUE_DESC,
10398            riid: *const IID,
10399            ppCommandQueue: *mut *mut ::std::os::raw::c_void,
10400        ) -> HRESULT,
10401    >,
10402    pub CreateCommandAllocator: ::std::option::Option<
10403        unsafe extern "C" fn(
10404            This: *mut ID3D12Device1,
10405            type_: D3D12_COMMAND_LIST_TYPE,
10406            riid: *const IID,
10407            ppCommandAllocator: *mut *mut ::std::os::raw::c_void,
10408        ) -> HRESULT,
10409    >,
10410    pub CreateGraphicsPipelineState: ::std::option::Option<
10411        unsafe extern "C" fn(
10412            This: *mut ID3D12Device1,
10413            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
10414            riid: *const IID,
10415            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10416        ) -> HRESULT,
10417    >,
10418    pub CreateComputePipelineState: ::std::option::Option<
10419        unsafe extern "C" fn(
10420            This: *mut ID3D12Device1,
10421            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
10422            riid: *const IID,
10423            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10424        ) -> HRESULT,
10425    >,
10426    pub CreateCommandList: ::std::option::Option<
10427        unsafe extern "C" fn(
10428            This: *mut ID3D12Device1,
10429            nodeMask: UINT,
10430            type_: D3D12_COMMAND_LIST_TYPE,
10431            pCommandAllocator: *mut ID3D12CommandAllocator,
10432            pInitialState: *mut ID3D12PipelineState,
10433            riid: *const IID,
10434            ppCommandList: *mut *mut ::std::os::raw::c_void,
10435        ) -> HRESULT,
10436    >,
10437    pub CheckFeatureSupport: ::std::option::Option<
10438        unsafe extern "C" fn(
10439            This: *mut ID3D12Device1,
10440            Feature: D3D12_FEATURE,
10441            pFeatureSupportData: *mut ::std::os::raw::c_void,
10442            FeatureSupportDataSize: UINT,
10443        ) -> HRESULT,
10444    >,
10445    pub CreateDescriptorHeap: ::std::option::Option<
10446        unsafe extern "C" fn(
10447            This: *mut ID3D12Device1,
10448            pDescriptorHeapDesc: *const D3D12_DESCRIPTOR_HEAP_DESC,
10449            riid: *const IID,
10450            ppvHeap: *mut *mut ::std::os::raw::c_void,
10451        ) -> HRESULT,
10452    >,
10453    pub GetDescriptorHandleIncrementSize: ::std::option::Option<
10454        unsafe extern "C" fn(
10455            This: *mut ID3D12Device1,
10456            DescriptorHeapType: D3D12_DESCRIPTOR_HEAP_TYPE,
10457        ) -> UINT,
10458    >,
10459    pub CreateRootSignature: ::std::option::Option<
10460        unsafe extern "C" fn(
10461            This: *mut ID3D12Device1,
10462            nodeMask: UINT,
10463            pBlobWithRootSignature: *const ::std::os::raw::c_void,
10464            blobLengthInBytes: SIZE_T,
10465            riid: *const IID,
10466            ppvRootSignature: *mut *mut ::std::os::raw::c_void,
10467        ) -> HRESULT,
10468    >,
10469    pub CreateConstantBufferView: ::std::option::Option<
10470        unsafe extern "C" fn(
10471            This: *mut ID3D12Device1,
10472            pDesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC,
10473            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10474        ),
10475    >,
10476    pub CreateShaderResourceView: ::std::option::Option<
10477        unsafe extern "C" fn(
10478            This: *mut ID3D12Device1,
10479            pResource: *mut ID3D12Resource,
10480            pDesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC,
10481            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10482        ),
10483    >,
10484    pub CreateUnorderedAccessView: ::std::option::Option<
10485        unsafe extern "C" fn(
10486            This: *mut ID3D12Device1,
10487            pResource: *mut ID3D12Resource,
10488            pCounterResource: *mut ID3D12Resource,
10489            pDesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC,
10490            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10491        ),
10492    >,
10493    pub CreateRenderTargetView: ::std::option::Option<
10494        unsafe extern "C" fn(
10495            This: *mut ID3D12Device1,
10496            pResource: *mut ID3D12Resource,
10497            pDesc: *const D3D12_RENDER_TARGET_VIEW_DESC,
10498            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10499        ),
10500    >,
10501    pub CreateDepthStencilView: ::std::option::Option<
10502        unsafe extern "C" fn(
10503            This: *mut ID3D12Device1,
10504            pResource: *mut ID3D12Resource,
10505            pDesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC,
10506            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10507        ),
10508    >,
10509    pub CreateSampler: ::std::option::Option<
10510        unsafe extern "C" fn(
10511            This: *mut ID3D12Device1,
10512            pDesc: *const D3D12_SAMPLER_DESC,
10513            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10514        ),
10515    >,
10516    pub CopyDescriptors: ::std::option::Option<
10517        unsafe extern "C" fn(
10518            This: *mut ID3D12Device1,
10519            NumDestDescriptorRanges: UINT,
10520            pDestDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
10521            pDestDescriptorRangeSizes: *const UINT,
10522            NumSrcDescriptorRanges: UINT,
10523            pSrcDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
10524            pSrcDescriptorRangeSizes: *const UINT,
10525            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
10526        ),
10527    >,
10528    pub CopyDescriptorsSimple: ::std::option::Option<
10529        unsafe extern "C" fn(
10530            This: *mut ID3D12Device1,
10531            NumDescriptors: UINT,
10532            DestDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
10533            SrcDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
10534            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
10535        ),
10536    >,
10537    pub GetResourceAllocationInfo: ::std::option::Option<
10538        unsafe extern "C" fn(
10539            This: *mut ID3D12Device1,
10540            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
10541            visibleMask: UINT,
10542            numResourceDescs: UINT,
10543            pResourceDescs: *const D3D12_RESOURCE_DESC,
10544        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
10545    >,
10546    pub GetCustomHeapProperties: ::std::option::Option<
10547        unsafe extern "C" fn(
10548            This: *mut ID3D12Device1,
10549            RetVal: *mut D3D12_HEAP_PROPERTIES,
10550            nodeMask: UINT,
10551            heapType: D3D12_HEAP_TYPE,
10552        ) -> *mut D3D12_HEAP_PROPERTIES,
10553    >,
10554    pub CreateCommittedResource: ::std::option::Option<
10555        unsafe extern "C" fn(
10556            This: *mut ID3D12Device1,
10557            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
10558            HeapFlags: D3D12_HEAP_FLAGS,
10559            pDesc: *const D3D12_RESOURCE_DESC,
10560            InitialResourceState: D3D12_RESOURCE_STATES,
10561            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10562            riidResource: *const IID,
10563            ppvResource: *mut *mut ::std::os::raw::c_void,
10564        ) -> HRESULT,
10565    >,
10566    pub CreateHeap: ::std::option::Option<
10567        unsafe extern "C" fn(
10568            This: *mut ID3D12Device1,
10569            pDesc: *const D3D12_HEAP_DESC,
10570            riid: *const IID,
10571            ppvHeap: *mut *mut ::std::os::raw::c_void,
10572        ) -> HRESULT,
10573    >,
10574    pub CreatePlacedResource: ::std::option::Option<
10575        unsafe extern "C" fn(
10576            This: *mut ID3D12Device1,
10577            pHeap: *mut ID3D12Heap,
10578            HeapOffset: UINT64,
10579            pDesc: *const D3D12_RESOURCE_DESC,
10580            InitialState: D3D12_RESOURCE_STATES,
10581            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10582            riid: *const IID,
10583            ppvResource: *mut *mut ::std::os::raw::c_void,
10584        ) -> HRESULT,
10585    >,
10586    pub CreateReservedResource: ::std::option::Option<
10587        unsafe extern "C" fn(
10588            This: *mut ID3D12Device1,
10589            pDesc: *const D3D12_RESOURCE_DESC,
10590            InitialState: D3D12_RESOURCE_STATES,
10591            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10592            riid: *const IID,
10593            ppvResource: *mut *mut ::std::os::raw::c_void,
10594        ) -> HRESULT,
10595    >,
10596    pub CreateSharedHandle: ::std::option::Option<
10597        unsafe extern "C" fn(
10598            This: *mut ID3D12Device1,
10599            pObject: *mut ID3D12DeviceChild,
10600            pAttributes: *const SECURITY_ATTRIBUTES,
10601            Access: DWORD,
10602            Name: LPCWSTR,
10603            pHandle: *mut HANDLE,
10604        ) -> HRESULT,
10605    >,
10606    pub OpenSharedHandle: ::std::option::Option<
10607        unsafe extern "C" fn(
10608            This: *mut ID3D12Device1,
10609            NTHandle: HANDLE,
10610            riid: *const IID,
10611            ppvObj: *mut *mut ::std::os::raw::c_void,
10612        ) -> HRESULT,
10613    >,
10614    pub OpenSharedHandleByName: ::std::option::Option<
10615        unsafe extern "C" fn(
10616            This: *mut ID3D12Device1,
10617            Name: LPCWSTR,
10618            Access: DWORD,
10619            pNTHandle: *mut HANDLE,
10620        ) -> HRESULT,
10621    >,
10622    pub MakeResident: ::std::option::Option<
10623        unsafe extern "C" fn(
10624            This: *mut ID3D12Device1,
10625            NumObjects: UINT,
10626            ppObjects: *const *mut ID3D12Pageable,
10627        ) -> HRESULT,
10628    >,
10629    pub Evict: ::std::option::Option<
10630        unsafe extern "C" fn(
10631            This: *mut ID3D12Device1,
10632            NumObjects: UINT,
10633            ppObjects: *const *mut ID3D12Pageable,
10634        ) -> HRESULT,
10635    >,
10636    pub CreateFence: ::std::option::Option<
10637        unsafe extern "C" fn(
10638            This: *mut ID3D12Device1,
10639            InitialValue: UINT64,
10640            Flags: D3D12_FENCE_FLAGS,
10641            riid: *const IID,
10642            ppFence: *mut *mut ::std::os::raw::c_void,
10643        ) -> HRESULT,
10644    >,
10645    pub GetDeviceRemovedReason: ::std::option::Option<
10646        unsafe extern "C" fn(This: *mut ID3D12Device1) -> HRESULT,
10647    >,
10648    pub GetCopyableFootprints: ::std::option::Option<
10649        unsafe extern "C" fn(
10650            This: *mut ID3D12Device1,
10651            pResourceDesc: *const D3D12_RESOURCE_DESC,
10652            FirstSubresource: UINT,
10653            NumSubresources: UINT,
10654            BaseOffset: UINT64,
10655            pLayouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
10656            pNumRows: *mut UINT,
10657            pRowSizeInBytes: *mut UINT64,
10658            pTotalBytes: *mut UINT64,
10659        ),
10660    >,
10661    pub CreateQueryHeap: ::std::option::Option<
10662        unsafe extern "C" fn(
10663            This: *mut ID3D12Device1,
10664            pDesc: *const D3D12_QUERY_HEAP_DESC,
10665            riid: *const IID,
10666            ppvHeap: *mut *mut ::std::os::raw::c_void,
10667        ) -> HRESULT,
10668    >,
10669    pub SetStablePowerState: ::std::option::Option<
10670        unsafe extern "C" fn(This: *mut ID3D12Device1, Enable: BOOL) -> HRESULT,
10671    >,
10672    pub CreateCommandSignature: ::std::option::Option<
10673        unsafe extern "C" fn(
10674            This: *mut ID3D12Device1,
10675            pDesc: *const D3D12_COMMAND_SIGNATURE_DESC,
10676            pRootSignature: *mut ID3D12RootSignature,
10677            riid: *const IID,
10678            ppvCommandSignature: *mut *mut ::std::os::raw::c_void,
10679        ) -> HRESULT,
10680    >,
10681    pub GetResourceTiling: ::std::option::Option<
10682        unsafe extern "C" fn(
10683            This: *mut ID3D12Device1,
10684            pTiledResource: *mut ID3D12Resource,
10685            pNumTilesForEntireResource: *mut UINT,
10686            pPackedMipDesc: *mut D3D12_PACKED_MIP_INFO,
10687            pStandardTileShapeForNonPackedMips: *mut D3D12_TILE_SHAPE,
10688            pNumSubresourceTilings: *mut UINT,
10689            FirstSubresourceTilingToGet: UINT,
10690            pSubresourceTilingsForNonPackedMips: *mut D3D12_SUBRESOURCE_TILING,
10691        ),
10692    >,
10693    pub GetAdapterLuid: ::std::option::Option<
10694        unsafe extern "C" fn(
10695            This: *mut ID3D12Device1,
10696            RetVal: *mut LUID,
10697        ) -> *mut LUID,
10698    >,
10699    pub CreatePipelineLibrary: ::std::option::Option<
10700        unsafe extern "C" fn(
10701            This: *mut ID3D12Device1,
10702            pLibraryBlob: *const ::std::os::raw::c_void,
10703            BlobLength: SIZE_T,
10704            riid: *const IID,
10705            ppPipelineLibrary: *mut *mut ::std::os::raw::c_void,
10706        ) -> HRESULT,
10707    >,
10708    pub SetEventOnMultipleFenceCompletion: ::std::option::Option<
10709        unsafe extern "C" fn(
10710            This: *mut ID3D12Device1,
10711            ppFences: *const *mut ID3D12Fence,
10712            pFenceValues: *const UINT64,
10713            NumFences: UINT,
10714            Flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS,
10715            hEvent: HANDLE,
10716        ) -> HRESULT,
10717    >,
10718    pub SetResidencyPriority: ::std::option::Option<
10719        unsafe extern "C" fn(
10720            This: *mut ID3D12Device1,
10721            NumObjects: UINT,
10722            ppObjects: *const *mut ID3D12Pageable,
10723            pPriorities: *const D3D12_RESIDENCY_PRIORITY,
10724        ) -> HRESULT,
10725    >,
10726}
10727#[repr(C)]
10728#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10729pub struct ID3D12Device1 {
10730    pub lpVtbl: *mut ID3D12Device1Vtbl,
10731}
10732impl Default for ID3D12Device1 {
10733    fn default() -> Self {
10734        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10735        unsafe {
10736            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10737            s.assume_init()
10738        }
10739    }
10740}
10741extern "C" {
10742    pub static IID_ID3D12Device2: IID;
10743}
10744#[repr(C)]
10745#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
10746pub struct ID3D12Device2Vtbl {
10747    pub QueryInterface: ::std::option::Option<
10748        unsafe extern "C" fn(
10749            This: *mut ID3D12Device2,
10750            riid: *const IID,
10751            ppvObject: *mut *mut ::std::os::raw::c_void,
10752        ) -> HRESULT,
10753    >,
10754    pub AddRef: ::std::option::Option<
10755        unsafe extern "C" fn(This: *mut ID3D12Device2) -> ULONG,
10756    >,
10757    pub Release: ::std::option::Option<
10758        unsafe extern "C" fn(This: *mut ID3D12Device2) -> ULONG,
10759    >,
10760    pub GetPrivateData: ::std::option::Option<
10761        unsafe extern "C" fn(
10762            This: *mut ID3D12Device2,
10763            guid: *const GUID,
10764            pDataSize: *mut UINT,
10765            pData: *mut ::std::os::raw::c_void,
10766        ) -> HRESULT,
10767    >,
10768    pub SetPrivateData: ::std::option::Option<
10769        unsafe extern "C" fn(
10770            This: *mut ID3D12Device2,
10771            guid: *const GUID,
10772            DataSize: UINT,
10773            pData: *const ::std::os::raw::c_void,
10774        ) -> HRESULT,
10775    >,
10776    pub SetPrivateDataInterface: ::std::option::Option<
10777        unsafe extern "C" fn(
10778            This: *mut ID3D12Device2,
10779            guid: *const GUID,
10780            pData: *const IUnknown,
10781        ) -> HRESULT,
10782    >,
10783    pub SetName: ::std::option::Option<
10784        unsafe extern "C" fn(
10785            This: *mut ID3D12Device2,
10786            Name: LPCWSTR,
10787        ) -> HRESULT,
10788    >,
10789    pub GetNodeCount: ::std::option::Option<
10790        unsafe extern "C" fn(This: *mut ID3D12Device2) -> UINT,
10791    >,
10792    pub CreateCommandQueue: ::std::option::Option<
10793        unsafe extern "C" fn(
10794            This: *mut ID3D12Device2,
10795            pDesc: *const D3D12_COMMAND_QUEUE_DESC,
10796            riid: *const IID,
10797            ppCommandQueue: *mut *mut ::std::os::raw::c_void,
10798        ) -> HRESULT,
10799    >,
10800    pub CreateCommandAllocator: ::std::option::Option<
10801        unsafe extern "C" fn(
10802            This: *mut ID3D12Device2,
10803            type_: D3D12_COMMAND_LIST_TYPE,
10804            riid: *const IID,
10805            ppCommandAllocator: *mut *mut ::std::os::raw::c_void,
10806        ) -> HRESULT,
10807    >,
10808    pub CreateGraphicsPipelineState: ::std::option::Option<
10809        unsafe extern "C" fn(
10810            This: *mut ID3D12Device2,
10811            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
10812            riid: *const IID,
10813            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10814        ) -> HRESULT,
10815    >,
10816    pub CreateComputePipelineState: ::std::option::Option<
10817        unsafe extern "C" fn(
10818            This: *mut ID3D12Device2,
10819            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
10820            riid: *const IID,
10821            ppPipelineState: *mut *mut ::std::os::raw::c_void,
10822        ) -> HRESULT,
10823    >,
10824    pub CreateCommandList: ::std::option::Option<
10825        unsafe extern "C" fn(
10826            This: *mut ID3D12Device2,
10827            nodeMask: UINT,
10828            type_: D3D12_COMMAND_LIST_TYPE,
10829            pCommandAllocator: *mut ID3D12CommandAllocator,
10830            pInitialState: *mut ID3D12PipelineState,
10831            riid: *const IID,
10832            ppCommandList: *mut *mut ::std::os::raw::c_void,
10833        ) -> HRESULT,
10834    >,
10835    pub CheckFeatureSupport: ::std::option::Option<
10836        unsafe extern "C" fn(
10837            This: *mut ID3D12Device2,
10838            Feature: D3D12_FEATURE,
10839            pFeatureSupportData: *mut ::std::os::raw::c_void,
10840            FeatureSupportDataSize: UINT,
10841        ) -> HRESULT,
10842    >,
10843    pub CreateDescriptorHeap: ::std::option::Option<
10844        unsafe extern "C" fn(
10845            This: *mut ID3D12Device2,
10846            pDescriptorHeapDesc: *const D3D12_DESCRIPTOR_HEAP_DESC,
10847            riid: *const IID,
10848            ppvHeap: *mut *mut ::std::os::raw::c_void,
10849        ) -> HRESULT,
10850    >,
10851    pub GetDescriptorHandleIncrementSize: ::std::option::Option<
10852        unsafe extern "C" fn(
10853            This: *mut ID3D12Device2,
10854            DescriptorHeapType: D3D12_DESCRIPTOR_HEAP_TYPE,
10855        ) -> UINT,
10856    >,
10857    pub CreateRootSignature: ::std::option::Option<
10858        unsafe extern "C" fn(
10859            This: *mut ID3D12Device2,
10860            nodeMask: UINT,
10861            pBlobWithRootSignature: *const ::std::os::raw::c_void,
10862            blobLengthInBytes: SIZE_T,
10863            riid: *const IID,
10864            ppvRootSignature: *mut *mut ::std::os::raw::c_void,
10865        ) -> HRESULT,
10866    >,
10867    pub CreateConstantBufferView: ::std::option::Option<
10868        unsafe extern "C" fn(
10869            This: *mut ID3D12Device2,
10870            pDesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC,
10871            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10872        ),
10873    >,
10874    pub CreateShaderResourceView: ::std::option::Option<
10875        unsafe extern "C" fn(
10876            This: *mut ID3D12Device2,
10877            pResource: *mut ID3D12Resource,
10878            pDesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC,
10879            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10880        ),
10881    >,
10882    pub CreateUnorderedAccessView: ::std::option::Option<
10883        unsafe extern "C" fn(
10884            This: *mut ID3D12Device2,
10885            pResource: *mut ID3D12Resource,
10886            pCounterResource: *mut ID3D12Resource,
10887            pDesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC,
10888            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10889        ),
10890    >,
10891    pub CreateRenderTargetView: ::std::option::Option<
10892        unsafe extern "C" fn(
10893            This: *mut ID3D12Device2,
10894            pResource: *mut ID3D12Resource,
10895            pDesc: *const D3D12_RENDER_TARGET_VIEW_DESC,
10896            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10897        ),
10898    >,
10899    pub CreateDepthStencilView: ::std::option::Option<
10900        unsafe extern "C" fn(
10901            This: *mut ID3D12Device2,
10902            pResource: *mut ID3D12Resource,
10903            pDesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC,
10904            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10905        ),
10906    >,
10907    pub CreateSampler: ::std::option::Option<
10908        unsafe extern "C" fn(
10909            This: *mut ID3D12Device2,
10910            pDesc: *const D3D12_SAMPLER_DESC,
10911            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
10912        ),
10913    >,
10914    pub CopyDescriptors: ::std::option::Option<
10915        unsafe extern "C" fn(
10916            This: *mut ID3D12Device2,
10917            NumDestDescriptorRanges: UINT,
10918            pDestDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
10919            pDestDescriptorRangeSizes: *const UINT,
10920            NumSrcDescriptorRanges: UINT,
10921            pSrcDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
10922            pSrcDescriptorRangeSizes: *const UINT,
10923            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
10924        ),
10925    >,
10926    pub CopyDescriptorsSimple: ::std::option::Option<
10927        unsafe extern "C" fn(
10928            This: *mut ID3D12Device2,
10929            NumDescriptors: UINT,
10930            DestDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
10931            SrcDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
10932            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
10933        ),
10934    >,
10935    pub GetResourceAllocationInfo: ::std::option::Option<
10936        unsafe extern "C" fn(
10937            This: *mut ID3D12Device2,
10938            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
10939            visibleMask: UINT,
10940            numResourceDescs: UINT,
10941            pResourceDescs: *const D3D12_RESOURCE_DESC,
10942        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
10943    >,
10944    pub GetCustomHeapProperties: ::std::option::Option<
10945        unsafe extern "C" fn(
10946            This: *mut ID3D12Device2,
10947            RetVal: *mut D3D12_HEAP_PROPERTIES,
10948            nodeMask: UINT,
10949            heapType: D3D12_HEAP_TYPE,
10950        ) -> *mut D3D12_HEAP_PROPERTIES,
10951    >,
10952    pub CreateCommittedResource: ::std::option::Option<
10953        unsafe extern "C" fn(
10954            This: *mut ID3D12Device2,
10955            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
10956            HeapFlags: D3D12_HEAP_FLAGS,
10957            pDesc: *const D3D12_RESOURCE_DESC,
10958            InitialResourceState: D3D12_RESOURCE_STATES,
10959            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10960            riidResource: *const IID,
10961            ppvResource: *mut *mut ::std::os::raw::c_void,
10962        ) -> HRESULT,
10963    >,
10964    pub CreateHeap: ::std::option::Option<
10965        unsafe extern "C" fn(
10966            This: *mut ID3D12Device2,
10967            pDesc: *const D3D12_HEAP_DESC,
10968            riid: *const IID,
10969            ppvHeap: *mut *mut ::std::os::raw::c_void,
10970        ) -> HRESULT,
10971    >,
10972    pub CreatePlacedResource: ::std::option::Option<
10973        unsafe extern "C" fn(
10974            This: *mut ID3D12Device2,
10975            pHeap: *mut ID3D12Heap,
10976            HeapOffset: UINT64,
10977            pDesc: *const D3D12_RESOURCE_DESC,
10978            InitialState: D3D12_RESOURCE_STATES,
10979            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10980            riid: *const IID,
10981            ppvResource: *mut *mut ::std::os::raw::c_void,
10982        ) -> HRESULT,
10983    >,
10984    pub CreateReservedResource: ::std::option::Option<
10985        unsafe extern "C" fn(
10986            This: *mut ID3D12Device2,
10987            pDesc: *const D3D12_RESOURCE_DESC,
10988            InitialState: D3D12_RESOURCE_STATES,
10989            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
10990            riid: *const IID,
10991            ppvResource: *mut *mut ::std::os::raw::c_void,
10992        ) -> HRESULT,
10993    >,
10994    pub CreateSharedHandle: ::std::option::Option<
10995        unsafe extern "C" fn(
10996            This: *mut ID3D12Device2,
10997            pObject: *mut ID3D12DeviceChild,
10998            pAttributes: *const SECURITY_ATTRIBUTES,
10999            Access: DWORD,
11000            Name: LPCWSTR,
11001            pHandle: *mut HANDLE,
11002        ) -> HRESULT,
11003    >,
11004    pub OpenSharedHandle: ::std::option::Option<
11005        unsafe extern "C" fn(
11006            This: *mut ID3D12Device2,
11007            NTHandle: HANDLE,
11008            riid: *const IID,
11009            ppvObj: *mut *mut ::std::os::raw::c_void,
11010        ) -> HRESULT,
11011    >,
11012    pub OpenSharedHandleByName: ::std::option::Option<
11013        unsafe extern "C" fn(
11014            This: *mut ID3D12Device2,
11015            Name: LPCWSTR,
11016            Access: DWORD,
11017            pNTHandle: *mut HANDLE,
11018        ) -> HRESULT,
11019    >,
11020    pub MakeResident: ::std::option::Option<
11021        unsafe extern "C" fn(
11022            This: *mut ID3D12Device2,
11023            NumObjects: UINT,
11024            ppObjects: *const *mut ID3D12Pageable,
11025        ) -> HRESULT,
11026    >,
11027    pub Evict: ::std::option::Option<
11028        unsafe extern "C" fn(
11029            This: *mut ID3D12Device2,
11030            NumObjects: UINT,
11031            ppObjects: *const *mut ID3D12Pageable,
11032        ) -> HRESULT,
11033    >,
11034    pub CreateFence: ::std::option::Option<
11035        unsafe extern "C" fn(
11036            This: *mut ID3D12Device2,
11037            InitialValue: UINT64,
11038            Flags: D3D12_FENCE_FLAGS,
11039            riid: *const IID,
11040            ppFence: *mut *mut ::std::os::raw::c_void,
11041        ) -> HRESULT,
11042    >,
11043    pub GetDeviceRemovedReason: ::std::option::Option<
11044        unsafe extern "C" fn(This: *mut ID3D12Device2) -> HRESULT,
11045    >,
11046    pub GetCopyableFootprints: ::std::option::Option<
11047        unsafe extern "C" fn(
11048            This: *mut ID3D12Device2,
11049            pResourceDesc: *const D3D12_RESOURCE_DESC,
11050            FirstSubresource: UINT,
11051            NumSubresources: UINT,
11052            BaseOffset: UINT64,
11053            pLayouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
11054            pNumRows: *mut UINT,
11055            pRowSizeInBytes: *mut UINT64,
11056            pTotalBytes: *mut UINT64,
11057        ),
11058    >,
11059    pub CreateQueryHeap: ::std::option::Option<
11060        unsafe extern "C" fn(
11061            This: *mut ID3D12Device2,
11062            pDesc: *const D3D12_QUERY_HEAP_DESC,
11063            riid: *const IID,
11064            ppvHeap: *mut *mut ::std::os::raw::c_void,
11065        ) -> HRESULT,
11066    >,
11067    pub SetStablePowerState: ::std::option::Option<
11068        unsafe extern "C" fn(This: *mut ID3D12Device2, Enable: BOOL) -> HRESULT,
11069    >,
11070    pub CreateCommandSignature: ::std::option::Option<
11071        unsafe extern "C" fn(
11072            This: *mut ID3D12Device2,
11073            pDesc: *const D3D12_COMMAND_SIGNATURE_DESC,
11074            pRootSignature: *mut ID3D12RootSignature,
11075            riid: *const IID,
11076            ppvCommandSignature: *mut *mut ::std::os::raw::c_void,
11077        ) -> HRESULT,
11078    >,
11079    pub GetResourceTiling: ::std::option::Option<
11080        unsafe extern "C" fn(
11081            This: *mut ID3D12Device2,
11082            pTiledResource: *mut ID3D12Resource,
11083            pNumTilesForEntireResource: *mut UINT,
11084            pPackedMipDesc: *mut D3D12_PACKED_MIP_INFO,
11085            pStandardTileShapeForNonPackedMips: *mut D3D12_TILE_SHAPE,
11086            pNumSubresourceTilings: *mut UINT,
11087            FirstSubresourceTilingToGet: UINT,
11088            pSubresourceTilingsForNonPackedMips: *mut D3D12_SUBRESOURCE_TILING,
11089        ),
11090    >,
11091    pub GetAdapterLuid: ::std::option::Option<
11092        unsafe extern "C" fn(
11093            This: *mut ID3D12Device2,
11094            RetVal: *mut LUID,
11095        ) -> *mut LUID,
11096    >,
11097    pub CreatePipelineLibrary: ::std::option::Option<
11098        unsafe extern "C" fn(
11099            This: *mut ID3D12Device2,
11100            pLibraryBlob: *const ::std::os::raw::c_void,
11101            BlobLength: SIZE_T,
11102            riid: *const IID,
11103            ppPipelineLibrary: *mut *mut ::std::os::raw::c_void,
11104        ) -> HRESULT,
11105    >,
11106    pub SetEventOnMultipleFenceCompletion: ::std::option::Option<
11107        unsafe extern "C" fn(
11108            This: *mut ID3D12Device2,
11109            ppFences: *const *mut ID3D12Fence,
11110            pFenceValues: *const UINT64,
11111            NumFences: UINT,
11112            Flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS,
11113            hEvent: HANDLE,
11114        ) -> HRESULT,
11115    >,
11116    pub SetResidencyPriority: ::std::option::Option<
11117        unsafe extern "C" fn(
11118            This: *mut ID3D12Device2,
11119            NumObjects: UINT,
11120            ppObjects: *const *mut ID3D12Pageable,
11121            pPriorities: *const D3D12_RESIDENCY_PRIORITY,
11122        ) -> HRESULT,
11123    >,
11124    pub CreatePipelineState: ::std::option::Option<
11125        unsafe extern "C" fn(
11126            This: *mut ID3D12Device2,
11127            pDesc: *const D3D12_PIPELINE_STATE_STREAM_DESC,
11128            riid: *const IID,
11129            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11130        ) -> HRESULT,
11131    >,
11132}
11133#[repr(C)]
11134#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11135pub struct ID3D12Device2 {
11136    pub lpVtbl: *mut ID3D12Device2Vtbl,
11137}
11138impl Default for ID3D12Device2 {
11139    fn default() -> Self {
11140        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11141        unsafe {
11142            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11143            s.assume_init()
11144        }
11145    }
11146}
11147pub const D3D12_RESIDENCY_FLAGS_D3D12_RESIDENCY_FLAG_NONE:
11148    D3D12_RESIDENCY_FLAGS = 0;
11149pub const D3D12_RESIDENCY_FLAGS_D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET:
11150    D3D12_RESIDENCY_FLAGS = 1;
11151pub type D3D12_RESIDENCY_FLAGS = ::std::os::raw::c_int;
11152extern "C" {
11153    pub static IID_ID3D12Device3: IID;
11154}
11155#[repr(C)]
11156#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11157pub struct ID3D12Device3Vtbl {
11158    pub QueryInterface: ::std::option::Option<
11159        unsafe extern "C" fn(
11160            This: *mut ID3D12Device3,
11161            riid: *const IID,
11162            ppvObject: *mut *mut ::std::os::raw::c_void,
11163        ) -> HRESULT,
11164    >,
11165    pub AddRef: ::std::option::Option<
11166        unsafe extern "C" fn(This: *mut ID3D12Device3) -> ULONG,
11167    >,
11168    pub Release: ::std::option::Option<
11169        unsafe extern "C" fn(This: *mut ID3D12Device3) -> ULONG,
11170    >,
11171    pub GetPrivateData: ::std::option::Option<
11172        unsafe extern "C" fn(
11173            This: *mut ID3D12Device3,
11174            guid: *const GUID,
11175            pDataSize: *mut UINT,
11176            pData: *mut ::std::os::raw::c_void,
11177        ) -> HRESULT,
11178    >,
11179    pub SetPrivateData: ::std::option::Option<
11180        unsafe extern "C" fn(
11181            This: *mut ID3D12Device3,
11182            guid: *const GUID,
11183            DataSize: UINT,
11184            pData: *const ::std::os::raw::c_void,
11185        ) -> HRESULT,
11186    >,
11187    pub SetPrivateDataInterface: ::std::option::Option<
11188        unsafe extern "C" fn(
11189            This: *mut ID3D12Device3,
11190            guid: *const GUID,
11191            pData: *const IUnknown,
11192        ) -> HRESULT,
11193    >,
11194    pub SetName: ::std::option::Option<
11195        unsafe extern "C" fn(
11196            This: *mut ID3D12Device3,
11197            Name: LPCWSTR,
11198        ) -> HRESULT,
11199    >,
11200    pub GetNodeCount: ::std::option::Option<
11201        unsafe extern "C" fn(This: *mut ID3D12Device3) -> UINT,
11202    >,
11203    pub CreateCommandQueue: ::std::option::Option<
11204        unsafe extern "C" fn(
11205            This: *mut ID3D12Device3,
11206            pDesc: *const D3D12_COMMAND_QUEUE_DESC,
11207            riid: *const IID,
11208            ppCommandQueue: *mut *mut ::std::os::raw::c_void,
11209        ) -> HRESULT,
11210    >,
11211    pub CreateCommandAllocator: ::std::option::Option<
11212        unsafe extern "C" fn(
11213            This: *mut ID3D12Device3,
11214            type_: D3D12_COMMAND_LIST_TYPE,
11215            riid: *const IID,
11216            ppCommandAllocator: *mut *mut ::std::os::raw::c_void,
11217        ) -> HRESULT,
11218    >,
11219    pub CreateGraphicsPipelineState: ::std::option::Option<
11220        unsafe extern "C" fn(
11221            This: *mut ID3D12Device3,
11222            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
11223            riid: *const IID,
11224            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11225        ) -> HRESULT,
11226    >,
11227    pub CreateComputePipelineState: ::std::option::Option<
11228        unsafe extern "C" fn(
11229            This: *mut ID3D12Device3,
11230            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
11231            riid: *const IID,
11232            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11233        ) -> HRESULT,
11234    >,
11235    pub CreateCommandList: ::std::option::Option<
11236        unsafe extern "C" fn(
11237            This: *mut ID3D12Device3,
11238            nodeMask: UINT,
11239            type_: D3D12_COMMAND_LIST_TYPE,
11240            pCommandAllocator: *mut ID3D12CommandAllocator,
11241            pInitialState: *mut ID3D12PipelineState,
11242            riid: *const IID,
11243            ppCommandList: *mut *mut ::std::os::raw::c_void,
11244        ) -> HRESULT,
11245    >,
11246    pub CheckFeatureSupport: ::std::option::Option<
11247        unsafe extern "C" fn(
11248            This: *mut ID3D12Device3,
11249            Feature: D3D12_FEATURE,
11250            pFeatureSupportData: *mut ::std::os::raw::c_void,
11251            FeatureSupportDataSize: UINT,
11252        ) -> HRESULT,
11253    >,
11254    pub CreateDescriptorHeap: ::std::option::Option<
11255        unsafe extern "C" fn(
11256            This: *mut ID3D12Device3,
11257            pDescriptorHeapDesc: *const D3D12_DESCRIPTOR_HEAP_DESC,
11258            riid: *const IID,
11259            ppvHeap: *mut *mut ::std::os::raw::c_void,
11260        ) -> HRESULT,
11261    >,
11262    pub GetDescriptorHandleIncrementSize: ::std::option::Option<
11263        unsafe extern "C" fn(
11264            This: *mut ID3D12Device3,
11265            DescriptorHeapType: D3D12_DESCRIPTOR_HEAP_TYPE,
11266        ) -> UINT,
11267    >,
11268    pub CreateRootSignature: ::std::option::Option<
11269        unsafe extern "C" fn(
11270            This: *mut ID3D12Device3,
11271            nodeMask: UINT,
11272            pBlobWithRootSignature: *const ::std::os::raw::c_void,
11273            blobLengthInBytes: SIZE_T,
11274            riid: *const IID,
11275            ppvRootSignature: *mut *mut ::std::os::raw::c_void,
11276        ) -> HRESULT,
11277    >,
11278    pub CreateConstantBufferView: ::std::option::Option<
11279        unsafe extern "C" fn(
11280            This: *mut ID3D12Device3,
11281            pDesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC,
11282            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11283        ),
11284    >,
11285    pub CreateShaderResourceView: ::std::option::Option<
11286        unsafe extern "C" fn(
11287            This: *mut ID3D12Device3,
11288            pResource: *mut ID3D12Resource,
11289            pDesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC,
11290            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11291        ),
11292    >,
11293    pub CreateUnorderedAccessView: ::std::option::Option<
11294        unsafe extern "C" fn(
11295            This: *mut ID3D12Device3,
11296            pResource: *mut ID3D12Resource,
11297            pCounterResource: *mut ID3D12Resource,
11298            pDesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC,
11299            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11300        ),
11301    >,
11302    pub CreateRenderTargetView: ::std::option::Option<
11303        unsafe extern "C" fn(
11304            This: *mut ID3D12Device3,
11305            pResource: *mut ID3D12Resource,
11306            pDesc: *const D3D12_RENDER_TARGET_VIEW_DESC,
11307            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11308        ),
11309    >,
11310    pub CreateDepthStencilView: ::std::option::Option<
11311        unsafe extern "C" fn(
11312            This: *mut ID3D12Device3,
11313            pResource: *mut ID3D12Resource,
11314            pDesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC,
11315            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11316        ),
11317    >,
11318    pub CreateSampler: ::std::option::Option<
11319        unsafe extern "C" fn(
11320            This: *mut ID3D12Device3,
11321            pDesc: *const D3D12_SAMPLER_DESC,
11322            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11323        ),
11324    >,
11325    pub CopyDescriptors: ::std::option::Option<
11326        unsafe extern "C" fn(
11327            This: *mut ID3D12Device3,
11328            NumDestDescriptorRanges: UINT,
11329            pDestDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
11330            pDestDescriptorRangeSizes: *const UINT,
11331            NumSrcDescriptorRanges: UINT,
11332            pSrcDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
11333            pSrcDescriptorRangeSizes: *const UINT,
11334            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
11335        ),
11336    >,
11337    pub CopyDescriptorsSimple: ::std::option::Option<
11338        unsafe extern "C" fn(
11339            This: *mut ID3D12Device3,
11340            NumDescriptors: UINT,
11341            DestDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
11342            SrcDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
11343            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
11344        ),
11345    >,
11346    pub GetResourceAllocationInfo: ::std::option::Option<
11347        unsafe extern "C" fn(
11348            This: *mut ID3D12Device3,
11349            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
11350            visibleMask: UINT,
11351            numResourceDescs: UINT,
11352            pResourceDescs: *const D3D12_RESOURCE_DESC,
11353        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
11354    >,
11355    pub GetCustomHeapProperties: ::std::option::Option<
11356        unsafe extern "C" fn(
11357            This: *mut ID3D12Device3,
11358            RetVal: *mut D3D12_HEAP_PROPERTIES,
11359            nodeMask: UINT,
11360            heapType: D3D12_HEAP_TYPE,
11361        ) -> *mut D3D12_HEAP_PROPERTIES,
11362    >,
11363    pub CreateCommittedResource: ::std::option::Option<
11364        unsafe extern "C" fn(
11365            This: *mut ID3D12Device3,
11366            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
11367            HeapFlags: D3D12_HEAP_FLAGS,
11368            pDesc: *const D3D12_RESOURCE_DESC,
11369            InitialResourceState: D3D12_RESOURCE_STATES,
11370            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
11371            riidResource: *const IID,
11372            ppvResource: *mut *mut ::std::os::raw::c_void,
11373        ) -> HRESULT,
11374    >,
11375    pub CreateHeap: ::std::option::Option<
11376        unsafe extern "C" fn(
11377            This: *mut ID3D12Device3,
11378            pDesc: *const D3D12_HEAP_DESC,
11379            riid: *const IID,
11380            ppvHeap: *mut *mut ::std::os::raw::c_void,
11381        ) -> HRESULT,
11382    >,
11383    pub CreatePlacedResource: ::std::option::Option<
11384        unsafe extern "C" fn(
11385            This: *mut ID3D12Device3,
11386            pHeap: *mut ID3D12Heap,
11387            HeapOffset: UINT64,
11388            pDesc: *const D3D12_RESOURCE_DESC,
11389            InitialState: D3D12_RESOURCE_STATES,
11390            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
11391            riid: *const IID,
11392            ppvResource: *mut *mut ::std::os::raw::c_void,
11393        ) -> HRESULT,
11394    >,
11395    pub CreateReservedResource: ::std::option::Option<
11396        unsafe extern "C" fn(
11397            This: *mut ID3D12Device3,
11398            pDesc: *const D3D12_RESOURCE_DESC,
11399            InitialState: D3D12_RESOURCE_STATES,
11400            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
11401            riid: *const IID,
11402            ppvResource: *mut *mut ::std::os::raw::c_void,
11403        ) -> HRESULT,
11404    >,
11405    pub CreateSharedHandle: ::std::option::Option<
11406        unsafe extern "C" fn(
11407            This: *mut ID3D12Device3,
11408            pObject: *mut ID3D12DeviceChild,
11409            pAttributes: *const SECURITY_ATTRIBUTES,
11410            Access: DWORD,
11411            Name: LPCWSTR,
11412            pHandle: *mut HANDLE,
11413        ) -> HRESULT,
11414    >,
11415    pub OpenSharedHandle: ::std::option::Option<
11416        unsafe extern "C" fn(
11417            This: *mut ID3D12Device3,
11418            NTHandle: HANDLE,
11419            riid: *const IID,
11420            ppvObj: *mut *mut ::std::os::raw::c_void,
11421        ) -> HRESULT,
11422    >,
11423    pub OpenSharedHandleByName: ::std::option::Option<
11424        unsafe extern "C" fn(
11425            This: *mut ID3D12Device3,
11426            Name: LPCWSTR,
11427            Access: DWORD,
11428            pNTHandle: *mut HANDLE,
11429        ) -> HRESULT,
11430    >,
11431    pub MakeResident: ::std::option::Option<
11432        unsafe extern "C" fn(
11433            This: *mut ID3D12Device3,
11434            NumObjects: UINT,
11435            ppObjects: *const *mut ID3D12Pageable,
11436        ) -> HRESULT,
11437    >,
11438    pub Evict: ::std::option::Option<
11439        unsafe extern "C" fn(
11440            This: *mut ID3D12Device3,
11441            NumObjects: UINT,
11442            ppObjects: *const *mut ID3D12Pageable,
11443        ) -> HRESULT,
11444    >,
11445    pub CreateFence: ::std::option::Option<
11446        unsafe extern "C" fn(
11447            This: *mut ID3D12Device3,
11448            InitialValue: UINT64,
11449            Flags: D3D12_FENCE_FLAGS,
11450            riid: *const IID,
11451            ppFence: *mut *mut ::std::os::raw::c_void,
11452        ) -> HRESULT,
11453    >,
11454    pub GetDeviceRemovedReason: ::std::option::Option<
11455        unsafe extern "C" fn(This: *mut ID3D12Device3) -> HRESULT,
11456    >,
11457    pub GetCopyableFootprints: ::std::option::Option<
11458        unsafe extern "C" fn(
11459            This: *mut ID3D12Device3,
11460            pResourceDesc: *const D3D12_RESOURCE_DESC,
11461            FirstSubresource: UINT,
11462            NumSubresources: UINT,
11463            BaseOffset: UINT64,
11464            pLayouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
11465            pNumRows: *mut UINT,
11466            pRowSizeInBytes: *mut UINT64,
11467            pTotalBytes: *mut UINT64,
11468        ),
11469    >,
11470    pub CreateQueryHeap: ::std::option::Option<
11471        unsafe extern "C" fn(
11472            This: *mut ID3D12Device3,
11473            pDesc: *const D3D12_QUERY_HEAP_DESC,
11474            riid: *const IID,
11475            ppvHeap: *mut *mut ::std::os::raw::c_void,
11476        ) -> HRESULT,
11477    >,
11478    pub SetStablePowerState: ::std::option::Option<
11479        unsafe extern "C" fn(This: *mut ID3D12Device3, Enable: BOOL) -> HRESULT,
11480    >,
11481    pub CreateCommandSignature: ::std::option::Option<
11482        unsafe extern "C" fn(
11483            This: *mut ID3D12Device3,
11484            pDesc: *const D3D12_COMMAND_SIGNATURE_DESC,
11485            pRootSignature: *mut ID3D12RootSignature,
11486            riid: *const IID,
11487            ppvCommandSignature: *mut *mut ::std::os::raw::c_void,
11488        ) -> HRESULT,
11489    >,
11490    pub GetResourceTiling: ::std::option::Option<
11491        unsafe extern "C" fn(
11492            This: *mut ID3D12Device3,
11493            pTiledResource: *mut ID3D12Resource,
11494            pNumTilesForEntireResource: *mut UINT,
11495            pPackedMipDesc: *mut D3D12_PACKED_MIP_INFO,
11496            pStandardTileShapeForNonPackedMips: *mut D3D12_TILE_SHAPE,
11497            pNumSubresourceTilings: *mut UINT,
11498            FirstSubresourceTilingToGet: UINT,
11499            pSubresourceTilingsForNonPackedMips: *mut D3D12_SUBRESOURCE_TILING,
11500        ),
11501    >,
11502    pub GetAdapterLuid: ::std::option::Option<
11503        unsafe extern "C" fn(
11504            This: *mut ID3D12Device3,
11505            RetVal: *mut LUID,
11506        ) -> *mut LUID,
11507    >,
11508    pub CreatePipelineLibrary: ::std::option::Option<
11509        unsafe extern "C" fn(
11510            This: *mut ID3D12Device3,
11511            pLibraryBlob: *const ::std::os::raw::c_void,
11512            BlobLength: SIZE_T,
11513            riid: *const IID,
11514            ppPipelineLibrary: *mut *mut ::std::os::raw::c_void,
11515        ) -> HRESULT,
11516    >,
11517    pub SetEventOnMultipleFenceCompletion: ::std::option::Option<
11518        unsafe extern "C" fn(
11519            This: *mut ID3D12Device3,
11520            ppFences: *const *mut ID3D12Fence,
11521            pFenceValues: *const UINT64,
11522            NumFences: UINT,
11523            Flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS,
11524            hEvent: HANDLE,
11525        ) -> HRESULT,
11526    >,
11527    pub SetResidencyPriority: ::std::option::Option<
11528        unsafe extern "C" fn(
11529            This: *mut ID3D12Device3,
11530            NumObjects: UINT,
11531            ppObjects: *const *mut ID3D12Pageable,
11532            pPriorities: *const D3D12_RESIDENCY_PRIORITY,
11533        ) -> HRESULT,
11534    >,
11535    pub CreatePipelineState: ::std::option::Option<
11536        unsafe extern "C" fn(
11537            This: *mut ID3D12Device3,
11538            pDesc: *const D3D12_PIPELINE_STATE_STREAM_DESC,
11539            riid: *const IID,
11540            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11541        ) -> HRESULT,
11542    >,
11543    pub OpenExistingHeapFromAddress: ::std::option::Option<
11544        unsafe extern "C" fn(
11545            This: *mut ID3D12Device3,
11546            pAddress: *const ::std::os::raw::c_void,
11547            riid: *const IID,
11548            ppvHeap: *mut *mut ::std::os::raw::c_void,
11549        ) -> HRESULT,
11550    >,
11551    pub OpenExistingHeapFromFileMapping: ::std::option::Option<
11552        unsafe extern "C" fn(
11553            This: *mut ID3D12Device3,
11554            hFileMapping: HANDLE,
11555            riid: *const IID,
11556            ppvHeap: *mut *mut ::std::os::raw::c_void,
11557        ) -> HRESULT,
11558    >,
11559    pub EnqueueMakeResident: ::std::option::Option<
11560        unsafe extern "C" fn(
11561            This: *mut ID3D12Device3,
11562            Flags: D3D12_RESIDENCY_FLAGS,
11563            NumObjects: UINT,
11564            ppObjects: *const *mut ID3D12Pageable,
11565            pFenceToSignal: *mut ID3D12Fence,
11566            FenceValueToSignal: UINT64,
11567        ) -> HRESULT,
11568    >,
11569}
11570#[repr(C)]
11571#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11572pub struct ID3D12Device3 {
11573    pub lpVtbl: *mut ID3D12Device3Vtbl,
11574}
11575impl Default for ID3D12Device3 {
11576    fn default() -> Self {
11577        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11578        unsafe {
11579            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11580            s.assume_init()
11581        }
11582    }
11583}
11584pub const D3D12_COMMAND_LIST_FLAGS_D3D12_COMMAND_LIST_FLAG_NONE:
11585    D3D12_COMMAND_LIST_FLAGS = 0;
11586pub type D3D12_COMMAND_LIST_FLAGS = ::std::os::raw::c_int;
11587pub const D3D12_COMMAND_POOL_FLAGS_D3D12_COMMAND_POOL_FLAG_NONE:
11588    D3D12_COMMAND_POOL_FLAGS = 0;
11589pub type D3D12_COMMAND_POOL_FLAGS = ::std::os::raw::c_int;
11590pub const D3D12_COMMAND_RECORDER_FLAGS_D3D12_COMMAND_RECORDER_FLAG_NONE:
11591    D3D12_COMMAND_RECORDER_FLAGS = 0;
11592pub type D3D12_COMMAND_RECORDER_FLAGS = ::std::os::raw::c_int;
11593pub const D3D12_PROTECTED_SESSION_STATUS_D3D12_PROTECTED_SESSION_STATUS_OK:
11594    D3D12_PROTECTED_SESSION_STATUS = 0;
11595pub const D3D12_PROTECTED_SESSION_STATUS_D3D12_PROTECTED_SESSION_STATUS_INVALID : D3D12_PROTECTED_SESSION_STATUS = 1 ;
11596pub type D3D12_PROTECTED_SESSION_STATUS = ::std::os::raw::c_int;
11597extern "C" {
11598    pub static IID_ID3D12ProtectedSession: IID;
11599}
11600#[repr(C)]
11601#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11602pub struct ID3D12ProtectedSessionVtbl {
11603    pub QueryInterface: ::std::option::Option<
11604        unsafe extern "C" fn(
11605            This: *mut ID3D12ProtectedSession,
11606            riid: *const IID,
11607            ppvObject: *mut *mut ::std::os::raw::c_void,
11608        ) -> HRESULT,
11609    >,
11610    pub AddRef: ::std::option::Option<
11611        unsafe extern "C" fn(This: *mut ID3D12ProtectedSession) -> ULONG,
11612    >,
11613    pub Release: ::std::option::Option<
11614        unsafe extern "C" fn(This: *mut ID3D12ProtectedSession) -> ULONG,
11615    >,
11616    pub GetPrivateData: ::std::option::Option<
11617        unsafe extern "C" fn(
11618            This: *mut ID3D12ProtectedSession,
11619            guid: *const GUID,
11620            pDataSize: *mut UINT,
11621            pData: *mut ::std::os::raw::c_void,
11622        ) -> HRESULT,
11623    >,
11624    pub SetPrivateData: ::std::option::Option<
11625        unsafe extern "C" fn(
11626            This: *mut ID3D12ProtectedSession,
11627            guid: *const GUID,
11628            DataSize: UINT,
11629            pData: *const ::std::os::raw::c_void,
11630        ) -> HRESULT,
11631    >,
11632    pub SetPrivateDataInterface: ::std::option::Option<
11633        unsafe extern "C" fn(
11634            This: *mut ID3D12ProtectedSession,
11635            guid: *const GUID,
11636            pData: *const IUnknown,
11637        ) -> HRESULT,
11638    >,
11639    pub SetName: ::std::option::Option<
11640        unsafe extern "C" fn(
11641            This: *mut ID3D12ProtectedSession,
11642            Name: LPCWSTR,
11643        ) -> HRESULT,
11644    >,
11645    pub GetDevice: ::std::option::Option<
11646        unsafe extern "C" fn(
11647            This: *mut ID3D12ProtectedSession,
11648            riid: *const IID,
11649            ppvDevice: *mut *mut ::std::os::raw::c_void,
11650        ) -> HRESULT,
11651    >,
11652    pub GetStatusFence: ::std::option::Option<
11653        unsafe extern "C" fn(
11654            This: *mut ID3D12ProtectedSession,
11655            riid: *const IID,
11656            ppFence: *mut *mut ::std::os::raw::c_void,
11657        ) -> HRESULT,
11658    >,
11659    pub GetSessionStatus: ::std::option::Option<
11660        unsafe extern "C" fn(
11661            This: *mut ID3D12ProtectedSession,
11662        ) -> D3D12_PROTECTED_SESSION_STATUS,
11663    >,
11664}
11665#[repr(C)]
11666#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11667pub struct ID3D12ProtectedSession {
11668    pub lpVtbl: *mut ID3D12ProtectedSessionVtbl,
11669}
11670impl Default for ID3D12ProtectedSession {
11671    fn default() -> Self {
11672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11673        unsafe {
11674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11675            s.assume_init()
11676        }
11677    }
11678}
11679pub const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE : D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS = 0 ;
11680pub const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED : D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS = 1 ;
11681pub type D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS = ::std::os::raw::c_int;
11682#[repr(C)]
11683#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11684pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
11685    pub NodeIndex: UINT,
11686    pub Support: D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS,
11687}
11688impl Default for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
11689    fn default() -> Self {
11690        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11691        unsafe {
11692            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11693            s.assume_init()
11694        }
11695    }
11696}
11697pub const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS_D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE : D3D12_PROTECTED_RESOURCE_SESSION_FLAGS = 0 ;
11698pub type D3D12_PROTECTED_RESOURCE_SESSION_FLAGS = ::std::os::raw::c_int;
11699#[repr(C)]
11700#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11701pub struct D3D12_PROTECTED_RESOURCE_SESSION_DESC {
11702    pub NodeMask: UINT,
11703    pub Flags: D3D12_PROTECTED_RESOURCE_SESSION_FLAGS,
11704}
11705impl Default for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
11706    fn default() -> Self {
11707        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11708        unsafe {
11709            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11710            s.assume_init()
11711        }
11712    }
11713}
11714extern "C" {
11715    pub static IID_ID3D12ProtectedResourceSession: IID;
11716}
11717#[repr(C)]
11718#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11719pub struct ID3D12ProtectedResourceSessionVtbl {
11720    pub QueryInterface: ::std::option::Option<
11721        unsafe extern "C" fn(
11722            This: *mut ID3D12ProtectedResourceSession,
11723            riid: *const IID,
11724            ppvObject: *mut *mut ::std::os::raw::c_void,
11725        ) -> HRESULT,
11726    >,
11727    pub AddRef: ::std::option::Option<
11728        unsafe extern "C" fn(
11729            This: *mut ID3D12ProtectedResourceSession,
11730        ) -> ULONG,
11731    >,
11732    pub Release: ::std::option::Option<
11733        unsafe extern "C" fn(
11734            This: *mut ID3D12ProtectedResourceSession,
11735        ) -> ULONG,
11736    >,
11737    pub GetPrivateData: ::std::option::Option<
11738        unsafe extern "C" fn(
11739            This: *mut ID3D12ProtectedResourceSession,
11740            guid: *const GUID,
11741            pDataSize: *mut UINT,
11742            pData: *mut ::std::os::raw::c_void,
11743        ) -> HRESULT,
11744    >,
11745    pub SetPrivateData: ::std::option::Option<
11746        unsafe extern "C" fn(
11747            This: *mut ID3D12ProtectedResourceSession,
11748            guid: *const GUID,
11749            DataSize: UINT,
11750            pData: *const ::std::os::raw::c_void,
11751        ) -> HRESULT,
11752    >,
11753    pub SetPrivateDataInterface: ::std::option::Option<
11754        unsafe extern "C" fn(
11755            This: *mut ID3D12ProtectedResourceSession,
11756            guid: *const GUID,
11757            pData: *const IUnknown,
11758        ) -> HRESULT,
11759    >,
11760    pub SetName: ::std::option::Option<
11761        unsafe extern "C" fn(
11762            This: *mut ID3D12ProtectedResourceSession,
11763            Name: LPCWSTR,
11764        ) -> HRESULT,
11765    >,
11766    pub GetDevice: ::std::option::Option<
11767        unsafe extern "C" fn(
11768            This: *mut ID3D12ProtectedResourceSession,
11769            riid: *const IID,
11770            ppvDevice: *mut *mut ::std::os::raw::c_void,
11771        ) -> HRESULT,
11772    >,
11773    pub GetStatusFence: ::std::option::Option<
11774        unsafe extern "C" fn(
11775            This: *mut ID3D12ProtectedResourceSession,
11776            riid: *const IID,
11777            ppFence: *mut *mut ::std::os::raw::c_void,
11778        ) -> HRESULT,
11779    >,
11780    pub GetSessionStatus: ::std::option::Option<
11781        unsafe extern "C" fn(
11782            This: *mut ID3D12ProtectedResourceSession,
11783        ) -> D3D12_PROTECTED_SESSION_STATUS,
11784    >,
11785    pub GetDesc: ::std::option::Option<
11786        unsafe extern "C" fn(
11787            This: *mut ID3D12ProtectedResourceSession,
11788            RetVal: *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC,
11789        )
11790            -> *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC,
11791    >,
11792}
11793#[repr(C)]
11794#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11795pub struct ID3D12ProtectedResourceSession {
11796    pub lpVtbl: *mut ID3D12ProtectedResourceSessionVtbl,
11797}
11798impl Default for ID3D12ProtectedResourceSession {
11799    fn default() -> Self {
11800        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11801        unsafe {
11802            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11803            s.assume_init()
11804        }
11805    }
11806}
11807extern "C" {
11808    pub static IID_ID3D12Device4: IID;
11809}
11810#[repr(C)]
11811#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
11812pub struct ID3D12Device4Vtbl {
11813    pub QueryInterface: ::std::option::Option<
11814        unsafe extern "C" fn(
11815            This: *mut ID3D12Device4,
11816            riid: *const IID,
11817            ppvObject: *mut *mut ::std::os::raw::c_void,
11818        ) -> HRESULT,
11819    >,
11820    pub AddRef: ::std::option::Option<
11821        unsafe extern "C" fn(This: *mut ID3D12Device4) -> ULONG,
11822    >,
11823    pub Release: ::std::option::Option<
11824        unsafe extern "C" fn(This: *mut ID3D12Device4) -> ULONG,
11825    >,
11826    pub GetPrivateData: ::std::option::Option<
11827        unsafe extern "C" fn(
11828            This: *mut ID3D12Device4,
11829            guid: *const GUID,
11830            pDataSize: *mut UINT,
11831            pData: *mut ::std::os::raw::c_void,
11832        ) -> HRESULT,
11833    >,
11834    pub SetPrivateData: ::std::option::Option<
11835        unsafe extern "C" fn(
11836            This: *mut ID3D12Device4,
11837            guid: *const GUID,
11838            DataSize: UINT,
11839            pData: *const ::std::os::raw::c_void,
11840        ) -> HRESULT,
11841    >,
11842    pub SetPrivateDataInterface: ::std::option::Option<
11843        unsafe extern "C" fn(
11844            This: *mut ID3D12Device4,
11845            guid: *const GUID,
11846            pData: *const IUnknown,
11847        ) -> HRESULT,
11848    >,
11849    pub SetName: ::std::option::Option<
11850        unsafe extern "C" fn(
11851            This: *mut ID3D12Device4,
11852            Name: LPCWSTR,
11853        ) -> HRESULT,
11854    >,
11855    pub GetNodeCount: ::std::option::Option<
11856        unsafe extern "C" fn(This: *mut ID3D12Device4) -> UINT,
11857    >,
11858    pub CreateCommandQueue: ::std::option::Option<
11859        unsafe extern "C" fn(
11860            This: *mut ID3D12Device4,
11861            pDesc: *const D3D12_COMMAND_QUEUE_DESC,
11862            riid: *const IID,
11863            ppCommandQueue: *mut *mut ::std::os::raw::c_void,
11864        ) -> HRESULT,
11865    >,
11866    pub CreateCommandAllocator: ::std::option::Option<
11867        unsafe extern "C" fn(
11868            This: *mut ID3D12Device4,
11869            type_: D3D12_COMMAND_LIST_TYPE,
11870            riid: *const IID,
11871            ppCommandAllocator: *mut *mut ::std::os::raw::c_void,
11872        ) -> HRESULT,
11873    >,
11874    pub CreateGraphicsPipelineState: ::std::option::Option<
11875        unsafe extern "C" fn(
11876            This: *mut ID3D12Device4,
11877            pDesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC,
11878            riid: *const IID,
11879            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11880        ) -> HRESULT,
11881    >,
11882    pub CreateComputePipelineState: ::std::option::Option<
11883        unsafe extern "C" fn(
11884            This: *mut ID3D12Device4,
11885            pDesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC,
11886            riid: *const IID,
11887            ppPipelineState: *mut *mut ::std::os::raw::c_void,
11888        ) -> HRESULT,
11889    >,
11890    pub CreateCommandList: ::std::option::Option<
11891        unsafe extern "C" fn(
11892            This: *mut ID3D12Device4,
11893            nodeMask: UINT,
11894            type_: D3D12_COMMAND_LIST_TYPE,
11895            pCommandAllocator: *mut ID3D12CommandAllocator,
11896            pInitialState: *mut ID3D12PipelineState,
11897            riid: *const IID,
11898            ppCommandList: *mut *mut ::std::os::raw::c_void,
11899        ) -> HRESULT,
11900    >,
11901    pub CheckFeatureSupport: ::std::option::Option<
11902        unsafe extern "C" fn(
11903            This: *mut ID3D12Device4,
11904            Feature: D3D12_FEATURE,
11905            pFeatureSupportData: *mut ::std::os::raw::c_void,
11906            FeatureSupportDataSize: UINT,
11907        ) -> HRESULT,
11908    >,
11909    pub CreateDescriptorHeap: ::std::option::Option<
11910        unsafe extern "C" fn(
11911            This: *mut ID3D12Device4,
11912            pDescriptorHeapDesc: *const D3D12_DESCRIPTOR_HEAP_DESC,
11913            riid: *const IID,
11914            ppvHeap: *mut *mut ::std::os::raw::c_void,
11915        ) -> HRESULT,
11916    >,
11917    pub GetDescriptorHandleIncrementSize: ::std::option::Option<
11918        unsafe extern "C" fn(
11919            This: *mut ID3D12Device4,
11920            DescriptorHeapType: D3D12_DESCRIPTOR_HEAP_TYPE,
11921        ) -> UINT,
11922    >,
11923    pub CreateRootSignature: ::std::option::Option<
11924        unsafe extern "C" fn(
11925            This: *mut ID3D12Device4,
11926            nodeMask: UINT,
11927            pBlobWithRootSignature: *const ::std::os::raw::c_void,
11928            blobLengthInBytes: SIZE_T,
11929            riid: *const IID,
11930            ppvRootSignature: *mut *mut ::std::os::raw::c_void,
11931        ) -> HRESULT,
11932    >,
11933    pub CreateConstantBufferView: ::std::option::Option<
11934        unsafe extern "C" fn(
11935            This: *mut ID3D12Device4,
11936            pDesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC,
11937            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11938        ),
11939    >,
11940    pub CreateShaderResourceView: ::std::option::Option<
11941        unsafe extern "C" fn(
11942            This: *mut ID3D12Device4,
11943            pResource: *mut ID3D12Resource,
11944            pDesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC,
11945            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11946        ),
11947    >,
11948    pub CreateUnorderedAccessView: ::std::option::Option<
11949        unsafe extern "C" fn(
11950            This: *mut ID3D12Device4,
11951            pResource: *mut ID3D12Resource,
11952            pCounterResource: *mut ID3D12Resource,
11953            pDesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC,
11954            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11955        ),
11956    >,
11957    pub CreateRenderTargetView: ::std::option::Option<
11958        unsafe extern "C" fn(
11959            This: *mut ID3D12Device4,
11960            pResource: *mut ID3D12Resource,
11961            pDesc: *const D3D12_RENDER_TARGET_VIEW_DESC,
11962            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11963        ),
11964    >,
11965    pub CreateDepthStencilView: ::std::option::Option<
11966        unsafe extern "C" fn(
11967            This: *mut ID3D12Device4,
11968            pResource: *mut ID3D12Resource,
11969            pDesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC,
11970            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11971        ),
11972    >,
11973    pub CreateSampler: ::std::option::Option<
11974        unsafe extern "C" fn(
11975            This: *mut ID3D12Device4,
11976            pDesc: *const D3D12_SAMPLER_DESC,
11977            DestDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
11978        ),
11979    >,
11980    pub CopyDescriptors: ::std::option::Option<
11981        unsafe extern "C" fn(
11982            This: *mut ID3D12Device4,
11983            NumDestDescriptorRanges: UINT,
11984            pDestDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
11985            pDestDescriptorRangeSizes: *const UINT,
11986            NumSrcDescriptorRanges: UINT,
11987            pSrcDescriptorRangeStarts: *const D3D12_CPU_DESCRIPTOR_HANDLE,
11988            pSrcDescriptorRangeSizes: *const UINT,
11989            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
11990        ),
11991    >,
11992    pub CopyDescriptorsSimple: ::std::option::Option<
11993        unsafe extern "C" fn(
11994            This: *mut ID3D12Device4,
11995            NumDescriptors: UINT,
11996            DestDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
11997            SrcDescriptorRangeStart: D3D12_CPU_DESCRIPTOR_HANDLE,
11998            DescriptorHeapsType: D3D12_DESCRIPTOR_HEAP_TYPE,
11999        ),
12000    >,
12001    pub GetResourceAllocationInfo: ::std::option::Option<
12002        unsafe extern "C" fn(
12003            This: *mut ID3D12Device4,
12004            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
12005            visibleMask: UINT,
12006            numResourceDescs: UINT,
12007            pResourceDescs: *const D3D12_RESOURCE_DESC,
12008        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
12009    >,
12010    pub GetCustomHeapProperties: ::std::option::Option<
12011        unsafe extern "C" fn(
12012            This: *mut ID3D12Device4,
12013            RetVal: *mut D3D12_HEAP_PROPERTIES,
12014            nodeMask: UINT,
12015            heapType: D3D12_HEAP_TYPE,
12016        ) -> *mut D3D12_HEAP_PROPERTIES,
12017    >,
12018    pub CreateCommittedResource: ::std::option::Option<
12019        unsafe extern "C" fn(
12020            This: *mut ID3D12Device4,
12021            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
12022            HeapFlags: D3D12_HEAP_FLAGS,
12023            pDesc: *const D3D12_RESOURCE_DESC,
12024            InitialResourceState: D3D12_RESOURCE_STATES,
12025            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
12026            riidResource: *const IID,
12027            ppvResource: *mut *mut ::std::os::raw::c_void,
12028        ) -> HRESULT,
12029    >,
12030    pub CreateHeap: ::std::option::Option<
12031        unsafe extern "C" fn(
12032            This: *mut ID3D12Device4,
12033            pDesc: *const D3D12_HEAP_DESC,
12034            riid: *const IID,
12035            ppvHeap: *mut *mut ::std::os::raw::c_void,
12036        ) -> HRESULT,
12037    >,
12038    pub CreatePlacedResource: ::std::option::Option<
12039        unsafe extern "C" fn(
12040            This: *mut ID3D12Device4,
12041            pHeap: *mut ID3D12Heap,
12042            HeapOffset: UINT64,
12043            pDesc: *const D3D12_RESOURCE_DESC,
12044            InitialState: D3D12_RESOURCE_STATES,
12045            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
12046            riid: *const IID,
12047            ppvResource: *mut *mut ::std::os::raw::c_void,
12048        ) -> HRESULT,
12049    >,
12050    pub CreateReservedResource: ::std::option::Option<
12051        unsafe extern "C" fn(
12052            This: *mut ID3D12Device4,
12053            pDesc: *const D3D12_RESOURCE_DESC,
12054            InitialState: D3D12_RESOURCE_STATES,
12055            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
12056            riid: *const IID,
12057            ppvResource: *mut *mut ::std::os::raw::c_void,
12058        ) -> HRESULT,
12059    >,
12060    pub CreateSharedHandle: ::std::option::Option<
12061        unsafe extern "C" fn(
12062            This: *mut ID3D12Device4,
12063            pObject: *mut ID3D12DeviceChild,
12064            pAttributes: *const SECURITY_ATTRIBUTES,
12065            Access: DWORD,
12066            Name: LPCWSTR,
12067            pHandle: *mut HANDLE,
12068        ) -> HRESULT,
12069    >,
12070    pub OpenSharedHandle: ::std::option::Option<
12071        unsafe extern "C" fn(
12072            This: *mut ID3D12Device4,
12073            NTHandle: HANDLE,
12074            riid: *const IID,
12075            ppvObj: *mut *mut ::std::os::raw::c_void,
12076        ) -> HRESULT,
12077    >,
12078    pub OpenSharedHandleByName: ::std::option::Option<
12079        unsafe extern "C" fn(
12080            This: *mut ID3D12Device4,
12081            Name: LPCWSTR,
12082            Access: DWORD,
12083            pNTHandle: *mut HANDLE,
12084        ) -> HRESULT,
12085    >,
12086    pub MakeResident: ::std::option::Option<
12087        unsafe extern "C" fn(
12088            This: *mut ID3D12Device4,
12089            NumObjects: UINT,
12090            ppObjects: *const *mut ID3D12Pageable,
12091        ) -> HRESULT,
12092    >,
12093    pub Evict: ::std::option::Option<
12094        unsafe extern "C" fn(
12095            This: *mut ID3D12Device4,
12096            NumObjects: UINT,
12097            ppObjects: *const *mut ID3D12Pageable,
12098        ) -> HRESULT,
12099    >,
12100    pub CreateFence: ::std::option::Option<
12101        unsafe extern "C" fn(
12102            This: *mut ID3D12Device4,
12103            InitialValue: UINT64,
12104            Flags: D3D12_FENCE_FLAGS,
12105            riid: *const IID,
12106            ppFence: *mut *mut ::std::os::raw::c_void,
12107        ) -> HRESULT,
12108    >,
12109    pub GetDeviceRemovedReason: ::std::option::Option<
12110        unsafe extern "C" fn(This: *mut ID3D12Device4) -> HRESULT,
12111    >,
12112    pub GetCopyableFootprints: ::std::option::Option<
12113        unsafe extern "C" fn(
12114            This: *mut ID3D12Device4,
12115            pResourceDesc: *const D3D12_RESOURCE_DESC,
12116            FirstSubresource: UINT,
12117            NumSubresources: UINT,
12118            BaseOffset: UINT64,
12119            pLayouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
12120            pNumRows: *mut UINT,
12121            pRowSizeInBytes: *mut UINT64,
12122            pTotalBytes: *mut UINT64,
12123        ),
12124    >,
12125    pub CreateQueryHeap: ::std::option::Option<
12126        unsafe extern "C" fn(
12127            This: *mut ID3D12Device4,
12128            pDesc: *const D3D12_QUERY_HEAP_DESC,
12129            riid: *const IID,
12130            ppvHeap: *mut *mut ::std::os::raw::c_void,
12131        ) -> HRESULT,
12132    >,
12133    pub SetStablePowerState: ::std::option::Option<
12134        unsafe extern "C" fn(This: *mut ID3D12Device4, Enable: BOOL) -> HRESULT,
12135    >,
12136    pub CreateCommandSignature: ::std::option::Option<
12137        unsafe extern "C" fn(
12138            This: *mut ID3D12Device4,
12139            pDesc: *const D3D12_COMMAND_SIGNATURE_DESC,
12140            pRootSignature: *mut ID3D12RootSignature,
12141            riid: *const IID,
12142            ppvCommandSignature: *mut *mut ::std::os::raw::c_void,
12143        ) -> HRESULT,
12144    >,
12145    pub GetResourceTiling: ::std::option::Option<
12146        unsafe extern "C" fn(
12147            This: *mut ID3D12Device4,
12148            pTiledResource: *mut ID3D12Resource,
12149            pNumTilesForEntireResource: *mut UINT,
12150            pPackedMipDesc: *mut D3D12_PACKED_MIP_INFO,
12151            pStandardTileShapeForNonPackedMips: *mut D3D12_TILE_SHAPE,
12152            pNumSubresourceTilings: *mut UINT,
12153            FirstSubresourceTilingToGet: UINT,
12154            pSubresourceTilingsForNonPackedMips: *mut D3D12_SUBRESOURCE_TILING,
12155        ),
12156    >,
12157    pub GetAdapterLuid: ::std::option::Option<
12158        unsafe extern "C" fn(
12159            This: *mut ID3D12Device4,
12160            RetVal: *mut LUID,
12161        ) -> *mut LUID,
12162    >,
12163    pub CreatePipelineLibrary: ::std::option::Option<
12164        unsafe extern "C" fn(
12165            This: *mut ID3D12Device4,
12166            pLibraryBlob: *const ::std::os::raw::c_void,
12167            BlobLength: SIZE_T,
12168            riid: *const IID,
12169            ppPipelineLibrary: *mut *mut ::std::os::raw::c_void,
12170        ) -> HRESULT,
12171    >,
12172    pub SetEventOnMultipleFenceCompletion: ::std::option::Option<
12173        unsafe extern "C" fn(
12174            This: *mut ID3D12Device4,
12175            ppFences: *const *mut ID3D12Fence,
12176            pFenceValues: *const UINT64,
12177            NumFences: UINT,
12178            Flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS,
12179            hEvent: HANDLE,
12180        ) -> HRESULT,
12181    >,
12182    pub SetResidencyPriority: ::std::option::Option<
12183        unsafe extern "C" fn(
12184            This: *mut ID3D12Device4,
12185            NumObjects: UINT,
12186            ppObjects: *const *mut ID3D12Pageable,
12187            pPriorities: *const D3D12_RESIDENCY_PRIORITY,
12188        ) -> HRESULT,
12189    >,
12190    pub CreatePipelineState: ::std::option::Option<
12191        unsafe extern "C" fn(
12192            This: *mut ID3D12Device4,
12193            pDesc: *const D3D12_PIPELINE_STATE_STREAM_DESC,
12194            riid: *const IID,
12195            ppPipelineState: *mut *mut ::std::os::raw::c_void,
12196        ) -> HRESULT,
12197    >,
12198    pub OpenExistingHeapFromAddress: ::std::option::Option<
12199        unsafe extern "C" fn(
12200            This: *mut ID3D12Device4,
12201            pAddress: *const ::std::os::raw::c_void,
12202            riid: *const IID,
12203            ppvHeap: *mut *mut ::std::os::raw::c_void,
12204        ) -> HRESULT,
12205    >,
12206    pub OpenExistingHeapFromFileMapping: ::std::option::Option<
12207        unsafe extern "C" fn(
12208            This: *mut ID3D12Device4,
12209            hFileMapping: HANDLE,
12210            riid: *const IID,
12211            ppvHeap: *mut *mut ::std::os::raw::c_void,
12212        ) -> HRESULT,
12213    >,
12214    pub EnqueueMakeResident: ::std::option::Option<
12215        unsafe extern "C" fn(
12216            This: *mut ID3D12Device4,
12217            Flags: D3D12_RESIDENCY_FLAGS,
12218            NumObjects: UINT,
12219            ppObjects: *const *mut ID3D12Pageable,
12220            pFenceToSignal: *mut ID3D12Fence,
12221            FenceValueToSignal: UINT64,
12222        ) -> HRESULT,
12223    >,
12224    pub CreateCommandList1: ::std::option::Option<
12225        unsafe extern "C" fn(
12226            This: *mut ID3D12Device4,
12227            nodeMask: UINT,
12228            type_: D3D12_COMMAND_LIST_TYPE,
12229            flags: D3D12_COMMAND_LIST_FLAGS,
12230            riid: *const IID,
12231            ppCommandList: *mut *mut ::std::os::raw::c_void,
12232        ) -> HRESULT,
12233    >,
12234    pub CreateProtectedResourceSession: ::std::option::Option<
12235        unsafe extern "C" fn(
12236            This: *mut ID3D12Device4,
12237            pDesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC,
12238            riid: *const IID,
12239            ppSession: *mut *mut ::std::os::raw::c_void,
12240        ) -> HRESULT,
12241    >,
12242    pub CreateCommittedResource1: ::std::option::Option<
12243        unsafe extern "C" fn(
12244            This: *mut ID3D12Device4,
12245            pHeapProperties: *const D3D12_HEAP_PROPERTIES,
12246            HeapFlags: D3D12_HEAP_FLAGS,
12247            pDesc: *const D3D12_RESOURCE_DESC,
12248            InitialResourceState: D3D12_RESOURCE_STATES,
12249            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
12250            pProtectedSession: *mut ID3D12ProtectedResourceSession,
12251            riidResource: *const IID,
12252            ppvResource: *mut *mut ::std::os::raw::c_void,
12253        ) -> HRESULT,
12254    >,
12255    pub CreateHeap1: ::std::option::Option<
12256        unsafe extern "C" fn(
12257            This: *mut ID3D12Device4,
12258            pDesc: *const D3D12_HEAP_DESC,
12259            pProtectedSession: *mut ID3D12ProtectedResourceSession,
12260            riid: *const IID,
12261            ppvHeap: *mut *mut ::std::os::raw::c_void,
12262        ) -> HRESULT,
12263    >,
12264    pub CreateReservedResource1: ::std::option::Option<
12265        unsafe extern "C" fn(
12266            This: *mut ID3D12Device4,
12267            pDesc: *const D3D12_RESOURCE_DESC,
12268            InitialState: D3D12_RESOURCE_STATES,
12269            pOptimizedClearValue: *const D3D12_CLEAR_VALUE,
12270            pProtectedSession: *mut ID3D12ProtectedResourceSession,
12271            riid: *const IID,
12272            ppvResource: *mut *mut ::std::os::raw::c_void,
12273        ) -> HRESULT,
12274    >,
12275    pub GetResourceAllocationInfo1: ::std::option::Option<
12276        unsafe extern "C" fn(
12277            This: *mut ID3D12Device4,
12278            RetVal: *mut D3D12_RESOURCE_ALLOCATION_INFO,
12279            visibleMask: UINT,
12280            numResourceDescs: UINT,
12281            pResourceDescs: *const D3D12_RESOURCE_DESC,
12282            pResourceAllocationInfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1,
12283        ) -> *mut D3D12_RESOURCE_ALLOCATION_INFO,
12284    >,
12285}
12286#[repr(C)]
12287#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12288pub struct ID3D12Device4 {
12289    pub lpVtbl: *mut ID3D12Device4Vtbl,
12290}
12291impl Default for ID3D12Device4 {
12292    fn default() -> Self {
12293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12294        unsafe {
12295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12296            s.assume_init()
12297        }
12298    }
12299}
12300pub const D3D12_LIFETIME_STATE_D3D12_LIFETIME_STATE_IN_USE:
12301    D3D12_LIFETIME_STATE = 0;
12302pub const D3D12_LIFETIME_STATE_D3D12_LIFETIME_STATE_NOT_IN_USE:
12303    D3D12_LIFETIME_STATE = 1;
12304pub type D3D12_LIFETIME_STATE = ::std::os::raw::c_int;
12305extern "C" {
12306    pub static IID_ID3D12LifetimeOwner: IID;
12307}
12308#[repr(C)]
12309#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12310pub struct ID3D12LifetimeOwnerVtbl {
12311    pub QueryInterface: ::std::option::Option<
12312        unsafe extern "C" fn(
12313            This: *mut ID3D12LifetimeOwner,
12314            riid: *const IID,
12315            ppvObject: *mut *mut ::std::os::raw::c_void,
12316        ) -> HRESULT,
12317    >,
12318    pub AddRef: ::std::option::Option<
12319        unsafe extern "C" fn(This: *mut ID3D12LifetimeOwner) -> ULONG,
12320    >,
12321    pub Release: ::std::option::Option<
12322        unsafe extern "C" fn(This: *mut ID3D12LifetimeOwner) -> ULONG,
12323    >,
12324    pub LifetimeStateUpdated: ::std::option::Option<
12325        unsafe extern "C" fn(
12326            This: *mut ID3D12LifetimeOwner,
12327            NewState: D3D12_LIFETIME_STATE,
12328        ),
12329    >,
12330}
12331#[repr(C)]
12332#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12333pub struct ID3D12LifetimeOwner {
12334    pub lpVtbl: *mut ID3D12LifetimeOwnerVtbl,
12335}
12336impl Default for ID3D12LifetimeOwner {
12337    fn default() -> Self {
12338        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12339        unsafe {
12340            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12341            s.assume_init()
12342        }
12343    }
12344}
12345extern "C" {
12346    pub static IID_ID3D12SwapChainAssistant: IID;
12347}
12348#[repr(C)]
12349#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12350pub struct ID3D12SwapChainAssistantVtbl {
12351    pub QueryInterface: ::std::option::Option<
12352        unsafe extern "C" fn(
12353            This: *mut ID3D12SwapChainAssistant,
12354            riid: *const IID,
12355            ppvObject: *mut *mut ::std::os::raw::c_void,
12356        ) -> HRESULT,
12357    >,
12358    pub AddRef: ::std::option::Option<
12359        unsafe extern "C" fn(This: *mut ID3D12SwapChainAssistant) -> ULONG,
12360    >,
12361    pub Release: ::std::option::Option<
12362        unsafe extern "C" fn(This: *mut ID3D12SwapChainAssistant) -> ULONG,
12363    >,
12364    pub GetLUID: ::std::option::Option<
12365        unsafe extern "C" fn(
12366            This: *mut ID3D12SwapChainAssistant,
12367            RetVal: *mut LUID,
12368        ) -> *mut LUID,
12369    >,
12370    pub GetSwapChainObject: ::std::option::Option<
12371        unsafe extern "C" fn(
12372            This: *mut ID3D12SwapChainAssistant,
12373            riid: *const IID,
12374            ppv: *mut *mut ::std::os::raw::c_void,
12375        ) -> HRESULT,
12376    >,
12377    pub GetCurrentResourceAndCommandQueue: ::std::option::Option<
12378        unsafe extern "C" fn(
12379            This: *mut ID3D12SwapChainAssistant,
12380            riidResource: *const IID,
12381            ppvResource: *mut *mut ::std::os::raw::c_void,
12382            riidQueue: *const IID,
12383            ppvQueue: *mut *mut ::std::os::raw::c_void,
12384        ) -> HRESULT,
12385    >,
12386    pub InsertImplicitSync: ::std::option::Option<
12387        unsafe extern "C" fn(This: *mut ID3D12SwapChainAssistant) -> HRESULT,
12388    >,
12389}
12390#[repr(C)]
12391#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12392pub struct ID3D12SwapChainAssistant {
12393    pub lpVtbl: *mut ID3D12SwapChainAssistantVtbl,
12394}
12395impl Default for ID3D12SwapChainAssistant {
12396    fn default() -> Self {
12397        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12398        unsafe {
12399            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12400            s.assume_init()
12401        }
12402    }
12403}
12404extern "C" {
12405    pub static IID_ID3D12LifetimeTracker: IID;
12406}
12407#[repr(C)]
12408#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12409pub struct ID3D12LifetimeTrackerVtbl {
12410    pub QueryInterface: ::std::option::Option<
12411        unsafe extern "C" fn(
12412            This: *mut ID3D12LifetimeTracker,
12413            riid: *const IID,
12414            ppvObject: *mut *mut ::std::os::raw::c_void,
12415        ) -> HRESULT,
12416    >,
12417    pub AddRef: ::std::option::Option<
12418        unsafe extern "C" fn(This: *mut ID3D12LifetimeTracker) -> ULONG,
12419    >,
12420    pub Release: ::std::option::Option<
12421        unsafe extern "C" fn(This: *mut ID3D12LifetimeTracker) -> ULONG,
12422    >,
12423    pub GetPrivateData: ::std::option::Option<
12424        unsafe extern "C" fn(
12425            This: *mut ID3D12LifetimeTracker,
12426            guid: *const GUID,
12427            pDataSize: *mut UINT,
12428            pData: *mut ::std::os::raw::c_void,
12429        ) -> HRESULT,
12430    >,
12431    pub SetPrivateData: ::std::option::Option<
12432        unsafe extern "C" fn(
12433            This: *mut ID3D12LifetimeTracker,
12434            guid: *const GUID,
12435            DataSize: UINT,
12436            pData: *const ::std::os::raw::c_void,
12437        ) -> HRESULT,
12438    >,
12439    pub SetPrivateDataInterface: ::std::option::Option<
12440        unsafe extern "C" fn(
12441            This: *mut ID3D12LifetimeTracker,
12442            guid: *const GUID,
12443            pData: *const IUnknown,
12444        ) -> HRESULT,
12445    >,
12446    pub SetName: ::std::option::Option<
12447        unsafe extern "C" fn(
12448            This: *mut ID3D12LifetimeTracker,
12449            Name: LPCWSTR,
12450        ) -> HRESULT,
12451    >,
12452    pub GetDevice: ::std::option::Option<
12453        unsafe extern "C" fn(
12454            This: *mut ID3D12LifetimeTracker,
12455            riid: *const IID,
12456            ppvDevice: *mut *mut ::std::os::raw::c_void,
12457        ) -> HRESULT,
12458    >,
12459    pub DestroyOwnedObject: ::std::option::Option<
12460        unsafe extern "C" fn(
12461            This: *mut ID3D12LifetimeTracker,
12462            pObject: *mut ID3D12DeviceChild,
12463        ) -> HRESULT,
12464    >,
12465}
12466#[repr(C)]
12467#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12468pub struct ID3D12LifetimeTracker {
12469    pub lpVtbl: *mut ID3D12LifetimeTrackerVtbl,
12470}
12471impl Default for ID3D12LifetimeTracker {
12472    fn default() -> Self {
12473        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12474        unsafe {
12475            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12476            s.assume_init()
12477        }
12478    }
12479}
12480pub const D3D12_META_COMMAND_PARAMETER_TYPE_D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT : D3D12_META_COMMAND_PARAMETER_TYPE = 0 ;
12481pub const D3D12_META_COMMAND_PARAMETER_TYPE_D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 : D3D12_META_COMMAND_PARAMETER_TYPE = 1 ;
12482pub const D3D12_META_COMMAND_PARAMETER_TYPE_D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS : D3D12_META_COMMAND_PARAMETER_TYPE = 2 ;
12483pub const D3D12_META_COMMAND_PARAMETER_TYPE_D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV : D3D12_META_COMMAND_PARAMETER_TYPE = 3 ;
12484pub const D3D12_META_COMMAND_PARAMETER_TYPE_D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV : D3D12_META_COMMAND_PARAMETER_TYPE = 4 ;
12485pub type D3D12_META_COMMAND_PARAMETER_TYPE = ::std::os::raw::c_int;
12486pub const D3D12_META_COMMAND_PARAMETER_FLAGS_D3D12_META_COMMAND_PARAMETER_FLAG_INPUT : D3D12_META_COMMAND_PARAMETER_FLAGS = 1 ;
12487pub const D3D12_META_COMMAND_PARAMETER_FLAGS_D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT : D3D12_META_COMMAND_PARAMETER_FLAGS = 2 ;
12488pub type D3D12_META_COMMAND_PARAMETER_FLAGS = ::std::os::raw::c_int;
12489pub const D3D12_META_COMMAND_PARAMETER_STAGE_D3D12_META_COMMAND_PARAMETER_STAGE_CREATION : D3D12_META_COMMAND_PARAMETER_STAGE = 0 ;
12490pub const D3D12_META_COMMAND_PARAMETER_STAGE_D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION : D3D12_META_COMMAND_PARAMETER_STAGE = 1 ;
12491pub const D3D12_META_COMMAND_PARAMETER_STAGE_D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION : D3D12_META_COMMAND_PARAMETER_STAGE = 2 ;
12492pub type D3D12_META_COMMAND_PARAMETER_STAGE = ::std::os::raw::c_int;
12493#[repr(C)]
12494#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12495pub struct D3D12_META_COMMAND_PARAMETER_DESC {
12496    pub Name: LPCWSTR,
12497    pub Type: D3D12_META_COMMAND_PARAMETER_TYPE,
12498    pub Flags: D3D12_META_COMMAND_PARAMETER_FLAGS,
12499    pub RequiredResourceState: D3D12_RESOURCE_STATES,
12500    pub StructureOffset: UINT,
12501}
12502impl Default for D3D12_META_COMMAND_PARAMETER_DESC {
12503    fn default() -> Self {
12504        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12505        unsafe {
12506            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12507            s.assume_init()
12508        }
12509    }
12510}
12511pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_NONE:
12512    D3D12_GRAPHICS_STATES = 0;
12513pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS:
12514    D3D12_GRAPHICS_STATES = 1;
12515pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER:
12516    D3D12_GRAPHICS_STATES = 2;
12517pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY:
12518    D3D12_GRAPHICS_STATES = 4;
12519pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP:
12520    D3D12_GRAPHICS_STATES = 8;
12521pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE:
12522    D3D12_GRAPHICS_STATES = 16;
12523pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE:
12524    D3D12_GRAPHICS_STATES = 32;
12525pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_RS_VIEWPORTS:
12526    D3D12_GRAPHICS_STATES = 64;
12527pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS:
12528    D3D12_GRAPHICS_STATES = 128;
12529pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_PREDICATION:
12530    D3D12_GRAPHICS_STATES = 256;
12531pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS:
12532    D3D12_GRAPHICS_STATES = 512;
12533pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_OM_STENCIL_REF:
12534    D3D12_GRAPHICS_STATES = 1024;
12535pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR:
12536    D3D12_GRAPHICS_STATES = 2048;
12537pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_PIPELINE_STATE:
12538    D3D12_GRAPHICS_STATES = 4096;
12539pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_SO_TARGETS:
12540    D3D12_GRAPHICS_STATES = 8192;
12541pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS:
12542    D3D12_GRAPHICS_STATES = 16384;
12543pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS:
12544    D3D12_GRAPHICS_STATES = 32768;
12545pub const D3D12_GRAPHICS_STATES_D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK:
12546    D3D12_GRAPHICS_STATES = 65536;
12547pub type D3D12_GRAPHICS_STATES = ::std::os::raw::c_int;
12548#[repr(C)]
12549#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12550pub struct D3D12_META_COMMAND_DESC {
12551    pub Id: GUID,
12552    pub Name: LPCWSTR,
12553    pub InitializationDirtyState: D3D12_GRAPHICS_STATES,
12554    pub ExecutionDirtyState: D3D12_GRAPHICS_STATES,
12555}
12556impl Default for D3D12_META_COMMAND_DESC {
12557    fn default() -> Self {
12558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12559        unsafe {
12560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12561            s.assume_init()
12562        }
12563    }
12564}
12565extern "C" {
12566    pub static IID_ID3D12StateObject: IID;
12567}
12568#[repr(C)]
12569#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12570pub struct ID3D12StateObjectVtbl {
12571    pub QueryInterface: ::std::option::Option<
12572        unsafe extern "C" fn(
12573            This: *mut ID3D12StateObject,
12574            riid: *const IID,
12575            ppvObject: *mut *mut ::std::os::raw::c_void,
12576        ) -> HRESULT,
12577    >,
12578    pub AddRef: ::std::option::Option<
12579        unsafe extern "C" fn(This: *mut ID3D12StateObject) -> ULONG,
12580    >,
12581    pub Release: ::std::option::Option<
12582        unsafe extern "C" fn(This: *mut ID3D12StateObject) -> ULONG,
12583    >,
12584    pub GetPrivateData: ::std::option::Option<
12585        unsafe extern "C" fn(
12586            This: *mut ID3D12StateObject,
12587            guid: *const GUID,
12588            pDataSize: *mut UINT,
12589            pData: *mut ::std::os::raw::c_void,
12590        ) -> HRESULT,
12591    >,
12592    pub SetPrivateData: ::std::option::Option<
12593        unsafe extern "C" fn(
12594            This: *mut ID3D12StateObject,
12595            guid: *const GUID,
12596            DataSize: UINT,
12597            pData: *const ::std::os::raw::c_void,
12598        ) -> HRESULT,
12599    >,
12600    pub SetPrivateDataInterface: ::std::option::Option<
12601        unsafe extern "C" fn(
12602            This: *mut ID3D12StateObject,
12603            guid: *const GUID,
12604            pData: *const IUnknown,
12605        ) -> HRESULT,
12606    >,
12607    pub SetName: ::std::option::Option<
12608        unsafe extern "C" fn(
12609            This: *mut ID3D12StateObject,
12610            Name: LPCWSTR,
12611        ) -> HRESULT,
12612    >,
12613    pub GetDevice: ::std::option::Option<
12614        unsafe extern "C" fn(
12615            This: *mut ID3D12StateObject,
12616            riid: *const IID,
12617            ppvDevice: *mut *mut ::std::os::raw::c_void,
12618        ) -> HRESULT,
12619    >,
12620}
12621#[repr(C)]
12622#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12623pub struct ID3D12StateObject {
12624    pub lpVtbl: *mut ID3D12StateObjectVtbl,
12625}
12626impl Default for ID3D12StateObject {
12627    fn default() -> Self {
12628        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12629        unsafe {
12630            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12631            s.assume_init()
12632        }
12633    }
12634}
12635extern "C" {
12636    pub static IID_ID3D12StateObjectProperties: IID;
12637}
12638#[repr(C)]
12639#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12640pub struct ID3D12StateObjectPropertiesVtbl {
12641    pub QueryInterface: ::std::option::Option<
12642        unsafe extern "C" fn(
12643            This: *mut ID3D12StateObjectProperties,
12644            riid: *const IID,
12645            ppvObject: *mut *mut ::std::os::raw::c_void,
12646        ) -> HRESULT,
12647    >,
12648    pub AddRef: ::std::option::Option<
12649        unsafe extern "C" fn(This: *mut ID3D12StateObjectProperties) -> ULONG,
12650    >,
12651    pub Release: ::std::option::Option<
12652        unsafe extern "C" fn(This: *mut ID3D12StateObjectProperties) -> ULONG,
12653    >,
12654    pub GetShaderIdentifier: ::std::option::Option<
12655        unsafe extern "C" fn(
12656            This: *mut ID3D12StateObjectProperties,
12657            pExportName: LPCWSTR,
12658        ) -> *mut ::std::os::raw::c_void,
12659    >,
12660    pub GetShaderStackSize: ::std::option::Option<
12661        unsafe extern "C" fn(
12662            This: *mut ID3D12StateObjectProperties,
12663            pExportName: LPCWSTR,
12664        ) -> UINT64,
12665    >,
12666    pub GetPipelineStackSize: ::std::option::Option<
12667        unsafe extern "C" fn(This: *mut ID3D12StateObjectProperties) -> UINT64,
12668    >,
12669    pub SetPipelineStackSize: ::std::option::Option<
12670        unsafe extern "C" fn(
12671            This: *mut ID3D12StateObjectProperties,
12672            PipelineStackSizeInBytes: UINT64,
12673        ),
12674    >,
12675}
12676#[repr(C)]
12677#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12678pub struct ID3D12StateObjectProperties {
12679    pub lpVtbl: *mut ID3D12StateObjectPropertiesVtbl,
12680}
12681impl Default for ID3D12StateObjectProperties {
12682    fn default() -> Self {
12683        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12684        unsafe {
12685            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12686            s.assume_init()
12687        }
12688    }
12689}
12690pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG : D3D12_STATE_SUBOBJECT_TYPE = 0 ;
12691pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE : D3D12_STATE_SUBOBJECT_TYPE = 1 ;
12692pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE : D3D12_STATE_SUBOBJECT_TYPE = 2 ;
12693pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK:
12694    D3D12_STATE_SUBOBJECT_TYPE = 3;
12695pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY:
12696    D3D12_STATE_SUBOBJECT_TYPE = 5;
12697pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION : D3D12_STATE_SUBOBJECT_TYPE = 6 ;
12698pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION : D3D12_STATE_SUBOBJECT_TYPE = 7 ;
12699pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION : D3D12_STATE_SUBOBJECT_TYPE = 8 ;
12700pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG : D3D12_STATE_SUBOBJECT_TYPE = 9 ;
12701pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG : D3D12_STATE_SUBOBJECT_TYPE = 10 ;
12702pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP:
12703    D3D12_STATE_SUBOBJECT_TYPE = 11;
12704pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 : D3D12_STATE_SUBOBJECT_TYPE = 12 ;
12705pub const D3D12_STATE_SUBOBJECT_TYPE_D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID:
12706    D3D12_STATE_SUBOBJECT_TYPE = 13;
12707pub type D3D12_STATE_SUBOBJECT_TYPE = ::std::os::raw::c_int;
12708#[repr(C)]
12709#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12710pub struct D3D12_STATE_SUBOBJECT {
12711    pub Type: D3D12_STATE_SUBOBJECT_TYPE,
12712    pub pDesc: *const ::std::os::raw::c_void,
12713}
12714impl Default for D3D12_STATE_SUBOBJECT {
12715    fn default() -> Self {
12716        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12717        unsafe {
12718            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12719            s.assume_init()
12720        }
12721    }
12722}
12723pub const D3D12_STATE_OBJECT_FLAGS_D3D12_STATE_OBJECT_FLAG_NONE:
12724    D3D12_STATE_OBJECT_FLAGS = 0;
12725pub const D3D12_STATE_OBJECT_FLAGS_D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS : D3D12_STATE_OBJECT_FLAGS = 1 ;
12726pub const D3D12_STATE_OBJECT_FLAGS_D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS : D3D12_STATE_OBJECT_FLAGS = 2 ;
12727pub const D3D12_STATE_OBJECT_FLAGS_D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS : D3D12_STATE_OBJECT_FLAGS = 4 ;
12728pub type D3D12_STATE_OBJECT_FLAGS = ::std::os::raw::c_int;
12729#[repr(C)]
12730#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12731pub struct D3D12_STATE_OBJECT_CONFIG {
12732    pub Flags: D3D12_STATE_OBJECT_FLAGS,
12733}
12734impl Default for D3D12_STATE_OBJECT_CONFIG {
12735    fn default() -> Self {
12736        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12737        unsafe {
12738            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12739            s.assume_init()
12740        }
12741    }
12742}
12743#[repr(C)]
12744#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12745pub struct D3D12_GLOBAL_ROOT_SIGNATURE {
12746    pub pGlobalRootSignature: *mut ID3D12RootSignature,
12747}
12748impl Default for D3D12_GLOBAL_ROOT_SIGNATURE {
12749    fn default() -> Self {
12750        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12751        unsafe {
12752            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12753            s.assume_init()
12754        }
12755    }
12756}
12757#[repr(C)]
12758#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12759pub struct D3D12_LOCAL_ROOT_SIGNATURE {
12760    pub pLocalRootSignature: *mut ID3D12RootSignature,
12761}
12762impl Default for D3D12_LOCAL_ROOT_SIGNATURE {
12763    fn default() -> Self {
12764        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12765        unsafe {
12766            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12767            s.assume_init()
12768        }
12769    }
12770}
12771#[repr(C)]
12772#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12773pub struct D3D12_NODE_MASK {
12774    pub NodeMask: UINT,
12775}
12776pub const D3D12_EXPORT_FLAGS_D3D12_EXPORT_FLAG_NONE: D3D12_EXPORT_FLAGS = 0;
12777pub type D3D12_EXPORT_FLAGS = ::std::os::raw::c_int;
12778#[repr(C)]
12779#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12780pub struct D3D12_EXPORT_DESC {
12781    pub Name: LPCWSTR,
12782    pub ExportToRename: LPCWSTR,
12783    pub Flags: D3D12_EXPORT_FLAGS,
12784}
12785impl Default for D3D12_EXPORT_DESC {
12786    fn default() -> Self {
12787        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12788        unsafe {
12789            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12790            s.assume_init()
12791        }
12792    }
12793}
12794#[repr(C)]
12795#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12796pub struct D3D12_DXIL_LIBRARY_DESC {
12797    pub DXILLibrary: D3D12_SHADER_BYTECODE,
12798    pub NumExports: UINT,
12799    pub pExports: *mut D3D12_EXPORT_DESC,
12800}
12801impl Default for D3D12_DXIL_LIBRARY_DESC {
12802    fn default() -> Self {
12803        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12804        unsafe {
12805            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12806            s.assume_init()
12807        }
12808    }
12809}
12810#[repr(C)]
12811#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12812pub struct D3D12_EXISTING_COLLECTION_DESC {
12813    pub pExistingCollection: *mut ID3D12StateObject,
12814    pub NumExports: UINT,
12815    pub pExports: *mut D3D12_EXPORT_DESC,
12816}
12817impl Default for D3D12_EXISTING_COLLECTION_DESC {
12818    fn default() -> Self {
12819        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12820        unsafe {
12821            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12822            s.assume_init()
12823        }
12824    }
12825}
12826#[repr(C)]
12827#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12828pub struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
12829    pub pSubobjectToAssociate: *const D3D12_STATE_SUBOBJECT,
12830    pub NumExports: UINT,
12831    pub pExports: *mut LPCWSTR,
12832}
12833impl Default for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
12834    fn default() -> Self {
12835        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12836        unsafe {
12837            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12838            s.assume_init()
12839        }
12840    }
12841}
12842#[repr(C)]
12843#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12844pub struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
12845    pub SubobjectToAssociate: LPCWSTR,
12846    pub NumExports: UINT,
12847    pub pExports: *mut LPCWSTR,
12848}
12849impl Default for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
12850    fn default() -> Self {
12851        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12852        unsafe {
12853            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12854            s.assume_init()
12855        }
12856    }
12857}
12858pub const D3D12_HIT_GROUP_TYPE_D3D12_HIT_GROUP_TYPE_TRIANGLES:
12859    D3D12_HIT_GROUP_TYPE = 0;
12860pub const D3D12_HIT_GROUP_TYPE_D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE:
12861    D3D12_HIT_GROUP_TYPE = 1;
12862pub type D3D12_HIT_GROUP_TYPE = ::std::os::raw::c_int;
12863#[repr(C)]
12864#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12865pub struct D3D12_HIT_GROUP_DESC {
12866    pub HitGroupExport: LPCWSTR,
12867    pub Type: D3D12_HIT_GROUP_TYPE,
12868    pub AnyHitShaderImport: LPCWSTR,
12869    pub ClosestHitShaderImport: LPCWSTR,
12870    pub IntersectionShaderImport: LPCWSTR,
12871}
12872impl Default for D3D12_HIT_GROUP_DESC {
12873    fn default() -> Self {
12874        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12875        unsafe {
12876            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12877            s.assume_init()
12878        }
12879    }
12880}
12881#[repr(C)]
12882#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12883pub struct D3D12_RAYTRACING_SHADER_CONFIG {
12884    pub MaxPayloadSizeInBytes: UINT,
12885    pub MaxAttributeSizeInBytes: UINT,
12886}
12887#[repr(C)]
12888#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12889pub struct D3D12_RAYTRACING_PIPELINE_CONFIG {
12890    pub MaxTraceRecursionDepth: UINT,
12891}
12892pub const D3D12_RAYTRACING_PIPELINE_FLAGS_D3D12_RAYTRACING_PIPELINE_FLAG_NONE : D3D12_RAYTRACING_PIPELINE_FLAGS = 0 ;
12893pub const D3D12_RAYTRACING_PIPELINE_FLAGS_D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES : D3D12_RAYTRACING_PIPELINE_FLAGS = 256 ;
12894pub const D3D12_RAYTRACING_PIPELINE_FLAGS_D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES : D3D12_RAYTRACING_PIPELINE_FLAGS = 512 ;
12895pub type D3D12_RAYTRACING_PIPELINE_FLAGS = ::std::os::raw::c_int;
12896#[repr(C)]
12897#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12898pub struct D3D12_RAYTRACING_PIPELINE_CONFIG1 {
12899    pub MaxTraceRecursionDepth: UINT,
12900    pub Flags: D3D12_RAYTRACING_PIPELINE_FLAGS,
12901}
12902impl Default for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
12903    fn default() -> Self {
12904        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12905        unsafe {
12906            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12907            s.assume_init()
12908        }
12909    }
12910}
12911pub const D3D12_STATE_OBJECT_TYPE_D3D12_STATE_OBJECT_TYPE_COLLECTION:
12912    D3D12_STATE_OBJECT_TYPE = 0;
12913pub const D3D12_STATE_OBJECT_TYPE_D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE : D3D12_STATE_OBJECT_TYPE = 3 ;
12914pub type D3D12_STATE_OBJECT_TYPE = ::std::os::raw::c_int;
12915#[repr(C)]
12916#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12917pub struct D3D12_STATE_OBJECT_DESC {
12918    pub Type: D3D12_STATE_OBJECT_TYPE,
12919    pub NumSubobjects: UINT,
12920    pub pSubobjects: *const D3D12_STATE_SUBOBJECT,
12921}
12922impl Default for D3D12_STATE_OBJECT_DESC {
12923    fn default() -> Self {
12924        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12925        unsafe {
12926            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12927            s.assume_init()
12928        }
12929    }
12930}
12931pub const D3D12_RAYTRACING_GEOMETRY_FLAGS_D3D12_RAYTRACING_GEOMETRY_FLAG_NONE : D3D12_RAYTRACING_GEOMETRY_FLAGS = 0 ;
12932pub const D3D12_RAYTRACING_GEOMETRY_FLAGS_D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE : D3D12_RAYTRACING_GEOMETRY_FLAGS = 1 ;
12933pub const D3D12_RAYTRACING_GEOMETRY_FLAGS_D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION : D3D12_RAYTRACING_GEOMETRY_FLAGS = 2 ;
12934pub type D3D12_RAYTRACING_GEOMETRY_FLAGS = ::std::os::raw::c_int;
12935pub const D3D12_RAYTRACING_GEOMETRY_TYPE_D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES : D3D12_RAYTRACING_GEOMETRY_TYPE = 0 ;
12936pub const D3D12_RAYTRACING_GEOMETRY_TYPE_D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS : D3D12_RAYTRACING_GEOMETRY_TYPE = 1 ;
12937pub type D3D12_RAYTRACING_GEOMETRY_TYPE = ::std::os::raw::c_int;
12938pub const D3D12_RAYTRACING_INSTANCE_FLAGS_D3D12_RAYTRACING_INSTANCE_FLAG_NONE : D3D12_RAYTRACING_INSTANCE_FLAGS = 0 ;
12939pub const D3D12_RAYTRACING_INSTANCE_FLAGS_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE : D3D12_RAYTRACING_INSTANCE_FLAGS = 1 ;
12940pub const D3D12_RAYTRACING_INSTANCE_FLAGS_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE : D3D12_RAYTRACING_INSTANCE_FLAGS = 2 ;
12941pub const D3D12_RAYTRACING_INSTANCE_FLAGS_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE : D3D12_RAYTRACING_INSTANCE_FLAGS = 4 ;
12942pub const D3D12_RAYTRACING_INSTANCE_FLAGS_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE : D3D12_RAYTRACING_INSTANCE_FLAGS = 8 ;
12943pub type D3D12_RAYTRACING_INSTANCE_FLAGS = ::std::os::raw::c_int;
12944#[repr(C)]
12945#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12946pub struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
12947    pub StartAddress: D3D12_GPU_VIRTUAL_ADDRESS,
12948    pub StrideInBytes: UINT64,
12949}
12950#[repr(C)]
12951#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12952pub struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
12953    pub StartAddress: D3D12_GPU_VIRTUAL_ADDRESS,
12954    pub SizeInBytes: UINT64,
12955}
12956#[repr(C)]
12957#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12958pub struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
12959    pub StartAddress: D3D12_GPU_VIRTUAL_ADDRESS,
12960    pub SizeInBytes: UINT64,
12961    pub StrideInBytes: UINT64,
12962}
12963#[repr(C)]
12964#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12965pub struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
12966    pub Transform3x4: D3D12_GPU_VIRTUAL_ADDRESS,
12967    pub IndexFormat: DXGI_FORMAT,
12968    pub VertexFormat: DXGI_FORMAT,
12969    pub IndexCount: UINT,
12970    pub VertexCount: UINT,
12971    pub IndexBuffer: D3D12_GPU_VIRTUAL_ADDRESS,
12972    pub VertexBuffer: D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE,
12973}
12974impl Default for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
12975    fn default() -> Self {
12976        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12977        unsafe {
12978            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12979            s.assume_init()
12980        }
12981    }
12982}
12983#[repr(C)]
12984#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
12985pub struct D3D12_RAYTRACING_AABB {
12986    pub MinX: FLOAT,
12987    pub MinY: FLOAT,
12988    pub MinZ: FLOAT,
12989    pub MaxX: FLOAT,
12990    pub MaxY: FLOAT,
12991    pub MaxZ: FLOAT,
12992}
12993#[repr(C)]
12994#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
12995pub struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
12996    pub AABBCount: UINT64,
12997    pub AABBs: D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE,
12998}
12999pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 0 ;
13000pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 1 ;
13001pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 2 ;
13002pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 4 ;
13003pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 8 ;
13004pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 16 ;
13005pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = 32 ;
13006pub type D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS =
13007    ::std::os::raw::c_int;
13008pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = 0 ;
13009pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = 1 ;
13010pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = 2 ;
13011pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = 3 ;
13012pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = 4 ;
13013pub type D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE =
13014    ::std::os::raw::c_int;
13015pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE = 0 ;
13016pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE = 1 ;
13017pub type D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE = ::std::os::raw::c_int;
13018pub const D3D12_ELEMENTS_LAYOUT_D3D12_ELEMENTS_LAYOUT_ARRAY:
13019    D3D12_ELEMENTS_LAYOUT = 0;
13020pub const D3D12_ELEMENTS_LAYOUT_D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS:
13021    D3D12_ELEMENTS_LAYOUT = 1;
13022pub type D3D12_ELEMENTS_LAYOUT = ::std::os::raw::c_int;
13023pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = 0 ;
13024pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = 1 ;
13025pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = 2 ;
13026pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = 3 ;
13027pub type D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE =
13028    ::std::os::raw::c_int;
13029#[repr(C)]
13030#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13031pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
13032    pub DestBuffer: D3D12_GPU_VIRTUAL_ADDRESS,
13033    pub InfoType: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE,
13034}
13035impl Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
13036    fn default() -> Self {
13037        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13038        unsafe {
13039            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13040            s.assume_init()
13041        }
13042    }
13043}
13044#[repr(C)]
13045#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13046pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
13047{
13048    pub CompactedSizeInBytes: UINT64,
13049}
13050#[repr(C)]
13051#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13052pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
13053{
13054    pub DecodedSizeInBytes: UINT64,
13055}
13056#[repr(C)]
13057#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13058pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
13059{
13060    pub Type: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
13061    pub NumDescs: UINT,
13062}
13063impl Default
13064    for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
13065{
13066    fn default() -> Self {
13067        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13068        unsafe {
13069            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13070            s.assume_init()
13071        }
13072    }
13073}
13074#[repr(C)]
13075#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13076pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
13077{
13078    pub SerializedSizeInBytes: UINT64,
13079    pub NumBottomLevelAccelerationStructurePointers: UINT64,
13080}
13081#[repr(C)]
13082#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13083pub struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
13084    pub DriverOpaqueGUID: GUID,
13085    pub DriverOpaqueVersioningData: [BYTE; 16usize],
13086}
13087pub const D3D12_SERIALIZED_DATA_TYPE_D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_SERIALIZED_DATA_TYPE = 0 ;
13088pub type D3D12_SERIALIZED_DATA_TYPE = ::std::os::raw::c_int;
13089pub const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS_D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE : D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = 0 ;
13090pub const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS_D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE : D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = 1 ;
13091pub const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS_D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED : D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = 2 ;
13092pub const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS_D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION : D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = 3 ;
13093pub const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS_D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE : D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = 4 ;
13094pub type D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = ::std::os::raw::c_int;
13095#[repr(C)]
13096#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13097pub struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
13098    pub DriverMatchingIdentifier:
13099        D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER,
13100    pub SerializedSizeInBytesIncludingHeader: UINT64,
13101    pub DeserializedSizeInBytes: UINT64,
13102    pub NumBottomLevelAccelerationStructurePointersAfterHeader: UINT64,
13103}
13104#[repr(C)]
13105#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13106pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
13107{
13108    pub CurrentSizeInBytes: UINT64,
13109}
13110#[repr(C)]
13111#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
13112pub struct D3D12_RAYTRACING_INSTANCE_DESC {
13113    pub Transform: [[FLOAT; 4usize]; 3usize],
13114    pub _bitfield_align_1: [u32; 0],
13115    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
13116    pub AccelerationStructure: D3D12_GPU_VIRTUAL_ADDRESS,
13117}
13118impl D3D12_RAYTRACING_INSTANCE_DESC {
13119    #[inline]
13120    pub fn InstanceID(&self) -> UINT {
13121        unsafe {
13122            ::std::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32)
13123        }
13124    }
13125    #[inline]
13126    pub fn set_InstanceID(&mut self, val: UINT) {
13127        unsafe {
13128            let val: u32 = ::std::mem::transmute(val);
13129            self._bitfield_1.set(0usize, 24u8, val as u64)
13130        }
13131    }
13132    #[inline]
13133    pub fn InstanceMask(&self) -> UINT {
13134        unsafe {
13135            ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32)
13136        }
13137    }
13138    #[inline]
13139    pub fn set_InstanceMask(&mut self, val: UINT) {
13140        unsafe {
13141            let val: u32 = ::std::mem::transmute(val);
13142            self._bitfield_1.set(24usize, 8u8, val as u64)
13143        }
13144    }
13145    #[inline]
13146    pub fn InstanceContributionToHitGroupIndex(&self) -> UINT {
13147        unsafe {
13148            ::std::mem::transmute(self._bitfield_1.get(32usize, 24u8) as u32)
13149        }
13150    }
13151    #[inline]
13152    pub fn set_InstanceContributionToHitGroupIndex(&mut self, val: UINT) {
13153        unsafe {
13154            let val: u32 = ::std::mem::transmute(val);
13155            self._bitfield_1.set(32usize, 24u8, val as u64)
13156        }
13157    }
13158    #[inline]
13159    pub fn Flags(&self) -> UINT {
13160        unsafe {
13161            ::std::mem::transmute(self._bitfield_1.get(56usize, 8u8) as u32)
13162        }
13163    }
13164    #[inline]
13165    pub fn set_Flags(&mut self, val: UINT) {
13166        unsafe {
13167            let val: u32 = ::std::mem::transmute(val);
13168            self._bitfield_1.set(56usize, 8u8, val as u64)
13169        }
13170    }
13171    #[inline]
13172    pub fn new_bitfield_1(
13173        InstanceID: UINT,
13174        InstanceMask: UINT,
13175        InstanceContributionToHitGroupIndex: UINT,
13176        Flags: UINT,
13177    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
13178        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> =
13179            Default::default();
13180        __bindgen_bitfield_unit.set(0usize, 24u8, {
13181            let InstanceID: u32 = unsafe { ::std::mem::transmute(InstanceID) };
13182            InstanceID as u64
13183        });
13184        __bindgen_bitfield_unit.set(24usize, 8u8, {
13185            let InstanceMask: u32 =
13186                unsafe { ::std::mem::transmute(InstanceMask) };
13187            InstanceMask as u64
13188        });
13189        __bindgen_bitfield_unit.set(32usize, 24u8, {
13190            let InstanceContributionToHitGroupIndex: u32 = unsafe {
13191                ::std::mem::transmute(InstanceContributionToHitGroupIndex)
13192            };
13193            InstanceContributionToHitGroupIndex as u64
13194        });
13195        __bindgen_bitfield_unit.set(56usize, 8u8, {
13196            let Flags: u32 = unsafe { ::std::mem::transmute(Flags) };
13197            Flags as u64
13198        });
13199        __bindgen_bitfield_unit
13200    }
13201}
13202#[repr(C)]
13203#[derive(Copy, Clone)]
13204pub struct D3D12_RAYTRACING_GEOMETRY_DESC {
13205    pub Type: D3D12_RAYTRACING_GEOMETRY_TYPE,
13206    pub Flags: D3D12_RAYTRACING_GEOMETRY_FLAGS,
13207    pub __bindgen_anon_1: D3D12_RAYTRACING_GEOMETRY_DESC__bindgen_ty_1,
13208}
13209#[repr(C)]
13210#[derive(Copy, Clone)]
13211pub union D3D12_RAYTRACING_GEOMETRY_DESC__bindgen_ty_1 {
13212    pub Triangles: D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC,
13213    pub AABBs: D3D12_RAYTRACING_GEOMETRY_AABBS_DESC,
13214}
13215impl Default for D3D12_RAYTRACING_GEOMETRY_DESC__bindgen_ty_1 {
13216    fn default() -> Self {
13217        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13218        unsafe {
13219            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13220            s.assume_init()
13221        }
13222    }
13223}
13224impl ::std::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_DESC__bindgen_ty_1 {
13225    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13226        write!(
13227            f,
13228            "D3D12_RAYTRACING_GEOMETRY_DESC__bindgen_ty_1 {{ union }}"
13229        )
13230    }
13231}
13232impl Default for D3D12_RAYTRACING_GEOMETRY_DESC {
13233    fn default() -> Self {
13234        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13235        unsafe {
13236            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13237            s.assume_init()
13238        }
13239    }
13240}
13241impl ::std::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_DESC {
13242    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13243        write ! (f , "D3D12_RAYTRACING_GEOMETRY_DESC {{ Type: {:?}, Flags: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . Flags , self . __bindgen_anon_1)
13244    }
13245}
13246#[repr(C)]
13247#[derive(Copy, Clone)]
13248pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
13249    pub Type: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
13250    pub Flags: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS,
13251    pub NumDescs: UINT,
13252    pub DescsLayout: D3D12_ELEMENTS_LAYOUT,
13253    pub __bindgen_anon_1:
13254        D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS__bindgen_ty_1,
13255}
13256#[repr(C)]
13257#[derive(Copy, Clone)]
13258pub union D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS__bindgen_ty_1 {
13259    pub InstanceDescs: D3D12_GPU_VIRTUAL_ADDRESS,
13260    pub pGeometryDescs: *const D3D12_RAYTRACING_GEOMETRY_DESC,
13261    pub ppGeometryDescs: *const *const D3D12_RAYTRACING_GEOMETRY_DESC,
13262}
13263impl Default
13264    for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS__bindgen_ty_1
13265{
13266    fn default() -> Self {
13267        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13268        unsafe {
13269            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13270            s.assume_init()
13271        }
13272    }
13273}
13274impl ::std::fmt::Debug
13275    for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS__bindgen_ty_1
13276{
13277    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13278        write ! (f , "D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS__bindgen_ty_1 {{ union }}")
13279    }
13280}
13281impl Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
13282    fn default() -> Self {
13283        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13284        unsafe {
13285            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13286            s.assume_init()
13287        }
13288    }
13289}
13290impl ::std::fmt::Debug
13291    for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
13292{
13293    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13294        write ! (f , "D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {{ Type: {:?}, Flags: {:?}, NumDescs: {:?}, DescsLayout: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . Flags , self . NumDescs , self . DescsLayout , self . __bindgen_anon_1)
13295    }
13296}
13297#[repr(C)]
13298#[derive(Copy, Clone)]
13299pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
13300    pub DestAccelerationStructureData: D3D12_GPU_VIRTUAL_ADDRESS,
13301    pub Inputs: D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS,
13302    pub SourceAccelerationStructureData: D3D12_GPU_VIRTUAL_ADDRESS,
13303    pub ScratchAccelerationStructureData: D3D12_GPU_VIRTUAL_ADDRESS,
13304}
13305impl Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
13306    fn default() -> Self {
13307        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13308        unsafe {
13309            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13310            s.assume_init()
13311        }
13312    }
13313}
13314impl ::std::fmt::Debug for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
13315    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13316        write ! (f , "D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {{ DestAccelerationStructureData: {:?}, Inputs: {:?}, SourceAccelerationStructureData: {:?}, ScratchAccelerationStructureData: {:?} }}" , self . DestAccelerationStructureData , self . Inputs , self . SourceAccelerationStructureData , self . ScratchAccelerationStructureData)
13317    }
13318}
13319#[repr(C)]
13320#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13321pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
13322    pub ResultDataMaxSizeInBytes: UINT64,
13323    pub ScratchDataSizeInBytes: UINT64,
13324    pub UpdateScratchDataSizeInBytes: UINT64,
13325}
13326pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_NONE: D3D12_RAY_FLAGS = 0;
13327pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_FORCE_OPAQUE: D3D12_RAY_FLAGS = 1;
13328pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_FORCE_NON_OPAQUE: D3D12_RAY_FLAGS = 2;
13329pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH:
13330    D3D12_RAY_FLAGS = 4;
13331pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER:
13332    D3D12_RAY_FLAGS = 8;
13333pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES:
13334    D3D12_RAY_FLAGS = 16;
13335pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES:
13336    D3D12_RAY_FLAGS = 32;
13337pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_CULL_OPAQUE: D3D12_RAY_FLAGS = 64;
13338pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_CULL_NON_OPAQUE: D3D12_RAY_FLAGS = 128;
13339pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_SKIP_TRIANGLES: D3D12_RAY_FLAGS = 256;
13340pub const D3D12_RAY_FLAGS_D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES:
13341    D3D12_RAY_FLAGS = 512;
13342pub type D3D12_RAY_FLAGS = ::std::os::raw::c_int;
13343pub const D3D12_HIT_KIND_D3D12_HIT_KIND_TRIANGLE_FRONT_FACE: D3D12_HIT_KIND =
13344    254;
13345pub const D3D12_HIT_KIND_D3D12_HIT_KIND_TRIANGLE_BACK_FACE: D3D12_HIT_KIND =
13346    255;
13347pub type D3D12_HIT_KIND = ::std::os::raw::c_int;
13348extern "C" {
13349    pub static IID_ID3D12Device5: IID;
13350}
13351#[repr(C)]
13352#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13353pub struct ID3D12Device5Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device5 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , }
13354#[repr(C)]
13355#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13356pub struct ID3D12Device5 {
13357    pub lpVtbl: *mut ID3D12Device5Vtbl,
13358}
13359impl Default for ID3D12Device5 {
13360    fn default() -> Self {
13361        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13362        unsafe {
13363            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13364            s.assume_init()
13365        }
13366    }
13367}
13368pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_SETMARKER:
13369    D3D12_AUTO_BREADCRUMB_OP = 0;
13370pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT:
13371    D3D12_AUTO_BREADCRUMB_OP = 1;
13372pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ENDEVENT:
13373    D3D12_AUTO_BREADCRUMB_OP = 2;
13374pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED:
13375    D3D12_AUTO_BREADCRUMB_OP = 3;
13376pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED : D3D12_AUTO_BREADCRUMB_OP = 4 ;
13377pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT:
13378    D3D12_AUTO_BREADCRUMB_OP = 5;
13379pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DISPATCH:
13380    D3D12_AUTO_BREADCRUMB_OP = 6;
13381pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION:
13382    D3D12_AUTO_BREADCRUMB_OP = 7;
13383pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION : D3D12_AUTO_BREADCRUMB_OP = 8 ;
13384pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE:
13385    D3D12_AUTO_BREADCRUMB_OP = 9;
13386pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_COPYTILES:
13387    D3D12_AUTO_BREADCRUMB_OP = 10;
13388pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE : D3D12_AUTO_BREADCRUMB_OP = 11 ;
13389pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW : D3D12_AUTO_BREADCRUMB_OP = 12 ;
13390pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW : D3D12_AUTO_BREADCRUMB_OP = 13 ;
13391pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW : D3D12_AUTO_BREADCRUMB_OP = 14 ;
13392pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER:
13393    D3D12_AUTO_BREADCRUMB_OP = 15;
13394pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE:
13395    D3D12_AUTO_BREADCRUMB_OP = 16;
13396pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_PRESENT:
13397    D3D12_AUTO_BREADCRUMB_OP = 17;
13398pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA:
13399    D3D12_AUTO_BREADCRUMB_OP = 18;
13400pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION:
13401    D3D12_AUTO_BREADCRUMB_OP = 19;
13402pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION:
13403    D3D12_AUTO_BREADCRUMB_OP = 20;
13404pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME:
13405    D3D12_AUTO_BREADCRUMB_OP = 21;
13406pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES:
13407    D3D12_AUTO_BREADCRUMB_OP = 22;
13408pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT : D3D12_AUTO_BREADCRUMB_OP = 23 ;
13409pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 : D3D12_AUTO_BREADCRUMB_OP = 24 ;
13410pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION : D3D12_AUTO_BREADCRUMB_OP = 25 ;
13411pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE : D3D12_AUTO_BREADCRUMB_OP = 26 ;
13412pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1:
13413    D3D12_AUTO_BREADCRUMB_OP = 27;
13414pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION : D3D12_AUTO_BREADCRUMB_OP = 28 ;
13415pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2:
13416    D3D12_AUTO_BREADCRUMB_OP = 29;
13417pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1:
13418    D3D12_AUTO_BREADCRUMB_OP = 30;
13419pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE : D3D12_AUTO_BREADCRUMB_OP = 31 ;
13420pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO : D3D12_AUTO_BREADCRUMB_OP = 32 ;
13421pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE : D3D12_AUTO_BREADCRUMB_OP = 33 ;
13422pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS:
13423    D3D12_AUTO_BREADCRUMB_OP = 34;
13424pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND : D3D12_AUTO_BREADCRUMB_OP = 35 ;
13425pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND : D3D12_AUTO_BREADCRUMB_OP = 36 ;
13426pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION:
13427    D3D12_AUTO_BREADCRUMB_OP = 37;
13428pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP : D3D12_AUTO_BREADCRUMB_OP = 38 ;
13429pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 : D3D12_AUTO_BREADCRUMB_OP = 39 ;
13430pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND : D3D12_AUTO_BREADCRUMB_OP = 40 ;
13431pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND : D3D12_AUTO_BREADCRUMB_OP = 41 ;
13432pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH:
13433    D3D12_AUTO_BREADCRUMB_OP = 42;
13434pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME:
13435    D3D12_AUTO_BREADCRUMB_OP = 43;
13436pub const D3D12_AUTO_BREADCRUMB_OP_D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA : D3D12_AUTO_BREADCRUMB_OP = 44 ;
13437pub type D3D12_AUTO_BREADCRUMB_OP = ::std::os::raw::c_int;
13438#[repr(C)]
13439#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13440pub struct D3D12_AUTO_BREADCRUMB_NODE {
13441    pub pCommandListDebugNameA: *const ::std::os::raw::c_char,
13442    pub pCommandListDebugNameW: *const wchar_t,
13443    pub pCommandQueueDebugNameA: *const ::std::os::raw::c_char,
13444    pub pCommandQueueDebugNameW: *const wchar_t,
13445    pub pCommandList: *mut ID3D12GraphicsCommandList,
13446    pub pCommandQueue: *mut ID3D12CommandQueue,
13447    pub BreadcrumbCount: UINT32,
13448    pub pLastBreadcrumbValue: *const UINT32,
13449    pub pCommandHistory: *const D3D12_AUTO_BREADCRUMB_OP,
13450    pub pNext: *const D3D12_AUTO_BREADCRUMB_NODE,
13451}
13452impl Default for D3D12_AUTO_BREADCRUMB_NODE {
13453    fn default() -> Self {
13454        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13455        unsafe {
13456            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13457            s.assume_init()
13458        }
13459    }
13460}
13461#[repr(C)]
13462#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13463pub struct D3D12_DRED_BREADCRUMB_CONTEXT {
13464    pub BreadcrumbIndex: UINT,
13465    pub pContextString: *const wchar_t,
13466}
13467impl Default for D3D12_DRED_BREADCRUMB_CONTEXT {
13468    fn default() -> Self {
13469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13470        unsafe {
13471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13472            s.assume_init()
13473        }
13474    }
13475}
13476#[repr(C)]
13477#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13478pub struct D3D12_AUTO_BREADCRUMB_NODE1 {
13479    pub pCommandListDebugNameA: *const ::std::os::raw::c_char,
13480    pub pCommandListDebugNameW: *const wchar_t,
13481    pub pCommandQueueDebugNameA: *const ::std::os::raw::c_char,
13482    pub pCommandQueueDebugNameW: *const wchar_t,
13483    pub pCommandList: *mut ID3D12GraphicsCommandList,
13484    pub pCommandQueue: *mut ID3D12CommandQueue,
13485    pub BreadcrumbCount: UINT,
13486    pub pLastBreadcrumbValue: *const UINT,
13487    pub pCommandHistory: *const D3D12_AUTO_BREADCRUMB_OP,
13488    pub pNext: *const D3D12_AUTO_BREADCRUMB_NODE1,
13489    pub BreadcrumbContextsCount: UINT,
13490    pub pBreadcrumbContexts: *mut D3D12_DRED_BREADCRUMB_CONTEXT,
13491}
13492impl Default for D3D12_AUTO_BREADCRUMB_NODE1 {
13493    fn default() -> Self {
13494        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13495        unsafe {
13496            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13497            s.assume_init()
13498        }
13499    }
13500}
13501pub const D3D12_DRED_VERSION_D3D12_DRED_VERSION_1_0: D3D12_DRED_VERSION = 1;
13502pub const D3D12_DRED_VERSION_D3D12_DRED_VERSION_1_1: D3D12_DRED_VERSION = 2;
13503pub const D3D12_DRED_VERSION_D3D12_DRED_VERSION_1_2: D3D12_DRED_VERSION = 3;
13504pub const D3D12_DRED_VERSION_D3D12_DRED_VERSION_1_3: D3D12_DRED_VERSION = 4;
13505pub type D3D12_DRED_VERSION = ::std::os::raw::c_int;
13506pub const D3D12_DRED_FLAGS_D3D12_DRED_FLAG_NONE: D3D12_DRED_FLAGS = 0;
13507pub const D3D12_DRED_FLAGS_D3D12_DRED_FLAG_FORCE_ENABLE: D3D12_DRED_FLAGS = 1;
13508pub const D3D12_DRED_FLAGS_D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS:
13509    D3D12_DRED_FLAGS = 2;
13510pub type D3D12_DRED_FLAGS = ::std::os::raw::c_int;
13511pub const D3D12_DRED_ENABLEMENT_D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED:
13512    D3D12_DRED_ENABLEMENT = 0;
13513pub const D3D12_DRED_ENABLEMENT_D3D12_DRED_ENABLEMENT_FORCED_OFF:
13514    D3D12_DRED_ENABLEMENT = 1;
13515pub const D3D12_DRED_ENABLEMENT_D3D12_DRED_ENABLEMENT_FORCED_ON:
13516    D3D12_DRED_ENABLEMENT = 2;
13517pub type D3D12_DRED_ENABLEMENT = ::std::os::raw::c_int;
13518#[repr(C)]
13519#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13520pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA {
13521    pub Flags: D3D12_DRED_FLAGS,
13522    pub pHeadAutoBreadcrumbNode: *mut D3D12_AUTO_BREADCRUMB_NODE,
13523}
13524impl Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
13525    fn default() -> Self {
13526        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13527        unsafe {
13528            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13529            s.assume_init()
13530        }
13531    }
13532}
13533pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE : D3D12_DRED_ALLOCATION_TYPE = 19 ;
13534pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR : D3D12_DRED_ALLOCATION_TYPE = 20 ;
13535pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE : D3D12_DRED_ALLOCATION_TYPE = 21 ;
13536pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST:
13537    D3D12_DRED_ALLOCATION_TYPE = 22;
13538pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_FENCE:
13539    D3D12_DRED_ALLOCATION_TYPE = 23;
13540pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP : D3D12_DRED_ALLOCATION_TYPE = 24 ;
13541pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_HEAP:
13542    D3D12_DRED_ALLOCATION_TYPE = 25;
13543pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP:
13544    D3D12_DRED_ALLOCATION_TYPE = 27;
13545pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE : D3D12_DRED_ALLOCATION_TYPE = 28 ;
13546pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY : D3D12_DRED_ALLOCATION_TYPE = 29 ;
13547pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER : D3D12_DRED_ALLOCATION_TYPE = 30 ;
13548pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR : D3D12_DRED_ALLOCATION_TYPE = 32 ;
13549pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_RESOURCE:
13550    D3D12_DRED_ALLOCATION_TYPE = 34;
13551pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_PASS:
13552    D3D12_DRED_ALLOCATION_TYPE = 35;
13553pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION : D3D12_DRED_ALLOCATION_TYPE = 36 ;
13554pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY : D3D12_DRED_ALLOCATION_TYPE = 37 ;
13555pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION : D3D12_DRED_ALLOCATION_TYPE = 38 ;
13556pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP : D3D12_DRED_ALLOCATION_TYPE = 39 ;
13557pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL:
13558    D3D12_DRED_ALLOCATION_TYPE = 40;
13559pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER : D3D12_DRED_ALLOCATION_TYPE = 41 ;
13560pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT:
13561    D3D12_DRED_ALLOCATION_TYPE = 42;
13562pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_METACOMMAND:
13563    D3D12_DRED_ALLOCATION_TYPE = 43;
13564pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP : D3D12_DRED_ALLOCATION_TYPE = 44 ;
13565pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR : D3D12_DRED_ALLOCATION_TYPE = 45 ;
13566pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP : D3D12_DRED_ALLOCATION_TYPE = 46 ;
13567pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND : D3D12_DRED_ALLOCATION_TYPE = 47 ;
13568pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER : D3D12_DRED_ALLOCATION_TYPE = 48 ;
13569pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP : D3D12_DRED_ALLOCATION_TYPE = 49 ;
13570pub const D3D12_DRED_ALLOCATION_TYPE_D3D12_DRED_ALLOCATION_TYPE_INVALID:
13571    D3D12_DRED_ALLOCATION_TYPE = -1;
13572pub type D3D12_DRED_ALLOCATION_TYPE = ::std::os::raw::c_int;
13573#[repr(C)]
13574#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13575pub struct D3D12_DRED_ALLOCATION_NODE {
13576    pub ObjectNameA: *const ::std::os::raw::c_char,
13577    pub ObjectNameW: *const wchar_t,
13578    pub AllocationType: D3D12_DRED_ALLOCATION_TYPE,
13579    pub pNext: *const D3D12_DRED_ALLOCATION_NODE,
13580}
13581impl Default for D3D12_DRED_ALLOCATION_NODE {
13582    fn default() -> Self {
13583        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13584        unsafe {
13585            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13586            s.assume_init()
13587        }
13588    }
13589}
13590#[repr(C)]
13591#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13592pub struct D3D12_DRED_ALLOCATION_NODE1 {
13593    pub ObjectNameA: *const ::std::os::raw::c_char,
13594    pub ObjectNameW: *const wchar_t,
13595    pub AllocationType: D3D12_DRED_ALLOCATION_TYPE,
13596    pub pNext: *const D3D12_DRED_ALLOCATION_NODE1,
13597    pub pObject: *const IUnknown,
13598}
13599impl Default for D3D12_DRED_ALLOCATION_NODE1 {
13600    fn default() -> Self {
13601        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13602        unsafe {
13603            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13604            s.assume_init()
13605        }
13606    }
13607}
13608#[repr(C)]
13609#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13610pub struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
13611    pub pHeadAutoBreadcrumbNode: *const D3D12_AUTO_BREADCRUMB_NODE,
13612}
13613impl Default for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
13614    fn default() -> Self {
13615        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13616        unsafe {
13617            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13618            s.assume_init()
13619        }
13620    }
13621}
13622#[repr(C)]
13623#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13624pub struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
13625    pub pHeadAutoBreadcrumbNode: *const D3D12_AUTO_BREADCRUMB_NODE1,
13626}
13627impl Default for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
13628    fn default() -> Self {
13629        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13630        unsafe {
13631            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13632            s.assume_init()
13633        }
13634    }
13635}
13636#[repr(C)]
13637#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13638pub struct D3D12_DRED_PAGE_FAULT_OUTPUT {
13639    pub PageFaultVA: D3D12_GPU_VIRTUAL_ADDRESS,
13640    pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE,
13641    pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE,
13642}
13643impl Default for D3D12_DRED_PAGE_FAULT_OUTPUT {
13644    fn default() -> Self {
13645        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13646        unsafe {
13647            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13648            s.assume_init()
13649        }
13650    }
13651}
13652#[repr(C)]
13653#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13654pub struct D3D12_DRED_PAGE_FAULT_OUTPUT1 {
13655    pub PageFaultVA: D3D12_GPU_VIRTUAL_ADDRESS,
13656    pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
13657    pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
13658}
13659impl Default for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
13660    fn default() -> Self {
13661        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13662        unsafe {
13663            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13664            s.assume_init()
13665        }
13666    }
13667}
13668pub const D3D12_DRED_PAGE_FAULT_FLAGS_D3D12_DRED_PAGE_FAULT_FLAGS_NONE:
13669    D3D12_DRED_PAGE_FAULT_FLAGS = 0;
13670pub type D3D12_DRED_PAGE_FAULT_FLAGS = ::std::os::raw::c_int;
13671pub const D3D12_DRED_DEVICE_STATE_D3D12_DRED_DEVICE_STATE_UNKNOWN:
13672    D3D12_DRED_DEVICE_STATE = 0;
13673pub const D3D12_DRED_DEVICE_STATE_D3D12_DRED_DEVICE_STATE_HUNG:
13674    D3D12_DRED_DEVICE_STATE = 3;
13675pub const D3D12_DRED_DEVICE_STATE_D3D12_DRED_DEVICE_STATE_FAULT:
13676    D3D12_DRED_DEVICE_STATE = 6;
13677pub const D3D12_DRED_DEVICE_STATE_D3D12_DRED_DEVICE_STATE_PAGEFAULT:
13678    D3D12_DRED_DEVICE_STATE = 7;
13679pub type D3D12_DRED_DEVICE_STATE = ::std::os::raw::c_int;
13680#[repr(C)]
13681#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13682pub struct D3D12_DRED_PAGE_FAULT_OUTPUT2 {
13683    pub PageFaultVA: D3D12_GPU_VIRTUAL_ADDRESS,
13684    pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
13685    pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
13686    pub PageFaultFlags: D3D12_DRED_PAGE_FAULT_FLAGS,
13687}
13688impl Default for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
13689    fn default() -> Self {
13690        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13691        unsafe {
13692            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13693            s.assume_init()
13694        }
13695    }
13696}
13697#[repr(C)]
13698#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13699pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
13700    pub DeviceRemovedReason: HRESULT,
13701    pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT,
13702    pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT,
13703}
13704impl Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
13705    fn default() -> Self {
13706        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13707        unsafe {
13708            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13709            s.assume_init()
13710        }
13711    }
13712}
13713#[repr(C)]
13714#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13715pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
13716    pub DeviceRemovedReason: HRESULT,
13717    pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
13718    pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT1,
13719}
13720impl Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
13721    fn default() -> Self {
13722        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13723        unsafe {
13724            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13725            s.assume_init()
13726        }
13727    }
13728}
13729#[repr(C)]
13730#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13731pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
13732    pub DeviceRemovedReason: HRESULT,
13733    pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
13734    pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT2,
13735    pub DeviceState: D3D12_DRED_DEVICE_STATE,
13736}
13737impl Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
13738    fn default() -> Self {
13739        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13740        unsafe {
13741            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13742            s.assume_init()
13743        }
13744    }
13745}
13746#[repr(C)]
13747#[derive(Copy, Clone)]
13748pub struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
13749    pub Version: D3D12_DRED_VERSION,
13750    pub __bindgen_anon_1:
13751        D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA__bindgen_ty_1,
13752}
13753#[repr(C)]
13754#[derive(Copy, Clone)]
13755pub union D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA__bindgen_ty_1 {
13756    pub Dred_1_0: D3D12_DEVICE_REMOVED_EXTENDED_DATA,
13757    pub Dred_1_1: D3D12_DEVICE_REMOVED_EXTENDED_DATA1,
13758    pub Dred_1_2: D3D12_DEVICE_REMOVED_EXTENDED_DATA2,
13759    pub Dred_1_3: D3D12_DEVICE_REMOVED_EXTENDED_DATA3,
13760}
13761impl Default for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA__bindgen_ty_1 {
13762    fn default() -> Self {
13763        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13764        unsafe {
13765            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13766            s.assume_init()
13767        }
13768    }
13769}
13770impl ::std::fmt::Debug
13771    for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA__bindgen_ty_1
13772{
13773    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13774        write ! (f , "D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA__bindgen_ty_1 {{ union }}")
13775    }
13776}
13777impl Default for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
13778    fn default() -> Self {
13779        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13780        unsafe {
13781            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13782            s.assume_init()
13783        }
13784    }
13785}
13786impl ::std::fmt::Debug for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
13787    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13788        write ! (f , "D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {{ Version: {:?}, __bindgen_anon_1: {:?} }}" , self . Version , self . __bindgen_anon_1)
13789    }
13790}
13791extern "C" {
13792    pub static IID_ID3D12DeviceRemovedExtendedDataSettings: IID;
13793}
13794#[repr(C)]
13795#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13796pub struct ID3D12DeviceRemovedExtendedDataSettingsVtbl {
13797    pub QueryInterface: ::std::option::Option<
13798        unsafe extern "C" fn(
13799            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13800            riid: *const IID,
13801            ppvObject: *mut *mut ::std::os::raw::c_void,
13802        ) -> HRESULT,
13803    >,
13804    pub AddRef: ::std::option::Option<
13805        unsafe extern "C" fn(
13806            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13807        ) -> ULONG,
13808    >,
13809    pub Release: ::std::option::Option<
13810        unsafe extern "C" fn(
13811            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13812        ) -> ULONG,
13813    >,
13814    pub SetAutoBreadcrumbsEnablement: ::std::option::Option<
13815        unsafe extern "C" fn(
13816            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13817            Enablement: D3D12_DRED_ENABLEMENT,
13818        ),
13819    >,
13820    pub SetPageFaultEnablement: ::std::option::Option<
13821        unsafe extern "C" fn(
13822            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13823            Enablement: D3D12_DRED_ENABLEMENT,
13824        ),
13825    >,
13826    pub SetWatsonDumpEnablement: ::std::option::Option<
13827        unsafe extern "C" fn(
13828            This: *mut ID3D12DeviceRemovedExtendedDataSettings,
13829            Enablement: D3D12_DRED_ENABLEMENT,
13830        ),
13831    >,
13832}
13833#[repr(C)]
13834#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13835pub struct ID3D12DeviceRemovedExtendedDataSettings {
13836    pub lpVtbl: *mut ID3D12DeviceRemovedExtendedDataSettingsVtbl,
13837}
13838impl Default for ID3D12DeviceRemovedExtendedDataSettings {
13839    fn default() -> Self {
13840        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13841        unsafe {
13842            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13843            s.assume_init()
13844        }
13845    }
13846}
13847extern "C" {
13848    pub static IID_ID3D12DeviceRemovedExtendedDataSettings1: IID;
13849}
13850#[repr(C)]
13851#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13852pub struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl {
13853    pub QueryInterface: ::std::option::Option<
13854        unsafe extern "C" fn(
13855            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13856            riid: *const IID,
13857            ppvObject: *mut *mut ::std::os::raw::c_void,
13858        ) -> HRESULT,
13859    >,
13860    pub AddRef: ::std::option::Option<
13861        unsafe extern "C" fn(
13862            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13863        ) -> ULONG,
13864    >,
13865    pub Release: ::std::option::Option<
13866        unsafe extern "C" fn(
13867            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13868        ) -> ULONG,
13869    >,
13870    pub SetAutoBreadcrumbsEnablement: ::std::option::Option<
13871        unsafe extern "C" fn(
13872            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13873            Enablement: D3D12_DRED_ENABLEMENT,
13874        ),
13875    >,
13876    pub SetPageFaultEnablement: ::std::option::Option<
13877        unsafe extern "C" fn(
13878            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13879            Enablement: D3D12_DRED_ENABLEMENT,
13880        ),
13881    >,
13882    pub SetWatsonDumpEnablement: ::std::option::Option<
13883        unsafe extern "C" fn(
13884            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13885            Enablement: D3D12_DRED_ENABLEMENT,
13886        ),
13887    >,
13888    pub SetBreadcrumbContextEnablement: ::std::option::Option<
13889        unsafe extern "C" fn(
13890            This: *mut ID3D12DeviceRemovedExtendedDataSettings1,
13891            Enablement: D3D12_DRED_ENABLEMENT,
13892        ),
13893    >,
13894}
13895#[repr(C)]
13896#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13897pub struct ID3D12DeviceRemovedExtendedDataSettings1 {
13898    pub lpVtbl: *mut ID3D12DeviceRemovedExtendedDataSettings1Vtbl,
13899}
13900impl Default for ID3D12DeviceRemovedExtendedDataSettings1 {
13901    fn default() -> Self {
13902        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13903        unsafe {
13904            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13905            s.assume_init()
13906        }
13907    }
13908}
13909extern "C" {
13910    pub static IID_ID3D12DeviceRemovedExtendedData: IID;
13911}
13912#[repr(C)]
13913#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13914pub struct ID3D12DeviceRemovedExtendedDataVtbl {
13915    pub QueryInterface: ::std::option::Option<
13916        unsafe extern "C" fn(
13917            This: *mut ID3D12DeviceRemovedExtendedData,
13918            riid: *const IID,
13919            ppvObject: *mut *mut ::std::os::raw::c_void,
13920        ) -> HRESULT,
13921    >,
13922    pub AddRef: ::std::option::Option<
13923        unsafe extern "C" fn(
13924            This: *mut ID3D12DeviceRemovedExtendedData,
13925        ) -> ULONG,
13926    >,
13927    pub Release: ::std::option::Option<
13928        unsafe extern "C" fn(
13929            This: *mut ID3D12DeviceRemovedExtendedData,
13930        ) -> ULONG,
13931    >,
13932    pub GetAutoBreadcrumbsOutput: ::std::option::Option<
13933        unsafe extern "C" fn(
13934            This: *mut ID3D12DeviceRemovedExtendedData,
13935            pOutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT,
13936        ) -> HRESULT,
13937    >,
13938    pub GetPageFaultAllocationOutput: ::std::option::Option<
13939        unsafe extern "C" fn(
13940            This: *mut ID3D12DeviceRemovedExtendedData,
13941            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT,
13942        ) -> HRESULT,
13943    >,
13944}
13945#[repr(C)]
13946#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13947pub struct ID3D12DeviceRemovedExtendedData {
13948    pub lpVtbl: *mut ID3D12DeviceRemovedExtendedDataVtbl,
13949}
13950impl Default for ID3D12DeviceRemovedExtendedData {
13951    fn default() -> Self {
13952        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13953        unsafe {
13954            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13955            s.assume_init()
13956        }
13957    }
13958}
13959extern "C" {
13960    pub static IID_ID3D12DeviceRemovedExtendedData1: IID;
13961}
13962#[repr(C)]
13963#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
13964pub struct ID3D12DeviceRemovedExtendedData1Vtbl {
13965    pub QueryInterface: ::std::option::Option<
13966        unsafe extern "C" fn(
13967            This: *mut ID3D12DeviceRemovedExtendedData1,
13968            riid: *const IID,
13969            ppvObject: *mut *mut ::std::os::raw::c_void,
13970        ) -> HRESULT,
13971    >,
13972    pub AddRef: ::std::option::Option<
13973        unsafe extern "C" fn(
13974            This: *mut ID3D12DeviceRemovedExtendedData1,
13975        ) -> ULONG,
13976    >,
13977    pub Release: ::std::option::Option<
13978        unsafe extern "C" fn(
13979            This: *mut ID3D12DeviceRemovedExtendedData1,
13980        ) -> ULONG,
13981    >,
13982    pub GetAutoBreadcrumbsOutput: ::std::option::Option<
13983        unsafe extern "C" fn(
13984            This: *mut ID3D12DeviceRemovedExtendedData1,
13985            pOutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT,
13986        ) -> HRESULT,
13987    >,
13988    pub GetPageFaultAllocationOutput: ::std::option::Option<
13989        unsafe extern "C" fn(
13990            This: *mut ID3D12DeviceRemovedExtendedData1,
13991            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT,
13992        ) -> HRESULT,
13993    >,
13994    pub GetAutoBreadcrumbsOutput1: ::std::option::Option<
13995        unsafe extern "C" fn(
13996            This: *mut ID3D12DeviceRemovedExtendedData1,
13997            pOutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
13998        ) -> HRESULT,
13999    >,
14000    pub GetPageFaultAllocationOutput1: ::std::option::Option<
14001        unsafe extern "C" fn(
14002            This: *mut ID3D12DeviceRemovedExtendedData1,
14003            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT1,
14004        ) -> HRESULT,
14005    >,
14006}
14007#[repr(C)]
14008#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14009pub struct ID3D12DeviceRemovedExtendedData1 {
14010    pub lpVtbl: *mut ID3D12DeviceRemovedExtendedData1Vtbl,
14011}
14012impl Default for ID3D12DeviceRemovedExtendedData1 {
14013    fn default() -> Self {
14014        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14015        unsafe {
14016            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14017            s.assume_init()
14018        }
14019    }
14020}
14021extern "C" {
14022    pub static IID_ID3D12DeviceRemovedExtendedData2: IID;
14023}
14024#[repr(C)]
14025#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14026pub struct ID3D12DeviceRemovedExtendedData2Vtbl {
14027    pub QueryInterface: ::std::option::Option<
14028        unsafe extern "C" fn(
14029            This: *mut ID3D12DeviceRemovedExtendedData2,
14030            riid: *const IID,
14031            ppvObject: *mut *mut ::std::os::raw::c_void,
14032        ) -> HRESULT,
14033    >,
14034    pub AddRef: ::std::option::Option<
14035        unsafe extern "C" fn(
14036            This: *mut ID3D12DeviceRemovedExtendedData2,
14037        ) -> ULONG,
14038    >,
14039    pub Release: ::std::option::Option<
14040        unsafe extern "C" fn(
14041            This: *mut ID3D12DeviceRemovedExtendedData2,
14042        ) -> ULONG,
14043    >,
14044    pub GetAutoBreadcrumbsOutput: ::std::option::Option<
14045        unsafe extern "C" fn(
14046            This: *mut ID3D12DeviceRemovedExtendedData2,
14047            pOutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT,
14048        ) -> HRESULT,
14049    >,
14050    pub GetPageFaultAllocationOutput: ::std::option::Option<
14051        unsafe extern "C" fn(
14052            This: *mut ID3D12DeviceRemovedExtendedData2,
14053            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT,
14054        ) -> HRESULT,
14055    >,
14056    pub GetAutoBreadcrumbsOutput1: ::std::option::Option<
14057        unsafe extern "C" fn(
14058            This: *mut ID3D12DeviceRemovedExtendedData2,
14059            pOutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
14060        ) -> HRESULT,
14061    >,
14062    pub GetPageFaultAllocationOutput1: ::std::option::Option<
14063        unsafe extern "C" fn(
14064            This: *mut ID3D12DeviceRemovedExtendedData2,
14065            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT1,
14066        ) -> HRESULT,
14067    >,
14068    pub GetPageFaultAllocationOutput2: ::std::option::Option<
14069        unsafe extern "C" fn(
14070            This: *mut ID3D12DeviceRemovedExtendedData2,
14071            pOutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT2,
14072        ) -> HRESULT,
14073    >,
14074    pub GetDeviceState: ::std::option::Option<
14075        unsafe extern "C" fn(
14076            This: *mut ID3D12DeviceRemovedExtendedData2,
14077        ) -> D3D12_DRED_DEVICE_STATE,
14078    >,
14079}
14080#[repr(C)]
14081#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14082pub struct ID3D12DeviceRemovedExtendedData2 {
14083    pub lpVtbl: *mut ID3D12DeviceRemovedExtendedData2Vtbl,
14084}
14085impl Default for ID3D12DeviceRemovedExtendedData2 {
14086    fn default() -> Self {
14087        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14088        unsafe {
14089            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14090            s.assume_init()
14091        }
14092    }
14093}
14094pub const D3D12_BACKGROUND_PROCESSING_MODE_D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED : D3D12_BACKGROUND_PROCESSING_MODE = 0 ;
14095pub const D3D12_BACKGROUND_PROCESSING_MODE_D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS : D3D12_BACKGROUND_PROCESSING_MODE = 1 ;
14096pub const D3D12_BACKGROUND_PROCESSING_MODE_D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK : D3D12_BACKGROUND_PROCESSING_MODE = 2 ;
14097pub const D3D12_BACKGROUND_PROCESSING_MODE_D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM : D3D12_BACKGROUND_PROCESSING_MODE = 3 ;
14098pub type D3D12_BACKGROUND_PROCESSING_MODE = ::std::os::raw::c_int;
14099pub const D3D12_MEASUREMENTS_ACTION_D3D12_MEASUREMENTS_ACTION_KEEP_ALL:
14100    D3D12_MEASUREMENTS_ACTION = 0;
14101pub const D3D12_MEASUREMENTS_ACTION_D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS:
14102    D3D12_MEASUREMENTS_ACTION = 1;
14103pub const D3D12_MEASUREMENTS_ACTION_D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY : D3D12_MEASUREMENTS_ACTION = 2 ;
14104pub const D3D12_MEASUREMENTS_ACTION_D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS : D3D12_MEASUREMENTS_ACTION = 3 ;
14105pub type D3D12_MEASUREMENTS_ACTION = ::std::os::raw::c_int;
14106extern "C" {
14107    pub static IID_ID3D12Device6: IID;
14108}
14109#[repr(C)]
14110#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14111pub struct ID3D12Device6Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , pub SetBackgroundProcessingMode : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device6 , Mode : D3D12_BACKGROUND_PROCESSING_MODE , MeasurementsAction : D3D12_MEASUREMENTS_ACTION , hEventToSignalUponCompletion : HANDLE , pbFurtherMeasurementsDesired : * mut BOOL) -> HRESULT > , }
14112#[repr(C)]
14113#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14114pub struct ID3D12Device6 {
14115    pub lpVtbl: *mut ID3D12Device6Vtbl,
14116}
14117impl Default for ID3D12Device6 {
14118    fn default() -> Self {
14119        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14120        unsafe {
14121            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14122            s.assume_init()
14123        }
14124    }
14125}
14126extern "C" {
14127    pub static D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED: GUID;
14128}
14129#[repr(C)]
14130#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14131pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
14132    pub NodeIndex: UINT,
14133    pub Count: UINT,
14134}
14135#[repr(C)]
14136#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14137pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
14138    pub NodeIndex: UINT,
14139    pub Count: UINT,
14140    pub pTypes: *mut GUID,
14141}
14142impl Default for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
14143    fn default() -> Self {
14144        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14145        unsafe {
14146            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14147            s.assume_init()
14148        }
14149    }
14150}
14151#[repr(C)]
14152#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14153pub struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
14154    pub NodeMask: UINT,
14155    pub Flags: D3D12_PROTECTED_RESOURCE_SESSION_FLAGS,
14156    pub ProtectionType: GUID,
14157}
14158impl Default for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
14159    fn default() -> Self {
14160        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14161        unsafe {
14162            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14163            s.assume_init()
14164        }
14165    }
14166}
14167extern "C" {
14168    pub static IID_ID3D12ProtectedResourceSession1: IID;
14169}
14170#[repr(C)]
14171#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14172pub struct ID3D12ProtectedResourceSession1Vtbl {
14173    pub QueryInterface: ::std::option::Option<
14174        unsafe extern "C" fn(
14175            This: *mut ID3D12ProtectedResourceSession1,
14176            riid: *const IID,
14177            ppvObject: *mut *mut ::std::os::raw::c_void,
14178        ) -> HRESULT,
14179    >,
14180    pub AddRef: ::std::option::Option<
14181        unsafe extern "C" fn(
14182            This: *mut ID3D12ProtectedResourceSession1,
14183        ) -> ULONG,
14184    >,
14185    pub Release: ::std::option::Option<
14186        unsafe extern "C" fn(
14187            This: *mut ID3D12ProtectedResourceSession1,
14188        ) -> ULONG,
14189    >,
14190    pub GetPrivateData: ::std::option::Option<
14191        unsafe extern "C" fn(
14192            This: *mut ID3D12ProtectedResourceSession1,
14193            guid: *const GUID,
14194            pDataSize: *mut UINT,
14195            pData: *mut ::std::os::raw::c_void,
14196        ) -> HRESULT,
14197    >,
14198    pub SetPrivateData: ::std::option::Option<
14199        unsafe extern "C" fn(
14200            This: *mut ID3D12ProtectedResourceSession1,
14201            guid: *const GUID,
14202            DataSize: UINT,
14203            pData: *const ::std::os::raw::c_void,
14204        ) -> HRESULT,
14205    >,
14206    pub SetPrivateDataInterface: ::std::option::Option<
14207        unsafe extern "C" fn(
14208            This: *mut ID3D12ProtectedResourceSession1,
14209            guid: *const GUID,
14210            pData: *const IUnknown,
14211        ) -> HRESULT,
14212    >,
14213    pub SetName: ::std::option::Option<
14214        unsafe extern "C" fn(
14215            This: *mut ID3D12ProtectedResourceSession1,
14216            Name: LPCWSTR,
14217        ) -> HRESULT,
14218    >,
14219    pub GetDevice: ::std::option::Option<
14220        unsafe extern "C" fn(
14221            This: *mut ID3D12ProtectedResourceSession1,
14222            riid: *const IID,
14223            ppvDevice: *mut *mut ::std::os::raw::c_void,
14224        ) -> HRESULT,
14225    >,
14226    pub GetStatusFence: ::std::option::Option<
14227        unsafe extern "C" fn(
14228            This: *mut ID3D12ProtectedResourceSession1,
14229            riid: *const IID,
14230            ppFence: *mut *mut ::std::os::raw::c_void,
14231        ) -> HRESULT,
14232    >,
14233    pub GetSessionStatus: ::std::option::Option<
14234        unsafe extern "C" fn(
14235            This: *mut ID3D12ProtectedResourceSession1,
14236        ) -> D3D12_PROTECTED_SESSION_STATUS,
14237    >,
14238    pub GetDesc: ::std::option::Option<
14239        unsafe extern "C" fn(
14240            This: *mut ID3D12ProtectedResourceSession1,
14241            RetVal: *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC,
14242        )
14243            -> *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC,
14244    >,
14245    pub GetDesc1: ::std::option::Option<
14246        unsafe extern "C" fn(
14247            This: *mut ID3D12ProtectedResourceSession1,
14248            RetVal: *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC1,
14249        )
14250            -> *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC1,
14251    >,
14252}
14253#[repr(C)]
14254#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14255pub struct ID3D12ProtectedResourceSession1 {
14256    pub lpVtbl: *mut ID3D12ProtectedResourceSession1Vtbl,
14257}
14258impl Default for ID3D12ProtectedResourceSession1 {
14259    fn default() -> Self {
14260        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14261        unsafe {
14262            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14263            s.assume_init()
14264        }
14265    }
14266}
14267extern "C" {
14268    pub static IID_ID3D12Device7: IID;
14269}
14270#[repr(C)]
14271#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14272pub struct ID3D12Device7Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , pub SetBackgroundProcessingMode : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , Mode : D3D12_BACKGROUND_PROCESSING_MODE , MeasurementsAction : D3D12_MEASUREMENTS_ACTION , hEventToSignalUponCompletion : HANDLE , pbFurtherMeasurementsDesired : * mut BOOL) -> HRESULT > , pub AddToStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pAddition : * const D3D12_STATE_OBJECT_DESC , pStateObjectToGrowFrom : * mut ID3D12StateObject , riid : * const IID , ppNewStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device7 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , }
14273#[repr(C)]
14274#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14275pub struct ID3D12Device7 {
14276    pub lpVtbl: *mut ID3D12Device7Vtbl,
14277}
14278impl Default for ID3D12Device7 {
14279    fn default() -> Self {
14280        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14281        unsafe {
14282            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14283            s.assume_init()
14284        }
14285    }
14286}
14287extern "C" {
14288    pub static IID_ID3D12Device8: IID;
14289}
14290#[repr(C)]
14291#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14292pub struct ID3D12Device8Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , pub SetBackgroundProcessingMode : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , Mode : D3D12_BACKGROUND_PROCESSING_MODE , MeasurementsAction : D3D12_MEASUREMENTS_ACTION , hEventToSignalUponCompletion : HANDLE , pbFurtherMeasurementsDesired : * mut BOOL) -> HRESULT > , pub AddToStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pAddition : * const D3D12_STATE_OBJECT_DESC , pStateObjectToGrowFrom : * mut ID3D12StateObject , riid : * const IID , ppNewStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC1 , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateCommittedResource2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC1 , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC1 , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSamplerFeedbackUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pTargetedResource : * mut ID3D12Resource , pFeedbackResource : * mut ID3D12Resource , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub GetCopyableFootprints1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device8 , pResourceDesc : * const D3D12_RESOURCE_DESC1 , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , }
14293#[repr(C)]
14294#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14295pub struct ID3D12Device8 {
14296    pub lpVtbl: *mut ID3D12Device8Vtbl,
14297}
14298impl Default for ID3D12Device8 {
14299    fn default() -> Self {
14300        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14301        unsafe {
14302            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14303            s.assume_init()
14304        }
14305    }
14306}
14307extern "C" {
14308    pub static IID_ID3D12Resource1: IID;
14309}
14310#[repr(C)]
14311#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14312pub struct ID3D12Resource1Vtbl {
14313    pub QueryInterface: ::std::option::Option<
14314        unsafe extern "C" fn(
14315            This: *mut ID3D12Resource1,
14316            riid: *const IID,
14317            ppvObject: *mut *mut ::std::os::raw::c_void,
14318        ) -> HRESULT,
14319    >,
14320    pub AddRef: ::std::option::Option<
14321        unsafe extern "C" fn(This: *mut ID3D12Resource1) -> ULONG,
14322    >,
14323    pub Release: ::std::option::Option<
14324        unsafe extern "C" fn(This: *mut ID3D12Resource1) -> ULONG,
14325    >,
14326    pub GetPrivateData: ::std::option::Option<
14327        unsafe extern "C" fn(
14328            This: *mut ID3D12Resource1,
14329            guid: *const GUID,
14330            pDataSize: *mut UINT,
14331            pData: *mut ::std::os::raw::c_void,
14332        ) -> HRESULT,
14333    >,
14334    pub SetPrivateData: ::std::option::Option<
14335        unsafe extern "C" fn(
14336            This: *mut ID3D12Resource1,
14337            guid: *const GUID,
14338            DataSize: UINT,
14339            pData: *const ::std::os::raw::c_void,
14340        ) -> HRESULT,
14341    >,
14342    pub SetPrivateDataInterface: ::std::option::Option<
14343        unsafe extern "C" fn(
14344            This: *mut ID3D12Resource1,
14345            guid: *const GUID,
14346            pData: *const IUnknown,
14347        ) -> HRESULT,
14348    >,
14349    pub SetName: ::std::option::Option<
14350        unsafe extern "C" fn(
14351            This: *mut ID3D12Resource1,
14352            Name: LPCWSTR,
14353        ) -> HRESULT,
14354    >,
14355    pub GetDevice: ::std::option::Option<
14356        unsafe extern "C" fn(
14357            This: *mut ID3D12Resource1,
14358            riid: *const IID,
14359            ppvDevice: *mut *mut ::std::os::raw::c_void,
14360        ) -> HRESULT,
14361    >,
14362    pub Map: ::std::option::Option<
14363        unsafe extern "C" fn(
14364            This: *mut ID3D12Resource1,
14365            Subresource: UINT,
14366            pReadRange: *const D3D12_RANGE,
14367            ppData: *mut *mut ::std::os::raw::c_void,
14368        ) -> HRESULT,
14369    >,
14370    pub Unmap: ::std::option::Option<
14371        unsafe extern "C" fn(
14372            This: *mut ID3D12Resource1,
14373            Subresource: UINT,
14374            pWrittenRange: *const D3D12_RANGE,
14375        ),
14376    >,
14377    pub GetDesc: ::std::option::Option<
14378        unsafe extern "C" fn(
14379            This: *mut ID3D12Resource1,
14380            RetVal: *mut D3D12_RESOURCE_DESC,
14381        ) -> *mut D3D12_RESOURCE_DESC,
14382    >,
14383    pub GetGPUVirtualAddress: ::std::option::Option<
14384        unsafe extern "C" fn(
14385            This: *mut ID3D12Resource1,
14386        ) -> D3D12_GPU_VIRTUAL_ADDRESS,
14387    >,
14388    pub WriteToSubresource: ::std::option::Option<
14389        unsafe extern "C" fn(
14390            This: *mut ID3D12Resource1,
14391            DstSubresource: UINT,
14392            pDstBox: *const D3D12_BOX,
14393            pSrcData: *const ::std::os::raw::c_void,
14394            SrcRowPitch: UINT,
14395            SrcDepthPitch: UINT,
14396        ) -> HRESULT,
14397    >,
14398    pub ReadFromSubresource: ::std::option::Option<
14399        unsafe extern "C" fn(
14400            This: *mut ID3D12Resource1,
14401            pDstData: *mut ::std::os::raw::c_void,
14402            DstRowPitch: UINT,
14403            DstDepthPitch: UINT,
14404            SrcSubresource: UINT,
14405            pSrcBox: *const D3D12_BOX,
14406        ) -> HRESULT,
14407    >,
14408    pub GetHeapProperties: ::std::option::Option<
14409        unsafe extern "C" fn(
14410            This: *mut ID3D12Resource1,
14411            pHeapProperties: *mut D3D12_HEAP_PROPERTIES,
14412            pHeapFlags: *mut D3D12_HEAP_FLAGS,
14413        ) -> HRESULT,
14414    >,
14415    pub GetProtectedResourceSession: ::std::option::Option<
14416        unsafe extern "C" fn(
14417            This: *mut ID3D12Resource1,
14418            riid: *const IID,
14419            ppProtectedSession: *mut *mut ::std::os::raw::c_void,
14420        ) -> HRESULT,
14421    >,
14422}
14423#[repr(C)]
14424#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14425pub struct ID3D12Resource1 {
14426    pub lpVtbl: *mut ID3D12Resource1Vtbl,
14427}
14428impl Default for ID3D12Resource1 {
14429    fn default() -> Self {
14430        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14431        unsafe {
14432            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14433            s.assume_init()
14434        }
14435    }
14436}
14437extern "C" {
14438    pub static IID_ID3D12Resource2: IID;
14439}
14440#[repr(C)]
14441#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14442pub struct ID3D12Resource2Vtbl {
14443    pub QueryInterface: ::std::option::Option<
14444        unsafe extern "C" fn(
14445            This: *mut ID3D12Resource2,
14446            riid: *const IID,
14447            ppvObject: *mut *mut ::std::os::raw::c_void,
14448        ) -> HRESULT,
14449    >,
14450    pub AddRef: ::std::option::Option<
14451        unsafe extern "C" fn(This: *mut ID3D12Resource2) -> ULONG,
14452    >,
14453    pub Release: ::std::option::Option<
14454        unsafe extern "C" fn(This: *mut ID3D12Resource2) -> ULONG,
14455    >,
14456    pub GetPrivateData: ::std::option::Option<
14457        unsafe extern "C" fn(
14458            This: *mut ID3D12Resource2,
14459            guid: *const GUID,
14460            pDataSize: *mut UINT,
14461            pData: *mut ::std::os::raw::c_void,
14462        ) -> HRESULT,
14463    >,
14464    pub SetPrivateData: ::std::option::Option<
14465        unsafe extern "C" fn(
14466            This: *mut ID3D12Resource2,
14467            guid: *const GUID,
14468            DataSize: UINT,
14469            pData: *const ::std::os::raw::c_void,
14470        ) -> HRESULT,
14471    >,
14472    pub SetPrivateDataInterface: ::std::option::Option<
14473        unsafe extern "C" fn(
14474            This: *mut ID3D12Resource2,
14475            guid: *const GUID,
14476            pData: *const IUnknown,
14477        ) -> HRESULT,
14478    >,
14479    pub SetName: ::std::option::Option<
14480        unsafe extern "C" fn(
14481            This: *mut ID3D12Resource2,
14482            Name: LPCWSTR,
14483        ) -> HRESULT,
14484    >,
14485    pub GetDevice: ::std::option::Option<
14486        unsafe extern "C" fn(
14487            This: *mut ID3D12Resource2,
14488            riid: *const IID,
14489            ppvDevice: *mut *mut ::std::os::raw::c_void,
14490        ) -> HRESULT,
14491    >,
14492    pub Map: ::std::option::Option<
14493        unsafe extern "C" fn(
14494            This: *mut ID3D12Resource2,
14495            Subresource: UINT,
14496            pReadRange: *const D3D12_RANGE,
14497            ppData: *mut *mut ::std::os::raw::c_void,
14498        ) -> HRESULT,
14499    >,
14500    pub Unmap: ::std::option::Option<
14501        unsafe extern "C" fn(
14502            This: *mut ID3D12Resource2,
14503            Subresource: UINT,
14504            pWrittenRange: *const D3D12_RANGE,
14505        ),
14506    >,
14507    pub GetDesc: ::std::option::Option<
14508        unsafe extern "C" fn(
14509            This: *mut ID3D12Resource2,
14510            RetVal: *mut D3D12_RESOURCE_DESC,
14511        ) -> *mut D3D12_RESOURCE_DESC,
14512    >,
14513    pub GetGPUVirtualAddress: ::std::option::Option<
14514        unsafe extern "C" fn(
14515            This: *mut ID3D12Resource2,
14516        ) -> D3D12_GPU_VIRTUAL_ADDRESS,
14517    >,
14518    pub WriteToSubresource: ::std::option::Option<
14519        unsafe extern "C" fn(
14520            This: *mut ID3D12Resource2,
14521            DstSubresource: UINT,
14522            pDstBox: *const D3D12_BOX,
14523            pSrcData: *const ::std::os::raw::c_void,
14524            SrcRowPitch: UINT,
14525            SrcDepthPitch: UINT,
14526        ) -> HRESULT,
14527    >,
14528    pub ReadFromSubresource: ::std::option::Option<
14529        unsafe extern "C" fn(
14530            This: *mut ID3D12Resource2,
14531            pDstData: *mut ::std::os::raw::c_void,
14532            DstRowPitch: UINT,
14533            DstDepthPitch: UINT,
14534            SrcSubresource: UINT,
14535            pSrcBox: *const D3D12_BOX,
14536        ) -> HRESULT,
14537    >,
14538    pub GetHeapProperties: ::std::option::Option<
14539        unsafe extern "C" fn(
14540            This: *mut ID3D12Resource2,
14541            pHeapProperties: *mut D3D12_HEAP_PROPERTIES,
14542            pHeapFlags: *mut D3D12_HEAP_FLAGS,
14543        ) -> HRESULT,
14544    >,
14545    pub GetProtectedResourceSession: ::std::option::Option<
14546        unsafe extern "C" fn(
14547            This: *mut ID3D12Resource2,
14548            riid: *const IID,
14549            ppProtectedSession: *mut *mut ::std::os::raw::c_void,
14550        ) -> HRESULT,
14551    >,
14552    pub GetDesc1: ::std::option::Option<
14553        unsafe extern "C" fn(
14554            This: *mut ID3D12Resource2,
14555            RetVal: *mut D3D12_RESOURCE_DESC1,
14556        ) -> *mut D3D12_RESOURCE_DESC1,
14557    >,
14558}
14559#[repr(C)]
14560#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14561pub struct ID3D12Resource2 {
14562    pub lpVtbl: *mut ID3D12Resource2Vtbl,
14563}
14564impl Default for ID3D12Resource2 {
14565    fn default() -> Self {
14566        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14567        unsafe {
14568            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14569            s.assume_init()
14570        }
14571    }
14572}
14573extern "C" {
14574    pub static IID_ID3D12Heap1: IID;
14575}
14576#[repr(C)]
14577#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14578pub struct ID3D12Heap1Vtbl {
14579    pub QueryInterface: ::std::option::Option<
14580        unsafe extern "C" fn(
14581            This: *mut ID3D12Heap1,
14582            riid: *const IID,
14583            ppvObject: *mut *mut ::std::os::raw::c_void,
14584        ) -> HRESULT,
14585    >,
14586    pub AddRef: ::std::option::Option<
14587        unsafe extern "C" fn(This: *mut ID3D12Heap1) -> ULONG,
14588    >,
14589    pub Release: ::std::option::Option<
14590        unsafe extern "C" fn(This: *mut ID3D12Heap1) -> ULONG,
14591    >,
14592    pub GetPrivateData: ::std::option::Option<
14593        unsafe extern "C" fn(
14594            This: *mut ID3D12Heap1,
14595            guid: *const GUID,
14596            pDataSize: *mut UINT,
14597            pData: *mut ::std::os::raw::c_void,
14598        ) -> HRESULT,
14599    >,
14600    pub SetPrivateData: ::std::option::Option<
14601        unsafe extern "C" fn(
14602            This: *mut ID3D12Heap1,
14603            guid: *const GUID,
14604            DataSize: UINT,
14605            pData: *const ::std::os::raw::c_void,
14606        ) -> HRESULT,
14607    >,
14608    pub SetPrivateDataInterface: ::std::option::Option<
14609        unsafe extern "C" fn(
14610            This: *mut ID3D12Heap1,
14611            guid: *const GUID,
14612            pData: *const IUnknown,
14613        ) -> HRESULT,
14614    >,
14615    pub SetName: ::std::option::Option<
14616        unsafe extern "C" fn(This: *mut ID3D12Heap1, Name: LPCWSTR) -> HRESULT,
14617    >,
14618    pub GetDevice: ::std::option::Option<
14619        unsafe extern "C" fn(
14620            This: *mut ID3D12Heap1,
14621            riid: *const IID,
14622            ppvDevice: *mut *mut ::std::os::raw::c_void,
14623        ) -> HRESULT,
14624    >,
14625    pub GetDesc: ::std::option::Option<
14626        unsafe extern "C" fn(
14627            This: *mut ID3D12Heap1,
14628            RetVal: *mut D3D12_HEAP_DESC,
14629        ) -> *mut D3D12_HEAP_DESC,
14630    >,
14631    pub GetProtectedResourceSession: ::std::option::Option<
14632        unsafe extern "C" fn(
14633            This: *mut ID3D12Heap1,
14634            riid: *const IID,
14635            ppProtectedSession: *mut *mut ::std::os::raw::c_void,
14636        ) -> HRESULT,
14637    >,
14638}
14639#[repr(C)]
14640#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14641pub struct ID3D12Heap1 {
14642    pub lpVtbl: *mut ID3D12Heap1Vtbl,
14643}
14644impl Default for ID3D12Heap1 {
14645    fn default() -> Self {
14646        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14647        unsafe {
14648            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14649            s.assume_init()
14650        }
14651    }
14652}
14653extern "C" {
14654    pub static IID_ID3D12GraphicsCommandList3: IID;
14655}
14656#[repr(C)]
14657#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
14658pub struct ID3D12GraphicsCommandList3Vtbl {
14659    pub QueryInterface: ::std::option::Option<
14660        unsafe extern "C" fn(
14661            This: *mut ID3D12GraphicsCommandList3,
14662            riid: *const IID,
14663            ppvObject: *mut *mut ::std::os::raw::c_void,
14664        ) -> HRESULT,
14665    >,
14666    pub AddRef: ::std::option::Option<
14667        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList3) -> ULONG,
14668    >,
14669    pub Release: ::std::option::Option<
14670        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList3) -> ULONG,
14671    >,
14672    pub GetPrivateData: ::std::option::Option<
14673        unsafe extern "C" fn(
14674            This: *mut ID3D12GraphicsCommandList3,
14675            guid: *const GUID,
14676            pDataSize: *mut UINT,
14677            pData: *mut ::std::os::raw::c_void,
14678        ) -> HRESULT,
14679    >,
14680    pub SetPrivateData: ::std::option::Option<
14681        unsafe extern "C" fn(
14682            This: *mut ID3D12GraphicsCommandList3,
14683            guid: *const GUID,
14684            DataSize: UINT,
14685            pData: *const ::std::os::raw::c_void,
14686        ) -> HRESULT,
14687    >,
14688    pub SetPrivateDataInterface: ::std::option::Option<
14689        unsafe extern "C" fn(
14690            This: *mut ID3D12GraphicsCommandList3,
14691            guid: *const GUID,
14692            pData: *const IUnknown,
14693        ) -> HRESULT,
14694    >,
14695    pub SetName: ::std::option::Option<
14696        unsafe extern "C" fn(
14697            This: *mut ID3D12GraphicsCommandList3,
14698            Name: LPCWSTR,
14699        ) -> HRESULT,
14700    >,
14701    pub GetDevice: ::std::option::Option<
14702        unsafe extern "C" fn(
14703            This: *mut ID3D12GraphicsCommandList3,
14704            riid: *const IID,
14705            ppvDevice: *mut *mut ::std::os::raw::c_void,
14706        ) -> HRESULT,
14707    >,
14708    pub GetType: ::std::option::Option<
14709        unsafe extern "C" fn(
14710            This: *mut ID3D12GraphicsCommandList3,
14711        ) -> D3D12_COMMAND_LIST_TYPE,
14712    >,
14713    pub Close: ::std::option::Option<
14714        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList3) -> HRESULT,
14715    >,
14716    pub Reset: ::std::option::Option<
14717        unsafe extern "C" fn(
14718            This: *mut ID3D12GraphicsCommandList3,
14719            pAllocator: *mut ID3D12CommandAllocator,
14720            pInitialState: *mut ID3D12PipelineState,
14721        ) -> HRESULT,
14722    >,
14723    pub ClearState: ::std::option::Option<
14724        unsafe extern "C" fn(
14725            This: *mut ID3D12GraphicsCommandList3,
14726            pPipelineState: *mut ID3D12PipelineState,
14727        ),
14728    >,
14729    pub DrawInstanced: ::std::option::Option<
14730        unsafe extern "C" fn(
14731            This: *mut ID3D12GraphicsCommandList3,
14732            VertexCountPerInstance: UINT,
14733            InstanceCount: UINT,
14734            StartVertexLocation: UINT,
14735            StartInstanceLocation: UINT,
14736        ),
14737    >,
14738    pub DrawIndexedInstanced: ::std::option::Option<
14739        unsafe extern "C" fn(
14740            This: *mut ID3D12GraphicsCommandList3,
14741            IndexCountPerInstance: UINT,
14742            InstanceCount: UINT,
14743            StartIndexLocation: UINT,
14744            BaseVertexLocation: INT,
14745            StartInstanceLocation: UINT,
14746        ),
14747    >,
14748    pub Dispatch: ::std::option::Option<
14749        unsafe extern "C" fn(
14750            This: *mut ID3D12GraphicsCommandList3,
14751            ThreadGroupCountX: UINT,
14752            ThreadGroupCountY: UINT,
14753            ThreadGroupCountZ: UINT,
14754        ),
14755    >,
14756    pub CopyBufferRegion: ::std::option::Option<
14757        unsafe extern "C" fn(
14758            This: *mut ID3D12GraphicsCommandList3,
14759            pDstBuffer: *mut ID3D12Resource,
14760            DstOffset: UINT64,
14761            pSrcBuffer: *mut ID3D12Resource,
14762            SrcOffset: UINT64,
14763            NumBytes: UINT64,
14764        ),
14765    >,
14766    pub CopyTextureRegion: ::std::option::Option<
14767        unsafe extern "C" fn(
14768            This: *mut ID3D12GraphicsCommandList3,
14769            pDst: *const D3D12_TEXTURE_COPY_LOCATION,
14770            DstX: UINT,
14771            DstY: UINT,
14772            DstZ: UINT,
14773            pSrc: *const D3D12_TEXTURE_COPY_LOCATION,
14774            pSrcBox: *const D3D12_BOX,
14775        ),
14776    >,
14777    pub CopyResource: ::std::option::Option<
14778        unsafe extern "C" fn(
14779            This: *mut ID3D12GraphicsCommandList3,
14780            pDstResource: *mut ID3D12Resource,
14781            pSrcResource: *mut ID3D12Resource,
14782        ),
14783    >,
14784    pub CopyTiles: ::std::option::Option<
14785        unsafe extern "C" fn(
14786            This: *mut ID3D12GraphicsCommandList3,
14787            pTiledResource: *mut ID3D12Resource,
14788            pTileRegionStartCoordinate: *const D3D12_TILED_RESOURCE_COORDINATE,
14789            pTileRegionSize: *const D3D12_TILE_REGION_SIZE,
14790            pBuffer: *mut ID3D12Resource,
14791            BufferStartOffsetInBytes: UINT64,
14792            Flags: D3D12_TILE_COPY_FLAGS,
14793        ),
14794    >,
14795    pub ResolveSubresource: ::std::option::Option<
14796        unsafe extern "C" fn(
14797            This: *mut ID3D12GraphicsCommandList3,
14798            pDstResource: *mut ID3D12Resource,
14799            DstSubresource: UINT,
14800            pSrcResource: *mut ID3D12Resource,
14801            SrcSubresource: UINT,
14802            Format: DXGI_FORMAT,
14803        ),
14804    >,
14805    pub IASetPrimitiveTopology: ::std::option::Option<
14806        unsafe extern "C" fn(
14807            This: *mut ID3D12GraphicsCommandList3,
14808            PrimitiveTopology: D3D12_PRIMITIVE_TOPOLOGY,
14809        ),
14810    >,
14811    pub RSSetViewports: ::std::option::Option<
14812        unsafe extern "C" fn(
14813            This: *mut ID3D12GraphicsCommandList3,
14814            NumViewports: UINT,
14815            pViewports: *const D3D12_VIEWPORT,
14816        ),
14817    >,
14818    pub RSSetScissorRects: ::std::option::Option<
14819        unsafe extern "C" fn(
14820            This: *mut ID3D12GraphicsCommandList3,
14821            NumRects: UINT,
14822            pRects: *const D3D12_RECT,
14823        ),
14824    >,
14825    pub OMSetBlendFactor: ::std::option::Option<
14826        unsafe extern "C" fn(
14827            This: *mut ID3D12GraphicsCommandList3,
14828            BlendFactor: *const FLOAT,
14829        ),
14830    >,
14831    pub OMSetStencilRef: ::std::option::Option<
14832        unsafe extern "C" fn(
14833            This: *mut ID3D12GraphicsCommandList3,
14834            StencilRef: UINT,
14835        ),
14836    >,
14837    pub SetPipelineState: ::std::option::Option<
14838        unsafe extern "C" fn(
14839            This: *mut ID3D12GraphicsCommandList3,
14840            pPipelineState: *mut ID3D12PipelineState,
14841        ),
14842    >,
14843    pub ResourceBarrier: ::std::option::Option<
14844        unsafe extern "C" fn(
14845            This: *mut ID3D12GraphicsCommandList3,
14846            NumBarriers: UINT,
14847            pBarriers: *const D3D12_RESOURCE_BARRIER,
14848        ),
14849    >,
14850    pub ExecuteBundle: ::std::option::Option<
14851        unsafe extern "C" fn(
14852            This: *mut ID3D12GraphicsCommandList3,
14853            pCommandList: *mut ID3D12GraphicsCommandList,
14854        ),
14855    >,
14856    pub SetDescriptorHeaps: ::std::option::Option<
14857        unsafe extern "C" fn(
14858            This: *mut ID3D12GraphicsCommandList3,
14859            NumDescriptorHeaps: UINT,
14860            ppDescriptorHeaps: *const *mut ID3D12DescriptorHeap,
14861        ),
14862    >,
14863    pub SetComputeRootSignature: ::std::option::Option<
14864        unsafe extern "C" fn(
14865            This: *mut ID3D12GraphicsCommandList3,
14866            pRootSignature: *mut ID3D12RootSignature,
14867        ),
14868    >,
14869    pub SetGraphicsRootSignature: ::std::option::Option<
14870        unsafe extern "C" fn(
14871            This: *mut ID3D12GraphicsCommandList3,
14872            pRootSignature: *mut ID3D12RootSignature,
14873        ),
14874    >,
14875    pub SetComputeRootDescriptorTable: ::std::option::Option<
14876        unsafe extern "C" fn(
14877            This: *mut ID3D12GraphicsCommandList3,
14878            RootParameterIndex: UINT,
14879            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
14880        ),
14881    >,
14882    pub SetGraphicsRootDescriptorTable: ::std::option::Option<
14883        unsafe extern "C" fn(
14884            This: *mut ID3D12GraphicsCommandList3,
14885            RootParameterIndex: UINT,
14886            BaseDescriptor: D3D12_GPU_DESCRIPTOR_HANDLE,
14887        ),
14888    >,
14889    pub SetComputeRoot32BitConstant: ::std::option::Option<
14890        unsafe extern "C" fn(
14891            This: *mut ID3D12GraphicsCommandList3,
14892            RootParameterIndex: UINT,
14893            SrcData: UINT,
14894            DestOffsetIn32BitValues: UINT,
14895        ),
14896    >,
14897    pub SetGraphicsRoot32BitConstant: ::std::option::Option<
14898        unsafe extern "C" fn(
14899            This: *mut ID3D12GraphicsCommandList3,
14900            RootParameterIndex: UINT,
14901            SrcData: UINT,
14902            DestOffsetIn32BitValues: UINT,
14903        ),
14904    >,
14905    pub SetComputeRoot32BitConstants: ::std::option::Option<
14906        unsafe extern "C" fn(
14907            This: *mut ID3D12GraphicsCommandList3,
14908            RootParameterIndex: UINT,
14909            Num32BitValuesToSet: UINT,
14910            pSrcData: *const ::std::os::raw::c_void,
14911            DestOffsetIn32BitValues: UINT,
14912        ),
14913    >,
14914    pub SetGraphicsRoot32BitConstants: ::std::option::Option<
14915        unsafe extern "C" fn(
14916            This: *mut ID3D12GraphicsCommandList3,
14917            RootParameterIndex: UINT,
14918            Num32BitValuesToSet: UINT,
14919            pSrcData: *const ::std::os::raw::c_void,
14920            DestOffsetIn32BitValues: UINT,
14921        ),
14922    >,
14923    pub SetComputeRootConstantBufferView: ::std::option::Option<
14924        unsafe extern "C" fn(
14925            This: *mut ID3D12GraphicsCommandList3,
14926            RootParameterIndex: UINT,
14927            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14928        ),
14929    >,
14930    pub SetGraphicsRootConstantBufferView: ::std::option::Option<
14931        unsafe extern "C" fn(
14932            This: *mut ID3D12GraphicsCommandList3,
14933            RootParameterIndex: UINT,
14934            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14935        ),
14936    >,
14937    pub SetComputeRootShaderResourceView: ::std::option::Option<
14938        unsafe extern "C" fn(
14939            This: *mut ID3D12GraphicsCommandList3,
14940            RootParameterIndex: UINT,
14941            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14942        ),
14943    >,
14944    pub SetGraphicsRootShaderResourceView: ::std::option::Option<
14945        unsafe extern "C" fn(
14946            This: *mut ID3D12GraphicsCommandList3,
14947            RootParameterIndex: UINT,
14948            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14949        ),
14950    >,
14951    pub SetComputeRootUnorderedAccessView: ::std::option::Option<
14952        unsafe extern "C" fn(
14953            This: *mut ID3D12GraphicsCommandList3,
14954            RootParameterIndex: UINT,
14955            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14956        ),
14957    >,
14958    pub SetGraphicsRootUnorderedAccessView: ::std::option::Option<
14959        unsafe extern "C" fn(
14960            This: *mut ID3D12GraphicsCommandList3,
14961            RootParameterIndex: UINT,
14962            BufferLocation: D3D12_GPU_VIRTUAL_ADDRESS,
14963        ),
14964    >,
14965    pub IASetIndexBuffer: ::std::option::Option<
14966        unsafe extern "C" fn(
14967            This: *mut ID3D12GraphicsCommandList3,
14968            pView: *const D3D12_INDEX_BUFFER_VIEW,
14969        ),
14970    >,
14971    pub IASetVertexBuffers: ::std::option::Option<
14972        unsafe extern "C" fn(
14973            This: *mut ID3D12GraphicsCommandList3,
14974            StartSlot: UINT,
14975            NumViews: UINT,
14976            pViews: *const D3D12_VERTEX_BUFFER_VIEW,
14977        ),
14978    >,
14979    pub SOSetTargets: ::std::option::Option<
14980        unsafe extern "C" fn(
14981            This: *mut ID3D12GraphicsCommandList3,
14982            StartSlot: UINT,
14983            NumViews: UINT,
14984            pViews: *const D3D12_STREAM_OUTPUT_BUFFER_VIEW,
14985        ),
14986    >,
14987    pub OMSetRenderTargets: ::std::option::Option<
14988        unsafe extern "C" fn(
14989            This: *mut ID3D12GraphicsCommandList3,
14990            NumRenderTargetDescriptors: UINT,
14991            pRenderTargetDescriptors: *const D3D12_CPU_DESCRIPTOR_HANDLE,
14992            RTsSingleHandleToDescriptorRange: BOOL,
14993            pDepthStencilDescriptor: *const D3D12_CPU_DESCRIPTOR_HANDLE,
14994        ),
14995    >,
14996    pub ClearDepthStencilView: ::std::option::Option<
14997        unsafe extern "C" fn(
14998            This: *mut ID3D12GraphicsCommandList3,
14999            DepthStencilView: D3D12_CPU_DESCRIPTOR_HANDLE,
15000            ClearFlags: D3D12_CLEAR_FLAGS,
15001            Depth: FLOAT,
15002            Stencil: UINT8,
15003            NumRects: UINT,
15004            pRects: *const D3D12_RECT,
15005        ),
15006    >,
15007    pub ClearRenderTargetView: ::std::option::Option<
15008        unsafe extern "C" fn(
15009            This: *mut ID3D12GraphicsCommandList3,
15010            RenderTargetView: D3D12_CPU_DESCRIPTOR_HANDLE,
15011            ColorRGBA: *const FLOAT,
15012            NumRects: UINT,
15013            pRects: *const D3D12_RECT,
15014        ),
15015    >,
15016    pub ClearUnorderedAccessViewUint: ::std::option::Option<
15017        unsafe extern "C" fn(
15018            This: *mut ID3D12GraphicsCommandList3,
15019            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
15020            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
15021            pResource: *mut ID3D12Resource,
15022            Values: *const UINT,
15023            NumRects: UINT,
15024            pRects: *const D3D12_RECT,
15025        ),
15026    >,
15027    pub ClearUnorderedAccessViewFloat: ::std::option::Option<
15028        unsafe extern "C" fn(
15029            This: *mut ID3D12GraphicsCommandList3,
15030            ViewGPUHandleInCurrentHeap: D3D12_GPU_DESCRIPTOR_HANDLE,
15031            ViewCPUHandle: D3D12_CPU_DESCRIPTOR_HANDLE,
15032            pResource: *mut ID3D12Resource,
15033            Values: *const FLOAT,
15034            NumRects: UINT,
15035            pRects: *const D3D12_RECT,
15036        ),
15037    >,
15038    pub DiscardResource: ::std::option::Option<
15039        unsafe extern "C" fn(
15040            This: *mut ID3D12GraphicsCommandList3,
15041            pResource: *mut ID3D12Resource,
15042            pRegion: *const D3D12_DISCARD_REGION,
15043        ),
15044    >,
15045    pub BeginQuery: ::std::option::Option<
15046        unsafe extern "C" fn(
15047            This: *mut ID3D12GraphicsCommandList3,
15048            pQueryHeap: *mut ID3D12QueryHeap,
15049            Type: D3D12_QUERY_TYPE,
15050            Index: UINT,
15051        ),
15052    >,
15053    pub EndQuery: ::std::option::Option<
15054        unsafe extern "C" fn(
15055            This: *mut ID3D12GraphicsCommandList3,
15056            pQueryHeap: *mut ID3D12QueryHeap,
15057            Type: D3D12_QUERY_TYPE,
15058            Index: UINT,
15059        ),
15060    >,
15061    pub ResolveQueryData: ::std::option::Option<
15062        unsafe extern "C" fn(
15063            This: *mut ID3D12GraphicsCommandList3,
15064            pQueryHeap: *mut ID3D12QueryHeap,
15065            Type: D3D12_QUERY_TYPE,
15066            StartIndex: UINT,
15067            NumQueries: UINT,
15068            pDestinationBuffer: *mut ID3D12Resource,
15069            AlignedDestinationBufferOffset: UINT64,
15070        ),
15071    >,
15072    pub SetPredication: ::std::option::Option<
15073        unsafe extern "C" fn(
15074            This: *mut ID3D12GraphicsCommandList3,
15075            pBuffer: *mut ID3D12Resource,
15076            AlignedBufferOffset: UINT64,
15077            Operation: D3D12_PREDICATION_OP,
15078        ),
15079    >,
15080    pub SetMarker: ::std::option::Option<
15081        unsafe extern "C" fn(
15082            This: *mut ID3D12GraphicsCommandList3,
15083            Metadata: UINT,
15084            pData: *const ::std::os::raw::c_void,
15085            Size: UINT,
15086        ),
15087    >,
15088    pub BeginEvent: ::std::option::Option<
15089        unsafe extern "C" fn(
15090            This: *mut ID3D12GraphicsCommandList3,
15091            Metadata: UINT,
15092            pData: *const ::std::os::raw::c_void,
15093            Size: UINT,
15094        ),
15095    >,
15096    pub EndEvent: ::std::option::Option<
15097        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList3),
15098    >,
15099    pub ExecuteIndirect: ::std::option::Option<
15100        unsafe extern "C" fn(
15101            This: *mut ID3D12GraphicsCommandList3,
15102            pCommandSignature: *mut ID3D12CommandSignature,
15103            MaxCommandCount: UINT,
15104            pArgumentBuffer: *mut ID3D12Resource,
15105            ArgumentBufferOffset: UINT64,
15106            pCountBuffer: *mut ID3D12Resource,
15107            CountBufferOffset: UINT64,
15108        ),
15109    >,
15110    pub AtomicCopyBufferUINT: ::std::option::Option<
15111        unsafe extern "C" fn(
15112            This: *mut ID3D12GraphicsCommandList3,
15113            pDstBuffer: *mut ID3D12Resource,
15114            DstOffset: UINT64,
15115            pSrcBuffer: *mut ID3D12Resource,
15116            SrcOffset: UINT64,
15117            Dependencies: UINT,
15118            ppDependentResources: *const *mut ID3D12Resource,
15119            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
15120        ),
15121    >,
15122    pub AtomicCopyBufferUINT64: ::std::option::Option<
15123        unsafe extern "C" fn(
15124            This: *mut ID3D12GraphicsCommandList3,
15125            pDstBuffer: *mut ID3D12Resource,
15126            DstOffset: UINT64,
15127            pSrcBuffer: *mut ID3D12Resource,
15128            SrcOffset: UINT64,
15129            Dependencies: UINT,
15130            ppDependentResources: *const *mut ID3D12Resource,
15131            pDependentSubresourceRanges: *const D3D12_SUBRESOURCE_RANGE_UINT64,
15132        ),
15133    >,
15134    pub OMSetDepthBounds: ::std::option::Option<
15135        unsafe extern "C" fn(
15136            This: *mut ID3D12GraphicsCommandList3,
15137            Min: FLOAT,
15138            Max: FLOAT,
15139        ),
15140    >,
15141    pub SetSamplePositions: ::std::option::Option<
15142        unsafe extern "C" fn(
15143            This: *mut ID3D12GraphicsCommandList3,
15144            NumSamplesPerPixel: UINT,
15145            NumPixels: UINT,
15146            pSamplePositions: *mut D3D12_SAMPLE_POSITION,
15147        ),
15148    >,
15149    pub ResolveSubresourceRegion: ::std::option::Option<
15150        unsafe extern "C" fn(
15151            This: *mut ID3D12GraphicsCommandList3,
15152            pDstResource: *mut ID3D12Resource,
15153            DstSubresource: UINT,
15154            DstX: UINT,
15155            DstY: UINT,
15156            pSrcResource: *mut ID3D12Resource,
15157            SrcSubresource: UINT,
15158            pSrcRect: *mut D3D12_RECT,
15159            Format: DXGI_FORMAT,
15160            ResolveMode: D3D12_RESOLVE_MODE,
15161        ),
15162    >,
15163    pub SetViewInstanceMask: ::std::option::Option<
15164        unsafe extern "C" fn(This: *mut ID3D12GraphicsCommandList3, Mask: UINT),
15165    >,
15166    pub WriteBufferImmediate: ::std::option::Option<
15167        unsafe extern "C" fn(
15168            This: *mut ID3D12GraphicsCommandList3,
15169            Count: UINT,
15170            pParams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
15171            pModes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE,
15172        ),
15173    >,
15174    pub SetProtectedResourceSession: ::std::option::Option<
15175        unsafe extern "C" fn(
15176            This: *mut ID3D12GraphicsCommandList3,
15177            pProtectedResourceSession: *mut ID3D12ProtectedResourceSession,
15178        ),
15179    >,
15180}
15181#[repr(C)]
15182#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15183pub struct ID3D12GraphicsCommandList3 {
15184    pub lpVtbl: *mut ID3D12GraphicsCommandList3Vtbl,
15185}
15186impl Default for ID3D12GraphicsCommandList3 {
15187    fn default() -> Self {
15188        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15189        unsafe {
15190            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15191            s.assume_init()
15192        }
15193    }
15194}
15195pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD : D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = 0 ;
15196pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE : D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = 1 ;
15197pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR : D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = 2 ;
15198pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS : D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = 3 ;
15199pub type D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = ::std::os::raw::c_int;
15200#[repr(C)]
15201#[derive(Copy, Clone)]
15202pub struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
15203    pub ClearValue: D3D12_CLEAR_VALUE,
15204}
15205impl Default for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
15206    fn default() -> Self {
15207        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15208        unsafe {
15209            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15210            s.assume_init()
15211        }
15212    }
15213}
15214impl ::std::fmt::Debug for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
15215    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15216        write ! (f , "D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {{ ClearValue: {:?} }}" , self . ClearValue)
15217    }
15218}
15219#[repr(C)]
15220#[derive(Copy, Clone)]
15221pub struct D3D12_RENDER_PASS_BEGINNING_ACCESS {
15222    pub Type: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE,
15223    pub __bindgen_anon_1: D3D12_RENDER_PASS_BEGINNING_ACCESS__bindgen_ty_1,
15224}
15225#[repr(C)]
15226#[derive(Copy, Clone)]
15227pub union D3D12_RENDER_PASS_BEGINNING_ACCESS__bindgen_ty_1 {
15228    pub Clear: D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS,
15229}
15230impl Default for D3D12_RENDER_PASS_BEGINNING_ACCESS__bindgen_ty_1 {
15231    fn default() -> Self {
15232        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15233        unsafe {
15234            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15235            s.assume_init()
15236        }
15237    }
15238}
15239impl ::std::fmt::Debug for D3D12_RENDER_PASS_BEGINNING_ACCESS__bindgen_ty_1 {
15240    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15241        write!(
15242            f,
15243            "D3D12_RENDER_PASS_BEGINNING_ACCESS__bindgen_ty_1 {{ union }}"
15244        )
15245    }
15246}
15247impl Default for D3D12_RENDER_PASS_BEGINNING_ACCESS {
15248    fn default() -> Self {
15249        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15250        unsafe {
15251            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15252            s.assume_init()
15253        }
15254    }
15255}
15256impl ::std::fmt::Debug for D3D12_RENDER_PASS_BEGINNING_ACCESS {
15257    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15258        write ! (f , "D3D12_RENDER_PASS_BEGINNING_ACCESS {{ Type: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . __bindgen_anon_1)
15259    }
15260}
15261pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD : D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = 0 ;
15262pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE : D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = 1 ;
15263pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE : D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = 2 ;
15264pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS : D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = 3 ;
15265pub type D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = ::std::os::raw::c_int;
15266#[repr(C)]
15267#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15268pub struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
15269    pub SrcSubresource: UINT,
15270    pub DstSubresource: UINT,
15271    pub DstX: UINT,
15272    pub DstY: UINT,
15273    pub SrcRect: D3D12_RECT,
15274}
15275#[repr(C)]
15276#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15277pub struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
15278    pub pSrcResource: *mut ID3D12Resource,
15279    pub pDstResource: *mut ID3D12Resource,
15280    pub SubresourceCount: UINT,
15281    pub pSubresourceParameters:
15282        *const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS,
15283    pub Format: DXGI_FORMAT,
15284    pub ResolveMode: D3D12_RESOLVE_MODE,
15285    pub PreserveResolveSource: BOOL,
15286}
15287impl Default for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
15288    fn default() -> Self {
15289        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15290        unsafe {
15291            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15292            s.assume_init()
15293        }
15294    }
15295}
15296#[repr(C)]
15297#[derive(Copy, Clone)]
15298pub struct D3D12_RENDER_PASS_ENDING_ACCESS {
15299    pub Type: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE,
15300    pub __bindgen_anon_1: D3D12_RENDER_PASS_ENDING_ACCESS__bindgen_ty_1,
15301}
15302#[repr(C)]
15303#[derive(Copy, Clone)]
15304pub union D3D12_RENDER_PASS_ENDING_ACCESS__bindgen_ty_1 {
15305    pub Resolve: D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS,
15306}
15307impl Default for D3D12_RENDER_PASS_ENDING_ACCESS__bindgen_ty_1 {
15308    fn default() -> Self {
15309        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15310        unsafe {
15311            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15312            s.assume_init()
15313        }
15314    }
15315}
15316impl ::std::fmt::Debug for D3D12_RENDER_PASS_ENDING_ACCESS__bindgen_ty_1 {
15317    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15318        write!(
15319            f,
15320            "D3D12_RENDER_PASS_ENDING_ACCESS__bindgen_ty_1 {{ union }}"
15321        )
15322    }
15323}
15324impl Default for D3D12_RENDER_PASS_ENDING_ACCESS {
15325    fn default() -> Self {
15326        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15327        unsafe {
15328            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15329            s.assume_init()
15330        }
15331    }
15332}
15333impl ::std::fmt::Debug for D3D12_RENDER_PASS_ENDING_ACCESS {
15334    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15335        write ! (f , "D3D12_RENDER_PASS_ENDING_ACCESS {{ Type: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . __bindgen_anon_1)
15336    }
15337}
15338#[repr(C)]
15339#[derive(Copy, Clone)]
15340pub struct D3D12_RENDER_PASS_RENDER_TARGET_DESC {
15341    pub cpuDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
15342    pub BeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
15343    pub EndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
15344}
15345impl Default for D3D12_RENDER_PASS_RENDER_TARGET_DESC {
15346    fn default() -> Self {
15347        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15348        unsafe {
15349            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15350            s.assume_init()
15351        }
15352    }
15353}
15354impl ::std::fmt::Debug for D3D12_RENDER_PASS_RENDER_TARGET_DESC {
15355    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15356        write ! (f , "D3D12_RENDER_PASS_RENDER_TARGET_DESC {{ cpuDescriptor: {:?}, BeginningAccess: {:?}, EndingAccess: {:?} }}" , self . cpuDescriptor , self . BeginningAccess , self . EndingAccess)
15357    }
15358}
15359#[repr(C)]
15360#[derive(Copy, Clone)]
15361pub struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
15362    pub cpuDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
15363    pub DepthBeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
15364    pub StencilBeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
15365    pub DepthEndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
15366    pub StencilEndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
15367}
15368impl Default for D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
15369    fn default() -> Self {
15370        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15371        unsafe {
15372            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15373            s.assume_init()
15374        }
15375    }
15376}
15377impl ::std::fmt::Debug for D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
15378    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15379        write ! (f , "D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {{ cpuDescriptor: {:?}, DepthBeginningAccess: {:?}, StencilBeginningAccess: {:?}, DepthEndingAccess: {:?}, StencilEndingAccess: {:?} }}" , self . cpuDescriptor , self . DepthBeginningAccess , self . StencilBeginningAccess , self . DepthEndingAccess , self . StencilEndingAccess)
15380    }
15381}
15382pub const D3D12_RENDER_PASS_FLAGS_D3D12_RENDER_PASS_FLAG_NONE:
15383    D3D12_RENDER_PASS_FLAGS = 0;
15384pub const D3D12_RENDER_PASS_FLAGS_D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES:
15385    D3D12_RENDER_PASS_FLAGS = 1;
15386pub const D3D12_RENDER_PASS_FLAGS_D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS:
15387    D3D12_RENDER_PASS_FLAGS = 2;
15388pub const D3D12_RENDER_PASS_FLAGS_D3D12_RENDER_PASS_FLAG_RESUMING_PASS:
15389    D3D12_RENDER_PASS_FLAGS = 4;
15390pub type D3D12_RENDER_PASS_FLAGS = ::std::os::raw::c_int;
15391extern "C" {
15392    pub static IID_ID3D12MetaCommand: IID;
15393}
15394#[repr(C)]
15395#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15396pub struct ID3D12MetaCommandVtbl {
15397    pub QueryInterface: ::std::option::Option<
15398        unsafe extern "C" fn(
15399            This: *mut ID3D12MetaCommand,
15400            riid: *const IID,
15401            ppvObject: *mut *mut ::std::os::raw::c_void,
15402        ) -> HRESULT,
15403    >,
15404    pub AddRef: ::std::option::Option<
15405        unsafe extern "C" fn(This: *mut ID3D12MetaCommand) -> ULONG,
15406    >,
15407    pub Release: ::std::option::Option<
15408        unsafe extern "C" fn(This: *mut ID3D12MetaCommand) -> ULONG,
15409    >,
15410    pub GetPrivateData: ::std::option::Option<
15411        unsafe extern "C" fn(
15412            This: *mut ID3D12MetaCommand,
15413            guid: *const GUID,
15414            pDataSize: *mut UINT,
15415            pData: *mut ::std::os::raw::c_void,
15416        ) -> HRESULT,
15417    >,
15418    pub SetPrivateData: ::std::option::Option<
15419        unsafe extern "C" fn(
15420            This: *mut ID3D12MetaCommand,
15421            guid: *const GUID,
15422            DataSize: UINT,
15423            pData: *const ::std::os::raw::c_void,
15424        ) -> HRESULT,
15425    >,
15426    pub SetPrivateDataInterface: ::std::option::Option<
15427        unsafe extern "C" fn(
15428            This: *mut ID3D12MetaCommand,
15429            guid: *const GUID,
15430            pData: *const IUnknown,
15431        ) -> HRESULT,
15432    >,
15433    pub SetName: ::std::option::Option<
15434        unsafe extern "C" fn(
15435            This: *mut ID3D12MetaCommand,
15436            Name: LPCWSTR,
15437        ) -> HRESULT,
15438    >,
15439    pub GetDevice: ::std::option::Option<
15440        unsafe extern "C" fn(
15441            This: *mut ID3D12MetaCommand,
15442            riid: *const IID,
15443            ppvDevice: *mut *mut ::std::os::raw::c_void,
15444        ) -> HRESULT,
15445    >,
15446    pub GetRequiredParameterResourceSize: ::std::option::Option<
15447        unsafe extern "C" fn(
15448            This: *mut ID3D12MetaCommand,
15449            Stage: D3D12_META_COMMAND_PARAMETER_STAGE,
15450            ParameterIndex: UINT,
15451        ) -> UINT64,
15452    >,
15453}
15454#[repr(C)]
15455#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15456pub struct ID3D12MetaCommand {
15457    pub lpVtbl: *mut ID3D12MetaCommandVtbl,
15458}
15459impl Default for ID3D12MetaCommand {
15460    fn default() -> Self {
15461        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15462        unsafe {
15463            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15464            s.assume_init()
15465        }
15466    }
15467}
15468#[repr(C)]
15469#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15470pub struct D3D12_DISPATCH_RAYS_DESC {
15471    pub RayGenerationShaderRecord: D3D12_GPU_VIRTUAL_ADDRESS_RANGE,
15472    pub MissShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
15473    pub HitGroupTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
15474    pub CallableShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
15475    pub Width: UINT,
15476    pub Height: UINT,
15477    pub Depth: UINT,
15478}
15479extern "C" {
15480    pub static IID_ID3D12GraphicsCommandList4: IID;
15481}
15482#[repr(C)]
15483#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15484pub struct ID3D12GraphicsCommandList4Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Name : LPCWSTR) -> HRESULT > , pub GetDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , riid : * const IID , ppvDevice : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetType : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) -> D3D12_COMMAND_LIST_TYPE > , pub Close : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) -> HRESULT > , pub Reset : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState) -> HRESULT > , pub ClearState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pPipelineState : * mut ID3D12PipelineState) > , pub DrawInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , VertexCountPerInstance : UINT , InstanceCount : UINT , StartVertexLocation : UINT , StartInstanceLocation : UINT) > , pub DrawIndexedInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , IndexCountPerInstance : UINT , InstanceCount : UINT , StartIndexLocation : UINT , BaseVertexLocation : INT , StartInstanceLocation : UINT) > , pub Dispatch : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , pub CopyBufferRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , NumBytes : UINT64) > , pub CopyTextureRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDst : * const D3D12_TEXTURE_COPY_LOCATION , DstX : UINT , DstY : UINT , DstZ : UINT , pSrc : * const D3D12_TEXTURE_COPY_LOCATION , pSrcBox : * const D3D12_BOX) > , pub CopyResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstResource : * mut ID3D12Resource , pSrcResource : * mut ID3D12Resource) > , pub CopyTiles : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pTiledResource : * mut ID3D12Resource , pTileRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pTileRegionSize : * const D3D12_TILE_REGION_SIZE , pBuffer : * mut ID3D12Resource , BufferStartOffsetInBytes : UINT64 , Flags : D3D12_TILE_COPY_FLAGS) > , pub ResolveSubresource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , Format : DXGI_FORMAT) > , pub IASetPrimitiveTopology : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , PrimitiveTopology : D3D12_PRIMITIVE_TOPOLOGY) > , pub RSSetViewports : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumViewports : UINT , pViewports : * const D3D12_VIEWPORT) > , pub RSSetScissorRects : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub OMSetBlendFactor : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , BlendFactor : * const FLOAT) > , pub OMSetStencilRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , StencilRef : UINT) > , pub SetPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pPipelineState : * mut ID3D12PipelineState) > , pub ResourceBarrier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumBarriers : UINT , pBarriers : * const D3D12_RESOURCE_BARRIER) > , pub ExecuteBundle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pCommandList : * mut ID3D12GraphicsCommandList) > , pub SetDescriptorHeaps : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumDescriptorHeaps : UINT , ppDescriptorHeaps : * const * mut ID3D12DescriptorHeap) > , pub SetComputeRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pRootSignature : * mut ID3D12RootSignature) > , pub SetGraphicsRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pRootSignature : * mut ID3D12RootSignature) > , pub SetComputeRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetGraphicsRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetComputeRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetComputeRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetComputeRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub IASetIndexBuffer : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pView : * const D3D12_INDEX_BUFFER_VIEW) > , pub IASetVertexBuffers : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_VERTEX_BUFFER_VIEW) > , pub SOSetTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_STREAM_OUTPUT_BUFFER_VIEW) > , pub OMSetRenderTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumRenderTargetDescriptors : UINT , pRenderTargetDescriptors : * const D3D12_CPU_DESCRIPTOR_HANDLE , RTsSingleHandleToDescriptorRange : BOOL , pDepthStencilDescriptor : * const D3D12_CPU_DESCRIPTOR_HANDLE) > , pub ClearDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , DepthStencilView : D3D12_CPU_DESCRIPTOR_HANDLE , ClearFlags : D3D12_CLEAR_FLAGS , Depth : FLOAT , Stencil : UINT8 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , RenderTargetView : D3D12_CPU_DESCRIPTOR_HANDLE , ColorRGBA : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewUint : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const UINT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewFloat : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub DiscardResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pResource : * mut ID3D12Resource , pRegion : * const D3D12_DISCARD_REGION) > , pub BeginQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub EndQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub ResolveQueryData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , StartIndex : UINT , NumQueries : UINT , pDestinationBuffer : * mut ID3D12Resource , AlignedDestinationBufferOffset : UINT64) > , pub SetPredication : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pBuffer : * mut ID3D12Resource , AlignedBufferOffset : UINT64 , Operation : D3D12_PREDICATION_OP) > , pub SetMarker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub BeginEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub EndEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) > , pub ExecuteIndirect : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pCommandSignature : * mut ID3D12CommandSignature , MaxCommandCount : UINT , pArgumentBuffer : * mut ID3D12Resource , ArgumentBufferOffset : UINT64 , pCountBuffer : * mut ID3D12Resource , CountBufferOffset : UINT64) > , pub AtomicCopyBufferUINT : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub AtomicCopyBufferUINT64 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub OMSetDepthBounds : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Min : FLOAT , Max : FLOAT) > , pub SetSamplePositions : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumSamplesPerPixel : UINT , NumPixels : UINT , pSamplePositions : * mut D3D12_SAMPLE_POSITION) > , pub ResolveSubresourceRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , DstX : UINT , DstY : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , pSrcRect : * mut D3D12_RECT , Format : DXGI_FORMAT , ResolveMode : D3D12_RESOLVE_MODE) > , pub SetViewInstanceMask : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Mask : UINT) > , pub WriteBufferImmediate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , Count : UINT , pParams : * const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER , pModes : * const D3D12_WRITEBUFFERIMMEDIATE_MODE) > , pub SetProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pProtectedResourceSession : * mut ID3D12ProtectedResourceSession) > , pub BeginRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , NumRenderTargets : UINT , pRenderTargets : * const D3D12_RENDER_PASS_RENDER_TARGET_DESC , pDepthStencil : * const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC , Flags : D3D12_RENDER_PASS_FLAGS) > , pub EndRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4) > , pub InitializeMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pMetaCommand : * mut ID3D12MetaCommand , pInitializationParametersData : * const :: std :: os :: raw :: c_void , InitializationParametersDataSizeInBytes : SIZE_T) > , pub ExecuteMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pMetaCommand : * mut ID3D12MetaCommand , pExecutionParametersData : * const :: std :: os :: raw :: c_void , ExecutionParametersDataSizeInBytes : SIZE_T) > , pub BuildRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC , NumPostbuildInfoDescs : UINT , pPostbuildInfoDescs : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC) > , pub EmitRaytracingAccelerationStructurePostbuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDesc : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC , NumSourceAccelerationStructures : UINT , pSourceAccelerationStructureData : * const D3D12_GPU_VIRTUAL_ADDRESS) > , pub CopyRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , DestAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , SourceAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , Mode : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) > , pub SetPipelineState1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pStateObject : * mut ID3D12StateObject) > , pub DispatchRays : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList4 , pDesc : * const D3D12_DISPATCH_RAYS_DESC) > , }
15485#[repr(C)]
15486#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15487pub struct ID3D12GraphicsCommandList4 {
15488    pub lpVtbl: *mut ID3D12GraphicsCommandList4Vtbl,
15489}
15490impl Default for ID3D12GraphicsCommandList4 {
15491    fn default() -> Self {
15492        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15493        unsafe {
15494            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15495            s.assume_init()
15496        }
15497    }
15498}
15499pub const D3D12_SHADER_CACHE_MODE_D3D12_SHADER_CACHE_MODE_MEMORY:
15500    D3D12_SHADER_CACHE_MODE = 0;
15501pub const D3D12_SHADER_CACHE_MODE_D3D12_SHADER_CACHE_MODE_DISK:
15502    D3D12_SHADER_CACHE_MODE = 1;
15503pub type D3D12_SHADER_CACHE_MODE = ::std::os::raw::c_int;
15504pub const D3D12_SHADER_CACHE_FLAGS_D3D12_SHADER_CACHE_FLAG_NONE:
15505    D3D12_SHADER_CACHE_FLAGS = 0;
15506pub const D3D12_SHADER_CACHE_FLAGS_D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED:
15507    D3D12_SHADER_CACHE_FLAGS = 1;
15508pub const D3D12_SHADER_CACHE_FLAGS_D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR:
15509    D3D12_SHADER_CACHE_FLAGS = 2;
15510pub type D3D12_SHADER_CACHE_FLAGS = ::std::os::raw::c_int;
15511#[repr(C)]
15512#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15513pub struct D3D12_SHADER_CACHE_SESSION_DESC {
15514    pub Identifier: GUID,
15515    pub Mode: D3D12_SHADER_CACHE_MODE,
15516    pub Flags: D3D12_SHADER_CACHE_FLAGS,
15517    pub MaximumInMemoryCacheSizeBytes: UINT,
15518    pub MaximumInMemoryCacheEntries: UINT,
15519    pub MaximumValueFileSizeBytes: UINT,
15520    pub Version: UINT64,
15521}
15522impl Default for D3D12_SHADER_CACHE_SESSION_DESC {
15523    fn default() -> Self {
15524        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15525        unsafe {
15526            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15527            s.assume_init()
15528        }
15529    }
15530}
15531pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_UNDEFINED:
15532    D3D12_BARRIER_LAYOUT = -1;
15533pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMMON:
15534    D3D12_BARRIER_LAYOUT = 0;
15535pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_PRESENT:
15536    D3D12_BARRIER_LAYOUT = 0;
15537pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_GENERIC_READ:
15538    D3D12_BARRIER_LAYOUT = 1;
15539pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_RENDER_TARGET:
15540    D3D12_BARRIER_LAYOUT = 2;
15541pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS:
15542    D3D12_BARRIER_LAYOUT = 3;
15543pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE:
15544    D3D12_BARRIER_LAYOUT = 4;
15545pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ:
15546    D3D12_BARRIER_LAYOUT = 5;
15547pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_SHADER_RESOURCE:
15548    D3D12_BARRIER_LAYOUT = 6;
15549pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COPY_SOURCE:
15550    D3D12_BARRIER_LAYOUT = 7;
15551pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COPY_DEST:
15552    D3D12_BARRIER_LAYOUT = 8;
15553pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE:
15554    D3D12_BARRIER_LAYOUT = 9;
15555pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_RESOLVE_DEST:
15556    D3D12_BARRIER_LAYOUT = 10;
15557pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE:
15558    D3D12_BARRIER_LAYOUT = 11;
15559pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ:
15560    D3D12_BARRIER_LAYOUT = 12;
15561pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE:
15562    D3D12_BARRIER_LAYOUT = 13;
15563pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ:
15564    D3D12_BARRIER_LAYOUT = 14;
15565pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE:
15566    D3D12_BARRIER_LAYOUT = 15;
15567pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ:
15568    D3D12_BARRIER_LAYOUT = 16;
15569pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE:
15570    D3D12_BARRIER_LAYOUT = 17;
15571pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON:
15572    D3D12_BARRIER_LAYOUT = 18;
15573pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ : D3D12_BARRIER_LAYOUT = 19 ;
15574pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS : D3D12_BARRIER_LAYOUT = 20 ;
15575pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE : D3D12_BARRIER_LAYOUT = 21 ;
15576pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE:
15577    D3D12_BARRIER_LAYOUT = 22;
15578pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST:
15579    D3D12_BARRIER_LAYOUT = 23;
15580pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON:
15581    D3D12_BARRIER_LAYOUT = 24;
15582pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ : D3D12_BARRIER_LAYOUT = 25 ;
15583pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS : D3D12_BARRIER_LAYOUT = 26 ;
15584pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE : D3D12_BARRIER_LAYOUT = 27 ;
15585pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE : D3D12_BARRIER_LAYOUT = 28 ;
15586pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST:
15587    D3D12_BARRIER_LAYOUT = 29;
15588pub const D3D12_BARRIER_LAYOUT_D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON:
15589    D3D12_BARRIER_LAYOUT = 30;
15590pub type D3D12_BARRIER_LAYOUT = ::std::os::raw::c_int;
15591pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_NONE: D3D12_BARRIER_SYNC = 0;
15592pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_ALL: D3D12_BARRIER_SYNC = 1;
15593pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_DRAW: D3D12_BARRIER_SYNC = 2;
15594pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_INPUT_ASSEMBLER:
15595    D3D12_BARRIER_SYNC = 4;
15596pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_VERTEX_SHADING:
15597    D3D12_BARRIER_SYNC = 8;
15598pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_PIXEL_SHADING:
15599    D3D12_BARRIER_SYNC = 16;
15600pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_DEPTH_STENCIL:
15601    D3D12_BARRIER_SYNC = 32;
15602pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_RENDER_TARGET:
15603    D3D12_BARRIER_SYNC = 64;
15604pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_COMPUTE_SHADING:
15605    D3D12_BARRIER_SYNC = 128;
15606pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_RAYTRACING: D3D12_BARRIER_SYNC =
15607    256;
15608pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_COPY: D3D12_BARRIER_SYNC = 512;
15609pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_RESOLVE: D3D12_BARRIER_SYNC =
15610    1024;
15611pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_EXECUTE_INDIRECT:
15612    D3D12_BARRIER_SYNC = 2048;
15613pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_PREDICATION:
15614    D3D12_BARRIER_SYNC = 2048;
15615pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_ALL_SHADING:
15616    D3D12_BARRIER_SYNC = 4096;
15617pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_NON_PIXEL_SHADING:
15618    D3D12_BARRIER_SYNC = 8192;
15619pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO : D3D12_BARRIER_SYNC = 16384 ;
15620pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_VIDEO_DECODE:
15621    D3D12_BARRIER_SYNC = 1048576;
15622pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_VIDEO_PROCESS:
15623    D3D12_BARRIER_SYNC = 2097152;
15624pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_VIDEO_ENCODE:
15625    D3D12_BARRIER_SYNC = 4194304;
15626pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_BARRIER_SYNC = 8388608 ;
15627pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE : D3D12_BARRIER_SYNC = 16777216 ;
15628pub const D3D12_BARRIER_SYNC_D3D12_BARRIER_SYNC_SPLIT: D3D12_BARRIER_SYNC =
15629    -2147483648;
15630pub type D3D12_BARRIER_SYNC = ::std::os::raw::c_int;
15631pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_COMMON:
15632    D3D12_BARRIER_ACCESS = 0;
15633pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VERTEX_BUFFER:
15634    D3D12_BARRIER_ACCESS = 1;
15635pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_CONSTANT_BUFFER:
15636    D3D12_BARRIER_ACCESS = 2;
15637pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_INDEX_BUFFER:
15638    D3D12_BARRIER_ACCESS = 4;
15639pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_RENDER_TARGET:
15640    D3D12_BARRIER_ACCESS = 8;
15641pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_UNORDERED_ACCESS:
15642    D3D12_BARRIER_ACCESS = 16;
15643pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE:
15644    D3D12_BARRIER_ACCESS = 32;
15645pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ:
15646    D3D12_BARRIER_ACCESS = 64;
15647pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_SHADER_RESOURCE:
15648    D3D12_BARRIER_ACCESS = 128;
15649pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_STREAM_OUTPUT:
15650    D3D12_BARRIER_ACCESS = 256;
15651pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT:
15652    D3D12_BARRIER_ACCESS = 512;
15653pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_PREDICATION:
15654    D3D12_BARRIER_ACCESS = 512;
15655pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_COPY_DEST:
15656    D3D12_BARRIER_ACCESS = 1024;
15657pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_COPY_SOURCE:
15658    D3D12_BARRIER_ACCESS = 2048;
15659pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_RESOLVE_DEST:
15660    D3D12_BARRIER_ACCESS = 4096;
15661pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_RESOLVE_SOURCE:
15662    D3D12_BARRIER_ACCESS = 8192;
15663pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ : D3D12_BARRIER_ACCESS = 16384 ;
15664pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE : D3D12_BARRIER_ACCESS = 32768 ;
15665pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE:
15666    D3D12_BARRIER_ACCESS = 65536;
15667pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ:
15668    D3D12_BARRIER_ACCESS = 131072;
15669pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE:
15670    D3D12_BARRIER_ACCESS = 262144;
15671pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ:
15672    D3D12_BARRIER_ACCESS = 524288;
15673pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE:
15674    D3D12_BARRIER_ACCESS = 1048576;
15675pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ:
15676    D3D12_BARRIER_ACCESS = 2097152;
15677pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE:
15678    D3D12_BARRIER_ACCESS = 4194304;
15679pub const D3D12_BARRIER_ACCESS_D3D12_BARRIER_ACCESS_NO_ACCESS:
15680    D3D12_BARRIER_ACCESS = -2147483648;
15681pub type D3D12_BARRIER_ACCESS = ::std::os::raw::c_int;
15682pub const D3D12_BARRIER_TYPE_D3D12_BARRIER_TYPE_GLOBAL: D3D12_BARRIER_TYPE = 0;
15683pub const D3D12_BARRIER_TYPE_D3D12_BARRIER_TYPE_TEXTURE: D3D12_BARRIER_TYPE = 1;
15684pub const D3D12_BARRIER_TYPE_D3D12_BARRIER_TYPE_BUFFER: D3D12_BARRIER_TYPE = 2;
15685pub type D3D12_BARRIER_TYPE = ::std::os::raw::c_int;
15686pub const D3D12_TEXTURE_BARRIER_FLAGS_D3D12_TEXTURE_BARRIER_FLAG_NONE:
15687    D3D12_TEXTURE_BARRIER_FLAGS = 0;
15688pub const D3D12_TEXTURE_BARRIER_FLAGS_D3D12_TEXTURE_BARRIER_FLAG_DISCARD:
15689    D3D12_TEXTURE_BARRIER_FLAGS = 1;
15690pub type D3D12_TEXTURE_BARRIER_FLAGS = ::std::os::raw::c_int;
15691#[repr(C)]
15692#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15693pub struct D3D12_BARRIER_SUBRESOURCE_RANGE {
15694    pub IndexOrFirstMipLevel: UINT,
15695    pub NumMipLevels: UINT,
15696    pub FirstArraySlice: UINT,
15697    pub NumArraySlices: UINT,
15698    pub FirstPlane: UINT,
15699    pub NumPlanes: UINT,
15700}
15701#[repr(C)]
15702#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15703pub struct D3D12_GLOBAL_BARRIER {
15704    pub SyncBefore: D3D12_BARRIER_SYNC,
15705    pub SyncAfter: D3D12_BARRIER_SYNC,
15706    pub AccessBefore: D3D12_BARRIER_ACCESS,
15707    pub AccessAfter: D3D12_BARRIER_ACCESS,
15708}
15709impl Default for D3D12_GLOBAL_BARRIER {
15710    fn default() -> Self {
15711        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15712        unsafe {
15713            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15714            s.assume_init()
15715        }
15716    }
15717}
15718#[repr(C)]
15719#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15720pub struct D3D12_TEXTURE_BARRIER {
15721    pub SyncBefore: D3D12_BARRIER_SYNC,
15722    pub SyncAfter: D3D12_BARRIER_SYNC,
15723    pub AccessBefore: D3D12_BARRIER_ACCESS,
15724    pub AccessAfter: D3D12_BARRIER_ACCESS,
15725    pub LayoutBefore: D3D12_BARRIER_LAYOUT,
15726    pub LayoutAfter: D3D12_BARRIER_LAYOUT,
15727    pub pResource: *mut ID3D12Resource,
15728    pub Subresources: D3D12_BARRIER_SUBRESOURCE_RANGE,
15729    pub Flags: D3D12_TEXTURE_BARRIER_FLAGS,
15730}
15731impl Default for D3D12_TEXTURE_BARRIER {
15732    fn default() -> Self {
15733        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15734        unsafe {
15735            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15736            s.assume_init()
15737        }
15738    }
15739}
15740#[repr(C)]
15741#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15742pub struct D3D12_BUFFER_BARRIER {
15743    pub SyncBefore: D3D12_BARRIER_SYNC,
15744    pub SyncAfter: D3D12_BARRIER_SYNC,
15745    pub AccessBefore: D3D12_BARRIER_ACCESS,
15746    pub AccessAfter: D3D12_BARRIER_ACCESS,
15747    pub pResource: *mut ID3D12Resource,
15748    pub Offset: UINT64,
15749    pub Size: UINT64,
15750}
15751impl Default for D3D12_BUFFER_BARRIER {
15752    fn default() -> Self {
15753        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15754        unsafe {
15755            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15756            s.assume_init()
15757        }
15758    }
15759}
15760#[repr(C)]
15761#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15762pub struct D3D12_RESOURCE_STATE_BARRIER {
15763    pub State: D3D12_RESOURCE_STATES,
15764    pub pResource: *mut ID3D12Resource,
15765    pub Subresource: UINT,
15766    pub Sync: D3D12_BARRIER_SYNC,
15767    pub Access: D3D12_BARRIER_ACCESS,
15768    pub Layout: D3D12_BARRIER_LAYOUT,
15769}
15770impl Default for D3D12_RESOURCE_STATE_BARRIER {
15771    fn default() -> Self {
15772        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15773        unsafe {
15774            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15775            s.assume_init()
15776        }
15777    }
15778}
15779#[repr(C)]
15780#[derive(Copy, Clone)]
15781pub struct D3D12_BARRIER_GROUP {
15782    pub Type: D3D12_BARRIER_TYPE,
15783    pub NumBarriers: UINT32,
15784    pub __bindgen_anon_1: D3D12_BARRIER_GROUP__bindgen_ty_1,
15785}
15786#[repr(C)]
15787#[derive(Copy, Clone)]
15788pub union D3D12_BARRIER_GROUP__bindgen_ty_1 {
15789    pub pGlobalBarriers: *const D3D12_GLOBAL_BARRIER,
15790    pub pTextureBarriers: *const D3D12_TEXTURE_BARRIER,
15791    pub pBufferBarriers: *const D3D12_BUFFER_BARRIER,
15792    pub pStateBarriers: *const D3D12_RESOURCE_STATE_BARRIER,
15793}
15794impl Default for D3D12_BARRIER_GROUP__bindgen_ty_1 {
15795    fn default() -> Self {
15796        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15797        unsafe {
15798            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15799            s.assume_init()
15800        }
15801    }
15802}
15803impl ::std::fmt::Debug for D3D12_BARRIER_GROUP__bindgen_ty_1 {
15804    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15805        write!(f, "D3D12_BARRIER_GROUP__bindgen_ty_1 {{ union }}")
15806    }
15807}
15808impl Default for D3D12_BARRIER_GROUP {
15809    fn default() -> Self {
15810        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15811        unsafe {
15812            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15813            s.assume_init()
15814        }
15815    }
15816}
15817impl ::std::fmt::Debug for D3D12_BARRIER_GROUP {
15818    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15819        write ! (f , "D3D12_BARRIER_GROUP {{ Type: {:?}, NumBarriers: {:?}, __bindgen_anon_1: {:?} }}" , self . Type , self . NumBarriers , self . __bindgen_anon_1)
15820    }
15821}
15822extern "C" {
15823    pub static IID_ID3D12ShaderCacheSession: IID;
15824}
15825#[repr(C)]
15826#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15827pub struct ID3D12ShaderCacheSessionVtbl {
15828    pub QueryInterface: ::std::option::Option<
15829        unsafe extern "C" fn(
15830            This: *mut ID3D12ShaderCacheSession,
15831            riid: *const IID,
15832            ppvObject: *mut *mut ::std::os::raw::c_void,
15833        ) -> HRESULT,
15834    >,
15835    pub AddRef: ::std::option::Option<
15836        unsafe extern "C" fn(This: *mut ID3D12ShaderCacheSession) -> ULONG,
15837    >,
15838    pub Release: ::std::option::Option<
15839        unsafe extern "C" fn(This: *mut ID3D12ShaderCacheSession) -> ULONG,
15840    >,
15841    pub GetPrivateData: ::std::option::Option<
15842        unsafe extern "C" fn(
15843            This: *mut ID3D12ShaderCacheSession,
15844            guid: *const GUID,
15845            pDataSize: *mut UINT,
15846            pData: *mut ::std::os::raw::c_void,
15847        ) -> HRESULT,
15848    >,
15849    pub SetPrivateData: ::std::option::Option<
15850        unsafe extern "C" fn(
15851            This: *mut ID3D12ShaderCacheSession,
15852            guid: *const GUID,
15853            DataSize: UINT,
15854            pData: *const ::std::os::raw::c_void,
15855        ) -> HRESULT,
15856    >,
15857    pub SetPrivateDataInterface: ::std::option::Option<
15858        unsafe extern "C" fn(
15859            This: *mut ID3D12ShaderCacheSession,
15860            guid: *const GUID,
15861            pData: *const IUnknown,
15862        ) -> HRESULT,
15863    >,
15864    pub SetName: ::std::option::Option<
15865        unsafe extern "C" fn(
15866            This: *mut ID3D12ShaderCacheSession,
15867            Name: LPCWSTR,
15868        ) -> HRESULT,
15869    >,
15870    pub GetDevice: ::std::option::Option<
15871        unsafe extern "C" fn(
15872            This: *mut ID3D12ShaderCacheSession,
15873            riid: *const IID,
15874            ppvDevice: *mut *mut ::std::os::raw::c_void,
15875        ) -> HRESULT,
15876    >,
15877    pub FindValue: ::std::option::Option<
15878        unsafe extern "C" fn(
15879            This: *mut ID3D12ShaderCacheSession,
15880            pKey: *const ::std::os::raw::c_void,
15881            KeySize: UINT,
15882            pValue: *mut ::std::os::raw::c_void,
15883            pValueSize: *mut UINT,
15884        ) -> HRESULT,
15885    >,
15886    pub StoreValue: ::std::option::Option<
15887        unsafe extern "C" fn(
15888            This: *mut ID3D12ShaderCacheSession,
15889            pKey: *const ::std::os::raw::c_void,
15890            KeySize: UINT,
15891            pValue: *const ::std::os::raw::c_void,
15892            ValueSize: UINT,
15893        ) -> HRESULT,
15894    >,
15895    pub SetDeleteOnDestroy: ::std::option::Option<
15896        unsafe extern "C" fn(This: *mut ID3D12ShaderCacheSession),
15897    >,
15898    pub GetDesc: ::std::option::Option<
15899        unsafe extern "C" fn(
15900            This: *mut ID3D12ShaderCacheSession,
15901            RetVal: *mut D3D12_SHADER_CACHE_SESSION_DESC,
15902        ) -> *mut D3D12_SHADER_CACHE_SESSION_DESC,
15903    >,
15904}
15905#[repr(C)]
15906#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15907pub struct ID3D12ShaderCacheSession {
15908    pub lpVtbl: *mut ID3D12ShaderCacheSessionVtbl,
15909}
15910impl Default for ID3D12ShaderCacheSession {
15911    fn default() -> Self {
15912        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15913        unsafe {
15914            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15915            s.assume_init()
15916        }
15917    }
15918}
15919pub const D3D12_SHADER_CACHE_KIND_FLAGS_D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER : D3D12_SHADER_CACHE_KIND_FLAGS = 1 ;
15920pub const D3D12_SHADER_CACHE_KIND_FLAGS_D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS : D3D12_SHADER_CACHE_KIND_FLAGS = 2 ;
15921pub const D3D12_SHADER_CACHE_KIND_FLAGS_D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED : D3D12_SHADER_CACHE_KIND_FLAGS = 4 ;
15922pub const D3D12_SHADER_CACHE_KIND_FLAGS_D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED : D3D12_SHADER_CACHE_KIND_FLAGS = 8 ;
15923pub type D3D12_SHADER_CACHE_KIND_FLAGS = ::std::os::raw::c_int;
15924pub const D3D12_SHADER_CACHE_CONTROL_FLAGS_D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE : D3D12_SHADER_CACHE_CONTROL_FLAGS = 1 ;
15925pub const D3D12_SHADER_CACHE_CONTROL_FLAGS_D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE : D3D12_SHADER_CACHE_CONTROL_FLAGS = 2 ;
15926pub const D3D12_SHADER_CACHE_CONTROL_FLAGS_D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR : D3D12_SHADER_CACHE_CONTROL_FLAGS = 4 ;
15927pub type D3D12_SHADER_CACHE_CONTROL_FLAGS = ::std::os::raw::c_int;
15928extern "C" {
15929    pub static IID_ID3D12Device9: IID;
15930}
15931#[repr(C)]
15932#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15933pub struct ID3D12Device9Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , pub SetBackgroundProcessingMode : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Mode : D3D12_BACKGROUND_PROCESSING_MODE , MeasurementsAction : D3D12_MEASUREMENTS_ACTION , hEventToSignalUponCompletion : HANDLE , pbFurtherMeasurementsDesired : * mut BOOL) -> HRESULT > , pub AddToStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pAddition : * const D3D12_STATE_OBJECT_DESC , pStateObjectToGrowFrom : * mut ID3D12StateObject , riid : * const IID , ppNewStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC1 , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateCommittedResource2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC1 , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC1 , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSamplerFeedbackUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pTargetedResource : * mut ID3D12Resource , pFeedbackResource : * mut ID3D12Resource , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub GetCopyableFootprints1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pResourceDesc : * const D3D12_RESOURCE_DESC1 , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateShaderCacheSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_SHADER_CACHE_SESSION_DESC , riid : * const IID , ppvSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub ShaderCacheControl : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , Kinds : D3D12_SHADER_CACHE_KIND_FLAGS , Control : D3D12_SHADER_CACHE_CONTROL_FLAGS) -> HRESULT > , pub CreateCommandQueue1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device9 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , CreatorID : * const IID , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , }
15934#[repr(C)]
15935#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15936pub struct ID3D12Device9 {
15937    pub lpVtbl: *mut ID3D12Device9Vtbl,
15938}
15939impl Default for ID3D12Device9 {
15940    fn default() -> Self {
15941        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15942        unsafe {
15943            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15944            s.assume_init()
15945        }
15946    }
15947}
15948extern "C" {
15949    pub static IID_ID3D12Device10: IID;
15950}
15951#[repr(C)]
15952#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15953pub struct ID3D12Device10Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Name : LPCWSTR) -> HRESULT > , pub GetNodeCount : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10) -> UINT > , pub CreateCommandQueue : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandAllocator : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , type_ : D3D12_COMMAND_LIST_TYPE , riid : * const IID , ppCommandAllocator : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateGraphicsPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_GRAPHICS_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateComputePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_COMPUTE_PIPELINE_STATE_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommandList : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , pCommandAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CheckFeatureSupport : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Feature : D3D12_FEATURE , pFeatureSupportData : * mut :: std :: os :: raw :: c_void , FeatureSupportDataSize : UINT) -> HRESULT > , pub CreateDescriptorHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDescriptorHeapDesc : * const D3D12_DESCRIPTOR_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDescriptorHandleIncrementSize : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , DescriptorHeapType : D3D12_DESCRIPTOR_HEAP_TYPE) -> UINT > , pub CreateRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , nodeMask : UINT , pBlobWithRootSignature : * const :: std :: os :: raw :: c_void , blobLengthInBytes : SIZE_T , riid : * const IID , ppvRootSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_CONSTANT_BUFFER_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_SHADER_RESOURCE_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResource : * mut ID3D12Resource , pCounterResource : * mut ID3D12Resource , pDesc : * const D3D12_UNORDERED_ACCESS_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_RENDER_TARGET_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResource : * mut ID3D12Resource , pDesc : * const D3D12_DEPTH_STENCIL_VIEW_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CreateSampler : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_SAMPLER_DESC , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub CopyDescriptors : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NumDestDescriptorRanges : UINT , pDestDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pDestDescriptorRangeSizes : * const UINT , NumSrcDescriptorRanges : UINT , pSrcDescriptorRangeStarts : * const D3D12_CPU_DESCRIPTOR_HANDLE , pSrcDescriptorRangeSizes : * const UINT , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub CopyDescriptorsSimple : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NumDescriptors : UINT , DestDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , SrcDescriptorRangeStart : D3D12_CPU_DESCRIPTOR_HANDLE , DescriptorHeapsType : D3D12_DESCRIPTOR_HEAP_TYPE) > , pub GetResourceAllocationInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub GetCustomHeapProperties : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , RetVal : * mut D3D12_HEAP_PROPERTIES , nodeMask : UINT , heapType : D3D12_HEAP_TYPE) -> * mut D3D12_HEAP_PROPERTIES > , pub CreateCommittedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pObject : * mut ID3D12DeviceChild , pAttributes : * const SECURITY_ATTRIBUTES , Access : DWORD , Name : LPCWSTR , pHandle : * mut HANDLE) -> HRESULT > , pub OpenSharedHandle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NTHandle : HANDLE , riid : * const IID , ppvObj : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenSharedHandleByName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Name : LPCWSTR , Access : DWORD , pNTHandle : * mut HANDLE) -> HRESULT > , pub MakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub Evict : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable) -> HRESULT > , pub CreateFence : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , InitialValue : UINT64 , Flags : D3D12_FENCE_FLAGS , riid : * const IID , ppFence : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetDeviceRemovedReason : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10) -> HRESULT > , pub GetCopyableFootprints : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResourceDesc : * const D3D12_RESOURCE_DESC , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateQueryHeap : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_QUERY_HEAP_DESC , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetStablePowerState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Enable : BOOL) -> HRESULT > , pub CreateCommandSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_COMMAND_SIGNATURE_DESC , pRootSignature : * mut ID3D12RootSignature , riid : * const IID , ppvCommandSignature : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceTiling : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pTiledResource : * mut ID3D12Resource , pNumTilesForEntireResource : * mut UINT , pPackedMipDesc : * mut D3D12_PACKED_MIP_INFO , pStandardTileShapeForNonPackedMips : * mut D3D12_TILE_SHAPE , pNumSubresourceTilings : * mut UINT , FirstSubresourceTilingToGet : UINT , pSubresourceTilingsForNonPackedMips : * mut D3D12_SUBRESOURCE_TILING) > , pub GetAdapterLuid : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , RetVal : * mut LUID) -> * mut LUID > , pub CreatePipelineLibrary : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pLibraryBlob : * const :: std :: os :: raw :: c_void , BlobLength : SIZE_T , riid : * const IID , ppPipelineLibrary : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetEventOnMultipleFenceCompletion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , ppFences : * const * mut ID3D12Fence , pFenceValues : * const UINT64 , NumFences : UINT , Flags : D3D12_MULTIPLE_FENCE_WAIT_FLAGS , hEvent : HANDLE) -> HRESULT > , pub SetResidencyPriority : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pPriorities : * const D3D12_RESIDENCY_PRIORITY) -> HRESULT > , pub CreatePipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_PIPELINE_STATE_STREAM_DESC , riid : * const IID , ppPipelineState : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromAddress : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pAddress : * const :: std :: os :: raw :: c_void , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub OpenExistingHeapFromFileMapping : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , hFileMapping : HANDLE , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub EnqueueMakeResident : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Flags : D3D12_RESIDENCY_FLAGS , NumObjects : UINT , ppObjects : * const * mut ID3D12Pageable , pFenceToSignal : * mut ID3D12Fence , FenceValueToSignal : UINT64) -> HRESULT > , pub CreateCommandList1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , nodeMask : UINT , type_ : D3D12_COMMAND_LIST_TYPE , flags : D3D12_COMMAND_LIST_FLAGS , riid : * const IID , ppCommandList : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateHeap1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_HEAP_DESC , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvHeap : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_RESOURCE_DESC , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateLifetimeTracker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pOwner : * mut ID3D12LifetimeOwner , riid : * const IID , ppvTracker : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub RemoveDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10) > , pub EnumerateMetaCommands : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pNumMetaCommands : * mut UINT , pDescs : * mut D3D12_META_COMMAND_DESC) -> HRESULT > , pub EnumerateMetaCommandParameters : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , CommandId : * const GUID , Stage : D3D12_META_COMMAND_PARAMETER_STAGE , pTotalStructureSizeInBytes : * mut UINT , pParameterCount : * mut UINT , pParameterDescs : * mut D3D12_META_COMMAND_PARAMETER_DESC) -> HRESULT > , pub CreateMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , CommandId : * const GUID , NodeMask : UINT , pCreationParametersData : * const :: std :: os :: raw :: c_void , CreationParametersDataSizeInBytes : SIZE_T , riid : * const IID , ppMetaCommand : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_STATE_OBJECT_DESC , riid : * const IID , ppStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetRaytracingAccelerationStructurePrebuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS , pInfo : * mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) > , pub CheckDriverMatchingIdentifier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , SerializedDataType : D3D12_SERIALIZED_DATA_TYPE , pIdentifierToCheck : * const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS > , pub SetBackgroundProcessingMode : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Mode : D3D12_BACKGROUND_PROCESSING_MODE , MeasurementsAction : D3D12_MEASUREMENTS_ACTION , hEventToSignalUponCompletion : HANDLE , pbFurtherMeasurementsDesired : * mut BOOL) -> HRESULT > , pub AddToStateObject : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pAddition : * const D3D12_STATE_OBJECT_DESC , pStateObjectToGrowFrom : * mut ID3D12StateObject , riid : * const IID , ppNewStateObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateProtectedResourceSession1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 , riid : * const IID , ppSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetResourceAllocationInfo2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , RetVal : * mut D3D12_RESOURCE_ALLOCATION_INFO , visibleMask : UINT , numResourceDescs : UINT , pResourceDescs : * const D3D12_RESOURCE_DESC1 , pResourceAllocationInfo1 : * mut D3D12_RESOURCE_ALLOCATION_INFO1) -> * mut D3D12_RESOURCE_ALLOCATION_INFO > , pub CreateCommittedResource2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC1 , InitialResourceState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC1 , InitialState : D3D12_RESOURCE_STATES , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateSamplerFeedbackUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pTargetedResource : * mut ID3D12Resource , pFeedbackResource : * mut ID3D12Resource , DestDescriptor : D3D12_CPU_DESCRIPTOR_HANDLE) > , pub GetCopyableFootprints1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pResourceDesc : * const D3D12_RESOURCE_DESC1 , FirstSubresource : UINT , NumSubresources : UINT , BaseOffset : UINT64 , pLayouts : * mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT , pNumRows : * mut UINT , pRowSizeInBytes : * mut UINT64 , pTotalBytes : * mut UINT64) > , pub CreateShaderCacheSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_SHADER_CACHE_SESSION_DESC , riid : * const IID , ppvSession : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub ShaderCacheControl : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , Kinds : D3D12_SHADER_CACHE_KIND_FLAGS , Control : D3D12_SHADER_CACHE_CONTROL_FLAGS) -> HRESULT > , pub CreateCommandQueue1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_COMMAND_QUEUE_DESC , CreatorID : * const IID , riid : * const IID , ppCommandQueue : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateCommittedResource3 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeapProperties : * const D3D12_HEAP_PROPERTIES , HeapFlags : D3D12_HEAP_FLAGS , pDesc : * const D3D12_RESOURCE_DESC1 , InitialLayout : D3D12_BARRIER_LAYOUT , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , NumCastableFormats : UINT32 , pCastableFormats : * mut DXGI_FORMAT , riidResource : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreatePlacedResource2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pHeap : * mut ID3D12Heap , HeapOffset : UINT64 , pDesc : * const D3D12_RESOURCE_DESC1 , InitialLayout : D3D12_BARRIER_LAYOUT , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , NumCastableFormats : UINT32 , pCastableFormats : * mut DXGI_FORMAT , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub CreateReservedResource2 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12Device10 , pDesc : * const D3D12_RESOURCE_DESC , InitialLayout : D3D12_BARRIER_LAYOUT , pOptimizedClearValue : * const D3D12_CLEAR_VALUE , pProtectedSession : * mut ID3D12ProtectedResourceSession , NumCastableFormats : UINT32 , pCastableFormats : * mut DXGI_FORMAT , riid : * const IID , ppvResource : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , }
15954#[repr(C)]
15955#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15956pub struct ID3D12Device10 {
15957    pub lpVtbl: *mut ID3D12Device10Vtbl,
15958}
15959impl Default for ID3D12Device10 {
15960    fn default() -> Self {
15961        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15962        unsafe {
15963            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15964            s.assume_init()
15965        }
15966    }
15967}
15968extern "C" {
15969    pub static IID_ID3D12VirtualizationGuestDevice: IID;
15970}
15971#[repr(C)]
15972#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
15973pub struct ID3D12VirtualizationGuestDeviceVtbl {
15974    pub QueryInterface: ::std::option::Option<
15975        unsafe extern "C" fn(
15976            This: *mut ID3D12VirtualizationGuestDevice,
15977            riid: *const IID,
15978            ppvObject: *mut *mut ::std::os::raw::c_void,
15979        ) -> HRESULT,
15980    >,
15981    pub AddRef: ::std::option::Option<
15982        unsafe extern "C" fn(
15983            This: *mut ID3D12VirtualizationGuestDevice,
15984        ) -> ULONG,
15985    >,
15986    pub Release: ::std::option::Option<
15987        unsafe extern "C" fn(
15988            This: *mut ID3D12VirtualizationGuestDevice,
15989        ) -> ULONG,
15990    >,
15991    pub ShareWithHost: ::std::option::Option<
15992        unsafe extern "C" fn(
15993            This: *mut ID3D12VirtualizationGuestDevice,
15994            pObject: *mut ID3D12DeviceChild,
15995            pHandle: *mut HANDLE,
15996        ) -> HRESULT,
15997    >,
15998    pub CreateFenceFd: ::std::option::Option<
15999        unsafe extern "C" fn(
16000            This: *mut ID3D12VirtualizationGuestDevice,
16001            pFence: *mut ID3D12Fence,
16002            FenceValue: UINT64,
16003            pFenceFd: *mut ::std::os::raw::c_int,
16004        ) -> HRESULT,
16005    >,
16006}
16007#[repr(C)]
16008#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16009pub struct ID3D12VirtualizationGuestDevice {
16010    pub lpVtbl: *mut ID3D12VirtualizationGuestDeviceVtbl,
16011}
16012impl Default for ID3D12VirtualizationGuestDevice {
16013    fn default() -> Self {
16014        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16015        unsafe {
16016            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16017            s.assume_init()
16018        }
16019    }
16020}
16021extern "C" {
16022    pub static IID_ID3D12Tools: IID;
16023}
16024#[repr(C)]
16025#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16026pub struct ID3D12ToolsVtbl {
16027    pub QueryInterface: ::std::option::Option<
16028        unsafe extern "C" fn(
16029            This: *mut ID3D12Tools,
16030            riid: *const IID,
16031            ppvObject: *mut *mut ::std::os::raw::c_void,
16032        ) -> HRESULT,
16033    >,
16034    pub AddRef: ::std::option::Option<
16035        unsafe extern "C" fn(This: *mut ID3D12Tools) -> ULONG,
16036    >,
16037    pub Release: ::std::option::Option<
16038        unsafe extern "C" fn(This: *mut ID3D12Tools) -> ULONG,
16039    >,
16040    pub EnableShaderInstrumentation: ::std::option::Option<
16041        unsafe extern "C" fn(This: *mut ID3D12Tools, bEnable: BOOL),
16042    >,
16043    pub ShaderInstrumentationEnabled: ::std::option::Option<
16044        unsafe extern "C" fn(This: *mut ID3D12Tools) -> BOOL,
16045    >,
16046}
16047#[repr(C)]
16048#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16049pub struct ID3D12Tools {
16050    pub lpVtbl: *mut ID3D12ToolsVtbl,
16051}
16052impl Default for ID3D12Tools {
16053    fn default() -> Self {
16054        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16055        unsafe {
16056            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16057            s.assume_init()
16058        }
16059    }
16060}
16061#[repr(C)]
16062#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16063pub struct D3D12_SUBRESOURCE_DATA {
16064    pub pData: *const ::std::os::raw::c_void,
16065    pub RowPitch: LONG_PTR,
16066    pub SlicePitch: LONG_PTR,
16067}
16068impl Default for D3D12_SUBRESOURCE_DATA {
16069    fn default() -> Self {
16070        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16071        unsafe {
16072            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16073            s.assume_init()
16074        }
16075    }
16076}
16077#[repr(C)]
16078#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16079pub struct D3D12_MEMCPY_DEST {
16080    pub pData: *mut ::std::os::raw::c_void,
16081    pub RowPitch: SIZE_T,
16082    pub SlicePitch: SIZE_T,
16083}
16084impl Default for D3D12_MEMCPY_DEST {
16085    fn default() -> Self {
16086        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16087        unsafe {
16088            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16089            s.assume_init()
16090        }
16091    }
16092}
16093extern "C" {
16094    pub static IID_ID3D12Debug: IID;
16095}
16096#[repr(C)]
16097#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16098pub struct ID3D12DebugVtbl {
16099    pub QueryInterface: ::std::option::Option<
16100        unsafe extern "C" fn(
16101            This: *mut ID3D12Debug,
16102            riid: *const IID,
16103            ppvObject: *mut *mut ::std::os::raw::c_void,
16104        ) -> HRESULT,
16105    >,
16106    pub AddRef: ::std::option::Option<
16107        unsafe extern "C" fn(This: *mut ID3D12Debug) -> ULONG,
16108    >,
16109    pub Release: ::std::option::Option<
16110        unsafe extern "C" fn(This: *mut ID3D12Debug) -> ULONG,
16111    >,
16112    pub EnableDebugLayer:
16113        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug)>,
16114}
16115#[repr(C)]
16116#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16117pub struct ID3D12Debug {
16118    pub lpVtbl: *mut ID3D12DebugVtbl,
16119}
16120impl Default for ID3D12Debug {
16121    fn default() -> Self {
16122        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16123        unsafe {
16124            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16125            s.assume_init()
16126        }
16127    }
16128}
16129pub const D3D12_GPU_BASED_VALIDATION_FLAGS_D3D12_GPU_BASED_VALIDATION_FLAGS_NONE : D3D12_GPU_BASED_VALIDATION_FLAGS = 0 ;
16130pub const D3D12_GPU_BASED_VALIDATION_FLAGS_D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING : D3D12_GPU_BASED_VALIDATION_FLAGS = 1 ;
16131pub type D3D12_GPU_BASED_VALIDATION_FLAGS = ::std::os::raw::c_int;
16132extern "C" {
16133    pub static IID_ID3D12Debug1: IID;
16134}
16135#[repr(C)]
16136#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16137pub struct ID3D12Debug1Vtbl {
16138    pub QueryInterface: ::std::option::Option<
16139        unsafe extern "C" fn(
16140            This: *mut ID3D12Debug1,
16141            riid: *const IID,
16142            ppvObject: *mut *mut ::std::os::raw::c_void,
16143        ) -> HRESULT,
16144    >,
16145    pub AddRef: ::std::option::Option<
16146        unsafe extern "C" fn(This: *mut ID3D12Debug1) -> ULONG,
16147    >,
16148    pub Release: ::std::option::Option<
16149        unsafe extern "C" fn(This: *mut ID3D12Debug1) -> ULONG,
16150    >,
16151    pub EnableDebugLayer:
16152        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug1)>,
16153    pub SetEnableGPUBasedValidation: ::std::option::Option<
16154        unsafe extern "C" fn(This: *mut ID3D12Debug1, Enable: BOOL),
16155    >,
16156    pub SetEnableSynchronizedCommandQueueValidation: ::std::option::Option<
16157        unsafe extern "C" fn(This: *mut ID3D12Debug1, Enable: BOOL),
16158    >,
16159}
16160#[repr(C)]
16161#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16162pub struct ID3D12Debug1 {
16163    pub lpVtbl: *mut ID3D12Debug1Vtbl,
16164}
16165impl Default for ID3D12Debug1 {
16166    fn default() -> Self {
16167        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16168        unsafe {
16169            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16170            s.assume_init()
16171        }
16172    }
16173}
16174extern "C" {
16175    pub static IID_ID3D12Debug2: IID;
16176}
16177#[repr(C)]
16178#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16179pub struct ID3D12Debug2Vtbl {
16180    pub QueryInterface: ::std::option::Option<
16181        unsafe extern "C" fn(
16182            This: *mut ID3D12Debug2,
16183            riid: *const IID,
16184            ppvObject: *mut *mut ::std::os::raw::c_void,
16185        ) -> HRESULT,
16186    >,
16187    pub AddRef: ::std::option::Option<
16188        unsafe extern "C" fn(This: *mut ID3D12Debug2) -> ULONG,
16189    >,
16190    pub Release: ::std::option::Option<
16191        unsafe extern "C" fn(This: *mut ID3D12Debug2) -> ULONG,
16192    >,
16193    pub SetGPUBasedValidationFlags: ::std::option::Option<
16194        unsafe extern "C" fn(
16195            This: *mut ID3D12Debug2,
16196            Flags: D3D12_GPU_BASED_VALIDATION_FLAGS,
16197        ),
16198    >,
16199}
16200#[repr(C)]
16201#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16202pub struct ID3D12Debug2 {
16203    pub lpVtbl: *mut ID3D12Debug2Vtbl,
16204}
16205impl Default for ID3D12Debug2 {
16206    fn default() -> Self {
16207        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16208        unsafe {
16209            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16210            s.assume_init()
16211        }
16212    }
16213}
16214extern "C" {
16215    pub static IID_ID3D12Debug3: IID;
16216}
16217#[repr(C)]
16218#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16219pub struct ID3D12Debug3Vtbl {
16220    pub QueryInterface: ::std::option::Option<
16221        unsafe extern "C" fn(
16222            This: *mut ID3D12Debug3,
16223            riid: *const IID,
16224            ppvObject: *mut *mut ::std::os::raw::c_void,
16225        ) -> HRESULT,
16226    >,
16227    pub AddRef: ::std::option::Option<
16228        unsafe extern "C" fn(This: *mut ID3D12Debug3) -> ULONG,
16229    >,
16230    pub Release: ::std::option::Option<
16231        unsafe extern "C" fn(This: *mut ID3D12Debug3) -> ULONG,
16232    >,
16233    pub EnableDebugLayer:
16234        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug3)>,
16235    pub SetEnableGPUBasedValidation: ::std::option::Option<
16236        unsafe extern "C" fn(This: *mut ID3D12Debug3, Enable: BOOL),
16237    >,
16238    pub SetEnableSynchronizedCommandQueueValidation: ::std::option::Option<
16239        unsafe extern "C" fn(This: *mut ID3D12Debug3, Enable: BOOL),
16240    >,
16241    pub SetGPUBasedValidationFlags: ::std::option::Option<
16242        unsafe extern "C" fn(
16243            This: *mut ID3D12Debug3,
16244            Flags: D3D12_GPU_BASED_VALIDATION_FLAGS,
16245        ),
16246    >,
16247}
16248#[repr(C)]
16249#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16250pub struct ID3D12Debug3 {
16251    pub lpVtbl: *mut ID3D12Debug3Vtbl,
16252}
16253impl Default for ID3D12Debug3 {
16254    fn default() -> Self {
16255        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16256        unsafe {
16257            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16258            s.assume_init()
16259        }
16260    }
16261}
16262extern "C" {
16263    pub static IID_ID3D12Debug4: IID;
16264}
16265#[repr(C)]
16266#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16267pub struct ID3D12Debug4Vtbl {
16268    pub QueryInterface: ::std::option::Option<
16269        unsafe extern "C" fn(
16270            This: *mut ID3D12Debug4,
16271            riid: *const IID,
16272            ppvObject: *mut *mut ::std::os::raw::c_void,
16273        ) -> HRESULT,
16274    >,
16275    pub AddRef: ::std::option::Option<
16276        unsafe extern "C" fn(This: *mut ID3D12Debug4) -> ULONG,
16277    >,
16278    pub Release: ::std::option::Option<
16279        unsafe extern "C" fn(This: *mut ID3D12Debug4) -> ULONG,
16280    >,
16281    pub EnableDebugLayer:
16282        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug4)>,
16283    pub SetEnableGPUBasedValidation: ::std::option::Option<
16284        unsafe extern "C" fn(This: *mut ID3D12Debug4, Enable: BOOL),
16285    >,
16286    pub SetEnableSynchronizedCommandQueueValidation: ::std::option::Option<
16287        unsafe extern "C" fn(This: *mut ID3D12Debug4, Enable: BOOL),
16288    >,
16289    pub SetGPUBasedValidationFlags: ::std::option::Option<
16290        unsafe extern "C" fn(
16291            This: *mut ID3D12Debug4,
16292            Flags: D3D12_GPU_BASED_VALIDATION_FLAGS,
16293        ),
16294    >,
16295    pub DisableDebugLayer:
16296        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug4)>,
16297}
16298#[repr(C)]
16299#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16300pub struct ID3D12Debug4 {
16301    pub lpVtbl: *mut ID3D12Debug4Vtbl,
16302}
16303impl Default for ID3D12Debug4 {
16304    fn default() -> Self {
16305        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16306        unsafe {
16307            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16308            s.assume_init()
16309        }
16310    }
16311}
16312extern "C" {
16313    pub static IID_ID3D12Debug5: IID;
16314}
16315#[repr(C)]
16316#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16317pub struct ID3D12Debug5Vtbl {
16318    pub QueryInterface: ::std::option::Option<
16319        unsafe extern "C" fn(
16320            This: *mut ID3D12Debug5,
16321            riid: *const IID,
16322            ppvObject: *mut *mut ::std::os::raw::c_void,
16323        ) -> HRESULT,
16324    >,
16325    pub AddRef: ::std::option::Option<
16326        unsafe extern "C" fn(This: *mut ID3D12Debug5) -> ULONG,
16327    >,
16328    pub Release: ::std::option::Option<
16329        unsafe extern "C" fn(This: *mut ID3D12Debug5) -> ULONG,
16330    >,
16331    pub EnableDebugLayer:
16332        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug5)>,
16333    pub SetEnableGPUBasedValidation: ::std::option::Option<
16334        unsafe extern "C" fn(This: *mut ID3D12Debug5, Enable: BOOL),
16335    >,
16336    pub SetEnableSynchronizedCommandQueueValidation: ::std::option::Option<
16337        unsafe extern "C" fn(This: *mut ID3D12Debug5, Enable: BOOL),
16338    >,
16339    pub SetGPUBasedValidationFlags: ::std::option::Option<
16340        unsafe extern "C" fn(
16341            This: *mut ID3D12Debug5,
16342            Flags: D3D12_GPU_BASED_VALIDATION_FLAGS,
16343        ),
16344    >,
16345    pub DisableDebugLayer:
16346        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12Debug5)>,
16347    pub SetEnableAutoName: ::std::option::Option<
16348        unsafe extern "C" fn(This: *mut ID3D12Debug5, Enable: BOOL),
16349    >,
16350}
16351#[repr(C)]
16352#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16353pub struct ID3D12Debug5 {
16354    pub lpVtbl: *mut ID3D12Debug5Vtbl,
16355}
16356impl Default for ID3D12Debug5 {
16357    fn default() -> Self {
16358        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16359        unsafe {
16360            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16361            s.assume_init()
16362        }
16363    }
16364}
16365extern "C" {
16366    pub static WKPDID_D3DAutoDebugObjectNameW: GUID;
16367}
16368pub const D3D12_RLDO_FLAGS_D3D12_RLDO_NONE: D3D12_RLDO_FLAGS = 0;
16369pub const D3D12_RLDO_FLAGS_D3D12_RLDO_SUMMARY: D3D12_RLDO_FLAGS = 1;
16370pub const D3D12_RLDO_FLAGS_D3D12_RLDO_DETAIL: D3D12_RLDO_FLAGS = 2;
16371pub const D3D12_RLDO_FLAGS_D3D12_RLDO_IGNORE_INTERNAL: D3D12_RLDO_FLAGS = 4;
16372pub type D3D12_RLDO_FLAGS = ::std::os::raw::c_int;
16373pub const D3D12_DEBUG_DEVICE_PARAMETER_TYPE_D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS : D3D12_DEBUG_DEVICE_PARAMETER_TYPE = 0 ;
16374pub const D3D12_DEBUG_DEVICE_PARAMETER_TYPE_D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS : D3D12_DEBUG_DEVICE_PARAMETER_TYPE = 1 ;
16375pub const D3D12_DEBUG_DEVICE_PARAMETER_TYPE_D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR : D3D12_DEBUG_DEVICE_PARAMETER_TYPE = 2 ;
16376pub type D3D12_DEBUG_DEVICE_PARAMETER_TYPE = ::std::os::raw::c_int;
16377pub const D3D12_DEBUG_FEATURE_D3D12_DEBUG_FEATURE_NONE: D3D12_DEBUG_FEATURE = 0;
16378pub const D3D12_DEBUG_FEATURE_D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS : D3D12_DEBUG_FEATURE = 1 ;
16379pub const D3D12_DEBUG_FEATURE_D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING : D3D12_DEBUG_FEATURE = 2 ;
16380pub const D3D12_DEBUG_FEATURE_D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION : D3D12_DEBUG_FEATURE = 4 ;
16381pub const D3D12_DEBUG_FEATURE_D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7:
16382    D3D12_DEBUG_FEATURE = 8;
16383pub type D3D12_DEBUG_FEATURE = ::std::os::raw::c_int;
16384pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE : D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = 0 ;
16385pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY : D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = 1 ;
16386pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION : D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = 2 ;
16387pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION : D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = 3 ;
16388pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES : D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = 4 ;
16389pub type D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = ::std::os::raw::c_int;
16390pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE : D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = 0 ;
16391pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS : D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = 1 ;
16392pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS : D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = 2 ;
16393pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS : D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = 4 ;
16394pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK : D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = 7 ;
16395pub type D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS =
16396    ::std::os::raw::c_int;
16397#[repr(C)]
16398#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16399pub struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
16400    pub MaxMessagesPerCommandList: UINT,
16401    pub DefaultShaderPatchMode: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
16402    pub PipelineStateCreateFlags:
16403        D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS,
16404}
16405impl Default for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
16406    fn default() -> Self {
16407        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16408        unsafe {
16409            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16410            s.assume_init()
16411        }
16412    }
16413}
16414#[repr(C)]
16415#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
16416pub struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
16417    pub SlowdownFactor: FLOAT,
16418}
16419extern "C" {
16420    pub static IID_ID3D12DebugDevice1: IID;
16421}
16422#[repr(C)]
16423#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16424pub struct ID3D12DebugDevice1Vtbl {
16425    pub QueryInterface: ::std::option::Option<
16426        unsafe extern "C" fn(
16427            This: *mut ID3D12DebugDevice1,
16428            riid: *const IID,
16429            ppvObject: *mut *mut ::std::os::raw::c_void,
16430        ) -> HRESULT,
16431    >,
16432    pub AddRef: ::std::option::Option<
16433        unsafe extern "C" fn(This: *mut ID3D12DebugDevice1) -> ULONG,
16434    >,
16435    pub Release: ::std::option::Option<
16436        unsafe extern "C" fn(This: *mut ID3D12DebugDevice1) -> ULONG,
16437    >,
16438    pub SetDebugParameter: ::std::option::Option<
16439        unsafe extern "C" fn(
16440            This: *mut ID3D12DebugDevice1,
16441            Type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE,
16442            pData: *const ::std::os::raw::c_void,
16443            DataSize: UINT,
16444        ) -> HRESULT,
16445    >,
16446    pub GetDebugParameter: ::std::option::Option<
16447        unsafe extern "C" fn(
16448            This: *mut ID3D12DebugDevice1,
16449            Type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE,
16450            pData: *mut ::std::os::raw::c_void,
16451            DataSize: UINT,
16452        ) -> HRESULT,
16453    >,
16454    pub ReportLiveDeviceObjects: ::std::option::Option<
16455        unsafe extern "C" fn(
16456            This: *mut ID3D12DebugDevice1,
16457            Flags: D3D12_RLDO_FLAGS,
16458        ) -> HRESULT,
16459    >,
16460}
16461#[repr(C)]
16462#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16463pub struct ID3D12DebugDevice1 {
16464    pub lpVtbl: *mut ID3D12DebugDevice1Vtbl,
16465}
16466impl Default for ID3D12DebugDevice1 {
16467    fn default() -> Self {
16468        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16469        unsafe {
16470            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16471            s.assume_init()
16472        }
16473    }
16474}
16475extern "C" {
16476    pub static IID_ID3D12DebugDevice: IID;
16477}
16478#[repr(C)]
16479#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16480pub struct ID3D12DebugDeviceVtbl {
16481    pub QueryInterface: ::std::option::Option<
16482        unsafe extern "C" fn(
16483            This: *mut ID3D12DebugDevice,
16484            riid: *const IID,
16485            ppvObject: *mut *mut ::std::os::raw::c_void,
16486        ) -> HRESULT,
16487    >,
16488    pub AddRef: ::std::option::Option<
16489        unsafe extern "C" fn(This: *mut ID3D12DebugDevice) -> ULONG,
16490    >,
16491    pub Release: ::std::option::Option<
16492        unsafe extern "C" fn(This: *mut ID3D12DebugDevice) -> ULONG,
16493    >,
16494    pub SetFeatureMask: ::std::option::Option<
16495        unsafe extern "C" fn(
16496            This: *mut ID3D12DebugDevice,
16497            Mask: D3D12_DEBUG_FEATURE,
16498        ) -> HRESULT,
16499    >,
16500    pub GetFeatureMask: ::std::option::Option<
16501        unsafe extern "C" fn(
16502            This: *mut ID3D12DebugDevice,
16503        ) -> D3D12_DEBUG_FEATURE,
16504    >,
16505    pub ReportLiveDeviceObjects: ::std::option::Option<
16506        unsafe extern "C" fn(
16507            This: *mut ID3D12DebugDevice,
16508            Flags: D3D12_RLDO_FLAGS,
16509        ) -> HRESULT,
16510    >,
16511}
16512#[repr(C)]
16513#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16514pub struct ID3D12DebugDevice {
16515    pub lpVtbl: *mut ID3D12DebugDeviceVtbl,
16516}
16517impl Default for ID3D12DebugDevice {
16518    fn default() -> Self {
16519        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16520        unsafe {
16521            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16522            s.assume_init()
16523        }
16524    }
16525}
16526extern "C" {
16527    pub static IID_ID3D12DebugDevice2: IID;
16528}
16529#[repr(C)]
16530#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16531pub struct ID3D12DebugDevice2Vtbl {
16532    pub QueryInterface: ::std::option::Option<
16533        unsafe extern "C" fn(
16534            This: *mut ID3D12DebugDevice2,
16535            riid: *const IID,
16536            ppvObject: *mut *mut ::std::os::raw::c_void,
16537        ) -> HRESULT,
16538    >,
16539    pub AddRef: ::std::option::Option<
16540        unsafe extern "C" fn(This: *mut ID3D12DebugDevice2) -> ULONG,
16541    >,
16542    pub Release: ::std::option::Option<
16543        unsafe extern "C" fn(This: *mut ID3D12DebugDevice2) -> ULONG,
16544    >,
16545    pub SetFeatureMask: ::std::option::Option<
16546        unsafe extern "C" fn(
16547            This: *mut ID3D12DebugDevice2,
16548            Mask: D3D12_DEBUG_FEATURE,
16549        ) -> HRESULT,
16550    >,
16551    pub GetFeatureMask: ::std::option::Option<
16552        unsafe extern "C" fn(
16553            This: *mut ID3D12DebugDevice2,
16554        ) -> D3D12_DEBUG_FEATURE,
16555    >,
16556    pub ReportLiveDeviceObjects: ::std::option::Option<
16557        unsafe extern "C" fn(
16558            This: *mut ID3D12DebugDevice2,
16559            Flags: D3D12_RLDO_FLAGS,
16560        ) -> HRESULT,
16561    >,
16562    pub SetDebugParameter: ::std::option::Option<
16563        unsafe extern "C" fn(
16564            This: *mut ID3D12DebugDevice2,
16565            Type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE,
16566            pData: *const ::std::os::raw::c_void,
16567            DataSize: UINT,
16568        ) -> HRESULT,
16569    >,
16570    pub GetDebugParameter: ::std::option::Option<
16571        unsafe extern "C" fn(
16572            This: *mut ID3D12DebugDevice2,
16573            Type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE,
16574            pData: *mut ::std::os::raw::c_void,
16575            DataSize: UINT,
16576        ) -> HRESULT,
16577    >,
16578}
16579#[repr(C)]
16580#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16581pub struct ID3D12DebugDevice2 {
16582    pub lpVtbl: *mut ID3D12DebugDevice2Vtbl,
16583}
16584impl Default for ID3D12DebugDevice2 {
16585    fn default() -> Self {
16586        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16587        unsafe {
16588            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16589            s.assume_init()
16590        }
16591    }
16592}
16593extern "C" {
16594    pub static DXGI_DEBUG_D3D12: GUID;
16595}
16596extern "C" {
16597    pub static IID_ID3D12DebugCommandQueue: IID;
16598}
16599#[repr(C)]
16600#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16601pub struct ID3D12DebugCommandQueueVtbl {
16602    pub QueryInterface: ::std::option::Option<
16603        unsafe extern "C" fn(
16604            This: *mut ID3D12DebugCommandQueue,
16605            riid: *const IID,
16606            ppvObject: *mut *mut ::std::os::raw::c_void,
16607        ) -> HRESULT,
16608    >,
16609    pub AddRef: ::std::option::Option<
16610        unsafe extern "C" fn(This: *mut ID3D12DebugCommandQueue) -> ULONG,
16611    >,
16612    pub Release: ::std::option::Option<
16613        unsafe extern "C" fn(This: *mut ID3D12DebugCommandQueue) -> ULONG,
16614    >,
16615    pub AssertResourceState: ::std::option::Option<
16616        unsafe extern "C" fn(
16617            This: *mut ID3D12DebugCommandQueue,
16618            pResource: *mut ID3D12Resource,
16619            Subresource: UINT,
16620            State: UINT,
16621        ) -> BOOL,
16622    >,
16623}
16624#[repr(C)]
16625#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16626pub struct ID3D12DebugCommandQueue {
16627    pub lpVtbl: *mut ID3D12DebugCommandQueueVtbl,
16628}
16629impl Default for ID3D12DebugCommandQueue {
16630    fn default() -> Self {
16631        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16632        unsafe {
16633            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16634            s.assume_init()
16635        }
16636    }
16637}
16638pub const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE_D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS : D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE = 0 ;
16639pub type D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE = ::std::os::raw::c_int;
16640#[repr(C)]
16641#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16642pub struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
16643    pub ShaderPatchMode: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
16644}
16645impl Default for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
16646    fn default() -> Self {
16647        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16648        unsafe {
16649            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16650            s.assume_init()
16651        }
16652    }
16653}
16654extern "C" {
16655    pub static IID_ID3D12DebugCommandList1: IID;
16656}
16657#[repr(C)]
16658#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16659pub struct ID3D12DebugCommandList1Vtbl {
16660    pub QueryInterface: ::std::option::Option<
16661        unsafe extern "C" fn(
16662            This: *mut ID3D12DebugCommandList1,
16663            riid: *const IID,
16664            ppvObject: *mut *mut ::std::os::raw::c_void,
16665        ) -> HRESULT,
16666    >,
16667    pub AddRef: ::std::option::Option<
16668        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList1) -> ULONG,
16669    >,
16670    pub Release: ::std::option::Option<
16671        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList1) -> ULONG,
16672    >,
16673    pub AssertResourceState: ::std::option::Option<
16674        unsafe extern "C" fn(
16675            This: *mut ID3D12DebugCommandList1,
16676            pResource: *mut ID3D12Resource,
16677            Subresource: UINT,
16678            State: UINT,
16679        ) -> BOOL,
16680    >,
16681    pub SetDebugParameter: ::std::option::Option<
16682        unsafe extern "C" fn(
16683            This: *mut ID3D12DebugCommandList1,
16684            Type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE,
16685            pData: *const ::std::os::raw::c_void,
16686            DataSize: UINT,
16687        ) -> HRESULT,
16688    >,
16689    pub GetDebugParameter: ::std::option::Option<
16690        unsafe extern "C" fn(
16691            This: *mut ID3D12DebugCommandList1,
16692            Type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE,
16693            pData: *mut ::std::os::raw::c_void,
16694            DataSize: UINT,
16695        ) -> HRESULT,
16696    >,
16697}
16698#[repr(C)]
16699#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16700pub struct ID3D12DebugCommandList1 {
16701    pub lpVtbl: *mut ID3D12DebugCommandList1Vtbl,
16702}
16703impl Default for ID3D12DebugCommandList1 {
16704    fn default() -> Self {
16705        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16706        unsafe {
16707            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16708            s.assume_init()
16709        }
16710    }
16711}
16712extern "C" {
16713    pub static IID_ID3D12DebugCommandList: IID;
16714}
16715#[repr(C)]
16716#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16717pub struct ID3D12DebugCommandListVtbl {
16718    pub QueryInterface: ::std::option::Option<
16719        unsafe extern "C" fn(
16720            This: *mut ID3D12DebugCommandList,
16721            riid: *const IID,
16722            ppvObject: *mut *mut ::std::os::raw::c_void,
16723        ) -> HRESULT,
16724    >,
16725    pub AddRef: ::std::option::Option<
16726        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList) -> ULONG,
16727    >,
16728    pub Release: ::std::option::Option<
16729        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList) -> ULONG,
16730    >,
16731    pub AssertResourceState: ::std::option::Option<
16732        unsafe extern "C" fn(
16733            This: *mut ID3D12DebugCommandList,
16734            pResource: *mut ID3D12Resource,
16735            Subresource: UINT,
16736            State: UINT,
16737        ) -> BOOL,
16738    >,
16739    pub SetFeatureMask: ::std::option::Option<
16740        unsafe extern "C" fn(
16741            This: *mut ID3D12DebugCommandList,
16742            Mask: D3D12_DEBUG_FEATURE,
16743        ) -> HRESULT,
16744    >,
16745    pub GetFeatureMask: ::std::option::Option<
16746        unsafe extern "C" fn(
16747            This: *mut ID3D12DebugCommandList,
16748        ) -> D3D12_DEBUG_FEATURE,
16749    >,
16750}
16751#[repr(C)]
16752#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16753pub struct ID3D12DebugCommandList {
16754    pub lpVtbl: *mut ID3D12DebugCommandListVtbl,
16755}
16756impl Default for ID3D12DebugCommandList {
16757    fn default() -> Self {
16758        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16759        unsafe {
16760            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16761            s.assume_init()
16762        }
16763    }
16764}
16765extern "C" {
16766    pub static IID_ID3D12DebugCommandList2: IID;
16767}
16768#[repr(C)]
16769#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16770pub struct ID3D12DebugCommandList2Vtbl {
16771    pub QueryInterface: ::std::option::Option<
16772        unsafe extern "C" fn(
16773            This: *mut ID3D12DebugCommandList2,
16774            riid: *const IID,
16775            ppvObject: *mut *mut ::std::os::raw::c_void,
16776        ) -> HRESULT,
16777    >,
16778    pub AddRef: ::std::option::Option<
16779        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList2) -> ULONG,
16780    >,
16781    pub Release: ::std::option::Option<
16782        unsafe extern "C" fn(This: *mut ID3D12DebugCommandList2) -> ULONG,
16783    >,
16784    pub AssertResourceState: ::std::option::Option<
16785        unsafe extern "C" fn(
16786            This: *mut ID3D12DebugCommandList2,
16787            pResource: *mut ID3D12Resource,
16788            Subresource: UINT,
16789            State: UINT,
16790        ) -> BOOL,
16791    >,
16792    pub SetFeatureMask: ::std::option::Option<
16793        unsafe extern "C" fn(
16794            This: *mut ID3D12DebugCommandList2,
16795            Mask: D3D12_DEBUG_FEATURE,
16796        ) -> HRESULT,
16797    >,
16798    pub GetFeatureMask: ::std::option::Option<
16799        unsafe extern "C" fn(
16800            This: *mut ID3D12DebugCommandList2,
16801        ) -> D3D12_DEBUG_FEATURE,
16802    >,
16803    pub SetDebugParameter: ::std::option::Option<
16804        unsafe extern "C" fn(
16805            This: *mut ID3D12DebugCommandList2,
16806            Type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE,
16807            pData: *const ::std::os::raw::c_void,
16808            DataSize: UINT,
16809        ) -> HRESULT,
16810    >,
16811    pub GetDebugParameter: ::std::option::Option<
16812        unsafe extern "C" fn(
16813            This: *mut ID3D12DebugCommandList2,
16814            Type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE,
16815            pData: *mut ::std::os::raw::c_void,
16816            DataSize: UINT,
16817        ) -> HRESULT,
16818    >,
16819}
16820#[repr(C)]
16821#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16822pub struct ID3D12DebugCommandList2 {
16823    pub lpVtbl: *mut ID3D12DebugCommandList2Vtbl,
16824}
16825impl Default for ID3D12DebugCommandList2 {
16826    fn default() -> Self {
16827        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16828        unsafe {
16829            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16830            s.assume_init()
16831        }
16832    }
16833}
16834extern "C" {
16835    pub static IID_ID3D12SharingContract: IID;
16836}
16837#[repr(C)]
16838#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16839pub struct ID3D12SharingContractVtbl {
16840    pub QueryInterface: ::std::option::Option<
16841        unsafe extern "C" fn(
16842            This: *mut ID3D12SharingContract,
16843            riid: *const IID,
16844            ppvObject: *mut *mut ::std::os::raw::c_void,
16845        ) -> HRESULT,
16846    >,
16847    pub AddRef: ::std::option::Option<
16848        unsafe extern "C" fn(This: *mut ID3D12SharingContract) -> ULONG,
16849    >,
16850    pub Release: ::std::option::Option<
16851        unsafe extern "C" fn(This: *mut ID3D12SharingContract) -> ULONG,
16852    >,
16853    pub Present: ::std::option::Option<
16854        unsafe extern "C" fn(
16855            This: *mut ID3D12SharingContract,
16856            pResource: *mut ID3D12Resource,
16857            Subresource: UINT,
16858            window: HWND,
16859        ),
16860    >,
16861    pub SharedFenceSignal: ::std::option::Option<
16862        unsafe extern "C" fn(
16863            This: *mut ID3D12SharingContract,
16864            pFence: *mut ID3D12Fence,
16865            FenceValue: UINT64,
16866        ),
16867    >,
16868    pub BeginCapturableWork: ::std::option::Option<
16869        unsafe extern "C" fn(
16870            This: *mut ID3D12SharingContract,
16871            guid: *const GUID,
16872        ),
16873    >,
16874    pub EndCapturableWork: ::std::option::Option<
16875        unsafe extern "C" fn(
16876            This: *mut ID3D12SharingContract,
16877            guid: *const GUID,
16878        ),
16879    >,
16880}
16881#[repr(C)]
16882#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
16883pub struct ID3D12SharingContract {
16884    pub lpVtbl: *mut ID3D12SharingContractVtbl,
16885}
16886impl Default for ID3D12SharingContract {
16887    fn default() -> Self {
16888        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
16889        unsafe {
16890            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
16891            s.assume_init()
16892        }
16893    }
16894}
16895pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED:
16896    D3D12_MESSAGE_CATEGORY = 0;
16897pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_MISCELLANEOUS:
16898    D3D12_MESSAGE_CATEGORY = 1;
16899pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_INITIALIZATION:
16900    D3D12_MESSAGE_CATEGORY = 2;
16901pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_CLEANUP:
16902    D3D12_MESSAGE_CATEGORY = 3;
16903pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_COMPILATION:
16904    D3D12_MESSAGE_CATEGORY = 4;
16905pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_STATE_CREATION:
16906    D3D12_MESSAGE_CATEGORY = 5;
16907pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_STATE_SETTING:
16908    D3D12_MESSAGE_CATEGORY = 6;
16909pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_STATE_GETTING:
16910    D3D12_MESSAGE_CATEGORY = 7;
16911pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION : D3D12_MESSAGE_CATEGORY = 8 ;
16912pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_EXECUTION:
16913    D3D12_MESSAGE_CATEGORY = 9;
16914pub const D3D12_MESSAGE_CATEGORY_D3D12_MESSAGE_CATEGORY_SHADER:
16915    D3D12_MESSAGE_CATEGORY = 10;
16916pub type D3D12_MESSAGE_CATEGORY = ::std::os::raw::c_int;
16917pub const D3D12_MESSAGE_SEVERITY_D3D12_MESSAGE_SEVERITY_CORRUPTION:
16918    D3D12_MESSAGE_SEVERITY = 0;
16919pub const D3D12_MESSAGE_SEVERITY_D3D12_MESSAGE_SEVERITY_ERROR:
16920    D3D12_MESSAGE_SEVERITY = 1;
16921pub const D3D12_MESSAGE_SEVERITY_D3D12_MESSAGE_SEVERITY_WARNING:
16922    D3D12_MESSAGE_SEVERITY = 2;
16923pub const D3D12_MESSAGE_SEVERITY_D3D12_MESSAGE_SEVERITY_INFO:
16924    D3D12_MESSAGE_SEVERITY = 3;
16925pub const D3D12_MESSAGE_SEVERITY_D3D12_MESSAGE_SEVERITY_MESSAGE:
16926    D3D12_MESSAGE_SEVERITY = 4;
16927pub type D3D12_MESSAGE_SEVERITY = ::std::os::raw::c_int;
16928pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNKNOWN: D3D12_MESSAGE_ID = 0;
16929pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_STRING_FROM_APPLICATION:
16930    D3D12_MESSAGE_ID = 1;
16931pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_THIS: D3D12_MESSAGE_ID =
16932    2;
16933pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1:
16934    D3D12_MESSAGE_ID = 3;
16935pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2:
16936    D3D12_MESSAGE_ID = 4;
16937pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3:
16938    D3D12_MESSAGE_ID = 5;
16939pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4:
16940    D3D12_MESSAGE_ID = 6;
16941pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5:
16942    D3D12_MESSAGE_ID = 7;
16943pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6:
16944    D3D12_MESSAGE_ID = 8;
16945pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7:
16946    D3D12_MESSAGE_ID = 9;
16947pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8:
16948    D3D12_MESSAGE_ID = 10;
16949pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9:
16950    D3D12_MESSAGE_ID = 11;
16951pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10:
16952    D3D12_MESSAGE_ID = 12;
16953pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11:
16954    D3D12_MESSAGE_ID = 13;
16955pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12:
16956    D3D12_MESSAGE_ID = 14;
16957pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13:
16958    D3D12_MESSAGE_ID = 15;
16959pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14:
16960    D3D12_MESSAGE_ID = 16;
16961pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15:
16962    D3D12_MESSAGE_ID = 17;
16963pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING:
16964    D3D12_MESSAGE_ID = 18;
16965pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY:
16966    D3D12_MESSAGE_ID = 19;
16967pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA:
16968    D3D12_MESSAGE_ID = 20;
16969pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA:
16970    D3D12_MESSAGE_ID = 21;
16971pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS:
16972    D3D12_MESSAGE_ID = 24;
16973pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY:
16974    D3D12_MESSAGE_ID = 25;
16975pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT : D3D12_MESSAGE_ID = 26 ;
16976pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC : D3D12_MESSAGE_ID = 27 ;
16977pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT : D3D12_MESSAGE_ID = 28 ;
16978pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE : D3D12_MESSAGE_ID = 29 ;
16979pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE : D3D12_MESSAGE_ID = 30 ;
16980pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS : D3D12_MESSAGE_ID = 31 ;
16981pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE : D3D12_MESSAGE_ID = 32 ;
16982pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT : D3D12_MESSAGE_ID = 35 ;
16983pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT : D3D12_MESSAGE_ID = 36 ;
16984pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC : D3D12_MESSAGE_ID = 37 ;
16985pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT : D3D12_MESSAGE_ID = 38 ;
16986pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE : D3D12_MESSAGE_ID = 39 ;
16987pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE : D3D12_MESSAGE_ID = 40 ;
16988pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS : D3D12_MESSAGE_ID = 41 ;
16989pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE : D3D12_MESSAGE_ID = 42 ;
16990pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT : D3D12_MESSAGE_ID = 45 ;
16991pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC : D3D12_MESSAGE_ID = 46 ;
16992pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT : D3D12_MESSAGE_ID = 47 ;
16993pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS : D3D12_MESSAGE_ID = 48 ;
16994pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE : D3D12_MESSAGE_ID = 49 ;
16995pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY:
16996    D3D12_MESSAGE_ID = 52;
16997pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS : D3D12_MESSAGE_ID = 53 ;
16998pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT:
16999    D3D12_MESSAGE_ID = 54;
17000pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT : D3D12_MESSAGE_ID = 55 ;
17001pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT:
17002    D3D12_MESSAGE_ID = 56;
17003pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS : D3D12_MESSAGE_ID = 57 ;
17004pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH : D3D12_MESSAGE_ID = 58 ;
17005pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE : D3D12_MESSAGE_ID = 59 ;
17006pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE : D3D12_MESSAGE_ID = 60 ;
17007pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT : D3D12_MESSAGE_ID = 61 ;
17008pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC : D3D12_MESSAGE_ID = 62 ;
17009pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE : D3D12_MESSAGE_ID = 63 ;
17010pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC:
17011    D3D12_MESSAGE_ID = 64;
17012pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT:
17013    D3D12_MESSAGE_ID = 65;
17014pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY:
17015    D3D12_MESSAGE_ID = 66;
17016pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 67 ;
17017pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 68 ;
17018pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY:
17019    D3D12_MESSAGE_ID = 69;
17020pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 70 ;
17021pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 71 ;
17022pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY : D3D12_MESSAGE_ID = 72 ;
17023pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 73 ;
17024pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 74 ;
17025pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES : D3D12_MESSAGE_ID = 75 ;
17026pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED : D3D12_MESSAGE_ID = 76 ;
17027pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED : D3D12_MESSAGE_ID = 79 ;
17028pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT : D3D12_MESSAGE_ID = 80 ;
17029pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT : D3D12_MESSAGE_ID = 81 ;
17030pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT : D3D12_MESSAGE_ID = 82 ;
17031pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT : D3D12_MESSAGE_ID = 83 ;
17032pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION : D3D12_MESSAGE_ID = 84 ;
17033pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT : D3D12_MESSAGE_ID = 85 ;
17034pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE : D3D12_MESSAGE_ID = 86 ;
17035pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC : D3D12_MESSAGE_ID = 87 ;
17036pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH : D3D12_MESSAGE_ID = 88 ;
17037pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS : D3D12_MESSAGE_ID = 89 ;
17038pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX : D3D12_MESSAGE_ID = 90 ;
17039pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE : D3D12_MESSAGE_ID = 91 ;
17040pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY:
17041    D3D12_MESSAGE_ID = 92;
17042pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 93 ;
17043pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 94 ;
17044pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE : D3D12_MESSAGE_ID = 95 ;
17045pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE : D3D12_MESSAGE_ID = 96 ;
17046pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP : D3D12_MESSAGE_ID = 97 ;
17047pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS : D3D12_MESSAGE_ID = 98 ;
17048pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK : D3D12_MESSAGE_ID = 100 ;
17049pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC : D3D12_MESSAGE_ID = 101 ;
17050pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP : D3D12_MESSAGE_ID = 102 ;
17051pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP : D3D12_MESSAGE_ID = 103 ;
17052pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP : D3D12_MESSAGE_ID = 104 ;
17053pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC : D3D12_MESSAGE_ID = 105 ;
17054pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP : D3D12_MESSAGE_ID = 106 ;
17055pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP : D3D12_MESSAGE_ID = 107 ;
17056pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP : D3D12_MESSAGE_ID = 108 ;
17057pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC : D3D12_MESSAGE_ID = 109 ;
17058pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND:
17059    D3D12_MESSAGE_ID = 111;
17060pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND : D3D12_MESSAGE_ID = 112 ;
17061pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP:
17062    D3D12_MESSAGE_ID = 113;
17063pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA : D3D12_MESSAGE_ID = 114 ;
17064pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA : D3D12_MESSAGE_ID = 115 ;
17065pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA : D3D12_MESSAGE_ID = 116 ;
17066pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK : D3D12_MESSAGE_ID = 117 ;
17067pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID:
17068    D3D12_MESSAGE_ID = 135;
17069pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET : D3D12_MESSAGE_ID = 200 ;
17070pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 201 ;
17071pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET : D3D12_MESSAGE_ID = 202 ;
17072pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL : D3D12_MESSAGE_ID = 209 ;
17073pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL : D3D12_MESSAGE_ID = 210 ;
17074pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET : D3D12_MESSAGE_ID = 211 ;
17075pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID : D3D12_MESSAGE_ID = 212 ;
17076pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL : D3D12_MESSAGE_ID = 213 ;
17077pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY : D3D12_MESSAGE_ID = 219 ;
17078pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED : D3D12_MESSAGE_ID = 221 ;
17079pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED : D3D12_MESSAGE_ID = 222 ;
17080pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT:
17081    D3D12_MESSAGE_ID = 232;
17082pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT : D3D12_MESSAGE_ID = 233 ;
17083pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT : D3D12_MESSAGE_ID = 234 ;
17084pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC : D3D12_MESSAGE_ID = 239 ;
17085pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC : D3D12_MESSAGE_ID = 240 ;
17086pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH:
17087    D3D12_MESSAGE_ID = 245;
17088pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT:
17089    D3D12_MESSAGE_ID = 253;
17090pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY:
17091    D3D12_MESSAGE_ID = 255;
17092pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_DEVICE: D3D12_MESSAGE_ID = 274;
17093pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_SWAPCHAIN: D3D12_MESSAGE_ID =
17094    275;
17095pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS : D3D12_MESSAGE_ID = 276 ;
17096pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 277 ;
17097pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 278 ;
17098pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER : D3D12_MESSAGE_ID = 280 ;
17099pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 283 ;
17100pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM : D3D12_MESSAGE_ID = 284 ;
17101pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES : D3D12_MESSAGE_ID = 285 ;
17102pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES : D3D12_MESSAGE_ID = 286 ;
17103pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES : D3D12_MESSAGE_ID = 287 ;
17104pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY:
17105    D3D12_MESSAGE_ID = 289;
17106pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 290 ;
17107pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 291 ;
17108pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 292 ;
17109pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY:
17110    D3D12_MESSAGE_ID = 294;
17111pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 295 ;
17112pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 296 ;
17113pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 297 ;
17114pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED:
17115    D3D12_MESSAGE_ID = 310;
17116pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE : D3D12_MESSAGE_ID = 318 ;
17117pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY:
17118    D3D12_MESSAGE_ID = 321;
17119pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 322 ;
17120pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE : D3D12_MESSAGE_ID = 323 ;
17121pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 331 ;
17122pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 332 ;
17123pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 333 ;
17124pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 334 ;
17125pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 335 ;
17126pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 336 ;
17127pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED : D3D12_MESSAGE_ID = 337 ;
17128pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE : D3D12_MESSAGE_ID = 340 ;
17129pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC : D3D12_MESSAGE_ID = 341 ;
17130pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT : D3D12_MESSAGE_ID = 342 ;
17131pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE : D3D12_MESSAGE_ID = 343 ;
17132pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE : D3D12_MESSAGE_ID = 344 ;
17133pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS : D3D12_MESSAGE_ID = 345 ;
17134pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT : D3D12_MESSAGE_ID = 346 ;
17135pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS : D3D12_MESSAGE_ID = 354 ;
17136pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT : D3D12_MESSAGE_ID = 401 ;
17137pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS:
17138    D3D12_MESSAGE_ID = 403;
17139pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 410 ;
17140pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 412 ;
17141pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 414 ;
17142pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 416 ;
17143pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 418 ;
17144pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 420 ;
17145pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED : D3D12_MESSAGE_ID = 422 ;
17146pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 425 ;
17147pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 426 ;
17148pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 427 ;
17149pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 428 ;
17150pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 429 ;
17151pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 430 ;
17152pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED : D3D12_MESSAGE_ID = 431 ;
17153pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT : D3D12_MESSAGE_ID = 447 ;
17154pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT:
17155    D3D12_MESSAGE_ID = 448;
17156pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER : D3D12_MESSAGE_ID = 493 ;
17157pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER : D3D12_MESSAGE_ID = 494 ;
17158pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS:
17159    D3D12_MESSAGE_ID = 506;
17160pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEVICE_WARNING:
17161    D3D12_MESSAGE_ID = 507;
17162pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE:
17163    D3D12_MESSAGE_ID = 519;
17164pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER:
17165    D3D12_MESSAGE_ID = 520;
17166pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE : D3D12_MESSAGE_ID = 521 ;
17167pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS:
17168    D3D12_MESSAGE_ID = 522;
17169pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS : D3D12_MESSAGE_ID = 523 ;
17170pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS : D3D12_MESSAGE_ID = 524 ;
17171pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES:
17172    D3D12_MESSAGE_ID = 525;
17173pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION : D3D12_MESSAGE_ID = 526 ;
17174pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH : D3D12_MESSAGE_ID = 527 ;
17175pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE : D3D12_MESSAGE_ID = 528 ;
17176pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT:
17177    D3D12_MESSAGE_ID = 529;
17178pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS:
17179    D3D12_MESSAGE_ID = 530;
17180pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS : D3D12_MESSAGE_ID = 531 ;
17181pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT : D3D12_MESSAGE_ID = 532 ;
17182pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER : D3D12_MESSAGE_ID = 533 ;
17183pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END:
17184    D3D12_MESSAGE_ID = 534;
17185pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN:
17186    D3D12_MESSAGE_ID = 535;
17187pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG:
17188    D3D12_MESSAGE_ID = 536;
17189pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE : D3D12_MESSAGE_ID = 537 ;
17190pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE:
17191    D3D12_MESSAGE_ID = 538;
17192pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION:
17193    D3D12_MESSAGE_ID = 540;
17194pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET:
17195    D3D12_MESSAGE_ID = 541;
17196pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE:
17197    D3D12_MESSAGE_ID = 542;
17198pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET:
17199    D3D12_MESSAGE_ID = 543;
17200pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_OPEN:
17201    D3D12_MESSAGE_ID = 544;
17202pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_BUNDLE_API:
17203    D3D12_MESSAGE_ID = 546;
17204pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED:
17205    D3D12_MESSAGE_ID = 547;
17206pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE:
17207    D3D12_MESSAGE_ID = 549;
17208pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC:
17209    D3D12_MESSAGE_ID = 552;
17210pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_SYNC:
17211    D3D12_MESSAGE_ID = 553;
17212pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID:
17213    D3D12_MESSAGE_ID = 554;
17214pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE:
17215    D3D12_MESSAGE_ID = 557;
17216pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR:
17217    D3D12_MESSAGE_ID = 558;
17218pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_PIPELINESTATE:
17219    D3D12_MESSAGE_ID = 559;
17220pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDLIST12:
17221    D3D12_MESSAGE_ID = 560;
17222pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_RESOURCE: D3D12_MESSAGE_ID =
17223    562;
17224pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP:
17225    D3D12_MESSAGE_ID = 563;
17226pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE:
17227    D3D12_MESSAGE_ID = 564;
17228pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_LIBRARY: D3D12_MESSAGE_ID =
17229    565;
17230pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_HEAP: D3D12_MESSAGE_ID = 566;
17231pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE:
17232    D3D12_MESSAGE_ID = 567;
17233pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_QUERYHEAP: D3D12_MESSAGE_ID =
17234    568;
17235pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE:
17236    D3D12_MESSAGE_ID = 569;
17237pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE:
17238    D3D12_MESSAGE_ID = 570;
17239pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR:
17240    D3D12_MESSAGE_ID = 571;
17241pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_PIPELINESTATE:
17242    D3D12_MESSAGE_ID = 572;
17243pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDLIST12:
17244    D3D12_MESSAGE_ID = 573;
17245pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_RESOURCE: D3D12_MESSAGE_ID =
17246    575;
17247pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP:
17248    D3D12_MESSAGE_ID = 576;
17249pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE:
17250    D3D12_MESSAGE_ID = 577;
17251pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_LIBRARY: D3D12_MESSAGE_ID =
17252    578;
17253pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_HEAP: D3D12_MESSAGE_ID = 579;
17254pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE:
17255    D3D12_MESSAGE_ID = 580;
17256pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_QUERYHEAP: D3D12_MESSAGE_ID =
17257    581;
17258pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE:
17259    D3D12_MESSAGE_ID = 582;
17260pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE:
17261    D3D12_MESSAGE_ID = 583;
17262pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR:
17263    D3D12_MESSAGE_ID = 584;
17264pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE:
17265    D3D12_MESSAGE_ID = 585;
17266pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12:
17267    D3D12_MESSAGE_ID = 586;
17268pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_RESOURCE: D3D12_MESSAGE_ID =
17269    588;
17270pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP:
17271    D3D12_MESSAGE_ID = 589;
17272pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE:
17273    D3D12_MESSAGE_ID = 590;
17274pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_LIBRARY: D3D12_MESSAGE_ID =
17275    591;
17276pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_HEAP: D3D12_MESSAGE_ID =
17277    592;
17278pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE:
17279    D3D12_MESSAGE_ID = 593;
17280pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_QUERYHEAP:
17281    D3D12_MESSAGE_ID = 594;
17282pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE:
17283    D3D12_MESSAGE_ID = 595;
17284pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS:
17285    D3D12_MESSAGE_ID = 597;
17286pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS:
17287    D3D12_MESSAGE_ID = 599;
17288pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN:
17289    D3D12_MESSAGE_ID = 602;
17290pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN : D3D12_MESSAGE_ID = 603 ;
17291pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC:
17292    D3D12_MESSAGE_ID = 604;
17293pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE : D3D12_MESSAGE_ID = 607 ;
17294pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE : D3D12_MESSAGE_ID = 608 ;
17295pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE : D3D12_MESSAGE_ID = 609 ;
17296pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH:
17297    D3D12_MESSAGE_ID = 610;
17298pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE : D3D12_MESSAGE_ID = 611 ;
17299pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE : D3D12_MESSAGE_ID = 613 ;
17300pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE : D3D12_MESSAGE_ID = 614 ;
17301pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE : D3D12_MESSAGE_ID = 615 ;
17302pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE : D3D12_MESSAGE_ID = 616 ;
17303pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE:
17304    D3D12_MESSAGE_ID = 622;
17305pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC:
17306    D3D12_MESSAGE_ID = 623;
17307pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE:
17308    D3D12_MESSAGE_ID = 624;
17309pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE:
17310    D3D12_MESSAGE_ID = 625;
17311pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES : D3D12_MESSAGE_ID = 626 ;
17312pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL : D3D12_MESSAGE_ID = 627 ;
17313pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES:
17314    D3D12_MESSAGE_ID = 628;
17315pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT:
17316    D3D12_MESSAGE_ID = 629;
17317pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS:
17318    D3D12_MESSAGE_ID = 630;
17319pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS:
17320    D3D12_MESSAGE_ID = 631;
17321pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN:
17322    D3D12_MESSAGE_ID = 632;
17323pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN:
17324    D3D12_MESSAGE_ID = 633;
17325pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES : D3D12_MESSAGE_ID = 634 ;
17326pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE : D3D12_MESSAGE_ID = 635 ;
17327pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES : D3D12_MESSAGE_ID = 636 ;
17328pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL : D3D12_MESSAGE_ID = 637 ;
17329pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES : D3D12_MESSAGE_ID = 638 ;
17330pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS : D3D12_MESSAGE_ID = 639 ;
17331pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS : D3D12_MESSAGE_ID = 640 ;
17332pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN : D3D12_MESSAGE_ID = 641 ;
17333pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN : D3D12_MESSAGE_ID = 642 ;
17334pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE : D3D12_MESSAGE_ID = 643 ;
17335pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE : D3D12_MESSAGE_ID = 644 ;
17336pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC : D3D12_MESSAGE_ID = 645 ;
17337pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE:
17338    D3D12_MESSAGE_ID = 646;
17339pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE : D3D12_MESSAGE_ID = 647 ;
17340pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE : D3D12_MESSAGE_ID = 649 ;
17341pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC : D3D12_MESSAGE_ID = 650 ;
17342pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE : D3D12_MESSAGE_ID = 652 ;
17343pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES:
17344    D3D12_MESSAGE_ID = 653;
17345pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR : D3D12_MESSAGE_ID = 654 ;
17346pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN : D3D12_MESSAGE_ID = 655 ;
17347pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT : D3D12_MESSAGE_ID = 656 ;
17348pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET : D3D12_MESSAGE_ID = 657 ;
17349pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET : D3D12_MESSAGE_ID = 658 ;
17350pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 659 ;
17351pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX : D3D12_MESSAGE_ID = 660 ;
17352pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE : D3D12_MESSAGE_ID = 661 ;
17353pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK : D3D12_MESSAGE_ID = 662 ;
17354pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE : D3D12_MESSAGE_ID = 663 ;
17355pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS : D3D12_MESSAGE_ID = 664 ;
17356pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION : D3D12_MESSAGE_ID = 665 ;
17357pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND : D3D12_MESSAGE_ID = 666 ;
17358pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH : D3D12_MESSAGE_ID = 667 ;
17359pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH : D3D12_MESSAGE_ID = 668 ;
17360pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH : D3D12_MESSAGE_ID = 669 ;
17361pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH : D3D12_MESSAGE_ID = 670 ;
17362pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN : D3D12_MESSAGE_ID = 671 ;
17363pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT : D3D12_MESSAGE_ID = 672 ;
17364pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY : D3D12_MESSAGE_ID = 673 ;
17365pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE : D3D12_MESSAGE_ID = 674 ;
17366pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 : D3D12_MESSAGE_ID = 675 ;
17367pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING : D3D12_MESSAGE_ID = 676 ;
17368pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH : D3D12_MESSAGE_ID = 677 ;
17369pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS : D3D12_MESSAGE_ID = 678 ;
17370pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET : D3D12_MESSAGE_ID = 679 ;
17371pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET : D3D12_MESSAGE_ID = 680 ;
17372pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH : D3D12_MESSAGE_ID = 681 ;
17373pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT : D3D12_MESSAGE_ID = 682 ;
17374pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS : D3D12_MESSAGE_ID = 683 ;
17375pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES : D3D12_MESSAGE_ID = 684 ;
17376pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC : D3D12_MESSAGE_ID = 685 ;
17377pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 686 ;
17378pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 687 ;
17379pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 688 ;
17380pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 689 ;
17381pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 690 ;
17382pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE : D3D12_MESSAGE_ID = 691 ;
17383pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE:
17384    D3D12_MESSAGE_ID = 692;
17385pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH : D3D12_MESSAGE_ID = 693 ;
17386pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE:
17387    D3D12_MESSAGE_ID = 694;
17388pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE:
17389    D3D12_MESSAGE_ID = 695;
17390pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND : D3D12_MESSAGE_ID = 696 ;
17391pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED : D3D12_MESSAGE_ID = 697 ;
17392pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION : D3D12_MESSAGE_ID = 698 ;
17393pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE : D3D12_MESSAGE_ID = 699 ;
17394pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES : D3D12_MESSAGE_ID = 700 ;
17395pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP:
17396    D3D12_MESSAGE_ID = 701;
17397pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS : D3D12_MESSAGE_ID = 702 ;
17398pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY:
17399    D3D12_MESSAGE_ID = 703;
17400pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY:
17401    D3D12_MESSAGE_ID = 705;
17402pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID:
17403    D3D12_MESSAGE_ID = 708;
17404pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID:
17405    D3D12_MESSAGE_ID = 709;
17406pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID : D3D12_MESSAGE_ID = 710 ;
17407pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID : D3D12_MESSAGE_ID = 711 ;
17408pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID : D3D12_MESSAGE_ID = 712 ;
17409pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC:
17410    D3D12_MESSAGE_ID = 713;
17411pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC:
17412    D3D12_MESSAGE_ID = 715;
17413pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC : D3D12_MESSAGE_ID = 717 ;
17414pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY : D3D12_MESSAGE_ID = 718 ;
17415pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT : D3D12_MESSAGE_ID = 719 ;
17416pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY : D3D12_MESSAGE_ID = 720 ;
17417pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT:
17418    D3D12_MESSAGE_ID = 721;
17419pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS:
17420    D3D12_MESSAGE_ID = 722;
17421pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC:
17422    D3D12_MESSAGE_ID = 723;
17423pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT:
17424    D3D12_MESSAGE_ID = 724;
17425pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID:
17426    D3D12_MESSAGE_ID = 725;
17427pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID:
17428    D3D12_MESSAGE_ID = 726;
17429pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID : D3D12_MESSAGE_ID = 727 ;
17430pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID:
17431    D3D12_MESSAGE_ID = 728;
17432pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 729 ;
17433pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 731 ;
17434pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY:
17435    D3D12_MESSAGE_ID = 732;
17436pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 733 ;
17437pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 734 ;
17438pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED:
17439    D3D12_MESSAGE_ID = 735;
17440pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT : D3D12_MESSAGE_ID = 737 ;
17441pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT:
17442    D3D12_MESSAGE_ID = 738;
17443pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE : D3D12_MESSAGE_ID = 739 ;
17444pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET : D3D12_MESSAGE_ID = 740 ;
17445pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE : D3D12_MESSAGE_ID = 739 ;
17446pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET : D3D12_MESSAGE_ID = 740 ;
17447pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP:
17448    D3D12_MESSAGE_ID = 741;
17449pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID:
17450    D3D12_MESSAGE_ID = 742;
17451pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID:
17452    D3D12_MESSAGE_ID = 743;
17453pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 744 ;
17454pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION : D3D12_MESSAGE_ID = 745 ;
17455pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE:
17456    D3D12_MESSAGE_ID = 815;
17457pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT : D3D12_MESSAGE_ID = 816 ;
17458pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT : D3D12_MESSAGE_ID = 817 ;
17459pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH : D3D12_MESSAGE_ID = 818 ;
17460pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE : D3D12_MESSAGE_ID = 820 ;
17461pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE : D3D12_MESSAGE_ID = 821 ;
17462pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDHEAP: D3D12_MESSAGE_ID =
17463    822;
17464pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP:
17465    D3D12_MESSAGE_ID = 823;
17466pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE:
17467    D3D12_MESSAGE_ID = 824;
17468pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE:
17469    D3D12_MESSAGE_ID = 825;
17470pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE:
17471    D3D12_MESSAGE_ID = 826;
17472pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE:
17473    D3D12_MESSAGE_ID = 827;
17474pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDRANGE: D3D12_MESSAGE_ID =
17475    828;
17476pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE:
17477    D3D12_MESSAGE_ID = 829;
17478pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER:
17479    D3D12_MESSAGE_ID = 832;
17480pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN:
17481    D3D12_MESSAGE_ID = 833;
17482pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN:
17483    D3D12_MESSAGE_ID = 834;
17484pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED : D3D12_MESSAGE_ID = 835 ;
17485pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH : D3D12_MESSAGE_ID = 836 ;
17486pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST : D3D12_MESSAGE_ID = 837 ;
17487pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST : D3D12_MESSAGE_ID = 838 ;
17488pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST:
17489    D3D12_MESSAGE_ID = 839;
17490pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION : D3D12_MESSAGE_ID = 840 ;
17491pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS : D3D12_MESSAGE_ID = 841 ;
17492pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC:
17493    D3D12_MESSAGE_ID = 842;
17494pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION : D3D12_MESSAGE_ID = 843 ;
17495pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS : D3D12_MESSAGE_ID = 844 ;
17496pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS : D3D12_MESSAGE_ID = 845 ;
17497pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST:
17498    D3D12_MESSAGE_ID = 846;
17499pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE : D3D12_MESSAGE_ID = 847 ;
17500pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION : D3D12_MESSAGE_ID = 848 ;
17501pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE : D3D12_MESSAGE_ID = 849 ;
17502pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE : D3D12_MESSAGE_ID = 850 ;
17503pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET : D3D12_MESSAGE_ID = 851 ;
17504pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT : D3D12_MESSAGE_ID = 852 ;
17505pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT : D3D12_MESSAGE_ID = 853 ;
17506pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS : D3D12_MESSAGE_ID = 854 ;
17507pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH : D3D12_MESSAGE_ID = 855 ;
17508pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT : D3D12_MESSAGE_ID = 856 ;
17509pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT : D3D12_MESSAGE_ID = 857 ;
17510pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS : D3D12_MESSAGE_ID = 858 ;
17511pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC:
17512    D3D12_MESSAGE_ID = 859;
17513pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE : D3D12_MESSAGE_ID = 860 ;
17514pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION : D3D12_MESSAGE_ID = 861 ;
17515pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE : D3D12_MESSAGE_ID = 862 ;
17516pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE : D3D12_MESSAGE_ID = 863 ;
17517pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET : D3D12_MESSAGE_ID = 864 ;
17518pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT : D3D12_MESSAGE_ID = 865 ;
17519pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT : D3D12_MESSAGE_ID = 866 ;
17520pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS : D3D12_MESSAGE_ID = 867 ;
17521pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH : D3D12_MESSAGE_ID = 868 ;
17522pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT : D3D12_MESSAGE_ID = 869 ;
17523pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT : D3D12_MESSAGE_ID = 870 ;
17524pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS : D3D12_MESSAGE_ID = 871 ;
17525pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES : D3D12_MESSAGE_ID = 872 ;
17526pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX:
17527    D3D12_MESSAGE_ID = 873;
17528pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH:
17529    D3D12_MESSAGE_ID = 874;
17530pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX:
17531    D3D12_MESSAGE_ID = 875;
17532pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS : D3D12_MESSAGE_ID = 876 ;
17533pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX : D3D12_MESSAGE_ID = 877 ;
17534pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT : D3D12_MESSAGE_ID = 878 ;
17535pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH : D3D12_MESSAGE_ID = 879 ;
17536pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT : D3D12_MESSAGE_ID = 880 ;
17537pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER : D3D12_MESSAGE_ID = 881 ;
17538pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 882 ;
17539pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE : D3D12_MESSAGE_ID = 883 ;
17540pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB : D3D12_MESSAGE_ID = 884 ;
17541pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH : D3D12_MESSAGE_ID = 885 ;
17542pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH : D3D12_MESSAGE_ID = 886 ;
17543pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH : D3D12_MESSAGE_ID = 887 ;
17544pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED : D3D12_MESSAGE_ID = 888 ;
17545pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP:
17546    D3D12_MESSAGE_ID = 889;
17547pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE : D3D12_MESSAGE_ID = 890 ;
17548pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX:
17549    D3D12_MESSAGE_ID = 891;
17550pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE : D3D12_MESSAGE_ID = 892 ;
17551pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX:
17552    D3D12_MESSAGE_ID = 893;
17553pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP:
17554    D3D12_MESSAGE_ID = 894;
17555pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE : D3D12_MESSAGE_ID = 895 ;
17556pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX:
17557    D3D12_MESSAGE_ID = 896;
17558pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE : D3D12_MESSAGE_ID = 897 ;
17559pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX:
17560    D3D12_MESSAGE_ID = 898;
17561pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED:
17562    D3D12_MESSAGE_ID = 899;
17563pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_NODE_INDEX:
17564    D3D12_MESSAGE_ID = 900;
17565pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE : D3D12_MESSAGE_ID = 901 ;
17566pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NODE_MASK_MISMATCH:
17567    D3D12_MESSAGE_ID = 902;
17568pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY:
17569    D3D12_MESSAGE_ID = 903;
17570pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES : D3D12_MESSAGE_ID = 904 ;
17571pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES : D3D12_MESSAGE_ID = 905 ;
17572pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES : D3D12_MESSAGE_ID = 906 ;
17573pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE : D3D12_MESSAGE_ID = 907 ;
17574pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS : D3D12_MESSAGE_ID = 908 ;
17575pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE:
17576    D3D12_MESSAGE_ID = 909;
17577pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS:
17578    D3D12_MESSAGE_ID = 910;
17579pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS : D3D12_MESSAGE_ID = 911 ;
17580pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT : D3D12_MESSAGE_ID = 912 ;
17581pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS:
17582    D3D12_MESSAGE_ID = 913;
17583pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES : D3D12_MESSAGE_ID = 914 ;
17584pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE : D3D12_MESSAGE_ID = 915 ;
17585pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT : D3D12_MESSAGE_ID = 916 ;
17586pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT:
17587    D3D12_MESSAGE_ID = 917;
17588pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY:
17589    D3D12_MESSAGE_ID = 918;
17590pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE:
17591    D3D12_MESSAGE_ID = 919;
17592pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY:
17593    D3D12_MESSAGE_ID = 920;
17594pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE : D3D12_MESSAGE_ID = 921 ;
17595pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS : D3D12_MESSAGE_ID = 922 ;
17596pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE : D3D12_MESSAGE_ID = 923 ;
17597pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED : D3D12_MESSAGE_ID = 924 ;
17598pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT : D3D12_MESSAGE_ID = 925 ;
17599pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS : D3D12_MESSAGE_ID = 926 ;
17600pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED : D3D12_MESSAGE_ID = 927 ;
17601pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY:
17602    D3D12_MESSAGE_ID = 929;
17603pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE:
17604    D3D12_MESSAGE_ID = 930;
17605pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE:
17606    D3D12_MESSAGE_ID = 931;
17607pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT:
17608    D3D12_MESSAGE_ID = 932;
17609pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT:
17610    D3D12_MESSAGE_ID = 933;
17611pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED : D3D12_MESSAGE_ID = 934 ;
17612pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED : D3D12_MESSAGE_ID = 935 ;
17613pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 936 ;
17614pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 937 ;
17615pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED : D3D12_MESSAGE_ID = 938 ;
17616pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH : D3D12_MESSAGE_ID = 939 ;
17617pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH : D3D12_MESSAGE_ID = 940 ;
17618pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH : D3D12_MESSAGE_ID = 941 ;
17619pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE : D3D12_MESSAGE_ID = 942 ;
17620pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST:
17621    D3D12_MESSAGE_ID = 943;
17622pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE:
17623    D3D12_MESSAGE_ID = 944;
17624pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC:
17625    D3D12_MESSAGE_ID = 945;
17626pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE:
17627    D3D12_MESSAGE_ID = 946;
17628pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST:
17629    D3D12_MESSAGE_ID = 947;
17630pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE : D3D12_MESSAGE_ID = 948 ;
17631pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC:
17632    D3D12_MESSAGE_ID = 949;
17633pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE : D3D12_MESSAGE_ID = 950 ;
17634pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH:
17635    D3D12_MESSAGE_ID = 951;
17636pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET : D3D12_MESSAGE_ID = 952 ;
17637pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 953 ;
17638pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS:
17639    D3D12_MESSAGE_ID = 954;
17640pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH:
17641    D3D12_MESSAGE_ID = 955;
17642pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH : D3D12_MESSAGE_ID = 956 ;
17643pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END : D3D12_MESSAGE_ID = 957 ;
17644pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE : D3D12_MESSAGE_ID = 958 ;
17645pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT:
17646    D3D12_MESSAGE_ID = 959;
17647pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE : D3D12_MESSAGE_ID = 960 ;
17648pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 961 ;
17649pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB : D3D12_MESSAGE_ID = 962 ;
17650pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH : D3D12_MESSAGE_ID = 963 ;
17651pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH : D3D12_MESSAGE_ID = 964 ;
17652pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED : D3D12_MESSAGE_ID = 965 ;
17653pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY:
17654    D3D12_MESSAGE_ID = 966;
17655pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY:
17656    D3D12_MESSAGE_ID = 967;
17657pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY:
17658    D3D12_MESSAGE_ID = 968;
17659pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_STOREPIPELINE_NONAME:
17660    D3D12_MESSAGE_ID = 969;
17661pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME:
17662    D3D12_MESSAGE_ID = 970;
17663pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND:
17664    D3D12_MESSAGE_ID = 971;
17665pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC:
17666    D3D12_MESSAGE_ID = 972;
17667pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY : D3D12_MESSAGE_ID = 973 ;
17668pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH : D3D12_MESSAGE_ID = 974 ;
17669pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS : D3D12_MESSAGE_ID = 975 ;
17670pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED:
17671    D3D12_MESSAGE_ID = 976;
17672pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED : D3D12_MESSAGE_ID = 977 ;
17673pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED : D3D12_MESSAGE_ID = 978 ;
17674pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST:
17675    D3D12_MESSAGE_ID = 979;
17676pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEODECODER:
17677    D3D12_MESSAGE_ID = 980;
17678pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM:
17679    D3D12_MESSAGE_ID = 981;
17680pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST:
17681    D3D12_MESSAGE_ID = 982;
17682pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEODECODER:
17683    D3D12_MESSAGE_ID = 983;
17684pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM:
17685    D3D12_MESSAGE_ID = 984;
17686pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST:
17687    D3D12_MESSAGE_ID = 985;
17688pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEODECODER:
17689    D3D12_MESSAGE_ID = 986;
17690pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM:
17691    D3D12_MESSAGE_ID = 987;
17692pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS:
17693    D3D12_MESSAGE_ID = 988;
17694pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEPRECATED_API: D3D12_MESSAGE_ID =
17695    989;
17696pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE : D3D12_MESSAGE_ID = 990 ;
17697pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET : D3D12_MESSAGE_ID = 991 ;
17698pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET : D3D12_MESSAGE_ID = 992 ;
17699pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET : D3D12_MESSAGE_ID = 993 ;
17700pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET : D3D12_MESSAGE_ID = 994 ;
17701pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE : D3D12_MESSAGE_ID = 995 ;
17702pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS : D3D12_MESSAGE_ID = 996 ;
17703pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D : D3D12_MESSAGE_ID = 997 ;
17704pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE:
17705    D3D12_MESSAGE_ID = 998;
17706pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE : D3D12_MESSAGE_ID = 999 ;
17707pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED:
17708    D3D12_MESSAGE_ID = 1000;
17709pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE : D3D12_MESSAGE_ID = 1001 ;
17710pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE : D3D12_MESSAGE_ID = 1002 ;
17711pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE : D3D12_MESSAGE_ID = 1003 ;
17712pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET : D3D12_MESSAGE_ID = 1004 ;
17713pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 1005 ;
17714pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH : D3D12_MESSAGE_ID = 1006 ;
17715pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS:
17716    D3D12_MESSAGE_ID = 1007;
17717pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS : D3D12_MESSAGE_ID = 1008 ;
17718pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY : D3D12_MESSAGE_ID = 1009 ;
17719pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS : D3D12_MESSAGE_ID = 1013 ;
17720pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_BEGIN_EVENT: D3D12_MESSAGE_ID =
17721    1014;
17722pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_END_EVENT: D3D12_MESSAGE_ID = 1015;
17723pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS : D3D12_MESSAGE_ID = 1016 ;
17724pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED : D3D12_MESSAGE_ID = 1017 ;
17725pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT : D3D12_MESSAGE_ID = 1018 ;
17726pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT : D3D12_MESSAGE_ID = 1019 ;
17727pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM : D3D12_MESSAGE_ID = 1020 ;
17728pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM : D3D12_MESSAGE_ID = 1021 ;
17729pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE : D3D12_MESSAGE_ID = 1022 ;
17730pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH : D3D12_MESSAGE_ID = 1023 ;
17731pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME : D3D12_MESSAGE_ID = 1024 ;
17732pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME : D3D12_MESSAGE_ID = 1025 ;
17733pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE : D3D12_MESSAGE_ID = 1026 ;
17734pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST:
17735    D3D12_MESSAGE_ID = 1027;
17736pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION : D3D12_MESSAGE_ID = 1028 ;
17737pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 1029 ;
17738pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC:
17739    D3D12_MESSAGE_ID = 1030;
17740pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION : D3D12_MESSAGE_ID = 1031 ;
17741pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 1032 ;
17742pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT : D3D12_MESSAGE_ID = 1033 ;
17743pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES : D3D12_MESSAGE_ID = 1034 ;
17744pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES : D3D12_MESSAGE_ID = 1035 ;
17745pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE : D3D12_MESSAGE_ID = 1036 ;
17746pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE : D3D12_MESSAGE_ID = 1037 ;
17747pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 1038 ;
17748pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS : D3D12_MESSAGE_ID = 1039 ;
17749pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES : D3D12_MESSAGE_ID = 1040 ;
17750pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG : D3D12_MESSAGE_ID = 1041 ;
17751pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE : D3D12_MESSAGE_ID = 1042 ;
17752pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS:
17753    D3D12_MESSAGE_ID = 1043;
17754pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE : D3D12_MESSAGE_ID = 1044 ;
17755pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET : D3D12_MESSAGE_ID = 1045 ;
17756pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH : D3D12_MESSAGE_ID = 1046 ;
17757pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE : D3D12_MESSAGE_ID = 1047 ;
17758pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED:
17759    D3D12_MESSAGE_ID = 1048;
17760pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS:
17761    D3D12_MESSAGE_ID = 1049;
17762pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT : D3D12_MESSAGE_ID = 1050 ;
17763pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE:
17764    D3D12_MESSAGE_ID = 1051;
17765pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST:
17766    D3D12_MESSAGE_ID = 1052;
17767pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE:
17768    D3D12_MESSAGE_ID = 1053;
17769pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE:
17770    D3D12_MESSAGE_ID = 1054;
17771pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST:
17772    D3D12_MESSAGE_ID = 1055;
17773pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE:
17774    D3D12_MESSAGE_ID = 1056;
17775pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE:
17776    D3D12_MESSAGE_ID = 1057;
17777pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST:
17778    D3D12_MESSAGE_ID = 1058;
17779pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE:
17780    D3D12_MESSAGE_ID = 1059;
17781pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR:
17782    D3D12_MESSAGE_ID = 1060;
17783pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM:
17784    D3D12_MESSAGE_ID = 1061;
17785pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR:
17786    D3D12_MESSAGE_ID = 1062;
17787pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM:
17788    D3D12_MESSAGE_ID = 1063;
17789pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR:
17790    D3D12_MESSAGE_ID = 1064;
17791pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM:
17792    D3D12_MESSAGE_ID = 1065;
17793pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS:
17794    D3D12_MESSAGE_ID = 1066;
17795pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT:
17796    D3D12_MESSAGE_ID = 1067;
17797pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION:
17798    D3D12_MESSAGE_ID = 1068;
17799pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY:
17800    D3D12_MESSAGE_ID = 1069;
17801pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION : D3D12_MESSAGE_ID = 1070 ;
17802pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION:
17803    D3D12_MESSAGE_ID = 1071;
17804pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY:
17805    D3D12_MESSAGE_ID = 1072;
17806pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION:
17807    D3D12_MESSAGE_ID = 1073;
17808pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION:
17809    D3D12_MESSAGE_ID = 1074;
17810pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY:
17811    D3D12_MESSAGE_ID = 1075;
17812pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION : D3D12_MESSAGE_ID = 1076 ;
17813pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED : D3D12_MESSAGE_ID = 1077 ;
17814pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION:
17815    D3D12_MESSAGE_ID = 1078;
17816pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED : D3D12_MESSAGE_ID = 1079 ;
17817pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED : D3D12_MESSAGE_ID = 1080 ;
17818pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE : D3D12_MESSAGE_ID = 1081 ;
17819pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR : D3D12_MESSAGE_ID = 1082 ;
17820pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP:
17821    D3D12_MESSAGE_ID = 1083;
17822pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP:
17823    D3D12_MESSAGE_ID = 1084;
17824pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP:
17825    D3D12_MESSAGE_ID = 1085;
17826pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN : D3D12_MESSAGE_ID = 1086 ;
17827pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN : D3D12_MESSAGE_ID = 1087 ;
17828pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS:
17829    D3D12_MESSAGE_ID = 1088;
17830pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE:
17831    D3D12_MESSAGE_ID = 1089;
17832pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST : D3D12_MESSAGE_ID = 1090 ;
17833pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE : D3D12_MESSAGE_ID = 1091 ;
17834pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT : D3D12_MESSAGE_ID = 1092 ;
17835pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED : D3D12_MESSAGE_ID = 1093 ;
17836pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS:
17837    D3D12_MESSAGE_ID = 1094;
17838pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED:
17839    D3D12_MESSAGE_ID = 1095;
17840pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS:
17841    D3D12_MESSAGE_ID = 1096;
17842pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG : D3D12_MESSAGE_ID = 1097 ;
17843pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG : D3D12_MESSAGE_ID = 1098 ;
17844pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE : D3D12_MESSAGE_ID = 1099 ;
17845pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED : D3D12_MESSAGE_ID = 1100 ;
17846pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT : D3D12_MESSAGE_ID = 1101 ;
17847pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED:
17848    D3D12_MESSAGE_ID = 1102;
17849pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR : D3D12_MESSAGE_ID = 1103 ;
17850pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED : D3D12_MESSAGE_ID = 1104 ;
17851pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR : D3D12_MESSAGE_ID = 1105 ;
17852pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT:
17853    D3D12_MESSAGE_ID = 1106;
17854pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT : D3D12_MESSAGE_ID = 1107 ;
17855pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE : D3D12_MESSAGE_ID = 1108 ;
17856pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT : D3D12_MESSAGE_ID = 1109 ;
17857pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1110 ;
17858pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS : D3D12_MESSAGE_ID = 1111 ;
17859pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED:
17860    D3D12_MESSAGE_ID = 1112;
17861pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1113 ;
17862pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED:
17863    D3D12_MESSAGE_ID = 1114;
17864pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER:
17865    D3D12_MESSAGE_ID = 1115;
17866pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER:
17867    D3D12_MESSAGE_ID = 1116;
17868pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER:
17869    D3D12_MESSAGE_ID = 1117;
17870pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED : D3D12_MESSAGE_ID = 1118 ;
17871pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS : D3D12_MESSAGE_ID = 1119 ;
17872pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS : D3D12_MESSAGE_ID = 1120 ;
17873pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS : D3D12_MESSAGE_ID = 1121 ;
17874pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMANDPOOL:
17875    D3D12_MESSAGE_ID = 1122;
17876pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_COMMANDPOOL: D3D12_MESSAGE_ID =
17877    1123;
17878pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL:
17879    D3D12_MESSAGE_ID = 1124;
17880pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS : D3D12_MESSAGE_ID = 1125 ;
17881pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED : D3D12_MESSAGE_ID = 1126 ;
17882pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH : D3D12_MESSAGE_ID = 1127 ;
17883pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION:
17884    D3D12_MESSAGE_ID = 1128;
17885pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST : D3D12_MESSAGE_ID = 1129 ;
17886pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST : D3D12_MESSAGE_ID = 1130 ;
17887pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST : D3D12_MESSAGE_ID = 1131 ;
17888pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS : D3D12_MESSAGE_ID = 1132 ;
17889pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET : D3D12_MESSAGE_ID = 1133 ;
17890pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING : D3D12_MESSAGE_ID = 1134 ;
17891pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMMAND_POOL_SYNC:
17892    D3D12_MESSAGE_ID = 1135;
17893pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EVICT_UNDERFLOW: D3D12_MESSAGE_ID =
17894    1136;
17895pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_META_COMMAND:
17896    D3D12_MESSAGE_ID = 1137;
17897pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_META_COMMAND:
17898    D3D12_MESSAGE_ID = 1138;
17899pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_META_COMMAND:
17900    D3D12_MESSAGE_ID = 1139;
17901pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE : D3D12_MESSAGE_ID = 1140 ;
17902pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE : D3D12_MESSAGE_ID = 1141 ;
17903pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE : D3D12_MESSAGE_ID = 1142 ;
17904pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE : D3D12_MESSAGE_ID = 1143 ;
17905pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER : D3D12_MESSAGE_ID = 1144 ;
17906pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC : D3D12_MESSAGE_ID = 1145 ;
17907pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED : D3D12_MESSAGE_ID = 1146 ;
17908pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION : D3D12_MESSAGE_ID = 1147 ;
17909pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS : D3D12_MESSAGE_ID = 1148 ;
17910pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET : D3D12_MESSAGE_ID = 1149 ;
17911pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION : D3D12_MESSAGE_ID = 1150 ;
17912pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS : D3D12_MESSAGE_ID = 1151 ;
17913pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN : D3D12_MESSAGE_ID = 1152 ;
17914pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER : D3D12_MESSAGE_ID = 1153 ;
17915pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES : D3D12_MESSAGE_ID = 1154 ;
17916pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE : D3D12_MESSAGE_ID = 1155 ;
17917pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS : D3D12_MESSAGE_ID = 1156 ;
17918pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED : D3D12_MESSAGE_ID = 1157 ;
17919pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID : D3D12_MESSAGE_ID = 1158 ;
17920pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID : D3D12_MESSAGE_ID = 1159 ;
17921pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID : D3D12_MESSAGE_ID = 1160 ;
17922pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID:
17923    D3D12_MESSAGE_ID = 1161;
17924pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID : D3D12_MESSAGE_ID = 1162 ;
17925pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER:
17926    D3D12_MESSAGE_ID = 1163;
17927pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER:
17928    D3D12_MESSAGE_ID = 1164;
17929pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER:
17930    D3D12_MESSAGE_ID = 1165;
17931pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED : D3D12_MESSAGE_ID = 1166 ;
17932pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD:
17933    D3D12_MESSAGE_ID = 1167;
17934pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD:
17935    D3D12_MESSAGE_ID = 1168;
17936pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD:
17937    D3D12_MESSAGE_ID = 1169;
17938pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_ERROR:
17939    D3D12_MESSAGE_ID = 1170;
17940pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID:
17941    D3D12_MESSAGE_ID = 1171;
17942pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS:
17943    D3D12_MESSAGE_ID = 1172;
17944pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION:
17945    D3D12_MESSAGE_ID = 1173;
17946pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH : D3D12_MESSAGE_ID = 1174 ;
17947pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND:
17948    D3D12_MESSAGE_ID = 1175;
17949pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS : D3D12_MESSAGE_ID = 1176 ;
17950pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST:
17951    D3D12_MESSAGE_ID = 1177;
17952pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST:
17953    D3D12_MESSAGE_ID = 1178;
17954pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST:
17955    D3D12_MESSAGE_ID = 1179;
17956pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE:
17957    D3D12_MESSAGE_ID = 1180;
17958pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE:
17959    D3D12_MESSAGE_ID = 1181;
17960pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE:
17961    D3D12_MESSAGE_ID = 1182;
17962pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR:
17963    D3D12_MESSAGE_ID = 1183;
17964pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR:
17965    D3D12_MESSAGE_ID = 1184;
17966pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR:
17967    D3D12_MESSAGE_ID = 1185;
17968pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP:
17969    D3D12_MESSAGE_ID = 1186;
17970pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP:
17971    D3D12_MESSAGE_ID = 1187;
17972pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP:
17973    D3D12_MESSAGE_ID = 1188;
17974pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS:
17975    D3D12_MESSAGE_ID = 1189;
17976pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS:
17977    D3D12_MESSAGE_ID = 1190;
17978pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR : D3D12_MESSAGE_ID = 1191 ;
17979pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD:
17980    D3D12_MESSAGE_ID = 1192;
17981pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR:
17982    D3D12_MESSAGE_ID = 1193;
17983pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR:
17984    D3D12_MESSAGE_ID = 1194;
17985pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR:
17986    D3D12_MESSAGE_ID = 1195;
17987pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR:
17988    D3D12_MESSAGE_ID = 1196;
17989pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR:
17990    D3D12_MESSAGE_ID = 1197;
17991pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR:
17992    D3D12_MESSAGE_ID = 1198;
17993pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID : D3D12_MESSAGE_ID = 1199 ;
17994pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID : D3D12_MESSAGE_ID = 1200 ;
17995pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE : D3D12_MESSAGE_ID = 1201 ;
17996pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER : D3D12_MESSAGE_ID = 1202 ;
17997pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED : D3D12_MESSAGE_ID = 1203 ;
17998pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES : D3D12_MESSAGE_ID = 1204 ;
17999pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN : D3D12_MESSAGE_ID = 1205 ;
18000pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST : D3D12_MESSAGE_ID = 1206 ;
18001pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED : D3D12_MESSAGE_ID = 1207 ;
18002pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME : D3D12_MESSAGE_ID = 1208 ;
18003pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS : D3D12_MESSAGE_ID = 1209 ;
18004pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS : D3D12_MESSAGE_ID = 1210 ;
18005pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH : D3D12_MESSAGE_ID = 1211 ;
18006pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED:
18007    D3D12_MESSAGE_ID = 1212;
18008pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS : D3D12_MESSAGE_ID = 1213 ;
18009pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE:
18010    D3D12_MESSAGE_ID = 1214;
18011pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR : D3D12_MESSAGE_ID = 1215 ;
18012pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL:
18013    D3D12_MESSAGE_ID = 1216;
18014pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT:
18015    D3D12_MESSAGE_ID = 1217;
18016pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1218 ;
18017pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1219 ;
18018pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT:
18019    D3D12_MESSAGE_ID = 1220;
18020pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1221 ;
18021pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE : D3D12_MESSAGE_ID = 1222 ;
18022pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1223 ;
18023pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL : D3D12_MESSAGE_ID = 1224 ;
18024pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND:
18025    D3D12_MESSAGE_ID = 1225;
18026pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND:
18027    D3D12_MESSAGE_ID = 1226;
18028pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND:
18029    D3D12_MESSAGE_ID = 1227;
18030pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID : D3D12_MESSAGE_ID = 1228 ;
18031pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1229 ;
18032pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY : D3D12_MESSAGE_ID = 1230 ;
18033pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR : D3D12_MESSAGE_ID = 1231 ;
18034pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE : D3D12_MESSAGE_ID = 1232 ;
18035pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE : D3D12_MESSAGE_ID = 1233 ;
18036pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP : D3D12_MESSAGE_ID = 1234 ;
18037pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER : D3D12_MESSAGE_ID = 1235 ;
18038pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 : D3D12_MESSAGE_ID = 1236 ;
18039pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1:
18040    D3D12_MESSAGE_ID = 1237;
18041pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT : D3D12_MESSAGE_ID = 1238 ;
18042pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE : D3D12_MESSAGE_ID = 1239 ;
18043pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL : D3D12_MESSAGE_ID = 1240 ;
18044pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT : D3D12_MESSAGE_ID = 1241 ;
18045pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY : D3D12_MESSAGE_ID = 1242 ;
18046pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE : D3D12_MESSAGE_ID = 1243 ;
18047pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 1244 ;
18048pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH : D3D12_MESSAGE_ID = 1245 ;
18049pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR:
18050    D3D12_MESSAGE_ID = 1246;
18051pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT : D3D12_MESSAGE_ID = 1247 ;
18052pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH : D3D12_MESSAGE_ID = 1248 ;
18053pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE : D3D12_MESSAGE_ID = 1249 ;
18054pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH : D3D12_MESSAGE_ID = 1250 ;
18055pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH : D3D12_MESSAGE_ID = 1251 ;
18056pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT : D3D12_MESSAGE_ID = 1252 ;
18057pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH : D3D12_MESSAGE_ID = 1253 ;
18058pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_EMPTY_DISPATCH: D3D12_MESSAGE_ID =
18059    1254;
18060pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY : D3D12_MESSAGE_ID = 1255 ;
18061pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION : D3D12_MESSAGE_ID = 1256 ;
18062pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION : D3D12_MESSAGE_ID = 1257 ;
18063pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT : D3D12_MESSAGE_ID = 1258 ;
18064pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY : D3D12_MESSAGE_ID = 1259 ;
18065pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT : D3D12_MESSAGE_ID = 1260 ;
18066pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG : D3D12_MESSAGE_ID = 1261 ;
18067pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS : D3D12_MESSAGE_ID = 1262 ;
18068pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY : D3D12_MESSAGE_ID = 1263 ;
18069pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT : D3D12_MESSAGE_ID = 1264 ;
18070pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 1265 ;
18071pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY:
18072    D3D12_MESSAGE_ID = 1266;
18073pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE : D3D12_MESSAGE_ID = 1267 ;
18074pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT : D3D12_MESSAGE_ID = 1268 ;
18075pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT : D3D12_MESSAGE_ID = 1269 ;
18076pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH : D3D12_MESSAGE_ID = 1270 ;
18077pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE : D3D12_MESSAGE_ID = 1271 ;
18078pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE : D3D12_MESSAGE_ID = 1272 ;
18079pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE : D3D12_MESSAGE_ID = 1273 ;
18080pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE : D3D12_MESSAGE_ID = 1274 ;
18081pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE : D3D12_MESSAGE_ID = 1275 ;
18082pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE : D3D12_MESSAGE_ID = 1276 ;
18083pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS : D3D12_MESSAGE_ID = 1277 ;
18084pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE : D3D12_MESSAGE_ID = 1278 ;
18085pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY : D3D12_MESSAGE_ID = 1279 ;
18086pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION:
18087    D3D12_MESSAGE_ID = 1280;
18088pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION:
18089    D3D12_MESSAGE_ID = 1281;
18090pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION:
18091    D3D12_MESSAGE_ID = 1282;
18092pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS : D3D12_MESSAGE_ID = 1283 ;
18093pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED : D3D12_MESSAGE_ID = 1284 ;
18094pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN : D3D12_MESSAGE_ID = 1285 ;
18095pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE:
18096    D3D12_MESSAGE_ID = 1286;
18097pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS:
18098    D3D12_MESSAGE_ID = 1287;
18099pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET : D3D12_MESSAGE_ID = 1288 ;
18100pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG:
18101    D3D12_MESSAGE_ID = 1289;
18102pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT : D3D12_MESSAGE_ID = 1290 ;
18103pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION : D3D12_MESSAGE_ID = 1291 ;
18104pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL : D3D12_MESSAGE_ID = 1292 ;
18105pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND : D3D12_MESSAGE_ID = 1293 ;
18106pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT:
18107    D3D12_MESSAGE_ID = 1294;
18108pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED:
18109    D3D12_MESSAGE_ID = 1295;
18110pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_OVERSIZED_DISPATCH:
18111    D3D12_MESSAGE_ID = 1296;
18112pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOENCODER:
18113    D3D12_MESSAGE_ID = 1297;
18114pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOENCODER:
18115    D3D12_MESSAGE_ID = 1298;
18116pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER:
18117    D3D12_MESSAGE_ID = 1299;
18118pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP:
18119    D3D12_MESSAGE_ID = 1300;
18120pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP:
18121    D3D12_MESSAGE_ID = 1301;
18122pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP:
18123    D3D12_MESSAGE_ID = 1302;
18124pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG : D3D12_MESSAGE_ID = 1303 ;
18125pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG : D3D12_MESSAGE_ID = 1304 ;
18126pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS:
18127    D3D12_MESSAGE_ID = 1305;
18128pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS : D3D12_MESSAGE_ID = 1306 ;
18129pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 1307 ;
18130pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS : D3D12_MESSAGE_ID = 1308 ;
18131pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 1309 ;
18132pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS : D3D12_MESSAGE_ID = 1310 ;
18133pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS : D3D12_MESSAGE_ID = 1311 ;
18134pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS : D3D12_MESSAGE_ID = 1312 ;
18135pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR : D3D12_MESSAGE_ID = 1313 ;
18136pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE : D3D12_MESSAGE_ID = 1314 ;
18137pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE : D3D12_MESSAGE_ID = 1315 ;
18138pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING:
18139    D3D12_MESSAGE_ID = 1316;
18140pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING : D3D12_MESSAGE_ID = 1317 ;
18141pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING : D3D12_MESSAGE_ID = 1318 ;
18142pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE : D3D12_MESSAGE_ID = 1319 ;
18143pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS:
18144    D3D12_MESSAGE_ID = 1320;
18145pub const D3D12_MESSAGE_ID_D3D12_MESSAGE_ID_D3D12_MESSAGES_END:
18146    D3D12_MESSAGE_ID = 1321;
18147pub type D3D12_MESSAGE_ID = ::std::os::raw::c_int;
18148#[repr(C)]
18149#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18150pub struct D3D12_MESSAGE {
18151    pub Category: D3D12_MESSAGE_CATEGORY,
18152    pub Severity: D3D12_MESSAGE_SEVERITY,
18153    pub ID: D3D12_MESSAGE_ID,
18154    pub pDescription: *const ::std::os::raw::c_char,
18155    pub DescriptionByteLength: SIZE_T,
18156}
18157impl Default for D3D12_MESSAGE {
18158    fn default() -> Self {
18159        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18160        unsafe {
18161            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18162            s.assume_init()
18163        }
18164    }
18165}
18166#[repr(C)]
18167#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18168pub struct D3D12_INFO_QUEUE_FILTER_DESC {
18169    pub NumCategories: UINT,
18170    pub pCategoryList: *mut D3D12_MESSAGE_CATEGORY,
18171    pub NumSeverities: UINT,
18172    pub pSeverityList: *mut D3D12_MESSAGE_SEVERITY,
18173    pub NumIDs: UINT,
18174    pub pIDList: *mut D3D12_MESSAGE_ID,
18175}
18176impl Default for D3D12_INFO_QUEUE_FILTER_DESC {
18177    fn default() -> Self {
18178        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18179        unsafe {
18180            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18181            s.assume_init()
18182        }
18183    }
18184}
18185#[repr(C)]
18186#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18187pub struct D3D12_INFO_QUEUE_FILTER {
18188    pub AllowList: D3D12_INFO_QUEUE_FILTER_DESC,
18189    pub DenyList: D3D12_INFO_QUEUE_FILTER_DESC,
18190}
18191impl Default for D3D12_INFO_QUEUE_FILTER {
18192    fn default() -> Self {
18193        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18194        unsafe {
18195            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18196            s.assume_init()
18197        }
18198    }
18199}
18200extern "C" {
18201    pub static IID_ID3D12InfoQueue: IID;
18202}
18203#[repr(C)]
18204#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18205pub struct ID3D12InfoQueueVtbl {
18206    pub QueryInterface: ::std::option::Option<
18207        unsafe extern "C" fn(
18208            This: *mut ID3D12InfoQueue,
18209            riid: *const IID,
18210            ppvObject: *mut *mut ::std::os::raw::c_void,
18211        ) -> HRESULT,
18212    >,
18213    pub AddRef: ::std::option::Option<
18214        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> ULONG,
18215    >,
18216    pub Release: ::std::option::Option<
18217        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> ULONG,
18218    >,
18219    pub SetMessageCountLimit: ::std::option::Option<
18220        unsafe extern "C" fn(
18221            This: *mut ID3D12InfoQueue,
18222            MessageCountLimit: UINT64,
18223        ) -> HRESULT,
18224    >,
18225    pub ClearStoredMessages:
18226        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12InfoQueue)>,
18227    pub GetMessageA: ::std::option::Option<
18228        unsafe extern "C" fn(
18229            This: *mut ID3D12InfoQueue,
18230            MessageIndex: UINT64,
18231            pMessage: *mut D3D12_MESSAGE,
18232            pMessageByteLength: *mut SIZE_T,
18233        ) -> HRESULT,
18234    >,
18235    pub GetNumMessagesAllowedByStorageFilter: ::std::option::Option<
18236        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18237    >,
18238    pub GetNumMessagesDeniedByStorageFilter: ::std::option::Option<
18239        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18240    >,
18241    pub GetNumStoredMessages: ::std::option::Option<
18242        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18243    >,
18244    pub GetNumStoredMessagesAllowedByRetrievalFilter: ::std::option::Option<
18245        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18246    >,
18247    pub GetNumMessagesDiscardedByMessageCountLimit: ::std::option::Option<
18248        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18249    >,
18250    pub GetMessageCountLimit: ::std::option::Option<
18251        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT64,
18252    >,
18253    pub AddStorageFilterEntries: ::std::option::Option<
18254        unsafe extern "C" fn(
18255            This: *mut ID3D12InfoQueue,
18256            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18257        ) -> HRESULT,
18258    >,
18259    pub GetStorageFilter: ::std::option::Option<
18260        unsafe extern "C" fn(
18261            This: *mut ID3D12InfoQueue,
18262            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18263            pFilterByteLength: *mut SIZE_T,
18264        ) -> HRESULT,
18265    >,
18266    pub ClearStorageFilter:
18267        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12InfoQueue)>,
18268    pub PushEmptyStorageFilter: ::std::option::Option<
18269        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> HRESULT,
18270    >,
18271    pub PushCopyOfStorageFilter: ::std::option::Option<
18272        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> HRESULT,
18273    >,
18274    pub PushStorageFilter: ::std::option::Option<
18275        unsafe extern "C" fn(
18276            This: *mut ID3D12InfoQueue,
18277            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18278        ) -> HRESULT,
18279    >,
18280    pub PopStorageFilter:
18281        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12InfoQueue)>,
18282    pub GetStorageFilterStackSize: ::std::option::Option<
18283        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT,
18284    >,
18285    pub AddRetrievalFilterEntries: ::std::option::Option<
18286        unsafe extern "C" fn(
18287            This: *mut ID3D12InfoQueue,
18288            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18289        ) -> HRESULT,
18290    >,
18291    pub GetRetrievalFilter: ::std::option::Option<
18292        unsafe extern "C" fn(
18293            This: *mut ID3D12InfoQueue,
18294            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18295            pFilterByteLength: *mut SIZE_T,
18296        ) -> HRESULT,
18297    >,
18298    pub ClearRetrievalFilter:
18299        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12InfoQueue)>,
18300    pub PushEmptyRetrievalFilter: ::std::option::Option<
18301        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> HRESULT,
18302    >,
18303    pub PushCopyOfRetrievalFilter: ::std::option::Option<
18304        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> HRESULT,
18305    >,
18306    pub PushRetrievalFilter: ::std::option::Option<
18307        unsafe extern "C" fn(
18308            This: *mut ID3D12InfoQueue,
18309            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18310        ) -> HRESULT,
18311    >,
18312    pub PopRetrievalFilter:
18313        ::std::option::Option<unsafe extern "C" fn(This: *mut ID3D12InfoQueue)>,
18314    pub GetRetrievalFilterStackSize: ::std::option::Option<
18315        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> UINT,
18316    >,
18317    pub AddMessage: ::std::option::Option<
18318        unsafe extern "C" fn(
18319            This: *mut ID3D12InfoQueue,
18320            Category: D3D12_MESSAGE_CATEGORY,
18321            Severity: D3D12_MESSAGE_SEVERITY,
18322            ID: D3D12_MESSAGE_ID,
18323            pDescription: LPCSTR,
18324        ) -> HRESULT,
18325    >,
18326    pub AddApplicationMessage: ::std::option::Option<
18327        unsafe extern "C" fn(
18328            This: *mut ID3D12InfoQueue,
18329            Severity: D3D12_MESSAGE_SEVERITY,
18330            pDescription: LPCSTR,
18331        ) -> HRESULT,
18332    >,
18333    pub SetBreakOnCategory: ::std::option::Option<
18334        unsafe extern "C" fn(
18335            This: *mut ID3D12InfoQueue,
18336            Category: D3D12_MESSAGE_CATEGORY,
18337            bEnable: BOOL,
18338        ) -> HRESULT,
18339    >,
18340    pub SetBreakOnSeverity: ::std::option::Option<
18341        unsafe extern "C" fn(
18342            This: *mut ID3D12InfoQueue,
18343            Severity: D3D12_MESSAGE_SEVERITY,
18344            bEnable: BOOL,
18345        ) -> HRESULT,
18346    >,
18347    pub SetBreakOnID: ::std::option::Option<
18348        unsafe extern "C" fn(
18349            This: *mut ID3D12InfoQueue,
18350            ID: D3D12_MESSAGE_ID,
18351            bEnable: BOOL,
18352        ) -> HRESULT,
18353    >,
18354    pub GetBreakOnCategory: ::std::option::Option<
18355        unsafe extern "C" fn(
18356            This: *mut ID3D12InfoQueue,
18357            Category: D3D12_MESSAGE_CATEGORY,
18358        ) -> BOOL,
18359    >,
18360    pub GetBreakOnSeverity: ::std::option::Option<
18361        unsafe extern "C" fn(
18362            This: *mut ID3D12InfoQueue,
18363            Severity: D3D12_MESSAGE_SEVERITY,
18364        ) -> BOOL,
18365    >,
18366    pub GetBreakOnID: ::std::option::Option<
18367        unsafe extern "C" fn(
18368            This: *mut ID3D12InfoQueue,
18369            ID: D3D12_MESSAGE_ID,
18370        ) -> BOOL,
18371    >,
18372    pub SetMuteDebugOutput: ::std::option::Option<
18373        unsafe extern "C" fn(This: *mut ID3D12InfoQueue, bMute: BOOL),
18374    >,
18375    pub GetMuteDebugOutput: ::std::option::Option<
18376        unsafe extern "C" fn(This: *mut ID3D12InfoQueue) -> BOOL,
18377    >,
18378}
18379#[repr(C)]
18380#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18381pub struct ID3D12InfoQueue {
18382    pub lpVtbl: *mut ID3D12InfoQueueVtbl,
18383}
18384impl Default for ID3D12InfoQueue {
18385    fn default() -> Self {
18386        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18387        unsafe {
18388            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18389            s.assume_init()
18390        }
18391    }
18392}
18393pub const D3D12_MESSAGE_CALLBACK_FLAGS_D3D12_MESSAGE_CALLBACK_FLAG_NONE:
18394    D3D12_MESSAGE_CALLBACK_FLAGS = 0;
18395pub const D3D12_MESSAGE_CALLBACK_FLAGS_D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS:
18396    D3D12_MESSAGE_CALLBACK_FLAGS = 1;
18397pub type D3D12_MESSAGE_CALLBACK_FLAGS = ::std::os::raw::c_int;
18398pub type D3D12MessageFunc = ::std::option::Option<
18399    unsafe extern "C" fn(
18400        Category: D3D12_MESSAGE_CATEGORY,
18401        Severity: D3D12_MESSAGE_SEVERITY,
18402        ID: D3D12_MESSAGE_ID,
18403        pDescription: LPCSTR,
18404        pContext: *mut ::std::os::raw::c_void,
18405    ),
18406>;
18407extern "C" {
18408    pub static IID_ID3D12InfoQueue1: IID;
18409}
18410#[repr(C)]
18411#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18412pub struct ID3D12InfoQueue1Vtbl {
18413    pub QueryInterface: ::std::option::Option<
18414        unsafe extern "C" fn(
18415            This: *mut ID3D12InfoQueue1,
18416            riid: *const IID,
18417            ppvObject: *mut *mut ::std::os::raw::c_void,
18418        ) -> HRESULT,
18419    >,
18420    pub AddRef: ::std::option::Option<
18421        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> ULONG,
18422    >,
18423    pub Release: ::std::option::Option<
18424        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> ULONG,
18425    >,
18426    pub SetMessageCountLimit: ::std::option::Option<
18427        unsafe extern "C" fn(
18428            This: *mut ID3D12InfoQueue1,
18429            MessageCountLimit: UINT64,
18430        ) -> HRESULT,
18431    >,
18432    pub ClearStoredMessages: ::std::option::Option<
18433        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1),
18434    >,
18435    pub GetMessageA: ::std::option::Option<
18436        unsafe extern "C" fn(
18437            This: *mut ID3D12InfoQueue1,
18438            MessageIndex: UINT64,
18439            pMessage: *mut D3D12_MESSAGE,
18440            pMessageByteLength: *mut SIZE_T,
18441        ) -> HRESULT,
18442    >,
18443    pub GetNumMessagesAllowedByStorageFilter: ::std::option::Option<
18444        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18445    >,
18446    pub GetNumMessagesDeniedByStorageFilter: ::std::option::Option<
18447        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18448    >,
18449    pub GetNumStoredMessages: ::std::option::Option<
18450        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18451    >,
18452    pub GetNumStoredMessagesAllowedByRetrievalFilter: ::std::option::Option<
18453        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18454    >,
18455    pub GetNumMessagesDiscardedByMessageCountLimit: ::std::option::Option<
18456        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18457    >,
18458    pub GetMessageCountLimit: ::std::option::Option<
18459        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT64,
18460    >,
18461    pub AddStorageFilterEntries: ::std::option::Option<
18462        unsafe extern "C" fn(
18463            This: *mut ID3D12InfoQueue1,
18464            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18465        ) -> HRESULT,
18466    >,
18467    pub GetStorageFilter: ::std::option::Option<
18468        unsafe extern "C" fn(
18469            This: *mut ID3D12InfoQueue1,
18470            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18471            pFilterByteLength: *mut SIZE_T,
18472        ) -> HRESULT,
18473    >,
18474    pub ClearStorageFilter: ::std::option::Option<
18475        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1),
18476    >,
18477    pub PushEmptyStorageFilter: ::std::option::Option<
18478        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> HRESULT,
18479    >,
18480    pub PushCopyOfStorageFilter: ::std::option::Option<
18481        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> HRESULT,
18482    >,
18483    pub PushStorageFilter: ::std::option::Option<
18484        unsafe extern "C" fn(
18485            This: *mut ID3D12InfoQueue1,
18486            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18487        ) -> HRESULT,
18488    >,
18489    pub PopStorageFilter: ::std::option::Option<
18490        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1),
18491    >,
18492    pub GetStorageFilterStackSize: ::std::option::Option<
18493        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT,
18494    >,
18495    pub AddRetrievalFilterEntries: ::std::option::Option<
18496        unsafe extern "C" fn(
18497            This: *mut ID3D12InfoQueue1,
18498            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18499        ) -> HRESULT,
18500    >,
18501    pub GetRetrievalFilter: ::std::option::Option<
18502        unsafe extern "C" fn(
18503            This: *mut ID3D12InfoQueue1,
18504            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18505            pFilterByteLength: *mut SIZE_T,
18506        ) -> HRESULT,
18507    >,
18508    pub ClearRetrievalFilter: ::std::option::Option<
18509        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1),
18510    >,
18511    pub PushEmptyRetrievalFilter: ::std::option::Option<
18512        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> HRESULT,
18513    >,
18514    pub PushCopyOfRetrievalFilter: ::std::option::Option<
18515        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> HRESULT,
18516    >,
18517    pub PushRetrievalFilter: ::std::option::Option<
18518        unsafe extern "C" fn(
18519            This: *mut ID3D12InfoQueue1,
18520            pFilter: *mut D3D12_INFO_QUEUE_FILTER,
18521        ) -> HRESULT,
18522    >,
18523    pub PopRetrievalFilter: ::std::option::Option<
18524        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1),
18525    >,
18526    pub GetRetrievalFilterStackSize: ::std::option::Option<
18527        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> UINT,
18528    >,
18529    pub AddMessage: ::std::option::Option<
18530        unsafe extern "C" fn(
18531            This: *mut ID3D12InfoQueue1,
18532            Category: D3D12_MESSAGE_CATEGORY,
18533            Severity: D3D12_MESSAGE_SEVERITY,
18534            ID: D3D12_MESSAGE_ID,
18535            pDescription: LPCSTR,
18536        ) -> HRESULT,
18537    >,
18538    pub AddApplicationMessage: ::std::option::Option<
18539        unsafe extern "C" fn(
18540            This: *mut ID3D12InfoQueue1,
18541            Severity: D3D12_MESSAGE_SEVERITY,
18542            pDescription: LPCSTR,
18543        ) -> HRESULT,
18544    >,
18545    pub SetBreakOnCategory: ::std::option::Option<
18546        unsafe extern "C" fn(
18547            This: *mut ID3D12InfoQueue1,
18548            Category: D3D12_MESSAGE_CATEGORY,
18549            bEnable: BOOL,
18550        ) -> HRESULT,
18551    >,
18552    pub SetBreakOnSeverity: ::std::option::Option<
18553        unsafe extern "C" fn(
18554            This: *mut ID3D12InfoQueue1,
18555            Severity: D3D12_MESSAGE_SEVERITY,
18556            bEnable: BOOL,
18557        ) -> HRESULT,
18558    >,
18559    pub SetBreakOnID: ::std::option::Option<
18560        unsafe extern "C" fn(
18561            This: *mut ID3D12InfoQueue1,
18562            ID: D3D12_MESSAGE_ID,
18563            bEnable: BOOL,
18564        ) -> HRESULT,
18565    >,
18566    pub GetBreakOnCategory: ::std::option::Option<
18567        unsafe extern "C" fn(
18568            This: *mut ID3D12InfoQueue1,
18569            Category: D3D12_MESSAGE_CATEGORY,
18570        ) -> BOOL,
18571    >,
18572    pub GetBreakOnSeverity: ::std::option::Option<
18573        unsafe extern "C" fn(
18574            This: *mut ID3D12InfoQueue1,
18575            Severity: D3D12_MESSAGE_SEVERITY,
18576        ) -> BOOL,
18577    >,
18578    pub GetBreakOnID: ::std::option::Option<
18579        unsafe extern "C" fn(
18580            This: *mut ID3D12InfoQueue1,
18581            ID: D3D12_MESSAGE_ID,
18582        ) -> BOOL,
18583    >,
18584    pub SetMuteDebugOutput: ::std::option::Option<
18585        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1, bMute: BOOL),
18586    >,
18587    pub GetMuteDebugOutput: ::std::option::Option<
18588        unsafe extern "C" fn(This: *mut ID3D12InfoQueue1) -> BOOL,
18589    >,
18590    pub RegisterMessageCallback: ::std::option::Option<
18591        unsafe extern "C" fn(
18592            This: *mut ID3D12InfoQueue1,
18593            CallbackFunc: D3D12MessageFunc,
18594            CallbackFilterFlags: D3D12_MESSAGE_CALLBACK_FLAGS,
18595            pContext: *mut ::std::os::raw::c_void,
18596            pCallbackCookie: *mut DWORD,
18597        ) -> HRESULT,
18598    >,
18599    pub UnregisterMessageCallback: ::std::option::Option<
18600        unsafe extern "C" fn(
18601            This: *mut ID3D12InfoQueue1,
18602            CallbackCookie: DWORD,
18603        ) -> HRESULT,
18604    >,
18605}
18606#[repr(C)]
18607#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18608pub struct ID3D12InfoQueue1 {
18609    pub lpVtbl: *mut ID3D12InfoQueue1Vtbl,
18610}
18611impl Default for ID3D12InfoQueue1 {
18612    fn default() -> Self {
18613        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18614        unsafe {
18615            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18616            s.assume_init()
18617        }
18618    }
18619}
18620#[doc = ""]
18621pub type PFN_D3D12_CREATE_DEVICE = ::std::option::Option<
18622    unsafe extern "C" fn(
18623        arg1: *mut IUnknown,
18624        arg2: D3D_FEATURE_LEVEL,
18625        arg3: *const IID,
18626        arg4: *mut *mut ::std::os::raw::c_void,
18627    ) -> HRESULT,
18628>;
18629extern "C" {
18630    pub fn D3D12CreateDevice(
18631        pAdapter: *mut IUnknown,
18632        MinimumFeatureLevel: D3D_FEATURE_LEVEL,
18633        riid: *const IID,
18634        ppDevice: *mut *mut ::std::os::raw::c_void,
18635    ) -> HRESULT;
18636}
18637pub type PFN_D3D12_GET_DEBUG_INTERFACE = ::std::option::Option<
18638    unsafe extern "C" fn(
18639        arg1: *const IID,
18640        arg2: *mut *mut ::std::os::raw::c_void,
18641    ) -> HRESULT,
18642>;
18643extern "C" {
18644    pub fn D3D12GetDebugInterface(
18645        riid: *const IID,
18646        ppvDebug: *mut *mut ::std::os::raw::c_void,
18647    ) -> HRESULT;
18648}
18649extern "C" {
18650    pub fn D3D12EnableExperimentalFeatures(
18651        NumFeatures: UINT,
18652        pIIDs: *const IID,
18653        pConfigurationStructs: *mut ::std::os::raw::c_void,
18654        pConfigurationStructSizes: *mut UINT,
18655    ) -> HRESULT;
18656}
18657extern "C" {
18658    pub static D3D12ExperimentalShaderModels: UUID;
18659}
18660extern "C" {
18661    pub static D3D12TiledResourceTier4: UUID;
18662}
18663extern "C" {
18664    pub static D3D12MetaCommand: UUID;
18665}
18666extern "C" {
18667    pub static CLSID_D3D12Debug: GUID;
18668}
18669extern "C" {
18670    pub static CLSID_D3D12Tools: GUID;
18671}
18672extern "C" {
18673    pub static CLSID_D3D12DeviceRemovedExtendedData: GUID;
18674}
18675extern "C" {
18676    pub static CLSID_D3D12SDKConfiguration: GUID;
18677}
18678pub type PFN_D3D12_GET_INTERFACE = ::std::option::Option<
18679    unsafe extern "C" fn(
18680        arg1: *const IID,
18681        arg2: *const IID,
18682        arg3: *mut *mut ::std::os::raw::c_void,
18683    ) -> HRESULT,
18684>;
18685extern "C" {
18686    pub fn D3D12GetInterface(
18687        rclsid: *const IID,
18688        riid: *const IID,
18689        ppvDebug: *mut *mut ::std::os::raw::c_void,
18690    ) -> HRESULT;
18691}
18692extern "C" {
18693    pub static IID_ID3D12SDKConfiguration: IID;
18694}
18695#[repr(C)]
18696#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18697pub struct ID3D12SDKConfigurationVtbl {
18698    pub QueryInterface: ::std::option::Option<
18699        unsafe extern "C" fn(
18700            This: *mut ID3D12SDKConfiguration,
18701            riid: *const IID,
18702            ppvObject: *mut *mut ::std::os::raw::c_void,
18703        ) -> HRESULT,
18704    >,
18705    pub AddRef: ::std::option::Option<
18706        unsafe extern "C" fn(This: *mut ID3D12SDKConfiguration) -> ULONG,
18707    >,
18708    pub Release: ::std::option::Option<
18709        unsafe extern "C" fn(This: *mut ID3D12SDKConfiguration) -> ULONG,
18710    >,
18711    pub SetSDKVersion: ::std::option::Option<
18712        unsafe extern "C" fn(
18713            This: *mut ID3D12SDKConfiguration,
18714            SDKVersion: UINT,
18715            SDKPath: LPCSTR,
18716        ) -> HRESULT,
18717    >,
18718}
18719#[repr(C)]
18720#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18721pub struct ID3D12SDKConfiguration {
18722    pub lpVtbl: *mut ID3D12SDKConfigurationVtbl,
18723}
18724impl Default for ID3D12SDKConfiguration {
18725    fn default() -> Self {
18726        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18727        unsafe {
18728            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18729            s.assume_init()
18730        }
18731    }
18732}
18733pub const D3D12_AXIS_SHADING_RATE_D3D12_AXIS_SHADING_RATE_1X:
18734    D3D12_AXIS_SHADING_RATE = 0;
18735pub const D3D12_AXIS_SHADING_RATE_D3D12_AXIS_SHADING_RATE_2X:
18736    D3D12_AXIS_SHADING_RATE = 1;
18737pub const D3D12_AXIS_SHADING_RATE_D3D12_AXIS_SHADING_RATE_4X:
18738    D3D12_AXIS_SHADING_RATE = 2;
18739pub type D3D12_AXIS_SHADING_RATE = ::std::os::raw::c_int;
18740pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_1X1: D3D12_SHADING_RATE = 0;
18741pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_1X2: D3D12_SHADING_RATE = 1;
18742pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_2X1: D3D12_SHADING_RATE = 4;
18743pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_2X2: D3D12_SHADING_RATE = 5;
18744pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_2X4: D3D12_SHADING_RATE = 6;
18745pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_4X2: D3D12_SHADING_RATE = 9;
18746pub const D3D12_SHADING_RATE_D3D12_SHADING_RATE_4X4: D3D12_SHADING_RATE = 10;
18747pub type D3D12_SHADING_RATE = ::std::os::raw::c_int;
18748pub const D3D12_SHADING_RATE_COMBINER_D3D12_SHADING_RATE_COMBINER_PASSTHROUGH : D3D12_SHADING_RATE_COMBINER = 0 ;
18749pub const D3D12_SHADING_RATE_COMBINER_D3D12_SHADING_RATE_COMBINER_OVERRIDE:
18750    D3D12_SHADING_RATE_COMBINER = 1;
18751pub const D3D12_SHADING_RATE_COMBINER_D3D12_SHADING_RATE_COMBINER_MIN:
18752    D3D12_SHADING_RATE_COMBINER = 2;
18753pub const D3D12_SHADING_RATE_COMBINER_D3D12_SHADING_RATE_COMBINER_MAX:
18754    D3D12_SHADING_RATE_COMBINER = 3;
18755pub const D3D12_SHADING_RATE_COMBINER_D3D12_SHADING_RATE_COMBINER_SUM:
18756    D3D12_SHADING_RATE_COMBINER = 4;
18757pub type D3D12_SHADING_RATE_COMBINER = ::std::os::raw::c_int;
18758extern "C" {
18759    pub static IID_ID3D12GraphicsCommandList5: IID;
18760}
18761#[repr(C)]
18762#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18763pub struct ID3D12GraphicsCommandList5Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Name : LPCWSTR) -> HRESULT > , pub GetDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , riid : * const IID , ppvDevice : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetType : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) -> D3D12_COMMAND_LIST_TYPE > , pub Close : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) -> HRESULT > , pub Reset : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState) -> HRESULT > , pub ClearState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pPipelineState : * mut ID3D12PipelineState) > , pub DrawInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , VertexCountPerInstance : UINT , InstanceCount : UINT , StartVertexLocation : UINT , StartInstanceLocation : UINT) > , pub DrawIndexedInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , IndexCountPerInstance : UINT , InstanceCount : UINT , StartIndexLocation : UINT , BaseVertexLocation : INT , StartInstanceLocation : UINT) > , pub Dispatch : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , pub CopyBufferRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , NumBytes : UINT64) > , pub CopyTextureRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDst : * const D3D12_TEXTURE_COPY_LOCATION , DstX : UINT , DstY : UINT , DstZ : UINT , pSrc : * const D3D12_TEXTURE_COPY_LOCATION , pSrcBox : * const D3D12_BOX) > , pub CopyResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstResource : * mut ID3D12Resource , pSrcResource : * mut ID3D12Resource) > , pub CopyTiles : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pTiledResource : * mut ID3D12Resource , pTileRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pTileRegionSize : * const D3D12_TILE_REGION_SIZE , pBuffer : * mut ID3D12Resource , BufferStartOffsetInBytes : UINT64 , Flags : D3D12_TILE_COPY_FLAGS) > , pub ResolveSubresource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , Format : DXGI_FORMAT) > , pub IASetPrimitiveTopology : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , PrimitiveTopology : D3D12_PRIMITIVE_TOPOLOGY) > , pub RSSetViewports : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumViewports : UINT , pViewports : * const D3D12_VIEWPORT) > , pub RSSetScissorRects : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub OMSetBlendFactor : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , BlendFactor : * const FLOAT) > , pub OMSetStencilRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , StencilRef : UINT) > , pub SetPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pPipelineState : * mut ID3D12PipelineState) > , pub ResourceBarrier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumBarriers : UINT , pBarriers : * const D3D12_RESOURCE_BARRIER) > , pub ExecuteBundle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pCommandList : * mut ID3D12GraphicsCommandList) > , pub SetDescriptorHeaps : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumDescriptorHeaps : UINT , ppDescriptorHeaps : * const * mut ID3D12DescriptorHeap) > , pub SetComputeRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pRootSignature : * mut ID3D12RootSignature) > , pub SetGraphicsRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pRootSignature : * mut ID3D12RootSignature) > , pub SetComputeRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetGraphicsRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetComputeRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetComputeRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetComputeRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub IASetIndexBuffer : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pView : * const D3D12_INDEX_BUFFER_VIEW) > , pub IASetVertexBuffers : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_VERTEX_BUFFER_VIEW) > , pub SOSetTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_STREAM_OUTPUT_BUFFER_VIEW) > , pub OMSetRenderTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumRenderTargetDescriptors : UINT , pRenderTargetDescriptors : * const D3D12_CPU_DESCRIPTOR_HANDLE , RTsSingleHandleToDescriptorRange : BOOL , pDepthStencilDescriptor : * const D3D12_CPU_DESCRIPTOR_HANDLE) > , pub ClearDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , DepthStencilView : D3D12_CPU_DESCRIPTOR_HANDLE , ClearFlags : D3D12_CLEAR_FLAGS , Depth : FLOAT , Stencil : UINT8 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , RenderTargetView : D3D12_CPU_DESCRIPTOR_HANDLE , ColorRGBA : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewUint : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const UINT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewFloat : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub DiscardResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pResource : * mut ID3D12Resource , pRegion : * const D3D12_DISCARD_REGION) > , pub BeginQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub EndQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub ResolveQueryData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , StartIndex : UINT , NumQueries : UINT , pDestinationBuffer : * mut ID3D12Resource , AlignedDestinationBufferOffset : UINT64) > , pub SetPredication : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pBuffer : * mut ID3D12Resource , AlignedBufferOffset : UINT64 , Operation : D3D12_PREDICATION_OP) > , pub SetMarker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub BeginEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub EndEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) > , pub ExecuteIndirect : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pCommandSignature : * mut ID3D12CommandSignature , MaxCommandCount : UINT , pArgumentBuffer : * mut ID3D12Resource , ArgumentBufferOffset : UINT64 , pCountBuffer : * mut ID3D12Resource , CountBufferOffset : UINT64) > , pub AtomicCopyBufferUINT : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub AtomicCopyBufferUINT64 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub OMSetDepthBounds : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Min : FLOAT , Max : FLOAT) > , pub SetSamplePositions : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumSamplesPerPixel : UINT , NumPixels : UINT , pSamplePositions : * mut D3D12_SAMPLE_POSITION) > , pub ResolveSubresourceRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , DstX : UINT , DstY : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , pSrcRect : * mut D3D12_RECT , Format : DXGI_FORMAT , ResolveMode : D3D12_RESOLVE_MODE) > , pub SetViewInstanceMask : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Mask : UINT) > , pub WriteBufferImmediate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , Count : UINT , pParams : * const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER , pModes : * const D3D12_WRITEBUFFERIMMEDIATE_MODE) > , pub SetProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pProtectedResourceSession : * mut ID3D12ProtectedResourceSession) > , pub BeginRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , NumRenderTargets : UINT , pRenderTargets : * const D3D12_RENDER_PASS_RENDER_TARGET_DESC , pDepthStencil : * const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC , Flags : D3D12_RENDER_PASS_FLAGS) > , pub EndRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5) > , pub InitializeMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pMetaCommand : * mut ID3D12MetaCommand , pInitializationParametersData : * const :: std :: os :: raw :: c_void , InitializationParametersDataSizeInBytes : SIZE_T) > , pub ExecuteMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pMetaCommand : * mut ID3D12MetaCommand , pExecutionParametersData : * const :: std :: os :: raw :: c_void , ExecutionParametersDataSizeInBytes : SIZE_T) > , pub BuildRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC , NumPostbuildInfoDescs : UINT , pPostbuildInfoDescs : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC) > , pub EmitRaytracingAccelerationStructurePostbuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDesc : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC , NumSourceAccelerationStructures : UINT , pSourceAccelerationStructureData : * const D3D12_GPU_VIRTUAL_ADDRESS) > , pub CopyRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , DestAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , SourceAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , Mode : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) > , pub SetPipelineState1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pStateObject : * mut ID3D12StateObject) > , pub DispatchRays : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , pDesc : * const D3D12_DISPATCH_RAYS_DESC) > , pub RSSetShadingRate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , baseShadingRate : D3D12_SHADING_RATE , combiners : * const D3D12_SHADING_RATE_COMBINER) > , pub RSSetShadingRateImage : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList5 , shadingRateImage : * mut ID3D12Resource) > , }
18764#[repr(C)]
18765#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18766pub struct ID3D12GraphicsCommandList5 {
18767    pub lpVtbl: *mut ID3D12GraphicsCommandList5Vtbl,
18768}
18769impl Default for ID3D12GraphicsCommandList5 {
18770    fn default() -> Self {
18771        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18772        unsafe {
18773            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18774            s.assume_init()
18775        }
18776    }
18777}
18778#[repr(C)]
18779#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18780pub struct D3D12_DISPATCH_MESH_ARGUMENTS {
18781    pub ThreadGroupCountX: UINT,
18782    pub ThreadGroupCountY: UINT,
18783    pub ThreadGroupCountZ: UINT,
18784}
18785extern "C" {
18786    pub static IID_ID3D12GraphicsCommandList6: IID;
18787}
18788#[repr(C)]
18789#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18790pub struct ID3D12GraphicsCommandList6Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Name : LPCWSTR) -> HRESULT > , pub GetDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , riid : * const IID , ppvDevice : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetType : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) -> D3D12_COMMAND_LIST_TYPE > , pub Close : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) -> HRESULT > , pub Reset : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState) -> HRESULT > , pub ClearState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pPipelineState : * mut ID3D12PipelineState) > , pub DrawInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , VertexCountPerInstance : UINT , InstanceCount : UINT , StartVertexLocation : UINT , StartInstanceLocation : UINT) > , pub DrawIndexedInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , IndexCountPerInstance : UINT , InstanceCount : UINT , StartIndexLocation : UINT , BaseVertexLocation : INT , StartInstanceLocation : UINT) > , pub Dispatch : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , pub CopyBufferRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , NumBytes : UINT64) > , pub CopyTextureRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDst : * const D3D12_TEXTURE_COPY_LOCATION , DstX : UINT , DstY : UINT , DstZ : UINT , pSrc : * const D3D12_TEXTURE_COPY_LOCATION , pSrcBox : * const D3D12_BOX) > , pub CopyResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstResource : * mut ID3D12Resource , pSrcResource : * mut ID3D12Resource) > , pub CopyTiles : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pTiledResource : * mut ID3D12Resource , pTileRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pTileRegionSize : * const D3D12_TILE_REGION_SIZE , pBuffer : * mut ID3D12Resource , BufferStartOffsetInBytes : UINT64 , Flags : D3D12_TILE_COPY_FLAGS) > , pub ResolveSubresource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , Format : DXGI_FORMAT) > , pub IASetPrimitiveTopology : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , PrimitiveTopology : D3D12_PRIMITIVE_TOPOLOGY) > , pub RSSetViewports : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumViewports : UINT , pViewports : * const D3D12_VIEWPORT) > , pub RSSetScissorRects : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub OMSetBlendFactor : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , BlendFactor : * const FLOAT) > , pub OMSetStencilRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , StencilRef : UINT) > , pub SetPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pPipelineState : * mut ID3D12PipelineState) > , pub ResourceBarrier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumBarriers : UINT , pBarriers : * const D3D12_RESOURCE_BARRIER) > , pub ExecuteBundle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pCommandList : * mut ID3D12GraphicsCommandList) > , pub SetDescriptorHeaps : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumDescriptorHeaps : UINT , ppDescriptorHeaps : * const * mut ID3D12DescriptorHeap) > , pub SetComputeRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pRootSignature : * mut ID3D12RootSignature) > , pub SetGraphicsRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pRootSignature : * mut ID3D12RootSignature) > , pub SetComputeRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetGraphicsRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetComputeRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetComputeRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetComputeRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub IASetIndexBuffer : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pView : * const D3D12_INDEX_BUFFER_VIEW) > , pub IASetVertexBuffers : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_VERTEX_BUFFER_VIEW) > , pub SOSetTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_STREAM_OUTPUT_BUFFER_VIEW) > , pub OMSetRenderTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumRenderTargetDescriptors : UINT , pRenderTargetDescriptors : * const D3D12_CPU_DESCRIPTOR_HANDLE , RTsSingleHandleToDescriptorRange : BOOL , pDepthStencilDescriptor : * const D3D12_CPU_DESCRIPTOR_HANDLE) > , pub ClearDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , DepthStencilView : D3D12_CPU_DESCRIPTOR_HANDLE , ClearFlags : D3D12_CLEAR_FLAGS , Depth : FLOAT , Stencil : UINT8 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , RenderTargetView : D3D12_CPU_DESCRIPTOR_HANDLE , ColorRGBA : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewUint : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const UINT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewFloat : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub DiscardResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pResource : * mut ID3D12Resource , pRegion : * const D3D12_DISCARD_REGION) > , pub BeginQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub EndQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub ResolveQueryData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , StartIndex : UINT , NumQueries : UINT , pDestinationBuffer : * mut ID3D12Resource , AlignedDestinationBufferOffset : UINT64) > , pub SetPredication : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pBuffer : * mut ID3D12Resource , AlignedBufferOffset : UINT64 , Operation : D3D12_PREDICATION_OP) > , pub SetMarker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub BeginEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub EndEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) > , pub ExecuteIndirect : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pCommandSignature : * mut ID3D12CommandSignature , MaxCommandCount : UINT , pArgumentBuffer : * mut ID3D12Resource , ArgumentBufferOffset : UINT64 , pCountBuffer : * mut ID3D12Resource , CountBufferOffset : UINT64) > , pub AtomicCopyBufferUINT : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub AtomicCopyBufferUINT64 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub OMSetDepthBounds : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Min : FLOAT , Max : FLOAT) > , pub SetSamplePositions : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumSamplesPerPixel : UINT , NumPixels : UINT , pSamplePositions : * mut D3D12_SAMPLE_POSITION) > , pub ResolveSubresourceRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , DstX : UINT , DstY : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , pSrcRect : * mut D3D12_RECT , Format : DXGI_FORMAT , ResolveMode : D3D12_RESOLVE_MODE) > , pub SetViewInstanceMask : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Mask : UINT) > , pub WriteBufferImmediate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , Count : UINT , pParams : * const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER , pModes : * const D3D12_WRITEBUFFERIMMEDIATE_MODE) > , pub SetProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pProtectedResourceSession : * mut ID3D12ProtectedResourceSession) > , pub BeginRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , NumRenderTargets : UINT , pRenderTargets : * const D3D12_RENDER_PASS_RENDER_TARGET_DESC , pDepthStencil : * const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC , Flags : D3D12_RENDER_PASS_FLAGS) > , pub EndRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6) > , pub InitializeMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pMetaCommand : * mut ID3D12MetaCommand , pInitializationParametersData : * const :: std :: os :: raw :: c_void , InitializationParametersDataSizeInBytes : SIZE_T) > , pub ExecuteMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pMetaCommand : * mut ID3D12MetaCommand , pExecutionParametersData : * const :: std :: os :: raw :: c_void , ExecutionParametersDataSizeInBytes : SIZE_T) > , pub BuildRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC , NumPostbuildInfoDescs : UINT , pPostbuildInfoDescs : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC) > , pub EmitRaytracingAccelerationStructurePostbuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDesc : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC , NumSourceAccelerationStructures : UINT , pSourceAccelerationStructureData : * const D3D12_GPU_VIRTUAL_ADDRESS) > , pub CopyRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , DestAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , SourceAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , Mode : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) > , pub SetPipelineState1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pStateObject : * mut ID3D12StateObject) > , pub DispatchRays : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , pDesc : * const D3D12_DISPATCH_RAYS_DESC) > , pub RSSetShadingRate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , baseShadingRate : D3D12_SHADING_RATE , combiners : * const D3D12_SHADING_RATE_COMBINER) > , pub RSSetShadingRateImage : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , shadingRateImage : * mut ID3D12Resource) > , pub DispatchMesh : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList6 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , }
18791#[repr(C)]
18792#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18793pub struct ID3D12GraphicsCommandList6 {
18794    pub lpVtbl: *mut ID3D12GraphicsCommandList6Vtbl,
18795}
18796impl Default for ID3D12GraphicsCommandList6 {
18797    fn default() -> Self {
18798        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18799        unsafe {
18800            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18801            s.assume_init()
18802        }
18803    }
18804}
18805extern "C" {
18806    pub static IID_ID3D12GraphicsCommandList7: IID;
18807}
18808#[repr(C)]
18809#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18810pub struct ID3D12GraphicsCommandList7Vtbl { pub QueryInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , riid : * const IID , ppvObject : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub AddRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) -> ULONG > , pub Release : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) -> ULONG > , pub GetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , guid : * const GUID , pDataSize : * mut UINT , pData : * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , guid : * const GUID , DataSize : UINT , pData : * const :: std :: os :: raw :: c_void) -> HRESULT > , pub SetPrivateDataInterface : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , guid : * const GUID , pData : * const IUnknown) -> HRESULT > , pub SetName : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Name : LPCWSTR) -> HRESULT > , pub GetDevice : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , riid : * const IID , ppvDevice : * mut * mut :: std :: os :: raw :: c_void) -> HRESULT > , pub GetType : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) -> D3D12_COMMAND_LIST_TYPE > , pub Close : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) -> HRESULT > , pub Reset : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pAllocator : * mut ID3D12CommandAllocator , pInitialState : * mut ID3D12PipelineState) -> HRESULT > , pub ClearState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pPipelineState : * mut ID3D12PipelineState) > , pub DrawInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , VertexCountPerInstance : UINT , InstanceCount : UINT , StartVertexLocation : UINT , StartInstanceLocation : UINT) > , pub DrawIndexedInstanced : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , IndexCountPerInstance : UINT , InstanceCount : UINT , StartIndexLocation : UINT , BaseVertexLocation : INT , StartInstanceLocation : UINT) > , pub Dispatch : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , pub CopyBufferRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , NumBytes : UINT64) > , pub CopyTextureRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDst : * const D3D12_TEXTURE_COPY_LOCATION , DstX : UINT , DstY : UINT , DstZ : UINT , pSrc : * const D3D12_TEXTURE_COPY_LOCATION , pSrcBox : * const D3D12_BOX) > , pub CopyResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstResource : * mut ID3D12Resource , pSrcResource : * mut ID3D12Resource) > , pub CopyTiles : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pTiledResource : * mut ID3D12Resource , pTileRegionStartCoordinate : * const D3D12_TILED_RESOURCE_COORDINATE , pTileRegionSize : * const D3D12_TILE_REGION_SIZE , pBuffer : * mut ID3D12Resource , BufferStartOffsetInBytes : UINT64 , Flags : D3D12_TILE_COPY_FLAGS) > , pub ResolveSubresource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , Format : DXGI_FORMAT) > , pub IASetPrimitiveTopology : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , PrimitiveTopology : D3D12_PRIMITIVE_TOPOLOGY) > , pub RSSetViewports : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumViewports : UINT , pViewports : * const D3D12_VIEWPORT) > , pub RSSetScissorRects : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub OMSetBlendFactor : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , BlendFactor : * const FLOAT) > , pub OMSetStencilRef : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , StencilRef : UINT) > , pub SetPipelineState : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pPipelineState : * mut ID3D12PipelineState) > , pub ResourceBarrier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumBarriers : UINT , pBarriers : * const D3D12_RESOURCE_BARRIER) > , pub ExecuteBundle : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pCommandList : * mut ID3D12GraphicsCommandList) > , pub SetDescriptorHeaps : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumDescriptorHeaps : UINT , ppDescriptorHeaps : * const * mut ID3D12DescriptorHeap) > , pub SetComputeRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pRootSignature : * mut ID3D12RootSignature) > , pub SetGraphicsRootSignature : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pRootSignature : * mut ID3D12RootSignature) > , pub SetComputeRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetGraphicsRootDescriptorTable : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BaseDescriptor : D3D12_GPU_DESCRIPTOR_HANDLE) > , pub SetComputeRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstant : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , SrcData : UINT , DestOffsetIn32BitValues : UINT) > , pub SetComputeRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetGraphicsRoot32BitConstants : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , Num32BitValuesToSet : UINT , pSrcData : * const :: std :: os :: raw :: c_void , DestOffsetIn32BitValues : UINT) > , pub SetComputeRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootConstantBufferView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootShaderResourceView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetComputeRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub SetGraphicsRootUnorderedAccessView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RootParameterIndex : UINT , BufferLocation : D3D12_GPU_VIRTUAL_ADDRESS) > , pub IASetIndexBuffer : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pView : * const D3D12_INDEX_BUFFER_VIEW) > , pub IASetVertexBuffers : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_VERTEX_BUFFER_VIEW) > , pub SOSetTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , StartSlot : UINT , NumViews : UINT , pViews : * const D3D12_STREAM_OUTPUT_BUFFER_VIEW) > , pub OMSetRenderTargets : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumRenderTargetDescriptors : UINT , pRenderTargetDescriptors : * const D3D12_CPU_DESCRIPTOR_HANDLE , RTsSingleHandleToDescriptorRange : BOOL , pDepthStencilDescriptor : * const D3D12_CPU_DESCRIPTOR_HANDLE) > , pub ClearDepthStencilView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , DepthStencilView : D3D12_CPU_DESCRIPTOR_HANDLE , ClearFlags : D3D12_CLEAR_FLAGS , Depth : FLOAT , Stencil : UINT8 , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearRenderTargetView : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , RenderTargetView : D3D12_CPU_DESCRIPTOR_HANDLE , ColorRGBA : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewUint : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const UINT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub ClearUnorderedAccessViewFloat : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , ViewGPUHandleInCurrentHeap : D3D12_GPU_DESCRIPTOR_HANDLE , ViewCPUHandle : D3D12_CPU_DESCRIPTOR_HANDLE , pResource : * mut ID3D12Resource , Values : * const FLOAT , NumRects : UINT , pRects : * const D3D12_RECT) > , pub DiscardResource : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pResource : * mut ID3D12Resource , pRegion : * const D3D12_DISCARD_REGION) > , pub BeginQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub EndQuery : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , Index : UINT) > , pub ResolveQueryData : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pQueryHeap : * mut ID3D12QueryHeap , Type : D3D12_QUERY_TYPE , StartIndex : UINT , NumQueries : UINT , pDestinationBuffer : * mut ID3D12Resource , AlignedDestinationBufferOffset : UINT64) > , pub SetPredication : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pBuffer : * mut ID3D12Resource , AlignedBufferOffset : UINT64 , Operation : D3D12_PREDICATION_OP) > , pub SetMarker : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub BeginEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Metadata : UINT , pData : * const :: std :: os :: raw :: c_void , Size : UINT) > , pub EndEvent : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) > , pub ExecuteIndirect : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pCommandSignature : * mut ID3D12CommandSignature , MaxCommandCount : UINT , pArgumentBuffer : * mut ID3D12Resource , ArgumentBufferOffset : UINT64 , pCountBuffer : * mut ID3D12Resource , CountBufferOffset : UINT64) > , pub AtomicCopyBufferUINT : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub AtomicCopyBufferUINT64 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstBuffer : * mut ID3D12Resource , DstOffset : UINT64 , pSrcBuffer : * mut ID3D12Resource , SrcOffset : UINT64 , Dependencies : UINT , ppDependentResources : * const * mut ID3D12Resource , pDependentSubresourceRanges : * const D3D12_SUBRESOURCE_RANGE_UINT64) > , pub OMSetDepthBounds : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Min : FLOAT , Max : FLOAT) > , pub SetSamplePositions : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumSamplesPerPixel : UINT , NumPixels : UINT , pSamplePositions : * mut D3D12_SAMPLE_POSITION) > , pub ResolveSubresourceRegion : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDstResource : * mut ID3D12Resource , DstSubresource : UINT , DstX : UINT , DstY : UINT , pSrcResource : * mut ID3D12Resource , SrcSubresource : UINT , pSrcRect : * mut D3D12_RECT , Format : DXGI_FORMAT , ResolveMode : D3D12_RESOLVE_MODE) > , pub SetViewInstanceMask : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Mask : UINT) > , pub WriteBufferImmediate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , Count : UINT , pParams : * const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER , pModes : * const D3D12_WRITEBUFFERIMMEDIATE_MODE) > , pub SetProtectedResourceSession : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pProtectedResourceSession : * mut ID3D12ProtectedResourceSession) > , pub BeginRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumRenderTargets : UINT , pRenderTargets : * const D3D12_RENDER_PASS_RENDER_TARGET_DESC , pDepthStencil : * const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC , Flags : D3D12_RENDER_PASS_FLAGS) > , pub EndRenderPass : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7) > , pub InitializeMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pMetaCommand : * mut ID3D12MetaCommand , pInitializationParametersData : * const :: std :: os :: raw :: c_void , InitializationParametersDataSizeInBytes : SIZE_T) > , pub ExecuteMetaCommand : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pMetaCommand : * mut ID3D12MetaCommand , pExecutionParametersData : * const :: std :: os :: raw :: c_void , ExecutionParametersDataSizeInBytes : SIZE_T) > , pub BuildRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDesc : * const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC , NumPostbuildInfoDescs : UINT , pPostbuildInfoDescs : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC) > , pub EmitRaytracingAccelerationStructurePostbuildInfo : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDesc : * const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC , NumSourceAccelerationStructures : UINT , pSourceAccelerationStructureData : * const D3D12_GPU_VIRTUAL_ADDRESS) > , pub CopyRaytracingAccelerationStructure : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , DestAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , SourceAccelerationStructureData : D3D12_GPU_VIRTUAL_ADDRESS , Mode : D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) > , pub SetPipelineState1 : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pStateObject : * mut ID3D12StateObject) > , pub DispatchRays : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , pDesc : * const D3D12_DISPATCH_RAYS_DESC) > , pub RSSetShadingRate : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , baseShadingRate : D3D12_SHADING_RATE , combiners : * const D3D12_SHADING_RATE_COMBINER) > , pub RSSetShadingRateImage : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , shadingRateImage : * mut ID3D12Resource) > , pub DispatchMesh : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , ThreadGroupCountX : UINT , ThreadGroupCountY : UINT , ThreadGroupCountZ : UINT) > , pub Barrier : :: std :: option :: Option < unsafe extern "C" fn (This : * mut ID3D12GraphicsCommandList7 , NumBarrierGroups : UINT32 , pBarrierGroups : * const D3D12_BARRIER_GROUP) > , }
18811#[repr(C)]
18812#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18813pub struct ID3D12GraphicsCommandList7 {
18814    pub lpVtbl: *mut ID3D12GraphicsCommandList7Vtbl,
18815}
18816impl Default for ID3D12GraphicsCommandList7 {
18817    fn default() -> Self {
18818        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18819        unsafe {
18820            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18821            s.assume_init()
18822        }
18823    }
18824}
18825#[repr(C)]
18826#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
18827pub struct DXGI_RGB {
18828    pub Red: f32,
18829    pub Green: f32,
18830    pub Blue: f32,
18831}
18832#[repr(C)]
18833#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
18834pub struct _D3DCOLORVALUE {
18835    pub r: f32,
18836    pub g: f32,
18837    pub b: f32,
18838    pub a: f32,
18839}
18840pub type D3DCOLORVALUE = _D3DCOLORVALUE;
18841pub type DXGI_RGBA = D3DCOLORVALUE;
18842#[repr(C)]
18843#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
18844pub struct DXGI_GAMMA_CONTROL {
18845    pub Scale: DXGI_RGB,
18846    pub Offset: DXGI_RGB,
18847    pub GammaCurve: [DXGI_RGB; 1025usize],
18848}
18849impl Default for DXGI_GAMMA_CONTROL {
18850    fn default() -> Self {
18851        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18852        unsafe {
18853            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18854            s.assume_init()
18855        }
18856    }
18857}
18858#[repr(C)]
18859#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
18860pub struct DXGI_GAMMA_CONTROL_CAPABILITIES {
18861    pub ScaleAndOffsetSupported: BOOL,
18862    pub MaxConvertedValue: f32,
18863    pub MinConvertedValue: f32,
18864    pub NumGammaControlPoints: UINT,
18865    pub ControlPointPositions: [f32; 1025usize],
18866}
18867impl Default for DXGI_GAMMA_CONTROL_CAPABILITIES {
18868    fn default() -> Self {
18869        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18870        unsafe {
18871            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18872            s.assume_init()
18873        }
18874    }
18875}
18876pub const DXGI_MODE_SCANLINE_ORDER_DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED:
18877    DXGI_MODE_SCANLINE_ORDER = 0;
18878pub const DXGI_MODE_SCANLINE_ORDER_DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE:
18879    DXGI_MODE_SCANLINE_ORDER = 1;
18880pub const DXGI_MODE_SCANLINE_ORDER_DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST : DXGI_MODE_SCANLINE_ORDER = 2 ;
18881pub const DXGI_MODE_SCANLINE_ORDER_DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST : DXGI_MODE_SCANLINE_ORDER = 3 ;
18882pub type DXGI_MODE_SCANLINE_ORDER = ::std::os::raw::c_int;
18883pub const DXGI_MODE_SCALING_DXGI_MODE_SCALING_UNSPECIFIED: DXGI_MODE_SCALING =
18884    0;
18885pub const DXGI_MODE_SCALING_DXGI_MODE_SCALING_CENTERED: DXGI_MODE_SCALING = 1;
18886pub const DXGI_MODE_SCALING_DXGI_MODE_SCALING_STRETCHED: DXGI_MODE_SCALING = 2;
18887pub type DXGI_MODE_SCALING = ::std::os::raw::c_int;
18888pub const DXGI_MODE_ROTATION_DXGI_MODE_ROTATION_UNSPECIFIED:
18889    DXGI_MODE_ROTATION = 0;
18890pub const DXGI_MODE_ROTATION_DXGI_MODE_ROTATION_IDENTITY: DXGI_MODE_ROTATION =
18891    1;
18892pub const DXGI_MODE_ROTATION_DXGI_MODE_ROTATION_ROTATE90: DXGI_MODE_ROTATION =
18893    2;
18894pub const DXGI_MODE_ROTATION_DXGI_MODE_ROTATION_ROTATE180: DXGI_MODE_ROTATION =
18895    3;
18896pub const DXGI_MODE_ROTATION_DXGI_MODE_ROTATION_ROTATE270: DXGI_MODE_ROTATION =
18897    4;
18898pub type DXGI_MODE_ROTATION = ::std::os::raw::c_int;
18899#[repr(C)]
18900#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18901pub struct DXGI_MODE_DESC {
18902    pub Width: UINT,
18903    pub Height: UINT,
18904    pub RefreshRate: DXGI_RATIONAL,
18905    pub Format: DXGI_FORMAT,
18906    pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
18907    pub Scaling: DXGI_MODE_SCALING,
18908}
18909impl Default for DXGI_MODE_DESC {
18910    fn default() -> Self {
18911        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18912        unsafe {
18913            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18914            s.assume_init()
18915        }
18916    }
18917}
18918#[repr(C)]
18919#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18920pub struct DXGI_JPEG_DC_HUFFMAN_TABLE {
18921    pub CodeCounts: [BYTE; 12usize],
18922    pub CodeValues: [BYTE; 12usize],
18923}
18924#[repr(C)]
18925#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18926pub struct DXGI_JPEG_AC_HUFFMAN_TABLE {
18927    pub CodeCounts: [BYTE; 16usize],
18928    pub CodeValues: [BYTE; 162usize],
18929}
18930impl Default for DXGI_JPEG_AC_HUFFMAN_TABLE {
18931    fn default() -> Self {
18932        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18933        unsafe {
18934            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18935            s.assume_init()
18936        }
18937    }
18938}
18939#[repr(C)]
18940#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18941pub struct DXGI_JPEG_QUANTIZATION_TABLE {
18942    pub Elements: [BYTE; 64usize],
18943}
18944impl Default for DXGI_JPEG_QUANTIZATION_TABLE {
18945    fn default() -> Self {
18946        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18947        unsafe {
18948            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18949            s.assume_init()
18950        }
18951    }
18952}
18953pub type DXGI_USAGE = UINT;
18954#[repr(C)]
18955#[derive(Copy, Clone)]
18956pub struct DXGI_FRAME_STATISTICS {
18957    pub PresentCount: UINT,
18958    pub PresentRefreshCount: UINT,
18959    pub SyncRefreshCount: UINT,
18960    pub SyncQPCTime: LARGE_INTEGER,
18961    pub SyncGPUTime: LARGE_INTEGER,
18962}
18963impl Default for DXGI_FRAME_STATISTICS {
18964    fn default() -> Self {
18965        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18966        unsafe {
18967            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18968            s.assume_init()
18969        }
18970    }
18971}
18972impl ::std::fmt::Debug for DXGI_FRAME_STATISTICS {
18973    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18974        write ! (f , "DXGI_FRAME_STATISTICS {{ PresentCount: {:?}, PresentRefreshCount: {:?}, SyncRefreshCount: {:?}, SyncQPCTime: {:?}, SyncGPUTime: {:?} }}" , self . PresentCount , self . PresentRefreshCount , self . SyncRefreshCount , self . SyncQPCTime , self . SyncGPUTime)
18975    }
18976}
18977#[repr(C)]
18978#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18979pub struct DXGI_MAPPED_RECT {
18980    pub Pitch: INT,
18981    pub pBits: *mut BYTE,
18982}
18983impl Default for DXGI_MAPPED_RECT {
18984    fn default() -> Self {
18985        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18986        unsafe {
18987            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18988            s.assume_init()
18989        }
18990    }
18991}
18992#[repr(C)]
18993#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
18994pub struct DXGI_ADAPTER_DESC {
18995    pub Description: [WCHAR; 128usize],
18996    pub VendorId: UINT,
18997    pub DeviceId: UINT,
18998    pub SubSysId: UINT,
18999    pub Revision: UINT,
19000    pub DedicatedVideoMemory: SIZE_T,
19001    pub DedicatedSystemMemory: SIZE_T,
19002    pub SharedSystemMemory: SIZE_T,
19003    pub AdapterLuid: LUID,
19004}
19005impl Default for DXGI_ADAPTER_DESC {
19006    fn default() -> Self {
19007        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19008        unsafe {
19009            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19010            s.assume_init()
19011        }
19012    }
19013}
19014#[repr(C)]
19015#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19016pub struct DXGI_OUTPUT_DESC {
19017    pub DeviceName: [WCHAR; 32usize],
19018    pub DesktopCoordinates: RECT,
19019    pub AttachedToDesktop: BOOL,
19020    pub Rotation: DXGI_MODE_ROTATION,
19021    pub Monitor: HMONITOR,
19022}
19023impl Default for DXGI_OUTPUT_DESC {
19024    fn default() -> Self {
19025        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19026        unsafe {
19027            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19028            s.assume_init()
19029        }
19030    }
19031}
19032#[repr(C)]
19033#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19034pub struct DXGI_SHARED_RESOURCE {
19035    pub Handle: HANDLE,
19036}
19037impl Default for DXGI_SHARED_RESOURCE {
19038    fn default() -> Self {
19039        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19040        unsafe {
19041            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19042            s.assume_init()
19043        }
19044    }
19045}
19046pub const DXGI_RESIDENCY_DXGI_RESIDENCY_FULLY_RESIDENT: DXGI_RESIDENCY = 1;
19047pub const DXGI_RESIDENCY_DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY:
19048    DXGI_RESIDENCY = 2;
19049pub const DXGI_RESIDENCY_DXGI_RESIDENCY_EVICTED_TO_DISK: DXGI_RESIDENCY = 3;
19050pub type DXGI_RESIDENCY = ::std::os::raw::c_int;
19051#[repr(C)]
19052#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19053pub struct DXGI_SURFACE_DESC {
19054    pub Width: UINT,
19055    pub Height: UINT,
19056    pub Format: DXGI_FORMAT,
19057    pub SampleDesc: DXGI_SAMPLE_DESC,
19058}
19059impl Default for DXGI_SURFACE_DESC {
19060    fn default() -> Self {
19061        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19062        unsafe {
19063            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19064            s.assume_init()
19065        }
19066    }
19067}
19068pub const DXGI_SWAP_EFFECT_DXGI_SWAP_EFFECT_DISCARD: DXGI_SWAP_EFFECT = 0;
19069pub const DXGI_SWAP_EFFECT_DXGI_SWAP_EFFECT_SEQUENTIAL: DXGI_SWAP_EFFECT = 1;
19070pub const DXGI_SWAP_EFFECT_DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL: DXGI_SWAP_EFFECT =
19071    3;
19072pub const DXGI_SWAP_EFFECT_DXGI_SWAP_EFFECT_FLIP_DISCARD: DXGI_SWAP_EFFECT = 4;
19073pub type DXGI_SWAP_EFFECT = ::std::os::raw::c_int;
19074pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_NONPREROTATED:
19075    DXGI_SWAP_CHAIN_FLAG = 1;
19076pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH:
19077    DXGI_SWAP_CHAIN_FLAG = 2;
19078pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE:
19079    DXGI_SWAP_CHAIN_FLAG = 4;
19080pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT:
19081    DXGI_SWAP_CHAIN_FLAG = 8;
19082pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER : DXGI_SWAP_CHAIN_FLAG = 16 ;
19083pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY:
19084    DXGI_SWAP_CHAIN_FLAG = 32;
19085pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT : DXGI_SWAP_CHAIN_FLAG = 64 ;
19086pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER:
19087    DXGI_SWAP_CHAIN_FLAG = 128;
19088pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO:
19089    DXGI_SWAP_CHAIN_FLAG = 256;
19090pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO:
19091    DXGI_SWAP_CHAIN_FLAG = 512;
19092pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED:
19093    DXGI_SWAP_CHAIN_FLAG = 1024;
19094pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING:
19095    DXGI_SWAP_CHAIN_FLAG = 2048;
19096pub const DXGI_SWAP_CHAIN_FLAG_DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS : DXGI_SWAP_CHAIN_FLAG = 4096 ;
19097pub type DXGI_SWAP_CHAIN_FLAG = ::std::os::raw::c_int;
19098#[repr(C)]
19099#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19100pub struct DXGI_SWAP_CHAIN_DESC {
19101    pub BufferDesc: DXGI_MODE_DESC,
19102    pub SampleDesc: DXGI_SAMPLE_DESC,
19103    pub BufferUsage: DXGI_USAGE,
19104    pub BufferCount: UINT,
19105    pub OutputWindow: HWND,
19106    pub Windowed: BOOL,
19107    pub SwapEffect: DXGI_SWAP_EFFECT,
19108    pub Flags: UINT,
19109}
19110impl Default for DXGI_SWAP_CHAIN_DESC {
19111    fn default() -> Self {
19112        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19113        unsafe {
19114            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19115            s.assume_init()
19116        }
19117    }
19118}
19119extern "C" {
19120    pub static IID_IDXGIObject: IID;
19121}
19122#[repr(C)]
19123#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19124pub struct IDXGIObjectVtbl {
19125    pub QueryInterface: ::std::option::Option<
19126        unsafe extern "C" fn(
19127            This: *mut IDXGIObject,
19128            riid: *const IID,
19129            ppvObject: *mut *mut ::std::os::raw::c_void,
19130        ) -> HRESULT,
19131    >,
19132    pub AddRef: ::std::option::Option<
19133        unsafe extern "C" fn(This: *mut IDXGIObject) -> ULONG,
19134    >,
19135    pub Release: ::std::option::Option<
19136        unsafe extern "C" fn(This: *mut IDXGIObject) -> ULONG,
19137    >,
19138    pub SetPrivateData: ::std::option::Option<
19139        unsafe extern "C" fn(
19140            This: *mut IDXGIObject,
19141            Name: *const GUID,
19142            DataSize: UINT,
19143            pData: *const ::std::os::raw::c_void,
19144        ) -> HRESULT,
19145    >,
19146    pub SetPrivateDataInterface: ::std::option::Option<
19147        unsafe extern "C" fn(
19148            This: *mut IDXGIObject,
19149            Name: *const GUID,
19150            pUnknown: *const IUnknown,
19151        ) -> HRESULT,
19152    >,
19153    pub GetPrivateData: ::std::option::Option<
19154        unsafe extern "C" fn(
19155            This: *mut IDXGIObject,
19156            Name: *const GUID,
19157            pDataSize: *mut UINT,
19158            pData: *mut ::std::os::raw::c_void,
19159        ) -> HRESULT,
19160    >,
19161    pub GetParent: ::std::option::Option<
19162        unsafe extern "C" fn(
19163            This: *mut IDXGIObject,
19164            riid: *const IID,
19165            ppParent: *mut *mut ::std::os::raw::c_void,
19166        ) -> HRESULT,
19167    >,
19168}
19169#[repr(C)]
19170#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19171pub struct IDXGIObject {
19172    pub lpVtbl: *mut IDXGIObjectVtbl,
19173}
19174impl Default for IDXGIObject {
19175    fn default() -> Self {
19176        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19177        unsafe {
19178            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19179            s.assume_init()
19180        }
19181    }
19182}
19183extern "C" {
19184    pub static IID_IDXGIDeviceSubObject: IID;
19185}
19186#[repr(C)]
19187#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19188pub struct IDXGIDeviceSubObjectVtbl {
19189    pub QueryInterface: ::std::option::Option<
19190        unsafe extern "C" fn(
19191            This: *mut IDXGIDeviceSubObject,
19192            riid: *const IID,
19193            ppvObject: *mut *mut ::std::os::raw::c_void,
19194        ) -> HRESULT,
19195    >,
19196    pub AddRef: ::std::option::Option<
19197        unsafe extern "C" fn(This: *mut IDXGIDeviceSubObject) -> ULONG,
19198    >,
19199    pub Release: ::std::option::Option<
19200        unsafe extern "C" fn(This: *mut IDXGIDeviceSubObject) -> ULONG,
19201    >,
19202    pub SetPrivateData: ::std::option::Option<
19203        unsafe extern "C" fn(
19204            This: *mut IDXGIDeviceSubObject,
19205            Name: *const GUID,
19206            DataSize: UINT,
19207            pData: *const ::std::os::raw::c_void,
19208        ) -> HRESULT,
19209    >,
19210    pub SetPrivateDataInterface: ::std::option::Option<
19211        unsafe extern "C" fn(
19212            This: *mut IDXGIDeviceSubObject,
19213            Name: *const GUID,
19214            pUnknown: *const IUnknown,
19215        ) -> HRESULT,
19216    >,
19217    pub GetPrivateData: ::std::option::Option<
19218        unsafe extern "C" fn(
19219            This: *mut IDXGIDeviceSubObject,
19220            Name: *const GUID,
19221            pDataSize: *mut UINT,
19222            pData: *mut ::std::os::raw::c_void,
19223        ) -> HRESULT,
19224    >,
19225    pub GetParent: ::std::option::Option<
19226        unsafe extern "C" fn(
19227            This: *mut IDXGIDeviceSubObject,
19228            riid: *const IID,
19229            ppParent: *mut *mut ::std::os::raw::c_void,
19230        ) -> HRESULT,
19231    >,
19232    pub GetDevice: ::std::option::Option<
19233        unsafe extern "C" fn(
19234            This: *mut IDXGIDeviceSubObject,
19235            riid: *const IID,
19236            ppDevice: *mut *mut ::std::os::raw::c_void,
19237        ) -> HRESULT,
19238    >,
19239}
19240#[repr(C)]
19241#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19242pub struct IDXGIDeviceSubObject {
19243    pub lpVtbl: *mut IDXGIDeviceSubObjectVtbl,
19244}
19245impl Default for IDXGIDeviceSubObject {
19246    fn default() -> Self {
19247        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19248        unsafe {
19249            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19250            s.assume_init()
19251        }
19252    }
19253}
19254extern "C" {
19255    pub static IID_IDXGIResource: IID;
19256}
19257#[repr(C)]
19258#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19259pub struct IDXGIResourceVtbl {
19260    pub QueryInterface: ::std::option::Option<
19261        unsafe extern "C" fn(
19262            This: *mut IDXGIResource,
19263            riid: *const IID,
19264            ppvObject: *mut *mut ::std::os::raw::c_void,
19265        ) -> HRESULT,
19266    >,
19267    pub AddRef: ::std::option::Option<
19268        unsafe extern "C" fn(This: *mut IDXGIResource) -> ULONG,
19269    >,
19270    pub Release: ::std::option::Option<
19271        unsafe extern "C" fn(This: *mut IDXGIResource) -> ULONG,
19272    >,
19273    pub SetPrivateData: ::std::option::Option<
19274        unsafe extern "C" fn(
19275            This: *mut IDXGIResource,
19276            Name: *const GUID,
19277            DataSize: UINT,
19278            pData: *const ::std::os::raw::c_void,
19279        ) -> HRESULT,
19280    >,
19281    pub SetPrivateDataInterface: ::std::option::Option<
19282        unsafe extern "C" fn(
19283            This: *mut IDXGIResource,
19284            Name: *const GUID,
19285            pUnknown: *const IUnknown,
19286        ) -> HRESULT,
19287    >,
19288    pub GetPrivateData: ::std::option::Option<
19289        unsafe extern "C" fn(
19290            This: *mut IDXGIResource,
19291            Name: *const GUID,
19292            pDataSize: *mut UINT,
19293            pData: *mut ::std::os::raw::c_void,
19294        ) -> HRESULT,
19295    >,
19296    pub GetParent: ::std::option::Option<
19297        unsafe extern "C" fn(
19298            This: *mut IDXGIResource,
19299            riid: *const IID,
19300            ppParent: *mut *mut ::std::os::raw::c_void,
19301        ) -> HRESULT,
19302    >,
19303    pub GetDevice: ::std::option::Option<
19304        unsafe extern "C" fn(
19305            This: *mut IDXGIResource,
19306            riid: *const IID,
19307            ppDevice: *mut *mut ::std::os::raw::c_void,
19308        ) -> HRESULT,
19309    >,
19310    pub GetSharedHandle: ::std::option::Option<
19311        unsafe extern "C" fn(
19312            This: *mut IDXGIResource,
19313            pSharedHandle: *mut HANDLE,
19314        ) -> HRESULT,
19315    >,
19316    pub GetUsage: ::std::option::Option<
19317        unsafe extern "C" fn(
19318            This: *mut IDXGIResource,
19319            pUsage: *mut DXGI_USAGE,
19320        ) -> HRESULT,
19321    >,
19322    pub SetEvictionPriority: ::std::option::Option<
19323        unsafe extern "C" fn(
19324            This: *mut IDXGIResource,
19325            EvictionPriority: UINT,
19326        ) -> HRESULT,
19327    >,
19328    pub GetEvictionPriority: ::std::option::Option<
19329        unsafe extern "C" fn(
19330            This: *mut IDXGIResource,
19331            pEvictionPriority: *mut UINT,
19332        ) -> HRESULT,
19333    >,
19334}
19335#[repr(C)]
19336#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19337pub struct IDXGIResource {
19338    pub lpVtbl: *mut IDXGIResourceVtbl,
19339}
19340impl Default for IDXGIResource {
19341    fn default() -> Self {
19342        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19343        unsafe {
19344            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19345            s.assume_init()
19346        }
19347    }
19348}
19349extern "C" {
19350    pub static IID_IDXGIKeyedMutex: IID;
19351}
19352#[repr(C)]
19353#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19354pub struct IDXGIKeyedMutexVtbl {
19355    pub QueryInterface: ::std::option::Option<
19356        unsafe extern "C" fn(
19357            This: *mut IDXGIKeyedMutex,
19358            riid: *const IID,
19359            ppvObject: *mut *mut ::std::os::raw::c_void,
19360        ) -> HRESULT,
19361    >,
19362    pub AddRef: ::std::option::Option<
19363        unsafe extern "C" fn(This: *mut IDXGIKeyedMutex) -> ULONG,
19364    >,
19365    pub Release: ::std::option::Option<
19366        unsafe extern "C" fn(This: *mut IDXGIKeyedMutex) -> ULONG,
19367    >,
19368    pub SetPrivateData: ::std::option::Option<
19369        unsafe extern "C" fn(
19370            This: *mut IDXGIKeyedMutex,
19371            Name: *const GUID,
19372            DataSize: UINT,
19373            pData: *const ::std::os::raw::c_void,
19374        ) -> HRESULT,
19375    >,
19376    pub SetPrivateDataInterface: ::std::option::Option<
19377        unsafe extern "C" fn(
19378            This: *mut IDXGIKeyedMutex,
19379            Name: *const GUID,
19380            pUnknown: *const IUnknown,
19381        ) -> HRESULT,
19382    >,
19383    pub GetPrivateData: ::std::option::Option<
19384        unsafe extern "C" fn(
19385            This: *mut IDXGIKeyedMutex,
19386            Name: *const GUID,
19387            pDataSize: *mut UINT,
19388            pData: *mut ::std::os::raw::c_void,
19389        ) -> HRESULT,
19390    >,
19391    pub GetParent: ::std::option::Option<
19392        unsafe extern "C" fn(
19393            This: *mut IDXGIKeyedMutex,
19394            riid: *const IID,
19395            ppParent: *mut *mut ::std::os::raw::c_void,
19396        ) -> HRESULT,
19397    >,
19398    pub GetDevice: ::std::option::Option<
19399        unsafe extern "C" fn(
19400            This: *mut IDXGIKeyedMutex,
19401            riid: *const IID,
19402            ppDevice: *mut *mut ::std::os::raw::c_void,
19403        ) -> HRESULT,
19404    >,
19405    pub AcquireSync: ::std::option::Option<
19406        unsafe extern "C" fn(
19407            This: *mut IDXGIKeyedMutex,
19408            Key: UINT64,
19409            dwMilliseconds: DWORD,
19410        ) -> HRESULT,
19411    >,
19412    pub ReleaseSync: ::std::option::Option<
19413        unsafe extern "C" fn(
19414            This: *mut IDXGIKeyedMutex,
19415            Key: UINT64,
19416        ) -> HRESULT,
19417    >,
19418}
19419#[repr(C)]
19420#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19421pub struct IDXGIKeyedMutex {
19422    pub lpVtbl: *mut IDXGIKeyedMutexVtbl,
19423}
19424impl Default for IDXGIKeyedMutex {
19425    fn default() -> Self {
19426        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19427        unsafe {
19428            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19429            s.assume_init()
19430        }
19431    }
19432}
19433extern "C" {
19434    pub static IID_IDXGISurface: IID;
19435}
19436#[repr(C)]
19437#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19438pub struct IDXGISurfaceVtbl {
19439    pub QueryInterface: ::std::option::Option<
19440        unsafe extern "C" fn(
19441            This: *mut IDXGISurface,
19442            riid: *const IID,
19443            ppvObject: *mut *mut ::std::os::raw::c_void,
19444        ) -> HRESULT,
19445    >,
19446    pub AddRef: ::std::option::Option<
19447        unsafe extern "C" fn(This: *mut IDXGISurface) -> ULONG,
19448    >,
19449    pub Release: ::std::option::Option<
19450        unsafe extern "C" fn(This: *mut IDXGISurface) -> ULONG,
19451    >,
19452    pub SetPrivateData: ::std::option::Option<
19453        unsafe extern "C" fn(
19454            This: *mut IDXGISurface,
19455            Name: *const GUID,
19456            DataSize: UINT,
19457            pData: *const ::std::os::raw::c_void,
19458        ) -> HRESULT,
19459    >,
19460    pub SetPrivateDataInterface: ::std::option::Option<
19461        unsafe extern "C" fn(
19462            This: *mut IDXGISurface,
19463            Name: *const GUID,
19464            pUnknown: *const IUnknown,
19465        ) -> HRESULT,
19466    >,
19467    pub GetPrivateData: ::std::option::Option<
19468        unsafe extern "C" fn(
19469            This: *mut IDXGISurface,
19470            Name: *const GUID,
19471            pDataSize: *mut UINT,
19472            pData: *mut ::std::os::raw::c_void,
19473        ) -> HRESULT,
19474    >,
19475    pub GetParent: ::std::option::Option<
19476        unsafe extern "C" fn(
19477            This: *mut IDXGISurface,
19478            riid: *const IID,
19479            ppParent: *mut *mut ::std::os::raw::c_void,
19480        ) -> HRESULT,
19481    >,
19482    pub GetDevice: ::std::option::Option<
19483        unsafe extern "C" fn(
19484            This: *mut IDXGISurface,
19485            riid: *const IID,
19486            ppDevice: *mut *mut ::std::os::raw::c_void,
19487        ) -> HRESULT,
19488    >,
19489    pub GetDesc: ::std::option::Option<
19490        unsafe extern "C" fn(
19491            This: *mut IDXGISurface,
19492            pDesc: *mut DXGI_SURFACE_DESC,
19493        ) -> HRESULT,
19494    >,
19495    pub Map: ::std::option::Option<
19496        unsafe extern "C" fn(
19497            This: *mut IDXGISurface,
19498            pLockedRect: *mut DXGI_MAPPED_RECT,
19499            MapFlags: UINT,
19500        ) -> HRESULT,
19501    >,
19502    pub Unmap: ::std::option::Option<
19503        unsafe extern "C" fn(This: *mut IDXGISurface) -> HRESULT,
19504    >,
19505}
19506#[repr(C)]
19507#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19508pub struct IDXGISurface {
19509    pub lpVtbl: *mut IDXGISurfaceVtbl,
19510}
19511impl Default for IDXGISurface {
19512    fn default() -> Self {
19513        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19514        unsafe {
19515            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19516            s.assume_init()
19517        }
19518    }
19519}
19520extern "C" {
19521    pub static IID_IDXGISurface1: IID;
19522}
19523#[repr(C)]
19524#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19525pub struct IDXGISurface1Vtbl {
19526    pub QueryInterface: ::std::option::Option<
19527        unsafe extern "C" fn(
19528            This: *mut IDXGISurface1,
19529            riid: *const IID,
19530            ppvObject: *mut *mut ::std::os::raw::c_void,
19531        ) -> HRESULT,
19532    >,
19533    pub AddRef: ::std::option::Option<
19534        unsafe extern "C" fn(This: *mut IDXGISurface1) -> ULONG,
19535    >,
19536    pub Release: ::std::option::Option<
19537        unsafe extern "C" fn(This: *mut IDXGISurface1) -> ULONG,
19538    >,
19539    pub SetPrivateData: ::std::option::Option<
19540        unsafe extern "C" fn(
19541            This: *mut IDXGISurface1,
19542            Name: *const GUID,
19543            DataSize: UINT,
19544            pData: *const ::std::os::raw::c_void,
19545        ) -> HRESULT,
19546    >,
19547    pub SetPrivateDataInterface: ::std::option::Option<
19548        unsafe extern "C" fn(
19549            This: *mut IDXGISurface1,
19550            Name: *const GUID,
19551            pUnknown: *const IUnknown,
19552        ) -> HRESULT,
19553    >,
19554    pub GetPrivateData: ::std::option::Option<
19555        unsafe extern "C" fn(
19556            This: *mut IDXGISurface1,
19557            Name: *const GUID,
19558            pDataSize: *mut UINT,
19559            pData: *mut ::std::os::raw::c_void,
19560        ) -> HRESULT,
19561    >,
19562    pub GetParent: ::std::option::Option<
19563        unsafe extern "C" fn(
19564            This: *mut IDXGISurface1,
19565            riid: *const IID,
19566            ppParent: *mut *mut ::std::os::raw::c_void,
19567        ) -> HRESULT,
19568    >,
19569    pub GetDevice: ::std::option::Option<
19570        unsafe extern "C" fn(
19571            This: *mut IDXGISurface1,
19572            riid: *const IID,
19573            ppDevice: *mut *mut ::std::os::raw::c_void,
19574        ) -> HRESULT,
19575    >,
19576    pub GetDesc: ::std::option::Option<
19577        unsafe extern "C" fn(
19578            This: *mut IDXGISurface1,
19579            pDesc: *mut DXGI_SURFACE_DESC,
19580        ) -> HRESULT,
19581    >,
19582    pub Map: ::std::option::Option<
19583        unsafe extern "C" fn(
19584            This: *mut IDXGISurface1,
19585            pLockedRect: *mut DXGI_MAPPED_RECT,
19586            MapFlags: UINT,
19587        ) -> HRESULT,
19588    >,
19589    pub Unmap: ::std::option::Option<
19590        unsafe extern "C" fn(This: *mut IDXGISurface1) -> HRESULT,
19591    >,
19592    pub GetDC: ::std::option::Option<
19593        unsafe extern "C" fn(
19594            This: *mut IDXGISurface1,
19595            Discard: BOOL,
19596            phdc: *mut HDC,
19597        ) -> HRESULT,
19598    >,
19599    pub ReleaseDC: ::std::option::Option<
19600        unsafe extern "C" fn(
19601            This: *mut IDXGISurface1,
19602            pDirtyRect: *mut RECT,
19603        ) -> HRESULT,
19604    >,
19605}
19606#[repr(C)]
19607#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19608pub struct IDXGISurface1 {
19609    pub lpVtbl: *mut IDXGISurface1Vtbl,
19610}
19611impl Default for IDXGISurface1 {
19612    fn default() -> Self {
19613        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19614        unsafe {
19615            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19616            s.assume_init()
19617        }
19618    }
19619}
19620extern "C" {
19621    pub static IID_IDXGIAdapter: IID;
19622}
19623#[repr(C)]
19624#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19625pub struct IDXGIAdapterVtbl {
19626    pub QueryInterface: ::std::option::Option<
19627        unsafe extern "C" fn(
19628            This: *mut IDXGIAdapter,
19629            riid: *const IID,
19630            ppvObject: *mut *mut ::std::os::raw::c_void,
19631        ) -> HRESULT,
19632    >,
19633    pub AddRef: ::std::option::Option<
19634        unsafe extern "C" fn(This: *mut IDXGIAdapter) -> ULONG,
19635    >,
19636    pub Release: ::std::option::Option<
19637        unsafe extern "C" fn(This: *mut IDXGIAdapter) -> ULONG,
19638    >,
19639    pub SetPrivateData: ::std::option::Option<
19640        unsafe extern "C" fn(
19641            This: *mut IDXGIAdapter,
19642            Name: *const GUID,
19643            DataSize: UINT,
19644            pData: *const ::std::os::raw::c_void,
19645        ) -> HRESULT,
19646    >,
19647    pub SetPrivateDataInterface: ::std::option::Option<
19648        unsafe extern "C" fn(
19649            This: *mut IDXGIAdapter,
19650            Name: *const GUID,
19651            pUnknown: *const IUnknown,
19652        ) -> HRESULT,
19653    >,
19654    pub GetPrivateData: ::std::option::Option<
19655        unsafe extern "C" fn(
19656            This: *mut IDXGIAdapter,
19657            Name: *const GUID,
19658            pDataSize: *mut UINT,
19659            pData: *mut ::std::os::raw::c_void,
19660        ) -> HRESULT,
19661    >,
19662    pub GetParent: ::std::option::Option<
19663        unsafe extern "C" fn(
19664            This: *mut IDXGIAdapter,
19665            riid: *const IID,
19666            ppParent: *mut *mut ::std::os::raw::c_void,
19667        ) -> HRESULT,
19668    >,
19669    pub EnumOutputs: ::std::option::Option<
19670        unsafe extern "C" fn(
19671            This: *mut IDXGIAdapter,
19672            Output: UINT,
19673            ppOutput: *mut *mut IDXGIOutput,
19674        ) -> HRESULT,
19675    >,
19676    pub GetDesc: ::std::option::Option<
19677        unsafe extern "C" fn(
19678            This: *mut IDXGIAdapter,
19679            pDesc: *mut DXGI_ADAPTER_DESC,
19680        ) -> HRESULT,
19681    >,
19682    pub CheckInterfaceSupport: ::std::option::Option<
19683        unsafe extern "C" fn(
19684            This: *mut IDXGIAdapter,
19685            InterfaceName: *const GUID,
19686            pUMDVersion: *mut LARGE_INTEGER,
19687        ) -> HRESULT,
19688    >,
19689}
19690#[repr(C)]
19691#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19692pub struct IDXGIAdapter {
19693    pub lpVtbl: *mut IDXGIAdapterVtbl,
19694}
19695impl Default for IDXGIAdapter {
19696    fn default() -> Self {
19697        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19698        unsafe {
19699            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19700            s.assume_init()
19701        }
19702    }
19703}
19704extern "C" {
19705    pub static IID_IDXGIOutput: IID;
19706}
19707#[repr(C)]
19708#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19709pub struct IDXGIOutputVtbl {
19710    pub QueryInterface: ::std::option::Option<
19711        unsafe extern "C" fn(
19712            This: *mut IDXGIOutput,
19713            riid: *const IID,
19714            ppvObject: *mut *mut ::std::os::raw::c_void,
19715        ) -> HRESULT,
19716    >,
19717    pub AddRef: ::std::option::Option<
19718        unsafe extern "C" fn(This: *mut IDXGIOutput) -> ULONG,
19719    >,
19720    pub Release: ::std::option::Option<
19721        unsafe extern "C" fn(This: *mut IDXGIOutput) -> ULONG,
19722    >,
19723    pub SetPrivateData: ::std::option::Option<
19724        unsafe extern "C" fn(
19725            This: *mut IDXGIOutput,
19726            Name: *const GUID,
19727            DataSize: UINT,
19728            pData: *const ::std::os::raw::c_void,
19729        ) -> HRESULT,
19730    >,
19731    pub SetPrivateDataInterface: ::std::option::Option<
19732        unsafe extern "C" fn(
19733            This: *mut IDXGIOutput,
19734            Name: *const GUID,
19735            pUnknown: *const IUnknown,
19736        ) -> HRESULT,
19737    >,
19738    pub GetPrivateData: ::std::option::Option<
19739        unsafe extern "C" fn(
19740            This: *mut IDXGIOutput,
19741            Name: *const GUID,
19742            pDataSize: *mut UINT,
19743            pData: *mut ::std::os::raw::c_void,
19744        ) -> HRESULT,
19745    >,
19746    pub GetParent: ::std::option::Option<
19747        unsafe extern "C" fn(
19748            This: *mut IDXGIOutput,
19749            riid: *const IID,
19750            ppParent: *mut *mut ::std::os::raw::c_void,
19751        ) -> HRESULT,
19752    >,
19753    pub GetDesc: ::std::option::Option<
19754        unsafe extern "C" fn(
19755            This: *mut IDXGIOutput,
19756            pDesc: *mut DXGI_OUTPUT_DESC,
19757        ) -> HRESULT,
19758    >,
19759    pub GetDisplayModeList: ::std::option::Option<
19760        unsafe extern "C" fn(
19761            This: *mut IDXGIOutput,
19762            EnumFormat: DXGI_FORMAT,
19763            Flags: UINT,
19764            pNumModes: *mut UINT,
19765            pDesc: *mut DXGI_MODE_DESC,
19766        ) -> HRESULT,
19767    >,
19768    pub FindClosestMatchingMode: ::std::option::Option<
19769        unsafe extern "C" fn(
19770            This: *mut IDXGIOutput,
19771            pModeToMatch: *const DXGI_MODE_DESC,
19772            pClosestMatch: *mut DXGI_MODE_DESC,
19773            pConcernedDevice: *mut IUnknown,
19774        ) -> HRESULT,
19775    >,
19776    pub WaitForVBlank: ::std::option::Option<
19777        unsafe extern "C" fn(This: *mut IDXGIOutput) -> HRESULT,
19778    >,
19779    pub TakeOwnership: ::std::option::Option<
19780        unsafe extern "C" fn(
19781            This: *mut IDXGIOutput,
19782            pDevice: *mut IUnknown,
19783            Exclusive: BOOL,
19784        ) -> HRESULT,
19785    >,
19786    pub ReleaseOwnership:
19787        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput)>,
19788    pub GetGammaControlCapabilities: ::std::option::Option<
19789        unsafe extern "C" fn(
19790            This: *mut IDXGIOutput,
19791            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
19792        ) -> HRESULT,
19793    >,
19794    pub SetGammaControl: ::std::option::Option<
19795        unsafe extern "C" fn(
19796            This: *mut IDXGIOutput,
19797            pArray: *const DXGI_GAMMA_CONTROL,
19798        ) -> HRESULT,
19799    >,
19800    pub GetGammaControl: ::std::option::Option<
19801        unsafe extern "C" fn(
19802            This: *mut IDXGIOutput,
19803            pArray: *mut DXGI_GAMMA_CONTROL,
19804        ) -> HRESULT,
19805    >,
19806    pub SetDisplaySurface: ::std::option::Option<
19807        unsafe extern "C" fn(
19808            This: *mut IDXGIOutput,
19809            pScanoutSurface: *mut IDXGISurface,
19810        ) -> HRESULT,
19811    >,
19812    pub GetDisplaySurfaceData: ::std::option::Option<
19813        unsafe extern "C" fn(
19814            This: *mut IDXGIOutput,
19815            pDestination: *mut IDXGISurface,
19816        ) -> HRESULT,
19817    >,
19818    pub GetFrameStatistics: ::std::option::Option<
19819        unsafe extern "C" fn(
19820            This: *mut IDXGIOutput,
19821            pStats: *mut DXGI_FRAME_STATISTICS,
19822        ) -> HRESULT,
19823    >,
19824}
19825#[repr(C)]
19826#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19827pub struct IDXGIOutput {
19828    pub lpVtbl: *mut IDXGIOutputVtbl,
19829}
19830impl Default for IDXGIOutput {
19831    fn default() -> Self {
19832        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19833        unsafe {
19834            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19835            s.assume_init()
19836        }
19837    }
19838}
19839extern "C" {
19840    pub static IID_IDXGISwapChain: IID;
19841}
19842#[repr(C)]
19843#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19844pub struct IDXGISwapChainVtbl {
19845    pub QueryInterface: ::std::option::Option<
19846        unsafe extern "C" fn(
19847            This: *mut IDXGISwapChain,
19848            riid: *const IID,
19849            ppvObject: *mut *mut ::std::os::raw::c_void,
19850        ) -> HRESULT,
19851    >,
19852    pub AddRef: ::std::option::Option<
19853        unsafe extern "C" fn(This: *mut IDXGISwapChain) -> ULONG,
19854    >,
19855    pub Release: ::std::option::Option<
19856        unsafe extern "C" fn(This: *mut IDXGISwapChain) -> ULONG,
19857    >,
19858    pub SetPrivateData: ::std::option::Option<
19859        unsafe extern "C" fn(
19860            This: *mut IDXGISwapChain,
19861            Name: *const GUID,
19862            DataSize: UINT,
19863            pData: *const ::std::os::raw::c_void,
19864        ) -> HRESULT,
19865    >,
19866    pub SetPrivateDataInterface: ::std::option::Option<
19867        unsafe extern "C" fn(
19868            This: *mut IDXGISwapChain,
19869            Name: *const GUID,
19870            pUnknown: *const IUnknown,
19871        ) -> HRESULT,
19872    >,
19873    pub GetPrivateData: ::std::option::Option<
19874        unsafe extern "C" fn(
19875            This: *mut IDXGISwapChain,
19876            Name: *const GUID,
19877            pDataSize: *mut UINT,
19878            pData: *mut ::std::os::raw::c_void,
19879        ) -> HRESULT,
19880    >,
19881    pub GetParent: ::std::option::Option<
19882        unsafe extern "C" fn(
19883            This: *mut IDXGISwapChain,
19884            riid: *const IID,
19885            ppParent: *mut *mut ::std::os::raw::c_void,
19886        ) -> HRESULT,
19887    >,
19888    pub GetDevice: ::std::option::Option<
19889        unsafe extern "C" fn(
19890            This: *mut IDXGISwapChain,
19891            riid: *const IID,
19892            ppDevice: *mut *mut ::std::os::raw::c_void,
19893        ) -> HRESULT,
19894    >,
19895    pub Present: ::std::option::Option<
19896        unsafe extern "C" fn(
19897            This: *mut IDXGISwapChain,
19898            SyncInterval: UINT,
19899            Flags: UINT,
19900        ) -> HRESULT,
19901    >,
19902    pub GetBuffer: ::std::option::Option<
19903        unsafe extern "C" fn(
19904            This: *mut IDXGISwapChain,
19905            Buffer: UINT,
19906            riid: *const IID,
19907            ppSurface: *mut *mut ::std::os::raw::c_void,
19908        ) -> HRESULT,
19909    >,
19910    pub SetFullscreenState: ::std::option::Option<
19911        unsafe extern "C" fn(
19912            This: *mut IDXGISwapChain,
19913            Fullscreen: BOOL,
19914            pTarget: *mut IDXGIOutput,
19915        ) -> HRESULT,
19916    >,
19917    pub GetFullscreenState: ::std::option::Option<
19918        unsafe extern "C" fn(
19919            This: *mut IDXGISwapChain,
19920            pFullscreen: *mut BOOL,
19921            ppTarget: *mut *mut IDXGIOutput,
19922        ) -> HRESULT,
19923    >,
19924    pub GetDesc: ::std::option::Option<
19925        unsafe extern "C" fn(
19926            This: *mut IDXGISwapChain,
19927            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
19928        ) -> HRESULT,
19929    >,
19930    pub ResizeBuffers: ::std::option::Option<
19931        unsafe extern "C" fn(
19932            This: *mut IDXGISwapChain,
19933            BufferCount: UINT,
19934            Width: UINT,
19935            Height: UINT,
19936            NewFormat: DXGI_FORMAT,
19937            SwapChainFlags: UINT,
19938        ) -> HRESULT,
19939    >,
19940    pub ResizeTarget: ::std::option::Option<
19941        unsafe extern "C" fn(
19942            This: *mut IDXGISwapChain,
19943            pNewTargetParameters: *const DXGI_MODE_DESC,
19944        ) -> HRESULT,
19945    >,
19946    pub GetContainingOutput: ::std::option::Option<
19947        unsafe extern "C" fn(
19948            This: *mut IDXGISwapChain,
19949            ppOutput: *mut *mut IDXGIOutput,
19950        ) -> HRESULT,
19951    >,
19952    pub GetFrameStatistics: ::std::option::Option<
19953        unsafe extern "C" fn(
19954            This: *mut IDXGISwapChain,
19955            pStats: *mut DXGI_FRAME_STATISTICS,
19956        ) -> HRESULT,
19957    >,
19958    pub GetLastPresentCount: ::std::option::Option<
19959        unsafe extern "C" fn(
19960            This: *mut IDXGISwapChain,
19961            pLastPresentCount: *mut UINT,
19962        ) -> HRESULT,
19963    >,
19964}
19965#[repr(C)]
19966#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19967pub struct IDXGISwapChain {
19968    pub lpVtbl: *mut IDXGISwapChainVtbl,
19969}
19970impl Default for IDXGISwapChain {
19971    fn default() -> Self {
19972        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
19973        unsafe {
19974            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
19975            s.assume_init()
19976        }
19977    }
19978}
19979extern "C" {
19980    pub static IID_IDXGIFactory: IID;
19981}
19982#[repr(C)]
19983#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
19984pub struct IDXGIFactoryVtbl {
19985    pub QueryInterface: ::std::option::Option<
19986        unsafe extern "C" fn(
19987            This: *mut IDXGIFactory,
19988            riid: *const IID,
19989            ppvObject: *mut *mut ::std::os::raw::c_void,
19990        ) -> HRESULT,
19991    >,
19992    pub AddRef: ::std::option::Option<
19993        unsafe extern "C" fn(This: *mut IDXGIFactory) -> ULONG,
19994    >,
19995    pub Release: ::std::option::Option<
19996        unsafe extern "C" fn(This: *mut IDXGIFactory) -> ULONG,
19997    >,
19998    pub SetPrivateData: ::std::option::Option<
19999        unsafe extern "C" fn(
20000            This: *mut IDXGIFactory,
20001            Name: *const GUID,
20002            DataSize: UINT,
20003            pData: *const ::std::os::raw::c_void,
20004        ) -> HRESULT,
20005    >,
20006    pub SetPrivateDataInterface: ::std::option::Option<
20007        unsafe extern "C" fn(
20008            This: *mut IDXGIFactory,
20009            Name: *const GUID,
20010            pUnknown: *const IUnknown,
20011        ) -> HRESULT,
20012    >,
20013    pub GetPrivateData: ::std::option::Option<
20014        unsafe extern "C" fn(
20015            This: *mut IDXGIFactory,
20016            Name: *const GUID,
20017            pDataSize: *mut UINT,
20018            pData: *mut ::std::os::raw::c_void,
20019        ) -> HRESULT,
20020    >,
20021    pub GetParent: ::std::option::Option<
20022        unsafe extern "C" fn(
20023            This: *mut IDXGIFactory,
20024            riid: *const IID,
20025            ppParent: *mut *mut ::std::os::raw::c_void,
20026        ) -> HRESULT,
20027    >,
20028    pub EnumAdapters: ::std::option::Option<
20029        unsafe extern "C" fn(
20030            This: *mut IDXGIFactory,
20031            Adapter: UINT,
20032            ppAdapter: *mut *mut IDXGIAdapter,
20033        ) -> HRESULT,
20034    >,
20035    pub MakeWindowAssociation: ::std::option::Option<
20036        unsafe extern "C" fn(
20037            This: *mut IDXGIFactory,
20038            WindowHandle: HWND,
20039            Flags: UINT,
20040        ) -> HRESULT,
20041    >,
20042    pub GetWindowAssociation: ::std::option::Option<
20043        unsafe extern "C" fn(
20044            This: *mut IDXGIFactory,
20045            pWindowHandle: *mut HWND,
20046        ) -> HRESULT,
20047    >,
20048    pub CreateSwapChain: ::std::option::Option<
20049        unsafe extern "C" fn(
20050            This: *mut IDXGIFactory,
20051            pDevice: *mut IUnknown,
20052            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
20053            ppSwapChain: *mut *mut IDXGISwapChain,
20054        ) -> HRESULT,
20055    >,
20056    pub CreateSoftwareAdapter: ::std::option::Option<
20057        unsafe extern "C" fn(
20058            This: *mut IDXGIFactory,
20059            Module: HMODULE,
20060            ppAdapter: *mut *mut IDXGIAdapter,
20061        ) -> HRESULT,
20062    >,
20063}
20064#[repr(C)]
20065#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20066pub struct IDXGIFactory {
20067    pub lpVtbl: *mut IDXGIFactoryVtbl,
20068}
20069impl Default for IDXGIFactory {
20070    fn default() -> Self {
20071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20072        unsafe {
20073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20074            s.assume_init()
20075        }
20076    }
20077}
20078extern "C" {
20079    pub fn CreateDXGIFactory(
20080        riid: *const IID,
20081        ppFactory: *mut *mut ::std::os::raw::c_void,
20082    ) -> HRESULT;
20083}
20084extern "C" {
20085    pub fn CreateDXGIFactory1(
20086        riid: *const IID,
20087        ppFactory: *mut *mut ::std::os::raw::c_void,
20088    ) -> HRESULT;
20089}
20090extern "C" {
20091    pub static IID_IDXGIDevice: IID;
20092}
20093#[repr(C)]
20094#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20095pub struct IDXGIDeviceVtbl {
20096    pub QueryInterface: ::std::option::Option<
20097        unsafe extern "C" fn(
20098            This: *mut IDXGIDevice,
20099            riid: *const IID,
20100            ppvObject: *mut *mut ::std::os::raw::c_void,
20101        ) -> HRESULT,
20102    >,
20103    pub AddRef: ::std::option::Option<
20104        unsafe extern "C" fn(This: *mut IDXGIDevice) -> ULONG,
20105    >,
20106    pub Release: ::std::option::Option<
20107        unsafe extern "C" fn(This: *mut IDXGIDevice) -> ULONG,
20108    >,
20109    pub SetPrivateData: ::std::option::Option<
20110        unsafe extern "C" fn(
20111            This: *mut IDXGIDevice,
20112            Name: *const GUID,
20113            DataSize: UINT,
20114            pData: *const ::std::os::raw::c_void,
20115        ) -> HRESULT,
20116    >,
20117    pub SetPrivateDataInterface: ::std::option::Option<
20118        unsafe extern "C" fn(
20119            This: *mut IDXGIDevice,
20120            Name: *const GUID,
20121            pUnknown: *const IUnknown,
20122        ) -> HRESULT,
20123    >,
20124    pub GetPrivateData: ::std::option::Option<
20125        unsafe extern "C" fn(
20126            This: *mut IDXGIDevice,
20127            Name: *const GUID,
20128            pDataSize: *mut UINT,
20129            pData: *mut ::std::os::raw::c_void,
20130        ) -> HRESULT,
20131    >,
20132    pub GetParent: ::std::option::Option<
20133        unsafe extern "C" fn(
20134            This: *mut IDXGIDevice,
20135            riid: *const IID,
20136            ppParent: *mut *mut ::std::os::raw::c_void,
20137        ) -> HRESULT,
20138    >,
20139    pub GetAdapter: ::std::option::Option<
20140        unsafe extern "C" fn(
20141            This: *mut IDXGIDevice,
20142            pAdapter: *mut *mut IDXGIAdapter,
20143        ) -> HRESULT,
20144    >,
20145    pub CreateSurface: ::std::option::Option<
20146        unsafe extern "C" fn(
20147            This: *mut IDXGIDevice,
20148            pDesc: *const DXGI_SURFACE_DESC,
20149            NumSurfaces: UINT,
20150            Usage: DXGI_USAGE,
20151            pSharedResource: *const DXGI_SHARED_RESOURCE,
20152            ppSurface: *mut *mut IDXGISurface,
20153        ) -> HRESULT,
20154    >,
20155    pub QueryResourceResidency: ::std::option::Option<
20156        unsafe extern "C" fn(
20157            This: *mut IDXGIDevice,
20158            ppResources: *const *mut IUnknown,
20159            pResidencyStatus: *mut DXGI_RESIDENCY,
20160            NumResources: UINT,
20161        ) -> HRESULT,
20162    >,
20163    pub SetGPUThreadPriority: ::std::option::Option<
20164        unsafe extern "C" fn(This: *mut IDXGIDevice, Priority: INT) -> HRESULT,
20165    >,
20166    pub GetGPUThreadPriority: ::std::option::Option<
20167        unsafe extern "C" fn(
20168            This: *mut IDXGIDevice,
20169            pPriority: *mut INT,
20170        ) -> HRESULT,
20171    >,
20172}
20173#[repr(C)]
20174#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20175pub struct IDXGIDevice {
20176    pub lpVtbl: *mut IDXGIDeviceVtbl,
20177}
20178impl Default for IDXGIDevice {
20179    fn default() -> Self {
20180        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20181        unsafe {
20182            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20183            s.assume_init()
20184        }
20185    }
20186}
20187pub const DXGI_ADAPTER_FLAG_DXGI_ADAPTER_FLAG_NONE: DXGI_ADAPTER_FLAG = 0;
20188pub const DXGI_ADAPTER_FLAG_DXGI_ADAPTER_FLAG_REMOTE: DXGI_ADAPTER_FLAG = 1;
20189pub const DXGI_ADAPTER_FLAG_DXGI_ADAPTER_FLAG_SOFTWARE: DXGI_ADAPTER_FLAG = 2;
20190pub const DXGI_ADAPTER_FLAG_DXGI_ADAPTER_FLAG_FORCE_DWORD: DXGI_ADAPTER_FLAG =
20191    -1;
20192pub type DXGI_ADAPTER_FLAG = ::std::os::raw::c_int;
20193#[repr(C)]
20194#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20195pub struct DXGI_ADAPTER_DESC1 {
20196    pub Description: [WCHAR; 128usize],
20197    pub VendorId: UINT,
20198    pub DeviceId: UINT,
20199    pub SubSysId: UINT,
20200    pub Revision: UINT,
20201    pub DedicatedVideoMemory: SIZE_T,
20202    pub DedicatedSystemMemory: SIZE_T,
20203    pub SharedSystemMemory: SIZE_T,
20204    pub AdapterLuid: LUID,
20205    pub Flags: UINT,
20206}
20207impl Default for DXGI_ADAPTER_DESC1 {
20208    fn default() -> Self {
20209        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20210        unsafe {
20211            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20212            s.assume_init()
20213        }
20214    }
20215}
20216#[repr(C)]
20217#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
20218pub struct DXGI_DISPLAY_COLOR_SPACE {
20219    pub PrimaryCoordinates: [[FLOAT; 2usize]; 8usize],
20220    pub WhitePoints: [[FLOAT; 2usize]; 16usize],
20221}
20222extern "C" {
20223    pub static IID_IDXGIFactory1: IID;
20224}
20225#[repr(C)]
20226#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20227pub struct IDXGIFactory1Vtbl {
20228    pub QueryInterface: ::std::option::Option<
20229        unsafe extern "C" fn(
20230            This: *mut IDXGIFactory1,
20231            riid: *const IID,
20232            ppvObject: *mut *mut ::std::os::raw::c_void,
20233        ) -> HRESULT,
20234    >,
20235    pub AddRef: ::std::option::Option<
20236        unsafe extern "C" fn(This: *mut IDXGIFactory1) -> ULONG,
20237    >,
20238    pub Release: ::std::option::Option<
20239        unsafe extern "C" fn(This: *mut IDXGIFactory1) -> ULONG,
20240    >,
20241    pub SetPrivateData: ::std::option::Option<
20242        unsafe extern "C" fn(
20243            This: *mut IDXGIFactory1,
20244            Name: *const GUID,
20245            DataSize: UINT,
20246            pData: *const ::std::os::raw::c_void,
20247        ) -> HRESULT,
20248    >,
20249    pub SetPrivateDataInterface: ::std::option::Option<
20250        unsafe extern "C" fn(
20251            This: *mut IDXGIFactory1,
20252            Name: *const GUID,
20253            pUnknown: *const IUnknown,
20254        ) -> HRESULT,
20255    >,
20256    pub GetPrivateData: ::std::option::Option<
20257        unsafe extern "C" fn(
20258            This: *mut IDXGIFactory1,
20259            Name: *const GUID,
20260            pDataSize: *mut UINT,
20261            pData: *mut ::std::os::raw::c_void,
20262        ) -> HRESULT,
20263    >,
20264    pub GetParent: ::std::option::Option<
20265        unsafe extern "C" fn(
20266            This: *mut IDXGIFactory1,
20267            riid: *const IID,
20268            ppParent: *mut *mut ::std::os::raw::c_void,
20269        ) -> HRESULT,
20270    >,
20271    pub EnumAdapters: ::std::option::Option<
20272        unsafe extern "C" fn(
20273            This: *mut IDXGIFactory1,
20274            Adapter: UINT,
20275            ppAdapter: *mut *mut IDXGIAdapter,
20276        ) -> HRESULT,
20277    >,
20278    pub MakeWindowAssociation: ::std::option::Option<
20279        unsafe extern "C" fn(
20280            This: *mut IDXGIFactory1,
20281            WindowHandle: HWND,
20282            Flags: UINT,
20283        ) -> HRESULT,
20284    >,
20285    pub GetWindowAssociation: ::std::option::Option<
20286        unsafe extern "C" fn(
20287            This: *mut IDXGIFactory1,
20288            pWindowHandle: *mut HWND,
20289        ) -> HRESULT,
20290    >,
20291    pub CreateSwapChain: ::std::option::Option<
20292        unsafe extern "C" fn(
20293            This: *mut IDXGIFactory1,
20294            pDevice: *mut IUnknown,
20295            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
20296            ppSwapChain: *mut *mut IDXGISwapChain,
20297        ) -> HRESULT,
20298    >,
20299    pub CreateSoftwareAdapter: ::std::option::Option<
20300        unsafe extern "C" fn(
20301            This: *mut IDXGIFactory1,
20302            Module: HMODULE,
20303            ppAdapter: *mut *mut IDXGIAdapter,
20304        ) -> HRESULT,
20305    >,
20306    pub EnumAdapters1: ::std::option::Option<
20307        unsafe extern "C" fn(
20308            This: *mut IDXGIFactory1,
20309            Adapter: UINT,
20310            ppAdapter: *mut *mut IDXGIAdapter1,
20311        ) -> HRESULT,
20312    >,
20313    pub IsCurrent: ::std::option::Option<
20314        unsafe extern "C" fn(This: *mut IDXGIFactory1) -> BOOL,
20315    >,
20316}
20317#[repr(C)]
20318#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20319pub struct IDXGIFactory1 {
20320    pub lpVtbl: *mut IDXGIFactory1Vtbl,
20321}
20322impl Default for IDXGIFactory1 {
20323    fn default() -> Self {
20324        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20325        unsafe {
20326            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20327            s.assume_init()
20328        }
20329    }
20330}
20331extern "C" {
20332    pub static IID_IDXGIAdapter1: IID;
20333}
20334#[repr(C)]
20335#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20336pub struct IDXGIAdapter1Vtbl {
20337    pub QueryInterface: ::std::option::Option<
20338        unsafe extern "C" fn(
20339            This: *mut IDXGIAdapter1,
20340            riid: *const IID,
20341            ppvObject: *mut *mut ::std::os::raw::c_void,
20342        ) -> HRESULT,
20343    >,
20344    pub AddRef: ::std::option::Option<
20345        unsafe extern "C" fn(This: *mut IDXGIAdapter1) -> ULONG,
20346    >,
20347    pub Release: ::std::option::Option<
20348        unsafe extern "C" fn(This: *mut IDXGIAdapter1) -> ULONG,
20349    >,
20350    pub SetPrivateData: ::std::option::Option<
20351        unsafe extern "C" fn(
20352            This: *mut IDXGIAdapter1,
20353            Name: *const GUID,
20354            DataSize: UINT,
20355            pData: *const ::std::os::raw::c_void,
20356        ) -> HRESULT,
20357    >,
20358    pub SetPrivateDataInterface: ::std::option::Option<
20359        unsafe extern "C" fn(
20360            This: *mut IDXGIAdapter1,
20361            Name: *const GUID,
20362            pUnknown: *const IUnknown,
20363        ) -> HRESULT,
20364    >,
20365    pub GetPrivateData: ::std::option::Option<
20366        unsafe extern "C" fn(
20367            This: *mut IDXGIAdapter1,
20368            Name: *const GUID,
20369            pDataSize: *mut UINT,
20370            pData: *mut ::std::os::raw::c_void,
20371        ) -> HRESULT,
20372    >,
20373    pub GetParent: ::std::option::Option<
20374        unsafe extern "C" fn(
20375            This: *mut IDXGIAdapter1,
20376            riid: *const IID,
20377            ppParent: *mut *mut ::std::os::raw::c_void,
20378        ) -> HRESULT,
20379    >,
20380    pub EnumOutputs: ::std::option::Option<
20381        unsafe extern "C" fn(
20382            This: *mut IDXGIAdapter1,
20383            Output: UINT,
20384            ppOutput: *mut *mut IDXGIOutput,
20385        ) -> HRESULT,
20386    >,
20387    pub GetDesc: ::std::option::Option<
20388        unsafe extern "C" fn(
20389            This: *mut IDXGIAdapter1,
20390            pDesc: *mut DXGI_ADAPTER_DESC,
20391        ) -> HRESULT,
20392    >,
20393    pub CheckInterfaceSupport: ::std::option::Option<
20394        unsafe extern "C" fn(
20395            This: *mut IDXGIAdapter1,
20396            InterfaceName: *const GUID,
20397            pUMDVersion: *mut LARGE_INTEGER,
20398        ) -> HRESULT,
20399    >,
20400    pub GetDesc1: ::std::option::Option<
20401        unsafe extern "C" fn(
20402            This: *mut IDXGIAdapter1,
20403            pDesc: *mut DXGI_ADAPTER_DESC1,
20404        ) -> HRESULT,
20405    >,
20406}
20407#[repr(C)]
20408#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20409pub struct IDXGIAdapter1 {
20410    pub lpVtbl: *mut IDXGIAdapter1Vtbl,
20411}
20412impl Default for IDXGIAdapter1 {
20413    fn default() -> Self {
20414        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20415        unsafe {
20416            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20417            s.assume_init()
20418        }
20419    }
20420}
20421extern "C" {
20422    pub static IID_IDXGIDevice1: IID;
20423}
20424#[repr(C)]
20425#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20426pub struct IDXGIDevice1Vtbl {
20427    pub QueryInterface: ::std::option::Option<
20428        unsafe extern "C" fn(
20429            This: *mut IDXGIDevice1,
20430            riid: *const IID,
20431            ppvObject: *mut *mut ::std::os::raw::c_void,
20432        ) -> HRESULT,
20433    >,
20434    pub AddRef: ::std::option::Option<
20435        unsafe extern "C" fn(This: *mut IDXGIDevice1) -> ULONG,
20436    >,
20437    pub Release: ::std::option::Option<
20438        unsafe extern "C" fn(This: *mut IDXGIDevice1) -> ULONG,
20439    >,
20440    pub SetPrivateData: ::std::option::Option<
20441        unsafe extern "C" fn(
20442            This: *mut IDXGIDevice1,
20443            Name: *const GUID,
20444            DataSize: UINT,
20445            pData: *const ::std::os::raw::c_void,
20446        ) -> HRESULT,
20447    >,
20448    pub SetPrivateDataInterface: ::std::option::Option<
20449        unsafe extern "C" fn(
20450            This: *mut IDXGIDevice1,
20451            Name: *const GUID,
20452            pUnknown: *const IUnknown,
20453        ) -> HRESULT,
20454    >,
20455    pub GetPrivateData: ::std::option::Option<
20456        unsafe extern "C" fn(
20457            This: *mut IDXGIDevice1,
20458            Name: *const GUID,
20459            pDataSize: *mut UINT,
20460            pData: *mut ::std::os::raw::c_void,
20461        ) -> HRESULT,
20462    >,
20463    pub GetParent: ::std::option::Option<
20464        unsafe extern "C" fn(
20465            This: *mut IDXGIDevice1,
20466            riid: *const IID,
20467            ppParent: *mut *mut ::std::os::raw::c_void,
20468        ) -> HRESULT,
20469    >,
20470    pub GetAdapter: ::std::option::Option<
20471        unsafe extern "C" fn(
20472            This: *mut IDXGIDevice1,
20473            pAdapter: *mut *mut IDXGIAdapter,
20474        ) -> HRESULT,
20475    >,
20476    pub CreateSurface: ::std::option::Option<
20477        unsafe extern "C" fn(
20478            This: *mut IDXGIDevice1,
20479            pDesc: *const DXGI_SURFACE_DESC,
20480            NumSurfaces: UINT,
20481            Usage: DXGI_USAGE,
20482            pSharedResource: *const DXGI_SHARED_RESOURCE,
20483            ppSurface: *mut *mut IDXGISurface,
20484        ) -> HRESULT,
20485    >,
20486    pub QueryResourceResidency: ::std::option::Option<
20487        unsafe extern "C" fn(
20488            This: *mut IDXGIDevice1,
20489            ppResources: *const *mut IUnknown,
20490            pResidencyStatus: *mut DXGI_RESIDENCY,
20491            NumResources: UINT,
20492        ) -> HRESULT,
20493    >,
20494    pub SetGPUThreadPriority: ::std::option::Option<
20495        unsafe extern "C" fn(This: *mut IDXGIDevice1, Priority: INT) -> HRESULT,
20496    >,
20497    pub GetGPUThreadPriority: ::std::option::Option<
20498        unsafe extern "C" fn(
20499            This: *mut IDXGIDevice1,
20500            pPriority: *mut INT,
20501        ) -> HRESULT,
20502    >,
20503    pub SetMaximumFrameLatency: ::std::option::Option<
20504        unsafe extern "C" fn(
20505            This: *mut IDXGIDevice1,
20506            MaxLatency: UINT,
20507        ) -> HRESULT,
20508    >,
20509    pub GetMaximumFrameLatency: ::std::option::Option<
20510        unsafe extern "C" fn(
20511            This: *mut IDXGIDevice1,
20512            pMaxLatency: *mut UINT,
20513        ) -> HRESULT,
20514    >,
20515}
20516#[repr(C)]
20517#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20518pub struct IDXGIDevice1 {
20519    pub lpVtbl: *mut IDXGIDevice1Vtbl,
20520}
20521impl Default for IDXGIDevice1 {
20522    fn default() -> Self {
20523        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20524        unsafe {
20525            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20526            s.assume_init()
20527        }
20528    }
20529}
20530extern "C" {
20531    pub static IID_IDXGIDisplayControl: IID;
20532}
20533#[repr(C)]
20534#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20535pub struct IDXGIDisplayControlVtbl {
20536    pub QueryInterface: ::std::option::Option<
20537        unsafe extern "C" fn(
20538            This: *mut IDXGIDisplayControl,
20539            riid: *const IID,
20540            ppvObject: *mut *mut ::std::os::raw::c_void,
20541        ) -> HRESULT,
20542    >,
20543    pub AddRef: ::std::option::Option<
20544        unsafe extern "C" fn(This: *mut IDXGIDisplayControl) -> ULONG,
20545    >,
20546    pub Release: ::std::option::Option<
20547        unsafe extern "C" fn(This: *mut IDXGIDisplayControl) -> ULONG,
20548    >,
20549    pub IsStereoEnabled: ::std::option::Option<
20550        unsafe extern "C" fn(This: *mut IDXGIDisplayControl) -> BOOL,
20551    >,
20552    pub SetStereoEnabled: ::std::option::Option<
20553        unsafe extern "C" fn(This: *mut IDXGIDisplayControl, enabled: BOOL),
20554    >,
20555}
20556#[repr(C)]
20557#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20558pub struct IDXGIDisplayControl {
20559    pub lpVtbl: *mut IDXGIDisplayControlVtbl,
20560}
20561impl Default for IDXGIDisplayControl {
20562    fn default() -> Self {
20563        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20564        unsafe {
20565            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20566            s.assume_init()
20567        }
20568    }
20569}
20570#[repr(C)]
20571#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20572pub struct DXGI_OUTDUPL_MOVE_RECT {
20573    pub SourcePoint: POINT,
20574    pub DestinationRect: RECT,
20575}
20576#[repr(C)]
20577#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20578pub struct DXGI_OUTDUPL_DESC {
20579    pub ModeDesc: DXGI_MODE_DESC,
20580    pub Rotation: DXGI_MODE_ROTATION,
20581    pub DesktopImageInSystemMemory: BOOL,
20582}
20583impl Default for DXGI_OUTDUPL_DESC {
20584    fn default() -> Self {
20585        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20586        unsafe {
20587            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20588            s.assume_init()
20589        }
20590    }
20591}
20592#[repr(C)]
20593#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20594pub struct DXGI_OUTDUPL_POINTER_POSITION {
20595    pub Position: POINT,
20596    pub Visible: BOOL,
20597}
20598pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME : DXGI_OUTDUPL_POINTER_SHAPE_TYPE = 1 ;
20599pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR : DXGI_OUTDUPL_POINTER_SHAPE_TYPE = 2 ;
20600pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR : DXGI_OUTDUPL_POINTER_SHAPE_TYPE = 4 ;
20601pub type DXGI_OUTDUPL_POINTER_SHAPE_TYPE = ::std::os::raw::c_int;
20602#[repr(C)]
20603#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20604pub struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
20605    pub Type: UINT,
20606    pub Width: UINT,
20607    pub Height: UINT,
20608    pub Pitch: UINT,
20609    pub HotSpot: POINT,
20610}
20611#[repr(C)]
20612#[derive(Copy, Clone)]
20613pub struct DXGI_OUTDUPL_FRAME_INFO {
20614    pub LastPresentTime: LARGE_INTEGER,
20615    pub LastMouseUpdateTime: LARGE_INTEGER,
20616    pub AccumulatedFrames: UINT,
20617    pub RectsCoalesced: BOOL,
20618    pub ProtectedContentMaskedOut: BOOL,
20619    pub PointerPosition: DXGI_OUTDUPL_POINTER_POSITION,
20620    pub TotalMetadataBufferSize: UINT,
20621    pub PointerShapeBufferSize: UINT,
20622}
20623impl Default for DXGI_OUTDUPL_FRAME_INFO {
20624    fn default() -> Self {
20625        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20626        unsafe {
20627            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20628            s.assume_init()
20629        }
20630    }
20631}
20632impl ::std::fmt::Debug for DXGI_OUTDUPL_FRAME_INFO {
20633    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20634        write ! (f , "DXGI_OUTDUPL_FRAME_INFO {{ LastPresentTime: {:?}, LastMouseUpdateTime: {:?}, AccumulatedFrames: {:?}, RectsCoalesced: {:?}, ProtectedContentMaskedOut: {:?}, PointerPosition: {:?}, TotalMetadataBufferSize: {:?}, PointerShapeBufferSize: {:?} }}" , self . LastPresentTime , self . LastMouseUpdateTime , self . AccumulatedFrames , self . RectsCoalesced , self . ProtectedContentMaskedOut , self . PointerPosition , self . TotalMetadataBufferSize , self . PointerShapeBufferSize)
20635    }
20636}
20637extern "C" {
20638    pub static IID_IDXGIOutputDuplication: IID;
20639}
20640#[repr(C)]
20641#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20642pub struct IDXGIOutputDuplicationVtbl {
20643    pub QueryInterface: ::std::option::Option<
20644        unsafe extern "C" fn(
20645            This: *mut IDXGIOutputDuplication,
20646            riid: *const IID,
20647            ppvObject: *mut *mut ::std::os::raw::c_void,
20648        ) -> HRESULT,
20649    >,
20650    pub AddRef: ::std::option::Option<
20651        unsafe extern "C" fn(This: *mut IDXGIOutputDuplication) -> ULONG,
20652    >,
20653    pub Release: ::std::option::Option<
20654        unsafe extern "C" fn(This: *mut IDXGIOutputDuplication) -> ULONG,
20655    >,
20656    pub SetPrivateData: ::std::option::Option<
20657        unsafe extern "C" fn(
20658            This: *mut IDXGIOutputDuplication,
20659            Name: *const GUID,
20660            DataSize: UINT,
20661            pData: *const ::std::os::raw::c_void,
20662        ) -> HRESULT,
20663    >,
20664    pub SetPrivateDataInterface: ::std::option::Option<
20665        unsafe extern "C" fn(
20666            This: *mut IDXGIOutputDuplication,
20667            Name: *const GUID,
20668            pUnknown: *const IUnknown,
20669        ) -> HRESULT,
20670    >,
20671    pub GetPrivateData: ::std::option::Option<
20672        unsafe extern "C" fn(
20673            This: *mut IDXGIOutputDuplication,
20674            Name: *const GUID,
20675            pDataSize: *mut UINT,
20676            pData: *mut ::std::os::raw::c_void,
20677        ) -> HRESULT,
20678    >,
20679    pub GetParent: ::std::option::Option<
20680        unsafe extern "C" fn(
20681            This: *mut IDXGIOutputDuplication,
20682            riid: *const IID,
20683            ppParent: *mut *mut ::std::os::raw::c_void,
20684        ) -> HRESULT,
20685    >,
20686    pub GetDesc: ::std::option::Option<
20687        unsafe extern "C" fn(
20688            This: *mut IDXGIOutputDuplication,
20689            pDesc: *mut DXGI_OUTDUPL_DESC,
20690        ),
20691    >,
20692    pub AcquireNextFrame: ::std::option::Option<
20693        unsafe extern "C" fn(
20694            This: *mut IDXGIOutputDuplication,
20695            TimeoutInMilliseconds: UINT,
20696            pFrameInfo: *mut DXGI_OUTDUPL_FRAME_INFO,
20697            ppDesktopResource: *mut *mut IDXGIResource,
20698        ) -> HRESULT,
20699    >,
20700    pub GetFrameDirtyRects: ::std::option::Option<
20701        unsafe extern "C" fn(
20702            This: *mut IDXGIOutputDuplication,
20703            DirtyRectsBufferSize: UINT,
20704            pDirtyRectsBuffer: *mut RECT,
20705            pDirtyRectsBufferSizeRequired: *mut UINT,
20706        ) -> HRESULT,
20707    >,
20708    pub GetFrameMoveRects: ::std::option::Option<
20709        unsafe extern "C" fn(
20710            This: *mut IDXGIOutputDuplication,
20711            MoveRectsBufferSize: UINT,
20712            pMoveRectBuffer: *mut DXGI_OUTDUPL_MOVE_RECT,
20713            pMoveRectsBufferSizeRequired: *mut UINT,
20714        ) -> HRESULT,
20715    >,
20716    pub GetFramePointerShape: ::std::option::Option<
20717        unsafe extern "C" fn(
20718            This: *mut IDXGIOutputDuplication,
20719            PointerShapeBufferSize: UINT,
20720            pPointerShapeBuffer: *mut ::std::os::raw::c_void,
20721            pPointerShapeBufferSizeRequired: *mut UINT,
20722            pPointerShapeInfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO,
20723        ) -> HRESULT,
20724    >,
20725    pub MapDesktopSurface: ::std::option::Option<
20726        unsafe extern "C" fn(
20727            This: *mut IDXGIOutputDuplication,
20728            pLockedRect: *mut DXGI_MAPPED_RECT,
20729        ) -> HRESULT,
20730    >,
20731    pub UnMapDesktopSurface: ::std::option::Option<
20732        unsafe extern "C" fn(This: *mut IDXGIOutputDuplication) -> HRESULT,
20733    >,
20734    pub ReleaseFrame: ::std::option::Option<
20735        unsafe extern "C" fn(This: *mut IDXGIOutputDuplication) -> HRESULT,
20736    >,
20737}
20738#[repr(C)]
20739#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20740pub struct IDXGIOutputDuplication {
20741    pub lpVtbl: *mut IDXGIOutputDuplicationVtbl,
20742}
20743impl Default for IDXGIOutputDuplication {
20744    fn default() -> Self {
20745        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20746        unsafe {
20747            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20748            s.assume_init()
20749        }
20750    }
20751}
20752pub const DXGI_ALPHA_MODE_DXGI_ALPHA_MODE_UNSPECIFIED: DXGI_ALPHA_MODE = 0;
20753pub const DXGI_ALPHA_MODE_DXGI_ALPHA_MODE_PREMULTIPLIED: DXGI_ALPHA_MODE = 1;
20754pub const DXGI_ALPHA_MODE_DXGI_ALPHA_MODE_STRAIGHT: DXGI_ALPHA_MODE = 2;
20755pub const DXGI_ALPHA_MODE_DXGI_ALPHA_MODE_IGNORE: DXGI_ALPHA_MODE = 3;
20756pub const DXGI_ALPHA_MODE_DXGI_ALPHA_MODE_FORCE_DWORD: DXGI_ALPHA_MODE = -1;
20757pub type DXGI_ALPHA_MODE = ::std::os::raw::c_int;
20758extern "C" {
20759    pub static IID_IDXGISurface2: IID;
20760}
20761#[repr(C)]
20762#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20763pub struct IDXGISurface2Vtbl {
20764    pub QueryInterface: ::std::option::Option<
20765        unsafe extern "C" fn(
20766            This: *mut IDXGISurface2,
20767            riid: *const IID,
20768            ppvObject: *mut *mut ::std::os::raw::c_void,
20769        ) -> HRESULT,
20770    >,
20771    pub AddRef: ::std::option::Option<
20772        unsafe extern "C" fn(This: *mut IDXGISurface2) -> ULONG,
20773    >,
20774    pub Release: ::std::option::Option<
20775        unsafe extern "C" fn(This: *mut IDXGISurface2) -> ULONG,
20776    >,
20777    pub SetPrivateData: ::std::option::Option<
20778        unsafe extern "C" fn(
20779            This: *mut IDXGISurface2,
20780            Name: *const GUID,
20781            DataSize: UINT,
20782            pData: *const ::std::os::raw::c_void,
20783        ) -> HRESULT,
20784    >,
20785    pub SetPrivateDataInterface: ::std::option::Option<
20786        unsafe extern "C" fn(
20787            This: *mut IDXGISurface2,
20788            Name: *const GUID,
20789            pUnknown: *const IUnknown,
20790        ) -> HRESULT,
20791    >,
20792    pub GetPrivateData: ::std::option::Option<
20793        unsafe extern "C" fn(
20794            This: *mut IDXGISurface2,
20795            Name: *const GUID,
20796            pDataSize: *mut UINT,
20797            pData: *mut ::std::os::raw::c_void,
20798        ) -> HRESULT,
20799    >,
20800    pub GetParent: ::std::option::Option<
20801        unsafe extern "C" fn(
20802            This: *mut IDXGISurface2,
20803            riid: *const IID,
20804            ppParent: *mut *mut ::std::os::raw::c_void,
20805        ) -> HRESULT,
20806    >,
20807    pub GetDevice: ::std::option::Option<
20808        unsafe extern "C" fn(
20809            This: *mut IDXGISurface2,
20810            riid: *const IID,
20811            ppDevice: *mut *mut ::std::os::raw::c_void,
20812        ) -> HRESULT,
20813    >,
20814    pub GetDesc: ::std::option::Option<
20815        unsafe extern "C" fn(
20816            This: *mut IDXGISurface2,
20817            pDesc: *mut DXGI_SURFACE_DESC,
20818        ) -> HRESULT,
20819    >,
20820    pub Map: ::std::option::Option<
20821        unsafe extern "C" fn(
20822            This: *mut IDXGISurface2,
20823            pLockedRect: *mut DXGI_MAPPED_RECT,
20824            MapFlags: UINT,
20825        ) -> HRESULT,
20826    >,
20827    pub Unmap: ::std::option::Option<
20828        unsafe extern "C" fn(This: *mut IDXGISurface2) -> HRESULT,
20829    >,
20830    pub GetDC: ::std::option::Option<
20831        unsafe extern "C" fn(
20832            This: *mut IDXGISurface2,
20833            Discard: BOOL,
20834            phdc: *mut HDC,
20835        ) -> HRESULT,
20836    >,
20837    pub ReleaseDC: ::std::option::Option<
20838        unsafe extern "C" fn(
20839            This: *mut IDXGISurface2,
20840            pDirtyRect: *mut RECT,
20841        ) -> HRESULT,
20842    >,
20843    pub GetResource: ::std::option::Option<
20844        unsafe extern "C" fn(
20845            This: *mut IDXGISurface2,
20846            riid: *const IID,
20847            ppParentResource: *mut *mut ::std::os::raw::c_void,
20848            pSubresourceIndex: *mut UINT,
20849        ) -> HRESULT,
20850    >,
20851}
20852#[repr(C)]
20853#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20854pub struct IDXGISurface2 {
20855    pub lpVtbl: *mut IDXGISurface2Vtbl,
20856}
20857impl Default for IDXGISurface2 {
20858    fn default() -> Self {
20859        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20860        unsafe {
20861            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20862            s.assume_init()
20863        }
20864    }
20865}
20866extern "C" {
20867    pub static IID_IDXGIResource1: IID;
20868}
20869#[repr(C)]
20870#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20871pub struct IDXGIResource1Vtbl {
20872    pub QueryInterface: ::std::option::Option<
20873        unsafe extern "C" fn(
20874            This: *mut IDXGIResource1,
20875            riid: *const IID,
20876            ppvObject: *mut *mut ::std::os::raw::c_void,
20877        ) -> HRESULT,
20878    >,
20879    pub AddRef: ::std::option::Option<
20880        unsafe extern "C" fn(This: *mut IDXGIResource1) -> ULONG,
20881    >,
20882    pub Release: ::std::option::Option<
20883        unsafe extern "C" fn(This: *mut IDXGIResource1) -> ULONG,
20884    >,
20885    pub SetPrivateData: ::std::option::Option<
20886        unsafe extern "C" fn(
20887            This: *mut IDXGIResource1,
20888            Name: *const GUID,
20889            DataSize: UINT,
20890            pData: *const ::std::os::raw::c_void,
20891        ) -> HRESULT,
20892    >,
20893    pub SetPrivateDataInterface: ::std::option::Option<
20894        unsafe extern "C" fn(
20895            This: *mut IDXGIResource1,
20896            Name: *const GUID,
20897            pUnknown: *const IUnknown,
20898        ) -> HRESULT,
20899    >,
20900    pub GetPrivateData: ::std::option::Option<
20901        unsafe extern "C" fn(
20902            This: *mut IDXGIResource1,
20903            Name: *const GUID,
20904            pDataSize: *mut UINT,
20905            pData: *mut ::std::os::raw::c_void,
20906        ) -> HRESULT,
20907    >,
20908    pub GetParent: ::std::option::Option<
20909        unsafe extern "C" fn(
20910            This: *mut IDXGIResource1,
20911            riid: *const IID,
20912            ppParent: *mut *mut ::std::os::raw::c_void,
20913        ) -> HRESULT,
20914    >,
20915    pub GetDevice: ::std::option::Option<
20916        unsafe extern "C" fn(
20917            This: *mut IDXGIResource1,
20918            riid: *const IID,
20919            ppDevice: *mut *mut ::std::os::raw::c_void,
20920        ) -> HRESULT,
20921    >,
20922    pub GetSharedHandle: ::std::option::Option<
20923        unsafe extern "C" fn(
20924            This: *mut IDXGIResource1,
20925            pSharedHandle: *mut HANDLE,
20926        ) -> HRESULT,
20927    >,
20928    pub GetUsage: ::std::option::Option<
20929        unsafe extern "C" fn(
20930            This: *mut IDXGIResource1,
20931            pUsage: *mut DXGI_USAGE,
20932        ) -> HRESULT,
20933    >,
20934    pub SetEvictionPriority: ::std::option::Option<
20935        unsafe extern "C" fn(
20936            This: *mut IDXGIResource1,
20937            EvictionPriority: UINT,
20938        ) -> HRESULT,
20939    >,
20940    pub GetEvictionPriority: ::std::option::Option<
20941        unsafe extern "C" fn(
20942            This: *mut IDXGIResource1,
20943            pEvictionPriority: *mut UINT,
20944        ) -> HRESULT,
20945    >,
20946    pub CreateSubresourceSurface: ::std::option::Option<
20947        unsafe extern "C" fn(
20948            This: *mut IDXGIResource1,
20949            index: UINT,
20950            ppSurface: *mut *mut IDXGISurface2,
20951        ) -> HRESULT,
20952    >,
20953    pub CreateSharedHandle: ::std::option::Option<
20954        unsafe extern "C" fn(
20955            This: *mut IDXGIResource1,
20956            pAttributes: *const SECURITY_ATTRIBUTES,
20957            dwAccess: DWORD,
20958            lpName: LPCWSTR,
20959            pHandle: *mut HANDLE,
20960        ) -> HRESULT,
20961    >,
20962}
20963#[repr(C)]
20964#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20965pub struct IDXGIResource1 {
20966    pub lpVtbl: *mut IDXGIResource1Vtbl,
20967}
20968impl Default for IDXGIResource1 {
20969    fn default() -> Self {
20970        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20971        unsafe {
20972            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20973            s.assume_init()
20974        }
20975    }
20976}
20977pub const _DXGI_OFFER_RESOURCE_PRIORITY_DXGI_OFFER_RESOURCE_PRIORITY_LOW:
20978    _DXGI_OFFER_RESOURCE_PRIORITY = 1;
20979pub const _DXGI_OFFER_RESOURCE_PRIORITY_DXGI_OFFER_RESOURCE_PRIORITY_NORMAL:
20980    _DXGI_OFFER_RESOURCE_PRIORITY = 2;
20981pub const _DXGI_OFFER_RESOURCE_PRIORITY_DXGI_OFFER_RESOURCE_PRIORITY_HIGH:
20982    _DXGI_OFFER_RESOURCE_PRIORITY = 3;
20983pub type _DXGI_OFFER_RESOURCE_PRIORITY = ::std::os::raw::c_int;
20984pub use self::_DXGI_OFFER_RESOURCE_PRIORITY as DXGI_OFFER_RESOURCE_PRIORITY;
20985extern "C" {
20986    pub static IID_IDXGIDevice2: IID;
20987}
20988#[repr(C)]
20989#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
20990pub struct IDXGIDevice2Vtbl {
20991    pub QueryInterface: ::std::option::Option<
20992        unsafe extern "C" fn(
20993            This: *mut IDXGIDevice2,
20994            riid: *const IID,
20995            ppvObject: *mut *mut ::std::os::raw::c_void,
20996        ) -> HRESULT,
20997    >,
20998    pub AddRef: ::std::option::Option<
20999        unsafe extern "C" fn(This: *mut IDXGIDevice2) -> ULONG,
21000    >,
21001    pub Release: ::std::option::Option<
21002        unsafe extern "C" fn(This: *mut IDXGIDevice2) -> ULONG,
21003    >,
21004    pub SetPrivateData: ::std::option::Option<
21005        unsafe extern "C" fn(
21006            This: *mut IDXGIDevice2,
21007            Name: *const GUID,
21008            DataSize: UINT,
21009            pData: *const ::std::os::raw::c_void,
21010        ) -> HRESULT,
21011    >,
21012    pub SetPrivateDataInterface: ::std::option::Option<
21013        unsafe extern "C" fn(
21014            This: *mut IDXGIDevice2,
21015            Name: *const GUID,
21016            pUnknown: *const IUnknown,
21017        ) -> HRESULT,
21018    >,
21019    pub GetPrivateData: ::std::option::Option<
21020        unsafe extern "C" fn(
21021            This: *mut IDXGIDevice2,
21022            Name: *const GUID,
21023            pDataSize: *mut UINT,
21024            pData: *mut ::std::os::raw::c_void,
21025        ) -> HRESULT,
21026    >,
21027    pub GetParent: ::std::option::Option<
21028        unsafe extern "C" fn(
21029            This: *mut IDXGIDevice2,
21030            riid: *const IID,
21031            ppParent: *mut *mut ::std::os::raw::c_void,
21032        ) -> HRESULT,
21033    >,
21034    pub GetAdapter: ::std::option::Option<
21035        unsafe extern "C" fn(
21036            This: *mut IDXGIDevice2,
21037            pAdapter: *mut *mut IDXGIAdapter,
21038        ) -> HRESULT,
21039    >,
21040    pub CreateSurface: ::std::option::Option<
21041        unsafe extern "C" fn(
21042            This: *mut IDXGIDevice2,
21043            pDesc: *const DXGI_SURFACE_DESC,
21044            NumSurfaces: UINT,
21045            Usage: DXGI_USAGE,
21046            pSharedResource: *const DXGI_SHARED_RESOURCE,
21047            ppSurface: *mut *mut IDXGISurface,
21048        ) -> HRESULT,
21049    >,
21050    pub QueryResourceResidency: ::std::option::Option<
21051        unsafe extern "C" fn(
21052            This: *mut IDXGIDevice2,
21053            ppResources: *const *mut IUnknown,
21054            pResidencyStatus: *mut DXGI_RESIDENCY,
21055            NumResources: UINT,
21056        ) -> HRESULT,
21057    >,
21058    pub SetGPUThreadPriority: ::std::option::Option<
21059        unsafe extern "C" fn(This: *mut IDXGIDevice2, Priority: INT) -> HRESULT,
21060    >,
21061    pub GetGPUThreadPriority: ::std::option::Option<
21062        unsafe extern "C" fn(
21063            This: *mut IDXGIDevice2,
21064            pPriority: *mut INT,
21065        ) -> HRESULT,
21066    >,
21067    pub SetMaximumFrameLatency: ::std::option::Option<
21068        unsafe extern "C" fn(
21069            This: *mut IDXGIDevice2,
21070            MaxLatency: UINT,
21071        ) -> HRESULT,
21072    >,
21073    pub GetMaximumFrameLatency: ::std::option::Option<
21074        unsafe extern "C" fn(
21075            This: *mut IDXGIDevice2,
21076            pMaxLatency: *mut UINT,
21077        ) -> HRESULT,
21078    >,
21079    pub OfferResources: ::std::option::Option<
21080        unsafe extern "C" fn(
21081            This: *mut IDXGIDevice2,
21082            NumResources: UINT,
21083            ppResources: *const *mut IDXGIResource,
21084            Priority: DXGI_OFFER_RESOURCE_PRIORITY,
21085        ) -> HRESULT,
21086    >,
21087    pub ReclaimResources: ::std::option::Option<
21088        unsafe extern "C" fn(
21089            This: *mut IDXGIDevice2,
21090            NumResources: UINT,
21091            ppResources: *const *mut IDXGIResource,
21092            pDiscarded: *mut BOOL,
21093        ) -> HRESULT,
21094    >,
21095    pub EnqueueSetEvent: ::std::option::Option<
21096        unsafe extern "C" fn(
21097            This: *mut IDXGIDevice2,
21098            hEvent: HANDLE,
21099        ) -> HRESULT,
21100    >,
21101}
21102#[repr(C)]
21103#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21104pub struct IDXGIDevice2 {
21105    pub lpVtbl: *mut IDXGIDevice2Vtbl,
21106}
21107impl Default for IDXGIDevice2 {
21108    fn default() -> Self {
21109        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21110        unsafe {
21111            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21112            s.assume_init()
21113        }
21114    }
21115}
21116#[repr(C)]
21117#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21118pub struct DXGI_MODE_DESC1 {
21119    pub Width: UINT,
21120    pub Height: UINT,
21121    pub RefreshRate: DXGI_RATIONAL,
21122    pub Format: DXGI_FORMAT,
21123    pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
21124    pub Scaling: DXGI_MODE_SCALING,
21125    pub Stereo: BOOL,
21126}
21127impl Default for DXGI_MODE_DESC1 {
21128    fn default() -> Self {
21129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21130        unsafe {
21131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21132            s.assume_init()
21133        }
21134    }
21135}
21136pub const DXGI_SCALING_DXGI_SCALING_STRETCH: DXGI_SCALING = 0;
21137pub const DXGI_SCALING_DXGI_SCALING_NONE: DXGI_SCALING = 1;
21138pub const DXGI_SCALING_DXGI_SCALING_ASPECT_RATIO_STRETCH: DXGI_SCALING = 2;
21139pub type DXGI_SCALING = ::std::os::raw::c_int;
21140#[repr(C)]
21141#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21142pub struct DXGI_SWAP_CHAIN_DESC1 {
21143    pub Width: UINT,
21144    pub Height: UINT,
21145    pub Format: DXGI_FORMAT,
21146    pub Stereo: BOOL,
21147    pub SampleDesc: DXGI_SAMPLE_DESC,
21148    pub BufferUsage: DXGI_USAGE,
21149    pub BufferCount: UINT,
21150    pub Scaling: DXGI_SCALING,
21151    pub SwapEffect: DXGI_SWAP_EFFECT,
21152    pub AlphaMode: DXGI_ALPHA_MODE,
21153    pub Flags: UINT,
21154}
21155impl Default for DXGI_SWAP_CHAIN_DESC1 {
21156    fn default() -> Self {
21157        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21158        unsafe {
21159            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21160            s.assume_init()
21161        }
21162    }
21163}
21164#[repr(C)]
21165#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21166pub struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
21167    pub RefreshRate: DXGI_RATIONAL,
21168    pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
21169    pub Scaling: DXGI_MODE_SCALING,
21170    pub Windowed: BOOL,
21171}
21172impl Default for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
21173    fn default() -> Self {
21174        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21175        unsafe {
21176            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21177            s.assume_init()
21178        }
21179    }
21180}
21181#[repr(C)]
21182#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21183pub struct DXGI_PRESENT_PARAMETERS {
21184    pub DirtyRectsCount: UINT,
21185    pub pDirtyRects: *mut RECT,
21186    pub pScrollRect: *mut RECT,
21187    pub pScrollOffset: *mut POINT,
21188}
21189impl Default for DXGI_PRESENT_PARAMETERS {
21190    fn default() -> Self {
21191        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21192        unsafe {
21193            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21194            s.assume_init()
21195        }
21196    }
21197}
21198extern "C" {
21199    pub static IID_IDXGISwapChain1: IID;
21200}
21201#[repr(C)]
21202#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21203pub struct IDXGISwapChain1Vtbl {
21204    pub QueryInterface: ::std::option::Option<
21205        unsafe extern "C" fn(
21206            This: *mut IDXGISwapChain1,
21207            riid: *const IID,
21208            ppvObject: *mut *mut ::std::os::raw::c_void,
21209        ) -> HRESULT,
21210    >,
21211    pub AddRef: ::std::option::Option<
21212        unsafe extern "C" fn(This: *mut IDXGISwapChain1) -> ULONG,
21213    >,
21214    pub Release: ::std::option::Option<
21215        unsafe extern "C" fn(This: *mut IDXGISwapChain1) -> ULONG,
21216    >,
21217    pub SetPrivateData: ::std::option::Option<
21218        unsafe extern "C" fn(
21219            This: *mut IDXGISwapChain1,
21220            Name: *const GUID,
21221            DataSize: UINT,
21222            pData: *const ::std::os::raw::c_void,
21223        ) -> HRESULT,
21224    >,
21225    pub SetPrivateDataInterface: ::std::option::Option<
21226        unsafe extern "C" fn(
21227            This: *mut IDXGISwapChain1,
21228            Name: *const GUID,
21229            pUnknown: *const IUnknown,
21230        ) -> HRESULT,
21231    >,
21232    pub GetPrivateData: ::std::option::Option<
21233        unsafe extern "C" fn(
21234            This: *mut IDXGISwapChain1,
21235            Name: *const GUID,
21236            pDataSize: *mut UINT,
21237            pData: *mut ::std::os::raw::c_void,
21238        ) -> HRESULT,
21239    >,
21240    pub GetParent: ::std::option::Option<
21241        unsafe extern "C" fn(
21242            This: *mut IDXGISwapChain1,
21243            riid: *const IID,
21244            ppParent: *mut *mut ::std::os::raw::c_void,
21245        ) -> HRESULT,
21246    >,
21247    pub GetDevice: ::std::option::Option<
21248        unsafe extern "C" fn(
21249            This: *mut IDXGISwapChain1,
21250            riid: *const IID,
21251            ppDevice: *mut *mut ::std::os::raw::c_void,
21252        ) -> HRESULT,
21253    >,
21254    pub Present: ::std::option::Option<
21255        unsafe extern "C" fn(
21256            This: *mut IDXGISwapChain1,
21257            SyncInterval: UINT,
21258            Flags: UINT,
21259        ) -> HRESULT,
21260    >,
21261    pub GetBuffer: ::std::option::Option<
21262        unsafe extern "C" fn(
21263            This: *mut IDXGISwapChain1,
21264            Buffer: UINT,
21265            riid: *const IID,
21266            ppSurface: *mut *mut ::std::os::raw::c_void,
21267        ) -> HRESULT,
21268    >,
21269    pub SetFullscreenState: ::std::option::Option<
21270        unsafe extern "C" fn(
21271            This: *mut IDXGISwapChain1,
21272            Fullscreen: BOOL,
21273            pTarget: *mut IDXGIOutput,
21274        ) -> HRESULT,
21275    >,
21276    pub GetFullscreenState: ::std::option::Option<
21277        unsafe extern "C" fn(
21278            This: *mut IDXGISwapChain1,
21279            pFullscreen: *mut BOOL,
21280            ppTarget: *mut *mut IDXGIOutput,
21281        ) -> HRESULT,
21282    >,
21283    pub GetDesc: ::std::option::Option<
21284        unsafe extern "C" fn(
21285            This: *mut IDXGISwapChain1,
21286            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
21287        ) -> HRESULT,
21288    >,
21289    pub ResizeBuffers: ::std::option::Option<
21290        unsafe extern "C" fn(
21291            This: *mut IDXGISwapChain1,
21292            BufferCount: UINT,
21293            Width: UINT,
21294            Height: UINT,
21295            NewFormat: DXGI_FORMAT,
21296            SwapChainFlags: UINT,
21297        ) -> HRESULT,
21298    >,
21299    pub ResizeTarget: ::std::option::Option<
21300        unsafe extern "C" fn(
21301            This: *mut IDXGISwapChain1,
21302            pNewTargetParameters: *const DXGI_MODE_DESC,
21303        ) -> HRESULT,
21304    >,
21305    pub GetContainingOutput: ::std::option::Option<
21306        unsafe extern "C" fn(
21307            This: *mut IDXGISwapChain1,
21308            ppOutput: *mut *mut IDXGIOutput,
21309        ) -> HRESULT,
21310    >,
21311    pub GetFrameStatistics: ::std::option::Option<
21312        unsafe extern "C" fn(
21313            This: *mut IDXGISwapChain1,
21314            pStats: *mut DXGI_FRAME_STATISTICS,
21315        ) -> HRESULT,
21316    >,
21317    pub GetLastPresentCount: ::std::option::Option<
21318        unsafe extern "C" fn(
21319            This: *mut IDXGISwapChain1,
21320            pLastPresentCount: *mut UINT,
21321        ) -> HRESULT,
21322    >,
21323    pub GetDesc1: ::std::option::Option<
21324        unsafe extern "C" fn(
21325            This: *mut IDXGISwapChain1,
21326            pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
21327        ) -> HRESULT,
21328    >,
21329    pub GetFullscreenDesc: ::std::option::Option<
21330        unsafe extern "C" fn(
21331            This: *mut IDXGISwapChain1,
21332            pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
21333        ) -> HRESULT,
21334    >,
21335    pub GetHwnd: ::std::option::Option<
21336        unsafe extern "C" fn(
21337            This: *mut IDXGISwapChain1,
21338            pHwnd: *mut HWND,
21339        ) -> HRESULT,
21340    >,
21341    pub GetCoreWindow: ::std::option::Option<
21342        unsafe extern "C" fn(
21343            This: *mut IDXGISwapChain1,
21344            refiid: *const IID,
21345            ppUnk: *mut *mut ::std::os::raw::c_void,
21346        ) -> HRESULT,
21347    >,
21348    pub Present1: ::std::option::Option<
21349        unsafe extern "C" fn(
21350            This: *mut IDXGISwapChain1,
21351            SyncInterval: UINT,
21352            PresentFlags: UINT,
21353            pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
21354        ) -> HRESULT,
21355    >,
21356    pub IsTemporaryMonoSupported: ::std::option::Option<
21357        unsafe extern "C" fn(This: *mut IDXGISwapChain1) -> BOOL,
21358    >,
21359    pub GetRestrictToOutput: ::std::option::Option<
21360        unsafe extern "C" fn(
21361            This: *mut IDXGISwapChain1,
21362            ppRestrictToOutput: *mut *mut IDXGIOutput,
21363        ) -> HRESULT,
21364    >,
21365    pub SetBackgroundColor: ::std::option::Option<
21366        unsafe extern "C" fn(
21367            This: *mut IDXGISwapChain1,
21368            pColor: *const DXGI_RGBA,
21369        ) -> HRESULT,
21370    >,
21371    pub GetBackgroundColor: ::std::option::Option<
21372        unsafe extern "C" fn(
21373            This: *mut IDXGISwapChain1,
21374            pColor: *mut DXGI_RGBA,
21375        ) -> HRESULT,
21376    >,
21377    pub SetRotation: ::std::option::Option<
21378        unsafe extern "C" fn(
21379            This: *mut IDXGISwapChain1,
21380            Rotation: DXGI_MODE_ROTATION,
21381        ) -> HRESULT,
21382    >,
21383    pub GetRotation: ::std::option::Option<
21384        unsafe extern "C" fn(
21385            This: *mut IDXGISwapChain1,
21386            pRotation: *mut DXGI_MODE_ROTATION,
21387        ) -> HRESULT,
21388    >,
21389}
21390#[repr(C)]
21391#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21392pub struct IDXGISwapChain1 {
21393    pub lpVtbl: *mut IDXGISwapChain1Vtbl,
21394}
21395impl Default for IDXGISwapChain1 {
21396    fn default() -> Self {
21397        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21398        unsafe {
21399            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21400            s.assume_init()
21401        }
21402    }
21403}
21404extern "C" {
21405    pub static IID_IDXGIFactory2: IID;
21406}
21407#[repr(C)]
21408#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21409pub struct IDXGIFactory2Vtbl {
21410    pub QueryInterface: ::std::option::Option<
21411        unsafe extern "C" fn(
21412            This: *mut IDXGIFactory2,
21413            riid: *const IID,
21414            ppvObject: *mut *mut ::std::os::raw::c_void,
21415        ) -> HRESULT,
21416    >,
21417    pub AddRef: ::std::option::Option<
21418        unsafe extern "C" fn(This: *mut IDXGIFactory2) -> ULONG,
21419    >,
21420    pub Release: ::std::option::Option<
21421        unsafe extern "C" fn(This: *mut IDXGIFactory2) -> ULONG,
21422    >,
21423    pub SetPrivateData: ::std::option::Option<
21424        unsafe extern "C" fn(
21425            This: *mut IDXGIFactory2,
21426            Name: *const GUID,
21427            DataSize: UINT,
21428            pData: *const ::std::os::raw::c_void,
21429        ) -> HRESULT,
21430    >,
21431    pub SetPrivateDataInterface: ::std::option::Option<
21432        unsafe extern "C" fn(
21433            This: *mut IDXGIFactory2,
21434            Name: *const GUID,
21435            pUnknown: *const IUnknown,
21436        ) -> HRESULT,
21437    >,
21438    pub GetPrivateData: ::std::option::Option<
21439        unsafe extern "C" fn(
21440            This: *mut IDXGIFactory2,
21441            Name: *const GUID,
21442            pDataSize: *mut UINT,
21443            pData: *mut ::std::os::raw::c_void,
21444        ) -> HRESULT,
21445    >,
21446    pub GetParent: ::std::option::Option<
21447        unsafe extern "C" fn(
21448            This: *mut IDXGIFactory2,
21449            riid: *const IID,
21450            ppParent: *mut *mut ::std::os::raw::c_void,
21451        ) -> HRESULT,
21452    >,
21453    pub EnumAdapters: ::std::option::Option<
21454        unsafe extern "C" fn(
21455            This: *mut IDXGIFactory2,
21456            Adapter: UINT,
21457            ppAdapter: *mut *mut IDXGIAdapter,
21458        ) -> HRESULT,
21459    >,
21460    pub MakeWindowAssociation: ::std::option::Option<
21461        unsafe extern "C" fn(
21462            This: *mut IDXGIFactory2,
21463            WindowHandle: HWND,
21464            Flags: UINT,
21465        ) -> HRESULT,
21466    >,
21467    pub GetWindowAssociation: ::std::option::Option<
21468        unsafe extern "C" fn(
21469            This: *mut IDXGIFactory2,
21470            pWindowHandle: *mut HWND,
21471        ) -> HRESULT,
21472    >,
21473    pub CreateSwapChain: ::std::option::Option<
21474        unsafe extern "C" fn(
21475            This: *mut IDXGIFactory2,
21476            pDevice: *mut IUnknown,
21477            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
21478            ppSwapChain: *mut *mut IDXGISwapChain,
21479        ) -> HRESULT,
21480    >,
21481    pub CreateSoftwareAdapter: ::std::option::Option<
21482        unsafe extern "C" fn(
21483            This: *mut IDXGIFactory2,
21484            Module: HMODULE,
21485            ppAdapter: *mut *mut IDXGIAdapter,
21486        ) -> HRESULT,
21487    >,
21488    pub EnumAdapters1: ::std::option::Option<
21489        unsafe extern "C" fn(
21490            This: *mut IDXGIFactory2,
21491            Adapter: UINT,
21492            ppAdapter: *mut *mut IDXGIAdapter1,
21493        ) -> HRESULT,
21494    >,
21495    pub IsCurrent: ::std::option::Option<
21496        unsafe extern "C" fn(This: *mut IDXGIFactory2) -> BOOL,
21497    >,
21498    pub IsWindowedStereoEnabled: ::std::option::Option<
21499        unsafe extern "C" fn(This: *mut IDXGIFactory2) -> BOOL,
21500    >,
21501    pub CreateSwapChainForHwnd: ::std::option::Option<
21502        unsafe extern "C" fn(
21503            This: *mut IDXGIFactory2,
21504            pDevice: *mut IUnknown,
21505            hWnd: HWND,
21506            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
21507            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
21508            pRestrictToOutput: *mut IDXGIOutput,
21509            ppSwapChain: *mut *mut IDXGISwapChain1,
21510        ) -> HRESULT,
21511    >,
21512    pub CreateSwapChainForCoreWindow: ::std::option::Option<
21513        unsafe extern "C" fn(
21514            This: *mut IDXGIFactory2,
21515            pDevice: *mut IUnknown,
21516            pWindow: *mut IUnknown,
21517            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
21518            pRestrictToOutput: *mut IDXGIOutput,
21519            ppSwapChain: *mut *mut IDXGISwapChain1,
21520        ) -> HRESULT,
21521    >,
21522    pub GetSharedResourceAdapterLuid: ::std::option::Option<
21523        unsafe extern "C" fn(
21524            This: *mut IDXGIFactory2,
21525            hResource: HANDLE,
21526            pLuid: *mut LUID,
21527        ) -> HRESULT,
21528    >,
21529    pub RegisterStereoStatusWindow: ::std::option::Option<
21530        unsafe extern "C" fn(
21531            This: *mut IDXGIFactory2,
21532            WindowHandle: HWND,
21533            wMsg: UINT,
21534            pdwCookie: *mut DWORD,
21535        ) -> HRESULT,
21536    >,
21537    pub RegisterStereoStatusEvent: ::std::option::Option<
21538        unsafe extern "C" fn(
21539            This: *mut IDXGIFactory2,
21540            hEvent: HANDLE,
21541            pdwCookie: *mut DWORD,
21542        ) -> HRESULT,
21543    >,
21544    pub UnregisterStereoStatus: ::std::option::Option<
21545        unsafe extern "C" fn(This: *mut IDXGIFactory2, dwCookie: DWORD),
21546    >,
21547    pub RegisterOcclusionStatusWindow: ::std::option::Option<
21548        unsafe extern "C" fn(
21549            This: *mut IDXGIFactory2,
21550            WindowHandle: HWND,
21551            wMsg: UINT,
21552            pdwCookie: *mut DWORD,
21553        ) -> HRESULT,
21554    >,
21555    pub RegisterOcclusionStatusEvent: ::std::option::Option<
21556        unsafe extern "C" fn(
21557            This: *mut IDXGIFactory2,
21558            hEvent: HANDLE,
21559            pdwCookie: *mut DWORD,
21560        ) -> HRESULT,
21561    >,
21562    pub UnregisterOcclusionStatus: ::std::option::Option<
21563        unsafe extern "C" fn(This: *mut IDXGIFactory2, dwCookie: DWORD),
21564    >,
21565    pub CreateSwapChainForComposition: ::std::option::Option<
21566        unsafe extern "C" fn(
21567            This: *mut IDXGIFactory2,
21568            pDevice: *mut IUnknown,
21569            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
21570            pRestrictToOutput: *mut IDXGIOutput,
21571            ppSwapChain: *mut *mut IDXGISwapChain1,
21572        ) -> HRESULT,
21573    >,
21574}
21575#[repr(C)]
21576#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21577pub struct IDXGIFactory2 {
21578    pub lpVtbl: *mut IDXGIFactory2Vtbl,
21579}
21580impl Default for IDXGIFactory2 {
21581    fn default() -> Self {
21582        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21583        unsafe {
21584            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21585            s.assume_init()
21586        }
21587    }
21588}
21589pub const DXGI_GRAPHICS_PREEMPTION_GRANULARITY_DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY : DXGI_GRAPHICS_PREEMPTION_GRANULARITY = 0 ;
21590pub const DXGI_GRAPHICS_PREEMPTION_GRANULARITY_DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY : DXGI_GRAPHICS_PREEMPTION_GRANULARITY = 1 ;
21591pub const DXGI_GRAPHICS_PREEMPTION_GRANULARITY_DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY : DXGI_GRAPHICS_PREEMPTION_GRANULARITY = 2 ;
21592pub const DXGI_GRAPHICS_PREEMPTION_GRANULARITY_DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY : DXGI_GRAPHICS_PREEMPTION_GRANULARITY = 3 ;
21593pub const DXGI_GRAPHICS_PREEMPTION_GRANULARITY_DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY : DXGI_GRAPHICS_PREEMPTION_GRANULARITY = 4 ;
21594pub type DXGI_GRAPHICS_PREEMPTION_GRANULARITY = ::std::os::raw::c_int;
21595pub const DXGI_COMPUTE_PREEMPTION_GRANULARITY_DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY : DXGI_COMPUTE_PREEMPTION_GRANULARITY = 0 ;
21596pub const DXGI_COMPUTE_PREEMPTION_GRANULARITY_DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY : DXGI_COMPUTE_PREEMPTION_GRANULARITY = 1 ;
21597pub const DXGI_COMPUTE_PREEMPTION_GRANULARITY_DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY : DXGI_COMPUTE_PREEMPTION_GRANULARITY = 2 ;
21598pub const DXGI_COMPUTE_PREEMPTION_GRANULARITY_DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY : DXGI_COMPUTE_PREEMPTION_GRANULARITY = 3 ;
21599pub const DXGI_COMPUTE_PREEMPTION_GRANULARITY_DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY : DXGI_COMPUTE_PREEMPTION_GRANULARITY = 4 ;
21600pub type DXGI_COMPUTE_PREEMPTION_GRANULARITY = ::std::os::raw::c_int;
21601#[repr(C)]
21602#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21603pub struct DXGI_ADAPTER_DESC2 {
21604    pub Description: [WCHAR; 128usize],
21605    pub VendorId: UINT,
21606    pub DeviceId: UINT,
21607    pub SubSysId: UINT,
21608    pub Revision: UINT,
21609    pub DedicatedVideoMemory: SIZE_T,
21610    pub DedicatedSystemMemory: SIZE_T,
21611    pub SharedSystemMemory: SIZE_T,
21612    pub AdapterLuid: LUID,
21613    pub Flags: UINT,
21614    pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
21615    pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
21616}
21617impl Default for DXGI_ADAPTER_DESC2 {
21618    fn default() -> Self {
21619        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21620        unsafe {
21621            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21622            s.assume_init()
21623        }
21624    }
21625}
21626extern "C" {
21627    pub static IID_IDXGIAdapter2: IID;
21628}
21629#[repr(C)]
21630#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21631pub struct IDXGIAdapter2Vtbl {
21632    pub QueryInterface: ::std::option::Option<
21633        unsafe extern "C" fn(
21634            This: *mut IDXGIAdapter2,
21635            riid: *const IID,
21636            ppvObject: *mut *mut ::std::os::raw::c_void,
21637        ) -> HRESULT,
21638    >,
21639    pub AddRef: ::std::option::Option<
21640        unsafe extern "C" fn(This: *mut IDXGIAdapter2) -> ULONG,
21641    >,
21642    pub Release: ::std::option::Option<
21643        unsafe extern "C" fn(This: *mut IDXGIAdapter2) -> ULONG,
21644    >,
21645    pub SetPrivateData: ::std::option::Option<
21646        unsafe extern "C" fn(
21647            This: *mut IDXGIAdapter2,
21648            Name: *const GUID,
21649            DataSize: UINT,
21650            pData: *const ::std::os::raw::c_void,
21651        ) -> HRESULT,
21652    >,
21653    pub SetPrivateDataInterface: ::std::option::Option<
21654        unsafe extern "C" fn(
21655            This: *mut IDXGIAdapter2,
21656            Name: *const GUID,
21657            pUnknown: *const IUnknown,
21658        ) -> HRESULT,
21659    >,
21660    pub GetPrivateData: ::std::option::Option<
21661        unsafe extern "C" fn(
21662            This: *mut IDXGIAdapter2,
21663            Name: *const GUID,
21664            pDataSize: *mut UINT,
21665            pData: *mut ::std::os::raw::c_void,
21666        ) -> HRESULT,
21667    >,
21668    pub GetParent: ::std::option::Option<
21669        unsafe extern "C" fn(
21670            This: *mut IDXGIAdapter2,
21671            riid: *const IID,
21672            ppParent: *mut *mut ::std::os::raw::c_void,
21673        ) -> HRESULT,
21674    >,
21675    pub EnumOutputs: ::std::option::Option<
21676        unsafe extern "C" fn(
21677            This: *mut IDXGIAdapter2,
21678            Output: UINT,
21679            ppOutput: *mut *mut IDXGIOutput,
21680        ) -> HRESULT,
21681    >,
21682    pub GetDesc: ::std::option::Option<
21683        unsafe extern "C" fn(
21684            This: *mut IDXGIAdapter2,
21685            pDesc: *mut DXGI_ADAPTER_DESC,
21686        ) -> HRESULT,
21687    >,
21688    pub CheckInterfaceSupport: ::std::option::Option<
21689        unsafe extern "C" fn(
21690            This: *mut IDXGIAdapter2,
21691            InterfaceName: *const GUID,
21692            pUMDVersion: *mut LARGE_INTEGER,
21693        ) -> HRESULT,
21694    >,
21695    pub GetDesc1: ::std::option::Option<
21696        unsafe extern "C" fn(
21697            This: *mut IDXGIAdapter2,
21698            pDesc: *mut DXGI_ADAPTER_DESC1,
21699        ) -> HRESULT,
21700    >,
21701    pub GetDesc2: ::std::option::Option<
21702        unsafe extern "C" fn(
21703            This: *mut IDXGIAdapter2,
21704            pDesc: *mut DXGI_ADAPTER_DESC2,
21705        ) -> HRESULT,
21706    >,
21707}
21708#[repr(C)]
21709#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21710pub struct IDXGIAdapter2 {
21711    pub lpVtbl: *mut IDXGIAdapter2Vtbl,
21712}
21713impl Default for IDXGIAdapter2 {
21714    fn default() -> Self {
21715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21716        unsafe {
21717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21718            s.assume_init()
21719        }
21720    }
21721}
21722extern "C" {
21723    pub static IID_IDXGIOutput1: IID;
21724}
21725#[repr(C)]
21726#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21727pub struct IDXGIOutput1Vtbl {
21728    pub QueryInterface: ::std::option::Option<
21729        unsafe extern "C" fn(
21730            This: *mut IDXGIOutput1,
21731            riid: *const IID,
21732            ppvObject: *mut *mut ::std::os::raw::c_void,
21733        ) -> HRESULT,
21734    >,
21735    pub AddRef: ::std::option::Option<
21736        unsafe extern "C" fn(This: *mut IDXGIOutput1) -> ULONG,
21737    >,
21738    pub Release: ::std::option::Option<
21739        unsafe extern "C" fn(This: *mut IDXGIOutput1) -> ULONG,
21740    >,
21741    pub SetPrivateData: ::std::option::Option<
21742        unsafe extern "C" fn(
21743            This: *mut IDXGIOutput1,
21744            Name: *const GUID,
21745            DataSize: UINT,
21746            pData: *const ::std::os::raw::c_void,
21747        ) -> HRESULT,
21748    >,
21749    pub SetPrivateDataInterface: ::std::option::Option<
21750        unsafe extern "C" fn(
21751            This: *mut IDXGIOutput1,
21752            Name: *const GUID,
21753            pUnknown: *const IUnknown,
21754        ) -> HRESULT,
21755    >,
21756    pub GetPrivateData: ::std::option::Option<
21757        unsafe extern "C" fn(
21758            This: *mut IDXGIOutput1,
21759            Name: *const GUID,
21760            pDataSize: *mut UINT,
21761            pData: *mut ::std::os::raw::c_void,
21762        ) -> HRESULT,
21763    >,
21764    pub GetParent: ::std::option::Option<
21765        unsafe extern "C" fn(
21766            This: *mut IDXGIOutput1,
21767            riid: *const IID,
21768            ppParent: *mut *mut ::std::os::raw::c_void,
21769        ) -> HRESULT,
21770    >,
21771    pub GetDesc: ::std::option::Option<
21772        unsafe extern "C" fn(
21773            This: *mut IDXGIOutput1,
21774            pDesc: *mut DXGI_OUTPUT_DESC,
21775        ) -> HRESULT,
21776    >,
21777    pub GetDisplayModeList: ::std::option::Option<
21778        unsafe extern "C" fn(
21779            This: *mut IDXGIOutput1,
21780            EnumFormat: DXGI_FORMAT,
21781            Flags: UINT,
21782            pNumModes: *mut UINT,
21783            pDesc: *mut DXGI_MODE_DESC,
21784        ) -> HRESULT,
21785    >,
21786    pub FindClosestMatchingMode: ::std::option::Option<
21787        unsafe extern "C" fn(
21788            This: *mut IDXGIOutput1,
21789            pModeToMatch: *const DXGI_MODE_DESC,
21790            pClosestMatch: *mut DXGI_MODE_DESC,
21791            pConcernedDevice: *mut IUnknown,
21792        ) -> HRESULT,
21793    >,
21794    pub WaitForVBlank: ::std::option::Option<
21795        unsafe extern "C" fn(This: *mut IDXGIOutput1) -> HRESULT,
21796    >,
21797    pub TakeOwnership: ::std::option::Option<
21798        unsafe extern "C" fn(
21799            This: *mut IDXGIOutput1,
21800            pDevice: *mut IUnknown,
21801            Exclusive: BOOL,
21802        ) -> HRESULT,
21803    >,
21804    pub ReleaseOwnership:
21805        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput1)>,
21806    pub GetGammaControlCapabilities: ::std::option::Option<
21807        unsafe extern "C" fn(
21808            This: *mut IDXGIOutput1,
21809            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
21810        ) -> HRESULT,
21811    >,
21812    pub SetGammaControl: ::std::option::Option<
21813        unsafe extern "C" fn(
21814            This: *mut IDXGIOutput1,
21815            pArray: *const DXGI_GAMMA_CONTROL,
21816        ) -> HRESULT,
21817    >,
21818    pub GetGammaControl: ::std::option::Option<
21819        unsafe extern "C" fn(
21820            This: *mut IDXGIOutput1,
21821            pArray: *mut DXGI_GAMMA_CONTROL,
21822        ) -> HRESULT,
21823    >,
21824    pub SetDisplaySurface: ::std::option::Option<
21825        unsafe extern "C" fn(
21826            This: *mut IDXGIOutput1,
21827            pScanoutSurface: *mut IDXGISurface,
21828        ) -> HRESULT,
21829    >,
21830    pub GetDisplaySurfaceData: ::std::option::Option<
21831        unsafe extern "C" fn(
21832            This: *mut IDXGIOutput1,
21833            pDestination: *mut IDXGISurface,
21834        ) -> HRESULT,
21835    >,
21836    pub GetFrameStatistics: ::std::option::Option<
21837        unsafe extern "C" fn(
21838            This: *mut IDXGIOutput1,
21839            pStats: *mut DXGI_FRAME_STATISTICS,
21840        ) -> HRESULT,
21841    >,
21842    pub GetDisplayModeList1: ::std::option::Option<
21843        unsafe extern "C" fn(
21844            This: *mut IDXGIOutput1,
21845            EnumFormat: DXGI_FORMAT,
21846            Flags: UINT,
21847            pNumModes: *mut UINT,
21848            pDesc: *mut DXGI_MODE_DESC1,
21849        ) -> HRESULT,
21850    >,
21851    pub FindClosestMatchingMode1: ::std::option::Option<
21852        unsafe extern "C" fn(
21853            This: *mut IDXGIOutput1,
21854            pModeToMatch: *const DXGI_MODE_DESC1,
21855            pClosestMatch: *mut DXGI_MODE_DESC1,
21856            pConcernedDevice: *mut IUnknown,
21857        ) -> HRESULT,
21858    >,
21859    pub GetDisplaySurfaceData1: ::std::option::Option<
21860        unsafe extern "C" fn(
21861            This: *mut IDXGIOutput1,
21862            pDestination: *mut IDXGIResource,
21863        ) -> HRESULT,
21864    >,
21865    pub DuplicateOutput: ::std::option::Option<
21866        unsafe extern "C" fn(
21867            This: *mut IDXGIOutput1,
21868            pDevice: *mut IUnknown,
21869            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
21870        ) -> HRESULT,
21871    >,
21872}
21873#[repr(C)]
21874#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21875pub struct IDXGIOutput1 {
21876    pub lpVtbl: *mut IDXGIOutput1Vtbl,
21877}
21878impl Default for IDXGIOutput1 {
21879    fn default() -> Self {
21880        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21881        unsafe {
21882            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21883            s.assume_init()
21884        }
21885    }
21886}
21887extern "C" {
21888    pub fn CreateDXGIFactory2(
21889        Flags: UINT,
21890        riid: *const IID,
21891        ppFactory: *mut *mut ::std::os::raw::c_void,
21892    ) -> HRESULT;
21893}
21894extern "C" {
21895    pub fn DXGIGetDebugInterface1(
21896        Flags: UINT,
21897        riid: *const IID,
21898        pDebug: *mut *mut ::std::os::raw::c_void,
21899    ) -> HRESULT;
21900}
21901extern "C" {
21902    pub static IID_IDXGIDevice3: IID;
21903}
21904#[repr(C)]
21905#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
21906pub struct IDXGIDevice3Vtbl {
21907    pub QueryInterface: ::std::option::Option<
21908        unsafe extern "C" fn(
21909            This: *mut IDXGIDevice3,
21910            riid: *const IID,
21911            ppvObject: *mut *mut ::std::os::raw::c_void,
21912        ) -> HRESULT,
21913    >,
21914    pub AddRef: ::std::option::Option<
21915        unsafe extern "C" fn(This: *mut IDXGIDevice3) -> ULONG,
21916    >,
21917    pub Release: ::std::option::Option<
21918        unsafe extern "C" fn(This: *mut IDXGIDevice3) -> ULONG,
21919    >,
21920    pub SetPrivateData: ::std::option::Option<
21921        unsafe extern "C" fn(
21922            This: *mut IDXGIDevice3,
21923            Name: *const GUID,
21924            DataSize: UINT,
21925            pData: *const ::std::os::raw::c_void,
21926        ) -> HRESULT,
21927    >,
21928    pub SetPrivateDataInterface: ::std::option::Option<
21929        unsafe extern "C" fn(
21930            This: *mut IDXGIDevice3,
21931            Name: *const GUID,
21932            pUnknown: *const IUnknown,
21933        ) -> HRESULT,
21934    >,
21935    pub GetPrivateData: ::std::option::Option<
21936        unsafe extern "C" fn(
21937            This: *mut IDXGIDevice3,
21938            Name: *const GUID,
21939            pDataSize: *mut UINT,
21940            pData: *mut ::std::os::raw::c_void,
21941        ) -> HRESULT,
21942    >,
21943    pub GetParent: ::std::option::Option<
21944        unsafe extern "C" fn(
21945            This: *mut IDXGIDevice3,
21946            riid: *const IID,
21947            ppParent: *mut *mut ::std::os::raw::c_void,
21948        ) -> HRESULT,
21949    >,
21950    pub GetAdapter: ::std::option::Option<
21951        unsafe extern "C" fn(
21952            This: *mut IDXGIDevice3,
21953            pAdapter: *mut *mut IDXGIAdapter,
21954        ) -> HRESULT,
21955    >,
21956    pub CreateSurface: ::std::option::Option<
21957        unsafe extern "C" fn(
21958            This: *mut IDXGIDevice3,
21959            pDesc: *const DXGI_SURFACE_DESC,
21960            NumSurfaces: UINT,
21961            Usage: DXGI_USAGE,
21962            pSharedResource: *const DXGI_SHARED_RESOURCE,
21963            ppSurface: *mut *mut IDXGISurface,
21964        ) -> HRESULT,
21965    >,
21966    pub QueryResourceResidency: ::std::option::Option<
21967        unsafe extern "C" fn(
21968            This: *mut IDXGIDevice3,
21969            ppResources: *const *mut IUnknown,
21970            pResidencyStatus: *mut DXGI_RESIDENCY,
21971            NumResources: UINT,
21972        ) -> HRESULT,
21973    >,
21974    pub SetGPUThreadPriority: ::std::option::Option<
21975        unsafe extern "C" fn(This: *mut IDXGIDevice3, Priority: INT) -> HRESULT,
21976    >,
21977    pub GetGPUThreadPriority: ::std::option::Option<
21978        unsafe extern "C" fn(
21979            This: *mut IDXGIDevice3,
21980            pPriority: *mut INT,
21981        ) -> HRESULT,
21982    >,
21983    pub SetMaximumFrameLatency: ::std::option::Option<
21984        unsafe extern "C" fn(
21985            This: *mut IDXGIDevice3,
21986            MaxLatency: UINT,
21987        ) -> HRESULT,
21988    >,
21989    pub GetMaximumFrameLatency: ::std::option::Option<
21990        unsafe extern "C" fn(
21991            This: *mut IDXGIDevice3,
21992            pMaxLatency: *mut UINT,
21993        ) -> HRESULT,
21994    >,
21995    pub OfferResources: ::std::option::Option<
21996        unsafe extern "C" fn(
21997            This: *mut IDXGIDevice3,
21998            NumResources: UINT,
21999            ppResources: *const *mut IDXGIResource,
22000            Priority: DXGI_OFFER_RESOURCE_PRIORITY,
22001        ) -> HRESULT,
22002    >,
22003    pub ReclaimResources: ::std::option::Option<
22004        unsafe extern "C" fn(
22005            This: *mut IDXGIDevice3,
22006            NumResources: UINT,
22007            ppResources: *const *mut IDXGIResource,
22008            pDiscarded: *mut BOOL,
22009        ) -> HRESULT,
22010    >,
22011    pub EnqueueSetEvent: ::std::option::Option<
22012        unsafe extern "C" fn(
22013            This: *mut IDXGIDevice3,
22014            hEvent: HANDLE,
22015        ) -> HRESULT,
22016    >,
22017    pub Trim:
22018        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIDevice3)>,
22019}
22020#[repr(C)]
22021#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22022pub struct IDXGIDevice3 {
22023    pub lpVtbl: *mut IDXGIDevice3Vtbl,
22024}
22025impl Default for IDXGIDevice3 {
22026    fn default() -> Self {
22027        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22028        unsafe {
22029            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22030            s.assume_init()
22031        }
22032    }
22033}
22034#[repr(C)]
22035#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
22036pub struct DXGI_MATRIX_3X2_F {
22037    pub _11: FLOAT,
22038    pub _12: FLOAT,
22039    pub _21: FLOAT,
22040    pub _22: FLOAT,
22041    pub _31: FLOAT,
22042    pub _32: FLOAT,
22043}
22044extern "C" {
22045    pub static IID_IDXGISwapChain2: IID;
22046}
22047#[repr(C)]
22048#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22049pub struct IDXGISwapChain2Vtbl {
22050    pub QueryInterface: ::std::option::Option<
22051        unsafe extern "C" fn(
22052            This: *mut IDXGISwapChain2,
22053            riid: *const IID,
22054            ppvObject: *mut *mut ::std::os::raw::c_void,
22055        ) -> HRESULT,
22056    >,
22057    pub AddRef: ::std::option::Option<
22058        unsafe extern "C" fn(This: *mut IDXGISwapChain2) -> ULONG,
22059    >,
22060    pub Release: ::std::option::Option<
22061        unsafe extern "C" fn(This: *mut IDXGISwapChain2) -> ULONG,
22062    >,
22063    pub SetPrivateData: ::std::option::Option<
22064        unsafe extern "C" fn(
22065            This: *mut IDXGISwapChain2,
22066            Name: *const GUID,
22067            DataSize: UINT,
22068            pData: *const ::std::os::raw::c_void,
22069        ) -> HRESULT,
22070    >,
22071    pub SetPrivateDataInterface: ::std::option::Option<
22072        unsafe extern "C" fn(
22073            This: *mut IDXGISwapChain2,
22074            Name: *const GUID,
22075            pUnknown: *const IUnknown,
22076        ) -> HRESULT,
22077    >,
22078    pub GetPrivateData: ::std::option::Option<
22079        unsafe extern "C" fn(
22080            This: *mut IDXGISwapChain2,
22081            Name: *const GUID,
22082            pDataSize: *mut UINT,
22083            pData: *mut ::std::os::raw::c_void,
22084        ) -> HRESULT,
22085    >,
22086    pub GetParent: ::std::option::Option<
22087        unsafe extern "C" fn(
22088            This: *mut IDXGISwapChain2,
22089            riid: *const IID,
22090            ppParent: *mut *mut ::std::os::raw::c_void,
22091        ) -> HRESULT,
22092    >,
22093    pub GetDevice: ::std::option::Option<
22094        unsafe extern "C" fn(
22095            This: *mut IDXGISwapChain2,
22096            riid: *const IID,
22097            ppDevice: *mut *mut ::std::os::raw::c_void,
22098        ) -> HRESULT,
22099    >,
22100    pub Present: ::std::option::Option<
22101        unsafe extern "C" fn(
22102            This: *mut IDXGISwapChain2,
22103            SyncInterval: UINT,
22104            Flags: UINT,
22105        ) -> HRESULT,
22106    >,
22107    pub GetBuffer: ::std::option::Option<
22108        unsafe extern "C" fn(
22109            This: *mut IDXGISwapChain2,
22110            Buffer: UINT,
22111            riid: *const IID,
22112            ppSurface: *mut *mut ::std::os::raw::c_void,
22113        ) -> HRESULT,
22114    >,
22115    pub SetFullscreenState: ::std::option::Option<
22116        unsafe extern "C" fn(
22117            This: *mut IDXGISwapChain2,
22118            Fullscreen: BOOL,
22119            pTarget: *mut IDXGIOutput,
22120        ) -> HRESULT,
22121    >,
22122    pub GetFullscreenState: ::std::option::Option<
22123        unsafe extern "C" fn(
22124            This: *mut IDXGISwapChain2,
22125            pFullscreen: *mut BOOL,
22126            ppTarget: *mut *mut IDXGIOutput,
22127        ) -> HRESULT,
22128    >,
22129    pub GetDesc: ::std::option::Option<
22130        unsafe extern "C" fn(
22131            This: *mut IDXGISwapChain2,
22132            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
22133        ) -> HRESULT,
22134    >,
22135    pub ResizeBuffers: ::std::option::Option<
22136        unsafe extern "C" fn(
22137            This: *mut IDXGISwapChain2,
22138            BufferCount: UINT,
22139            Width: UINT,
22140            Height: UINT,
22141            NewFormat: DXGI_FORMAT,
22142            SwapChainFlags: UINT,
22143        ) -> HRESULT,
22144    >,
22145    pub ResizeTarget: ::std::option::Option<
22146        unsafe extern "C" fn(
22147            This: *mut IDXGISwapChain2,
22148            pNewTargetParameters: *const DXGI_MODE_DESC,
22149        ) -> HRESULT,
22150    >,
22151    pub GetContainingOutput: ::std::option::Option<
22152        unsafe extern "C" fn(
22153            This: *mut IDXGISwapChain2,
22154            ppOutput: *mut *mut IDXGIOutput,
22155        ) -> HRESULT,
22156    >,
22157    pub GetFrameStatistics: ::std::option::Option<
22158        unsafe extern "C" fn(
22159            This: *mut IDXGISwapChain2,
22160            pStats: *mut DXGI_FRAME_STATISTICS,
22161        ) -> HRESULT,
22162    >,
22163    pub GetLastPresentCount: ::std::option::Option<
22164        unsafe extern "C" fn(
22165            This: *mut IDXGISwapChain2,
22166            pLastPresentCount: *mut UINT,
22167        ) -> HRESULT,
22168    >,
22169    pub GetDesc1: ::std::option::Option<
22170        unsafe extern "C" fn(
22171            This: *mut IDXGISwapChain2,
22172            pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
22173        ) -> HRESULT,
22174    >,
22175    pub GetFullscreenDesc: ::std::option::Option<
22176        unsafe extern "C" fn(
22177            This: *mut IDXGISwapChain2,
22178            pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
22179        ) -> HRESULT,
22180    >,
22181    pub GetHwnd: ::std::option::Option<
22182        unsafe extern "C" fn(
22183            This: *mut IDXGISwapChain2,
22184            pHwnd: *mut HWND,
22185        ) -> HRESULT,
22186    >,
22187    pub GetCoreWindow: ::std::option::Option<
22188        unsafe extern "C" fn(
22189            This: *mut IDXGISwapChain2,
22190            refiid: *const IID,
22191            ppUnk: *mut *mut ::std::os::raw::c_void,
22192        ) -> HRESULT,
22193    >,
22194    pub Present1: ::std::option::Option<
22195        unsafe extern "C" fn(
22196            This: *mut IDXGISwapChain2,
22197            SyncInterval: UINT,
22198            PresentFlags: UINT,
22199            pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
22200        ) -> HRESULT,
22201    >,
22202    pub IsTemporaryMonoSupported: ::std::option::Option<
22203        unsafe extern "C" fn(This: *mut IDXGISwapChain2) -> BOOL,
22204    >,
22205    pub GetRestrictToOutput: ::std::option::Option<
22206        unsafe extern "C" fn(
22207            This: *mut IDXGISwapChain2,
22208            ppRestrictToOutput: *mut *mut IDXGIOutput,
22209        ) -> HRESULT,
22210    >,
22211    pub SetBackgroundColor: ::std::option::Option<
22212        unsafe extern "C" fn(
22213            This: *mut IDXGISwapChain2,
22214            pColor: *const DXGI_RGBA,
22215        ) -> HRESULT,
22216    >,
22217    pub GetBackgroundColor: ::std::option::Option<
22218        unsafe extern "C" fn(
22219            This: *mut IDXGISwapChain2,
22220            pColor: *mut DXGI_RGBA,
22221        ) -> HRESULT,
22222    >,
22223    pub SetRotation: ::std::option::Option<
22224        unsafe extern "C" fn(
22225            This: *mut IDXGISwapChain2,
22226            Rotation: DXGI_MODE_ROTATION,
22227        ) -> HRESULT,
22228    >,
22229    pub GetRotation: ::std::option::Option<
22230        unsafe extern "C" fn(
22231            This: *mut IDXGISwapChain2,
22232            pRotation: *mut DXGI_MODE_ROTATION,
22233        ) -> HRESULT,
22234    >,
22235    pub SetSourceSize: ::std::option::Option<
22236        unsafe extern "C" fn(
22237            This: *mut IDXGISwapChain2,
22238            Width: UINT,
22239            Height: UINT,
22240        ) -> HRESULT,
22241    >,
22242    pub GetSourceSize: ::std::option::Option<
22243        unsafe extern "C" fn(
22244            This: *mut IDXGISwapChain2,
22245            pWidth: *mut UINT,
22246            pHeight: *mut UINT,
22247        ) -> HRESULT,
22248    >,
22249    pub SetMaximumFrameLatency: ::std::option::Option<
22250        unsafe extern "C" fn(
22251            This: *mut IDXGISwapChain2,
22252            MaxLatency: UINT,
22253        ) -> HRESULT,
22254    >,
22255    pub GetMaximumFrameLatency: ::std::option::Option<
22256        unsafe extern "C" fn(
22257            This: *mut IDXGISwapChain2,
22258            pMaxLatency: *mut UINT,
22259        ) -> HRESULT,
22260    >,
22261    pub GetFrameLatencyWaitableObject: ::std::option::Option<
22262        unsafe extern "C" fn(This: *mut IDXGISwapChain2) -> HANDLE,
22263    >,
22264    pub SetMatrixTransform: ::std::option::Option<
22265        unsafe extern "C" fn(
22266            This: *mut IDXGISwapChain2,
22267            pMatrix: *const DXGI_MATRIX_3X2_F,
22268        ) -> HRESULT,
22269    >,
22270    pub GetMatrixTransform: ::std::option::Option<
22271        unsafe extern "C" fn(
22272            This: *mut IDXGISwapChain2,
22273            pMatrix: *mut DXGI_MATRIX_3X2_F,
22274        ) -> HRESULT,
22275    >,
22276}
22277#[repr(C)]
22278#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22279pub struct IDXGISwapChain2 {
22280    pub lpVtbl: *mut IDXGISwapChain2Vtbl,
22281}
22282impl Default for IDXGISwapChain2 {
22283    fn default() -> Self {
22284        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22285        unsafe {
22286            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22287            s.assume_init()
22288        }
22289    }
22290}
22291extern "C" {
22292    pub static IID_IDXGIOutput2: IID;
22293}
22294#[repr(C)]
22295#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22296pub struct IDXGIOutput2Vtbl {
22297    pub QueryInterface: ::std::option::Option<
22298        unsafe extern "C" fn(
22299            This: *mut IDXGIOutput2,
22300            riid: *const IID,
22301            ppvObject: *mut *mut ::std::os::raw::c_void,
22302        ) -> HRESULT,
22303    >,
22304    pub AddRef: ::std::option::Option<
22305        unsafe extern "C" fn(This: *mut IDXGIOutput2) -> ULONG,
22306    >,
22307    pub Release: ::std::option::Option<
22308        unsafe extern "C" fn(This: *mut IDXGIOutput2) -> ULONG,
22309    >,
22310    pub SetPrivateData: ::std::option::Option<
22311        unsafe extern "C" fn(
22312            This: *mut IDXGIOutput2,
22313            Name: *const GUID,
22314            DataSize: UINT,
22315            pData: *const ::std::os::raw::c_void,
22316        ) -> HRESULT,
22317    >,
22318    pub SetPrivateDataInterface: ::std::option::Option<
22319        unsafe extern "C" fn(
22320            This: *mut IDXGIOutput2,
22321            Name: *const GUID,
22322            pUnknown: *const IUnknown,
22323        ) -> HRESULT,
22324    >,
22325    pub GetPrivateData: ::std::option::Option<
22326        unsafe extern "C" fn(
22327            This: *mut IDXGIOutput2,
22328            Name: *const GUID,
22329            pDataSize: *mut UINT,
22330            pData: *mut ::std::os::raw::c_void,
22331        ) -> HRESULT,
22332    >,
22333    pub GetParent: ::std::option::Option<
22334        unsafe extern "C" fn(
22335            This: *mut IDXGIOutput2,
22336            riid: *const IID,
22337            ppParent: *mut *mut ::std::os::raw::c_void,
22338        ) -> HRESULT,
22339    >,
22340    pub GetDesc: ::std::option::Option<
22341        unsafe extern "C" fn(
22342            This: *mut IDXGIOutput2,
22343            pDesc: *mut DXGI_OUTPUT_DESC,
22344        ) -> HRESULT,
22345    >,
22346    pub GetDisplayModeList: ::std::option::Option<
22347        unsafe extern "C" fn(
22348            This: *mut IDXGIOutput2,
22349            EnumFormat: DXGI_FORMAT,
22350            Flags: UINT,
22351            pNumModes: *mut UINT,
22352            pDesc: *mut DXGI_MODE_DESC,
22353        ) -> HRESULT,
22354    >,
22355    pub FindClosestMatchingMode: ::std::option::Option<
22356        unsafe extern "C" fn(
22357            This: *mut IDXGIOutput2,
22358            pModeToMatch: *const DXGI_MODE_DESC,
22359            pClosestMatch: *mut DXGI_MODE_DESC,
22360            pConcernedDevice: *mut IUnknown,
22361        ) -> HRESULT,
22362    >,
22363    pub WaitForVBlank: ::std::option::Option<
22364        unsafe extern "C" fn(This: *mut IDXGIOutput2) -> HRESULT,
22365    >,
22366    pub TakeOwnership: ::std::option::Option<
22367        unsafe extern "C" fn(
22368            This: *mut IDXGIOutput2,
22369            pDevice: *mut IUnknown,
22370            Exclusive: BOOL,
22371        ) -> HRESULT,
22372    >,
22373    pub ReleaseOwnership:
22374        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput2)>,
22375    pub GetGammaControlCapabilities: ::std::option::Option<
22376        unsafe extern "C" fn(
22377            This: *mut IDXGIOutput2,
22378            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
22379        ) -> HRESULT,
22380    >,
22381    pub SetGammaControl: ::std::option::Option<
22382        unsafe extern "C" fn(
22383            This: *mut IDXGIOutput2,
22384            pArray: *const DXGI_GAMMA_CONTROL,
22385        ) -> HRESULT,
22386    >,
22387    pub GetGammaControl: ::std::option::Option<
22388        unsafe extern "C" fn(
22389            This: *mut IDXGIOutput2,
22390            pArray: *mut DXGI_GAMMA_CONTROL,
22391        ) -> HRESULT,
22392    >,
22393    pub SetDisplaySurface: ::std::option::Option<
22394        unsafe extern "C" fn(
22395            This: *mut IDXGIOutput2,
22396            pScanoutSurface: *mut IDXGISurface,
22397        ) -> HRESULT,
22398    >,
22399    pub GetDisplaySurfaceData: ::std::option::Option<
22400        unsafe extern "C" fn(
22401            This: *mut IDXGIOutput2,
22402            pDestination: *mut IDXGISurface,
22403        ) -> HRESULT,
22404    >,
22405    pub GetFrameStatistics: ::std::option::Option<
22406        unsafe extern "C" fn(
22407            This: *mut IDXGIOutput2,
22408            pStats: *mut DXGI_FRAME_STATISTICS,
22409        ) -> HRESULT,
22410    >,
22411    pub GetDisplayModeList1: ::std::option::Option<
22412        unsafe extern "C" fn(
22413            This: *mut IDXGIOutput2,
22414            EnumFormat: DXGI_FORMAT,
22415            Flags: UINT,
22416            pNumModes: *mut UINT,
22417            pDesc: *mut DXGI_MODE_DESC1,
22418        ) -> HRESULT,
22419    >,
22420    pub FindClosestMatchingMode1: ::std::option::Option<
22421        unsafe extern "C" fn(
22422            This: *mut IDXGIOutput2,
22423            pModeToMatch: *const DXGI_MODE_DESC1,
22424            pClosestMatch: *mut DXGI_MODE_DESC1,
22425            pConcernedDevice: *mut IUnknown,
22426        ) -> HRESULT,
22427    >,
22428    pub GetDisplaySurfaceData1: ::std::option::Option<
22429        unsafe extern "C" fn(
22430            This: *mut IDXGIOutput2,
22431            pDestination: *mut IDXGIResource,
22432        ) -> HRESULT,
22433    >,
22434    pub DuplicateOutput: ::std::option::Option<
22435        unsafe extern "C" fn(
22436            This: *mut IDXGIOutput2,
22437            pDevice: *mut IUnknown,
22438            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
22439        ) -> HRESULT,
22440    >,
22441    pub SupportsOverlays: ::std::option::Option<
22442        unsafe extern "C" fn(This: *mut IDXGIOutput2) -> BOOL,
22443    >,
22444}
22445#[repr(C)]
22446#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22447pub struct IDXGIOutput2 {
22448    pub lpVtbl: *mut IDXGIOutput2Vtbl,
22449}
22450impl Default for IDXGIOutput2 {
22451    fn default() -> Self {
22452        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22453        unsafe {
22454            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22455            s.assume_init()
22456        }
22457    }
22458}
22459extern "C" {
22460    pub static IID_IDXGIFactory3: IID;
22461}
22462#[repr(C)]
22463#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22464pub struct IDXGIFactory3Vtbl {
22465    pub QueryInterface: ::std::option::Option<
22466        unsafe extern "C" fn(
22467            This: *mut IDXGIFactory3,
22468            riid: *const IID,
22469            ppvObject: *mut *mut ::std::os::raw::c_void,
22470        ) -> HRESULT,
22471    >,
22472    pub AddRef: ::std::option::Option<
22473        unsafe extern "C" fn(This: *mut IDXGIFactory3) -> ULONG,
22474    >,
22475    pub Release: ::std::option::Option<
22476        unsafe extern "C" fn(This: *mut IDXGIFactory3) -> ULONG,
22477    >,
22478    pub SetPrivateData: ::std::option::Option<
22479        unsafe extern "C" fn(
22480            This: *mut IDXGIFactory3,
22481            Name: *const GUID,
22482            DataSize: UINT,
22483            pData: *const ::std::os::raw::c_void,
22484        ) -> HRESULT,
22485    >,
22486    pub SetPrivateDataInterface: ::std::option::Option<
22487        unsafe extern "C" fn(
22488            This: *mut IDXGIFactory3,
22489            Name: *const GUID,
22490            pUnknown: *const IUnknown,
22491        ) -> HRESULT,
22492    >,
22493    pub GetPrivateData: ::std::option::Option<
22494        unsafe extern "C" fn(
22495            This: *mut IDXGIFactory3,
22496            Name: *const GUID,
22497            pDataSize: *mut UINT,
22498            pData: *mut ::std::os::raw::c_void,
22499        ) -> HRESULT,
22500    >,
22501    pub GetParent: ::std::option::Option<
22502        unsafe extern "C" fn(
22503            This: *mut IDXGIFactory3,
22504            riid: *const IID,
22505            ppParent: *mut *mut ::std::os::raw::c_void,
22506        ) -> HRESULT,
22507    >,
22508    pub EnumAdapters: ::std::option::Option<
22509        unsafe extern "C" fn(
22510            This: *mut IDXGIFactory3,
22511            Adapter: UINT,
22512            ppAdapter: *mut *mut IDXGIAdapter,
22513        ) -> HRESULT,
22514    >,
22515    pub MakeWindowAssociation: ::std::option::Option<
22516        unsafe extern "C" fn(
22517            This: *mut IDXGIFactory3,
22518            WindowHandle: HWND,
22519            Flags: UINT,
22520        ) -> HRESULT,
22521    >,
22522    pub GetWindowAssociation: ::std::option::Option<
22523        unsafe extern "C" fn(
22524            This: *mut IDXGIFactory3,
22525            pWindowHandle: *mut HWND,
22526        ) -> HRESULT,
22527    >,
22528    pub CreateSwapChain: ::std::option::Option<
22529        unsafe extern "C" fn(
22530            This: *mut IDXGIFactory3,
22531            pDevice: *mut IUnknown,
22532            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
22533            ppSwapChain: *mut *mut IDXGISwapChain,
22534        ) -> HRESULT,
22535    >,
22536    pub CreateSoftwareAdapter: ::std::option::Option<
22537        unsafe extern "C" fn(
22538            This: *mut IDXGIFactory3,
22539            Module: HMODULE,
22540            ppAdapter: *mut *mut IDXGIAdapter,
22541        ) -> HRESULT,
22542    >,
22543    pub EnumAdapters1: ::std::option::Option<
22544        unsafe extern "C" fn(
22545            This: *mut IDXGIFactory3,
22546            Adapter: UINT,
22547            ppAdapter: *mut *mut IDXGIAdapter1,
22548        ) -> HRESULT,
22549    >,
22550    pub IsCurrent: ::std::option::Option<
22551        unsafe extern "C" fn(This: *mut IDXGIFactory3) -> BOOL,
22552    >,
22553    pub IsWindowedStereoEnabled: ::std::option::Option<
22554        unsafe extern "C" fn(This: *mut IDXGIFactory3) -> BOOL,
22555    >,
22556    pub CreateSwapChainForHwnd: ::std::option::Option<
22557        unsafe extern "C" fn(
22558            This: *mut IDXGIFactory3,
22559            pDevice: *mut IUnknown,
22560            hWnd: HWND,
22561            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
22562            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
22563            pRestrictToOutput: *mut IDXGIOutput,
22564            ppSwapChain: *mut *mut IDXGISwapChain1,
22565        ) -> HRESULT,
22566    >,
22567    pub CreateSwapChainForCoreWindow: ::std::option::Option<
22568        unsafe extern "C" fn(
22569            This: *mut IDXGIFactory3,
22570            pDevice: *mut IUnknown,
22571            pWindow: *mut IUnknown,
22572            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
22573            pRestrictToOutput: *mut IDXGIOutput,
22574            ppSwapChain: *mut *mut IDXGISwapChain1,
22575        ) -> HRESULT,
22576    >,
22577    pub GetSharedResourceAdapterLuid: ::std::option::Option<
22578        unsafe extern "C" fn(
22579            This: *mut IDXGIFactory3,
22580            hResource: HANDLE,
22581            pLuid: *mut LUID,
22582        ) -> HRESULT,
22583    >,
22584    pub RegisterStereoStatusWindow: ::std::option::Option<
22585        unsafe extern "C" fn(
22586            This: *mut IDXGIFactory3,
22587            WindowHandle: HWND,
22588            wMsg: UINT,
22589            pdwCookie: *mut DWORD,
22590        ) -> HRESULT,
22591    >,
22592    pub RegisterStereoStatusEvent: ::std::option::Option<
22593        unsafe extern "C" fn(
22594            This: *mut IDXGIFactory3,
22595            hEvent: HANDLE,
22596            pdwCookie: *mut DWORD,
22597        ) -> HRESULT,
22598    >,
22599    pub UnregisterStereoStatus: ::std::option::Option<
22600        unsafe extern "C" fn(This: *mut IDXGIFactory3, dwCookie: DWORD),
22601    >,
22602    pub RegisterOcclusionStatusWindow: ::std::option::Option<
22603        unsafe extern "C" fn(
22604            This: *mut IDXGIFactory3,
22605            WindowHandle: HWND,
22606            wMsg: UINT,
22607            pdwCookie: *mut DWORD,
22608        ) -> HRESULT,
22609    >,
22610    pub RegisterOcclusionStatusEvent: ::std::option::Option<
22611        unsafe extern "C" fn(
22612            This: *mut IDXGIFactory3,
22613            hEvent: HANDLE,
22614            pdwCookie: *mut DWORD,
22615        ) -> HRESULT,
22616    >,
22617    pub UnregisterOcclusionStatus: ::std::option::Option<
22618        unsafe extern "C" fn(This: *mut IDXGIFactory3, dwCookie: DWORD),
22619    >,
22620    pub CreateSwapChainForComposition: ::std::option::Option<
22621        unsafe extern "C" fn(
22622            This: *mut IDXGIFactory3,
22623            pDevice: *mut IUnknown,
22624            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
22625            pRestrictToOutput: *mut IDXGIOutput,
22626            ppSwapChain: *mut *mut IDXGISwapChain1,
22627        ) -> HRESULT,
22628    >,
22629    pub GetCreationFlags: ::std::option::Option<
22630        unsafe extern "C" fn(This: *mut IDXGIFactory3) -> UINT,
22631    >,
22632}
22633#[repr(C)]
22634#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22635pub struct IDXGIFactory3 {
22636    pub lpVtbl: *mut IDXGIFactory3Vtbl,
22637}
22638impl Default for IDXGIFactory3 {
22639    fn default() -> Self {
22640        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22641        unsafe {
22642            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22643            s.assume_init()
22644        }
22645    }
22646}
22647#[repr(C)]
22648#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22649pub struct DXGI_DECODE_SWAP_CHAIN_DESC {
22650    pub Flags: UINT,
22651}
22652pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE : DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 1 ;
22653pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 : DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 2 ;
22654pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC : DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 4 ;
22655pub type DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = ::std::os::raw::c_int;
22656extern "C" {
22657    pub static IID_IDXGIDecodeSwapChain: IID;
22658}
22659#[repr(C)]
22660#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22661pub struct IDXGIDecodeSwapChainVtbl {
22662    pub QueryInterface: ::std::option::Option<
22663        unsafe extern "C" fn(
22664            This: *mut IDXGIDecodeSwapChain,
22665            riid: *const IID,
22666            ppvObject: *mut *mut ::std::os::raw::c_void,
22667        ) -> HRESULT,
22668    >,
22669    pub AddRef: ::std::option::Option<
22670        unsafe extern "C" fn(This: *mut IDXGIDecodeSwapChain) -> ULONG,
22671    >,
22672    pub Release: ::std::option::Option<
22673        unsafe extern "C" fn(This: *mut IDXGIDecodeSwapChain) -> ULONG,
22674    >,
22675    pub PresentBuffer: ::std::option::Option<
22676        unsafe extern "C" fn(
22677            This: *mut IDXGIDecodeSwapChain,
22678            BufferToPresent: UINT,
22679            SyncInterval: UINT,
22680            Flags: UINT,
22681        ) -> HRESULT,
22682    >,
22683    pub SetSourceRect: ::std::option::Option<
22684        unsafe extern "C" fn(
22685            This: *mut IDXGIDecodeSwapChain,
22686            pRect: *const RECT,
22687        ) -> HRESULT,
22688    >,
22689    pub SetTargetRect: ::std::option::Option<
22690        unsafe extern "C" fn(
22691            This: *mut IDXGIDecodeSwapChain,
22692            pRect: *const RECT,
22693        ) -> HRESULT,
22694    >,
22695    pub SetDestSize: ::std::option::Option<
22696        unsafe extern "C" fn(
22697            This: *mut IDXGIDecodeSwapChain,
22698            Width: UINT,
22699            Height: UINT,
22700        ) -> HRESULT,
22701    >,
22702    pub GetSourceRect: ::std::option::Option<
22703        unsafe extern "C" fn(
22704            This: *mut IDXGIDecodeSwapChain,
22705            pRect: *mut RECT,
22706        ) -> HRESULT,
22707    >,
22708    pub GetTargetRect: ::std::option::Option<
22709        unsafe extern "C" fn(
22710            This: *mut IDXGIDecodeSwapChain,
22711            pRect: *mut RECT,
22712        ) -> HRESULT,
22713    >,
22714    pub GetDestSize: ::std::option::Option<
22715        unsafe extern "C" fn(
22716            This: *mut IDXGIDecodeSwapChain,
22717            pWidth: *mut UINT,
22718            pHeight: *mut UINT,
22719        ) -> HRESULT,
22720    >,
22721    pub SetColorSpace: ::std::option::Option<
22722        unsafe extern "C" fn(
22723            This: *mut IDXGIDecodeSwapChain,
22724            ColorSpace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
22725        ) -> HRESULT,
22726    >,
22727    pub GetColorSpace: ::std::option::Option<
22728        unsafe extern "C" fn(
22729            This: *mut IDXGIDecodeSwapChain,
22730        ) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
22731    >,
22732}
22733#[repr(C)]
22734#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22735pub struct IDXGIDecodeSwapChain {
22736    pub lpVtbl: *mut IDXGIDecodeSwapChainVtbl,
22737}
22738impl Default for IDXGIDecodeSwapChain {
22739    fn default() -> Self {
22740        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22741        unsafe {
22742            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22743            s.assume_init()
22744        }
22745    }
22746}
22747extern "C" {
22748    pub static IID_IDXGIFactoryMedia: IID;
22749}
22750#[repr(C)]
22751#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22752pub struct IDXGIFactoryMediaVtbl {
22753    pub QueryInterface: ::std::option::Option<
22754        unsafe extern "C" fn(
22755            This: *mut IDXGIFactoryMedia,
22756            riid: *const IID,
22757            ppvObject: *mut *mut ::std::os::raw::c_void,
22758        ) -> HRESULT,
22759    >,
22760    pub AddRef: ::std::option::Option<
22761        unsafe extern "C" fn(This: *mut IDXGIFactoryMedia) -> ULONG,
22762    >,
22763    pub Release: ::std::option::Option<
22764        unsafe extern "C" fn(This: *mut IDXGIFactoryMedia) -> ULONG,
22765    >,
22766    pub CreateSwapChainForCompositionSurfaceHandle: ::std::option::Option<
22767        unsafe extern "C" fn(
22768            This: *mut IDXGIFactoryMedia,
22769            pDevice: *mut IUnknown,
22770            hSurface: HANDLE,
22771            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
22772            pRestrictToOutput: *mut IDXGIOutput,
22773            ppSwapChain: *mut *mut IDXGISwapChain1,
22774        ) -> HRESULT,
22775    >,
22776    pub CreateDecodeSwapChainForCompositionSurfaceHandle: ::std::option::Option<
22777        unsafe extern "C" fn(
22778            This: *mut IDXGIFactoryMedia,
22779            pDevice: *mut IUnknown,
22780            hSurface: HANDLE,
22781            pDesc: *mut DXGI_DECODE_SWAP_CHAIN_DESC,
22782            pYuvDecodeBuffers: *mut IDXGIResource,
22783            pRestrictToOutput: *mut IDXGIOutput,
22784            ppSwapChain: *mut *mut IDXGIDecodeSwapChain,
22785        ) -> HRESULT,
22786    >,
22787}
22788#[repr(C)]
22789#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22790pub struct IDXGIFactoryMedia {
22791    pub lpVtbl: *mut IDXGIFactoryMediaVtbl,
22792}
22793impl Default for IDXGIFactoryMedia {
22794    fn default() -> Self {
22795        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22796        unsafe {
22797            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22798            s.assume_init()
22799        }
22800    }
22801}
22802pub const DXGI_FRAME_PRESENTATION_MODE_DXGI_FRAME_PRESENTATION_MODE_COMPOSED:
22803    DXGI_FRAME_PRESENTATION_MODE = 0;
22804pub const DXGI_FRAME_PRESENTATION_MODE_DXGI_FRAME_PRESENTATION_MODE_OVERLAY:
22805    DXGI_FRAME_PRESENTATION_MODE = 1;
22806pub const DXGI_FRAME_PRESENTATION_MODE_DXGI_FRAME_PRESENTATION_MODE_NONE:
22807    DXGI_FRAME_PRESENTATION_MODE = 2;
22808pub const DXGI_FRAME_PRESENTATION_MODE_DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE : DXGI_FRAME_PRESENTATION_MODE = 3 ;
22809pub type DXGI_FRAME_PRESENTATION_MODE = ::std::os::raw::c_int;
22810#[repr(C)]
22811#[derive(Copy, Clone)]
22812pub struct DXGI_FRAME_STATISTICS_MEDIA {
22813    pub PresentCount: UINT,
22814    pub PresentRefreshCount: UINT,
22815    pub SyncRefreshCount: UINT,
22816    pub SyncQPCTime: LARGE_INTEGER,
22817    pub SyncGPUTime: LARGE_INTEGER,
22818    pub CompositionMode: DXGI_FRAME_PRESENTATION_MODE,
22819    pub ApprovedPresentDuration: UINT,
22820}
22821impl Default for DXGI_FRAME_STATISTICS_MEDIA {
22822    fn default() -> Self {
22823        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22824        unsafe {
22825            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22826            s.assume_init()
22827        }
22828    }
22829}
22830impl ::std::fmt::Debug for DXGI_FRAME_STATISTICS_MEDIA {
22831    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22832        write ! (f , "DXGI_FRAME_STATISTICS_MEDIA {{ PresentCount: {:?}, PresentRefreshCount: {:?}, SyncRefreshCount: {:?}, SyncQPCTime: {:?}, SyncGPUTime: {:?}, CompositionMode: {:?}, ApprovedPresentDuration: {:?} }}" , self . PresentCount , self . PresentRefreshCount , self . SyncRefreshCount , self . SyncQPCTime , self . SyncGPUTime , self . CompositionMode , self . ApprovedPresentDuration)
22833    }
22834}
22835extern "C" {
22836    pub static IID_IDXGISwapChainMedia: IID;
22837}
22838#[repr(C)]
22839#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22840pub struct IDXGISwapChainMediaVtbl {
22841    pub QueryInterface: ::std::option::Option<
22842        unsafe extern "C" fn(
22843            This: *mut IDXGISwapChainMedia,
22844            riid: *const IID,
22845            ppvObject: *mut *mut ::std::os::raw::c_void,
22846        ) -> HRESULT,
22847    >,
22848    pub AddRef: ::std::option::Option<
22849        unsafe extern "C" fn(This: *mut IDXGISwapChainMedia) -> ULONG,
22850    >,
22851    pub Release: ::std::option::Option<
22852        unsafe extern "C" fn(This: *mut IDXGISwapChainMedia) -> ULONG,
22853    >,
22854    pub GetFrameStatisticsMedia: ::std::option::Option<
22855        unsafe extern "C" fn(
22856            This: *mut IDXGISwapChainMedia,
22857            pStats: *mut DXGI_FRAME_STATISTICS_MEDIA,
22858        ) -> HRESULT,
22859    >,
22860    pub SetPresentDuration: ::std::option::Option<
22861        unsafe extern "C" fn(
22862            This: *mut IDXGISwapChainMedia,
22863            Duration: UINT,
22864        ) -> HRESULT,
22865    >,
22866    pub CheckPresentDurationSupport: ::std::option::Option<
22867        unsafe extern "C" fn(
22868            This: *mut IDXGISwapChainMedia,
22869            DesiredPresentDuration: UINT,
22870            pClosestSmallerPresentDuration: *mut UINT,
22871            pClosestLargerPresentDuration: *mut UINT,
22872        ) -> HRESULT,
22873    >,
22874}
22875#[repr(C)]
22876#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22877pub struct IDXGISwapChainMedia {
22878    pub lpVtbl: *mut IDXGISwapChainMediaVtbl,
22879}
22880impl Default for IDXGISwapChainMedia {
22881    fn default() -> Self {
22882        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22883        unsafe {
22884            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22885            s.assume_init()
22886        }
22887    }
22888}
22889pub const DXGI_OVERLAY_SUPPORT_FLAG_DXGI_OVERLAY_SUPPORT_FLAG_DIRECT:
22890    DXGI_OVERLAY_SUPPORT_FLAG = 1;
22891pub const DXGI_OVERLAY_SUPPORT_FLAG_DXGI_OVERLAY_SUPPORT_FLAG_SCALING:
22892    DXGI_OVERLAY_SUPPORT_FLAG = 2;
22893pub type DXGI_OVERLAY_SUPPORT_FLAG = ::std::os::raw::c_int;
22894extern "C" {
22895    pub static IID_IDXGIOutput3: IID;
22896}
22897#[repr(C)]
22898#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
22899pub struct IDXGIOutput3Vtbl {
22900    pub QueryInterface: ::std::option::Option<
22901        unsafe extern "C" fn(
22902            This: *mut IDXGIOutput3,
22903            riid: *const IID,
22904            ppvObject: *mut *mut ::std::os::raw::c_void,
22905        ) -> HRESULT,
22906    >,
22907    pub AddRef: ::std::option::Option<
22908        unsafe extern "C" fn(This: *mut IDXGIOutput3) -> ULONG,
22909    >,
22910    pub Release: ::std::option::Option<
22911        unsafe extern "C" fn(This: *mut IDXGIOutput3) -> ULONG,
22912    >,
22913    pub SetPrivateData: ::std::option::Option<
22914        unsafe extern "C" fn(
22915            This: *mut IDXGIOutput3,
22916            Name: *const GUID,
22917            DataSize: UINT,
22918            pData: *const ::std::os::raw::c_void,
22919        ) -> HRESULT,
22920    >,
22921    pub SetPrivateDataInterface: ::std::option::Option<
22922        unsafe extern "C" fn(
22923            This: *mut IDXGIOutput3,
22924            Name: *const GUID,
22925            pUnknown: *const IUnknown,
22926        ) -> HRESULT,
22927    >,
22928    pub GetPrivateData: ::std::option::Option<
22929        unsafe extern "C" fn(
22930            This: *mut IDXGIOutput3,
22931            Name: *const GUID,
22932            pDataSize: *mut UINT,
22933            pData: *mut ::std::os::raw::c_void,
22934        ) -> HRESULT,
22935    >,
22936    pub GetParent: ::std::option::Option<
22937        unsafe extern "C" fn(
22938            This: *mut IDXGIOutput3,
22939            riid: *const IID,
22940            ppParent: *mut *mut ::std::os::raw::c_void,
22941        ) -> HRESULT,
22942    >,
22943    pub GetDesc: ::std::option::Option<
22944        unsafe extern "C" fn(
22945            This: *mut IDXGIOutput3,
22946            pDesc: *mut DXGI_OUTPUT_DESC,
22947        ) -> HRESULT,
22948    >,
22949    pub GetDisplayModeList: ::std::option::Option<
22950        unsafe extern "C" fn(
22951            This: *mut IDXGIOutput3,
22952            EnumFormat: DXGI_FORMAT,
22953            Flags: UINT,
22954            pNumModes: *mut UINT,
22955            pDesc: *mut DXGI_MODE_DESC,
22956        ) -> HRESULT,
22957    >,
22958    pub FindClosestMatchingMode: ::std::option::Option<
22959        unsafe extern "C" fn(
22960            This: *mut IDXGIOutput3,
22961            pModeToMatch: *const DXGI_MODE_DESC,
22962            pClosestMatch: *mut DXGI_MODE_DESC,
22963            pConcernedDevice: *mut IUnknown,
22964        ) -> HRESULT,
22965    >,
22966    pub WaitForVBlank: ::std::option::Option<
22967        unsafe extern "C" fn(This: *mut IDXGIOutput3) -> HRESULT,
22968    >,
22969    pub TakeOwnership: ::std::option::Option<
22970        unsafe extern "C" fn(
22971            This: *mut IDXGIOutput3,
22972            pDevice: *mut IUnknown,
22973            Exclusive: BOOL,
22974        ) -> HRESULT,
22975    >,
22976    pub ReleaseOwnership:
22977        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput3)>,
22978    pub GetGammaControlCapabilities: ::std::option::Option<
22979        unsafe extern "C" fn(
22980            This: *mut IDXGIOutput3,
22981            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
22982        ) -> HRESULT,
22983    >,
22984    pub SetGammaControl: ::std::option::Option<
22985        unsafe extern "C" fn(
22986            This: *mut IDXGIOutput3,
22987            pArray: *const DXGI_GAMMA_CONTROL,
22988        ) -> HRESULT,
22989    >,
22990    pub GetGammaControl: ::std::option::Option<
22991        unsafe extern "C" fn(
22992            This: *mut IDXGIOutput3,
22993            pArray: *mut DXGI_GAMMA_CONTROL,
22994        ) -> HRESULT,
22995    >,
22996    pub SetDisplaySurface: ::std::option::Option<
22997        unsafe extern "C" fn(
22998            This: *mut IDXGIOutput3,
22999            pScanoutSurface: *mut IDXGISurface,
23000        ) -> HRESULT,
23001    >,
23002    pub GetDisplaySurfaceData: ::std::option::Option<
23003        unsafe extern "C" fn(
23004            This: *mut IDXGIOutput3,
23005            pDestination: *mut IDXGISurface,
23006        ) -> HRESULT,
23007    >,
23008    pub GetFrameStatistics: ::std::option::Option<
23009        unsafe extern "C" fn(
23010            This: *mut IDXGIOutput3,
23011            pStats: *mut DXGI_FRAME_STATISTICS,
23012        ) -> HRESULT,
23013    >,
23014    pub GetDisplayModeList1: ::std::option::Option<
23015        unsafe extern "C" fn(
23016            This: *mut IDXGIOutput3,
23017            EnumFormat: DXGI_FORMAT,
23018            Flags: UINT,
23019            pNumModes: *mut UINT,
23020            pDesc: *mut DXGI_MODE_DESC1,
23021        ) -> HRESULT,
23022    >,
23023    pub FindClosestMatchingMode1: ::std::option::Option<
23024        unsafe extern "C" fn(
23025            This: *mut IDXGIOutput3,
23026            pModeToMatch: *const DXGI_MODE_DESC1,
23027            pClosestMatch: *mut DXGI_MODE_DESC1,
23028            pConcernedDevice: *mut IUnknown,
23029        ) -> HRESULT,
23030    >,
23031    pub GetDisplaySurfaceData1: ::std::option::Option<
23032        unsafe extern "C" fn(
23033            This: *mut IDXGIOutput3,
23034            pDestination: *mut IDXGIResource,
23035        ) -> HRESULT,
23036    >,
23037    pub DuplicateOutput: ::std::option::Option<
23038        unsafe extern "C" fn(
23039            This: *mut IDXGIOutput3,
23040            pDevice: *mut IUnknown,
23041            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
23042        ) -> HRESULT,
23043    >,
23044    pub SupportsOverlays: ::std::option::Option<
23045        unsafe extern "C" fn(This: *mut IDXGIOutput3) -> BOOL,
23046    >,
23047    pub CheckOverlaySupport: ::std::option::Option<
23048        unsafe extern "C" fn(
23049            This: *mut IDXGIOutput3,
23050            EnumFormat: DXGI_FORMAT,
23051            pConcernedDevice: *mut IUnknown,
23052            pFlags: *mut UINT,
23053        ) -> HRESULT,
23054    >,
23055}
23056#[repr(C)]
23057#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23058pub struct IDXGIOutput3 {
23059    pub lpVtbl: *mut IDXGIOutput3Vtbl,
23060}
23061impl Default for IDXGIOutput3 {
23062    fn default() -> Self {
23063        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23064        unsafe {
23065            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23066            s.assume_init()
23067        }
23068    }
23069}
23070pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT : DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = 1 ;
23071pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT : DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = 2 ;
23072pub type DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = ::std::os::raw::c_int;
23073extern "C" {
23074    pub static IID_IDXGISwapChain3: IID;
23075}
23076#[repr(C)]
23077#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23078pub struct IDXGISwapChain3Vtbl {
23079    pub QueryInterface: ::std::option::Option<
23080        unsafe extern "C" fn(
23081            This: *mut IDXGISwapChain3,
23082            riid: *const IID,
23083            ppvObject: *mut *mut ::std::os::raw::c_void,
23084        ) -> HRESULT,
23085    >,
23086    pub AddRef: ::std::option::Option<
23087        unsafe extern "C" fn(This: *mut IDXGISwapChain3) -> ULONG,
23088    >,
23089    pub Release: ::std::option::Option<
23090        unsafe extern "C" fn(This: *mut IDXGISwapChain3) -> ULONG,
23091    >,
23092    pub SetPrivateData: ::std::option::Option<
23093        unsafe extern "C" fn(
23094            This: *mut IDXGISwapChain3,
23095            Name: *const GUID,
23096            DataSize: UINT,
23097            pData: *const ::std::os::raw::c_void,
23098        ) -> HRESULT,
23099    >,
23100    pub SetPrivateDataInterface: ::std::option::Option<
23101        unsafe extern "C" fn(
23102            This: *mut IDXGISwapChain3,
23103            Name: *const GUID,
23104            pUnknown: *const IUnknown,
23105        ) -> HRESULT,
23106    >,
23107    pub GetPrivateData: ::std::option::Option<
23108        unsafe extern "C" fn(
23109            This: *mut IDXGISwapChain3,
23110            Name: *const GUID,
23111            pDataSize: *mut UINT,
23112            pData: *mut ::std::os::raw::c_void,
23113        ) -> HRESULT,
23114    >,
23115    pub GetParent: ::std::option::Option<
23116        unsafe extern "C" fn(
23117            This: *mut IDXGISwapChain3,
23118            riid: *const IID,
23119            ppParent: *mut *mut ::std::os::raw::c_void,
23120        ) -> HRESULT,
23121    >,
23122    pub GetDevice: ::std::option::Option<
23123        unsafe extern "C" fn(
23124            This: *mut IDXGISwapChain3,
23125            riid: *const IID,
23126            ppDevice: *mut *mut ::std::os::raw::c_void,
23127        ) -> HRESULT,
23128    >,
23129    pub Present: ::std::option::Option<
23130        unsafe extern "C" fn(
23131            This: *mut IDXGISwapChain3,
23132            SyncInterval: UINT,
23133            Flags: UINT,
23134        ) -> HRESULT,
23135    >,
23136    pub GetBuffer: ::std::option::Option<
23137        unsafe extern "C" fn(
23138            This: *mut IDXGISwapChain3,
23139            Buffer: UINT,
23140            riid: *const IID,
23141            ppSurface: *mut *mut ::std::os::raw::c_void,
23142        ) -> HRESULT,
23143    >,
23144    pub SetFullscreenState: ::std::option::Option<
23145        unsafe extern "C" fn(
23146            This: *mut IDXGISwapChain3,
23147            Fullscreen: BOOL,
23148            pTarget: *mut IDXGIOutput,
23149        ) -> HRESULT,
23150    >,
23151    pub GetFullscreenState: ::std::option::Option<
23152        unsafe extern "C" fn(
23153            This: *mut IDXGISwapChain3,
23154            pFullscreen: *mut BOOL,
23155            ppTarget: *mut *mut IDXGIOutput,
23156        ) -> HRESULT,
23157    >,
23158    pub GetDesc: ::std::option::Option<
23159        unsafe extern "C" fn(
23160            This: *mut IDXGISwapChain3,
23161            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
23162        ) -> HRESULT,
23163    >,
23164    pub ResizeBuffers: ::std::option::Option<
23165        unsafe extern "C" fn(
23166            This: *mut IDXGISwapChain3,
23167            BufferCount: UINT,
23168            Width: UINT,
23169            Height: UINT,
23170            NewFormat: DXGI_FORMAT,
23171            SwapChainFlags: UINT,
23172        ) -> HRESULT,
23173    >,
23174    pub ResizeTarget: ::std::option::Option<
23175        unsafe extern "C" fn(
23176            This: *mut IDXGISwapChain3,
23177            pNewTargetParameters: *const DXGI_MODE_DESC,
23178        ) -> HRESULT,
23179    >,
23180    pub GetContainingOutput: ::std::option::Option<
23181        unsafe extern "C" fn(
23182            This: *mut IDXGISwapChain3,
23183            ppOutput: *mut *mut IDXGIOutput,
23184        ) -> HRESULT,
23185    >,
23186    pub GetFrameStatistics: ::std::option::Option<
23187        unsafe extern "C" fn(
23188            This: *mut IDXGISwapChain3,
23189            pStats: *mut DXGI_FRAME_STATISTICS,
23190        ) -> HRESULT,
23191    >,
23192    pub GetLastPresentCount: ::std::option::Option<
23193        unsafe extern "C" fn(
23194            This: *mut IDXGISwapChain3,
23195            pLastPresentCount: *mut UINT,
23196        ) -> HRESULT,
23197    >,
23198    pub GetDesc1: ::std::option::Option<
23199        unsafe extern "C" fn(
23200            This: *mut IDXGISwapChain3,
23201            pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
23202        ) -> HRESULT,
23203    >,
23204    pub GetFullscreenDesc: ::std::option::Option<
23205        unsafe extern "C" fn(
23206            This: *mut IDXGISwapChain3,
23207            pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
23208        ) -> HRESULT,
23209    >,
23210    pub GetHwnd: ::std::option::Option<
23211        unsafe extern "C" fn(
23212            This: *mut IDXGISwapChain3,
23213            pHwnd: *mut HWND,
23214        ) -> HRESULT,
23215    >,
23216    pub GetCoreWindow: ::std::option::Option<
23217        unsafe extern "C" fn(
23218            This: *mut IDXGISwapChain3,
23219            refiid: *const IID,
23220            ppUnk: *mut *mut ::std::os::raw::c_void,
23221        ) -> HRESULT,
23222    >,
23223    pub Present1: ::std::option::Option<
23224        unsafe extern "C" fn(
23225            This: *mut IDXGISwapChain3,
23226            SyncInterval: UINT,
23227            PresentFlags: UINT,
23228            pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
23229        ) -> HRESULT,
23230    >,
23231    pub IsTemporaryMonoSupported: ::std::option::Option<
23232        unsafe extern "C" fn(This: *mut IDXGISwapChain3) -> BOOL,
23233    >,
23234    pub GetRestrictToOutput: ::std::option::Option<
23235        unsafe extern "C" fn(
23236            This: *mut IDXGISwapChain3,
23237            ppRestrictToOutput: *mut *mut IDXGIOutput,
23238        ) -> HRESULT,
23239    >,
23240    pub SetBackgroundColor: ::std::option::Option<
23241        unsafe extern "C" fn(
23242            This: *mut IDXGISwapChain3,
23243            pColor: *const DXGI_RGBA,
23244        ) -> HRESULT,
23245    >,
23246    pub GetBackgroundColor: ::std::option::Option<
23247        unsafe extern "C" fn(
23248            This: *mut IDXGISwapChain3,
23249            pColor: *mut DXGI_RGBA,
23250        ) -> HRESULT,
23251    >,
23252    pub SetRotation: ::std::option::Option<
23253        unsafe extern "C" fn(
23254            This: *mut IDXGISwapChain3,
23255            Rotation: DXGI_MODE_ROTATION,
23256        ) -> HRESULT,
23257    >,
23258    pub GetRotation: ::std::option::Option<
23259        unsafe extern "C" fn(
23260            This: *mut IDXGISwapChain3,
23261            pRotation: *mut DXGI_MODE_ROTATION,
23262        ) -> HRESULT,
23263    >,
23264    pub SetSourceSize: ::std::option::Option<
23265        unsafe extern "C" fn(
23266            This: *mut IDXGISwapChain3,
23267            Width: UINT,
23268            Height: UINT,
23269        ) -> HRESULT,
23270    >,
23271    pub GetSourceSize: ::std::option::Option<
23272        unsafe extern "C" fn(
23273            This: *mut IDXGISwapChain3,
23274            pWidth: *mut UINT,
23275            pHeight: *mut UINT,
23276        ) -> HRESULT,
23277    >,
23278    pub SetMaximumFrameLatency: ::std::option::Option<
23279        unsafe extern "C" fn(
23280            This: *mut IDXGISwapChain3,
23281            MaxLatency: UINT,
23282        ) -> HRESULT,
23283    >,
23284    pub GetMaximumFrameLatency: ::std::option::Option<
23285        unsafe extern "C" fn(
23286            This: *mut IDXGISwapChain3,
23287            pMaxLatency: *mut UINT,
23288        ) -> HRESULT,
23289    >,
23290    pub GetFrameLatencyWaitableObject: ::std::option::Option<
23291        unsafe extern "C" fn(This: *mut IDXGISwapChain3) -> HANDLE,
23292    >,
23293    pub SetMatrixTransform: ::std::option::Option<
23294        unsafe extern "C" fn(
23295            This: *mut IDXGISwapChain3,
23296            pMatrix: *const DXGI_MATRIX_3X2_F,
23297        ) -> HRESULT,
23298    >,
23299    pub GetMatrixTransform: ::std::option::Option<
23300        unsafe extern "C" fn(
23301            This: *mut IDXGISwapChain3,
23302            pMatrix: *mut DXGI_MATRIX_3X2_F,
23303        ) -> HRESULT,
23304    >,
23305    pub GetCurrentBackBufferIndex: ::std::option::Option<
23306        unsafe extern "C" fn(This: *mut IDXGISwapChain3) -> UINT,
23307    >,
23308    pub CheckColorSpaceSupport: ::std::option::Option<
23309        unsafe extern "C" fn(
23310            This: *mut IDXGISwapChain3,
23311            ColorSpace: DXGI_COLOR_SPACE_TYPE,
23312            pColorSpaceSupport: *mut UINT,
23313        ) -> HRESULT,
23314    >,
23315    pub SetColorSpace1: ::std::option::Option<
23316        unsafe extern "C" fn(
23317            This: *mut IDXGISwapChain3,
23318            ColorSpace: DXGI_COLOR_SPACE_TYPE,
23319        ) -> HRESULT,
23320    >,
23321    pub ResizeBuffers1: ::std::option::Option<
23322        unsafe extern "C" fn(
23323            This: *mut IDXGISwapChain3,
23324            BufferCount: UINT,
23325            Width: UINT,
23326            Height: UINT,
23327            Format: DXGI_FORMAT,
23328            SwapChainFlags: UINT,
23329            pCreationNodeMask: *const UINT,
23330            ppPresentQueue: *const *mut IUnknown,
23331        ) -> HRESULT,
23332    >,
23333}
23334#[repr(C)]
23335#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23336pub struct IDXGISwapChain3 {
23337    pub lpVtbl: *mut IDXGISwapChain3Vtbl,
23338}
23339impl Default for IDXGISwapChain3 {
23340    fn default() -> Self {
23341        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23342        unsafe {
23343            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23344            s.assume_init()
23345        }
23346    }
23347}
23348pub const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT : DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG = 1 ;
23349pub type DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG = ::std::os::raw::c_int;
23350extern "C" {
23351    pub static IID_IDXGIOutput4: IID;
23352}
23353#[repr(C)]
23354#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23355pub struct IDXGIOutput4Vtbl {
23356    pub QueryInterface: ::std::option::Option<
23357        unsafe extern "C" fn(
23358            This: *mut IDXGIOutput4,
23359            riid: *const IID,
23360            ppvObject: *mut *mut ::std::os::raw::c_void,
23361        ) -> HRESULT,
23362    >,
23363    pub AddRef: ::std::option::Option<
23364        unsafe extern "C" fn(This: *mut IDXGIOutput4) -> ULONG,
23365    >,
23366    pub Release: ::std::option::Option<
23367        unsafe extern "C" fn(This: *mut IDXGIOutput4) -> ULONG,
23368    >,
23369    pub SetPrivateData: ::std::option::Option<
23370        unsafe extern "C" fn(
23371            This: *mut IDXGIOutput4,
23372            Name: *const GUID,
23373            DataSize: UINT,
23374            pData: *const ::std::os::raw::c_void,
23375        ) -> HRESULT,
23376    >,
23377    pub SetPrivateDataInterface: ::std::option::Option<
23378        unsafe extern "C" fn(
23379            This: *mut IDXGIOutput4,
23380            Name: *const GUID,
23381            pUnknown: *const IUnknown,
23382        ) -> HRESULT,
23383    >,
23384    pub GetPrivateData: ::std::option::Option<
23385        unsafe extern "C" fn(
23386            This: *mut IDXGIOutput4,
23387            Name: *const GUID,
23388            pDataSize: *mut UINT,
23389            pData: *mut ::std::os::raw::c_void,
23390        ) -> HRESULT,
23391    >,
23392    pub GetParent: ::std::option::Option<
23393        unsafe extern "C" fn(
23394            This: *mut IDXGIOutput4,
23395            riid: *const IID,
23396            ppParent: *mut *mut ::std::os::raw::c_void,
23397        ) -> HRESULT,
23398    >,
23399    pub GetDesc: ::std::option::Option<
23400        unsafe extern "C" fn(
23401            This: *mut IDXGIOutput4,
23402            pDesc: *mut DXGI_OUTPUT_DESC,
23403        ) -> HRESULT,
23404    >,
23405    pub GetDisplayModeList: ::std::option::Option<
23406        unsafe extern "C" fn(
23407            This: *mut IDXGIOutput4,
23408            EnumFormat: DXGI_FORMAT,
23409            Flags: UINT,
23410            pNumModes: *mut UINT,
23411            pDesc: *mut DXGI_MODE_DESC,
23412        ) -> HRESULT,
23413    >,
23414    pub FindClosestMatchingMode: ::std::option::Option<
23415        unsafe extern "C" fn(
23416            This: *mut IDXGIOutput4,
23417            pModeToMatch: *const DXGI_MODE_DESC,
23418            pClosestMatch: *mut DXGI_MODE_DESC,
23419            pConcernedDevice: *mut IUnknown,
23420        ) -> HRESULT,
23421    >,
23422    pub WaitForVBlank: ::std::option::Option<
23423        unsafe extern "C" fn(This: *mut IDXGIOutput4) -> HRESULT,
23424    >,
23425    pub TakeOwnership: ::std::option::Option<
23426        unsafe extern "C" fn(
23427            This: *mut IDXGIOutput4,
23428            pDevice: *mut IUnknown,
23429            Exclusive: BOOL,
23430        ) -> HRESULT,
23431    >,
23432    pub ReleaseOwnership:
23433        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput4)>,
23434    pub GetGammaControlCapabilities: ::std::option::Option<
23435        unsafe extern "C" fn(
23436            This: *mut IDXGIOutput4,
23437            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
23438        ) -> HRESULT,
23439    >,
23440    pub SetGammaControl: ::std::option::Option<
23441        unsafe extern "C" fn(
23442            This: *mut IDXGIOutput4,
23443            pArray: *const DXGI_GAMMA_CONTROL,
23444        ) -> HRESULT,
23445    >,
23446    pub GetGammaControl: ::std::option::Option<
23447        unsafe extern "C" fn(
23448            This: *mut IDXGIOutput4,
23449            pArray: *mut DXGI_GAMMA_CONTROL,
23450        ) -> HRESULT,
23451    >,
23452    pub SetDisplaySurface: ::std::option::Option<
23453        unsafe extern "C" fn(
23454            This: *mut IDXGIOutput4,
23455            pScanoutSurface: *mut IDXGISurface,
23456        ) -> HRESULT,
23457    >,
23458    pub GetDisplaySurfaceData: ::std::option::Option<
23459        unsafe extern "C" fn(
23460            This: *mut IDXGIOutput4,
23461            pDestination: *mut IDXGISurface,
23462        ) -> HRESULT,
23463    >,
23464    pub GetFrameStatistics: ::std::option::Option<
23465        unsafe extern "C" fn(
23466            This: *mut IDXGIOutput4,
23467            pStats: *mut DXGI_FRAME_STATISTICS,
23468        ) -> HRESULT,
23469    >,
23470    pub GetDisplayModeList1: ::std::option::Option<
23471        unsafe extern "C" fn(
23472            This: *mut IDXGIOutput4,
23473            EnumFormat: DXGI_FORMAT,
23474            Flags: UINT,
23475            pNumModes: *mut UINT,
23476            pDesc: *mut DXGI_MODE_DESC1,
23477        ) -> HRESULT,
23478    >,
23479    pub FindClosestMatchingMode1: ::std::option::Option<
23480        unsafe extern "C" fn(
23481            This: *mut IDXGIOutput4,
23482            pModeToMatch: *const DXGI_MODE_DESC1,
23483            pClosestMatch: *mut DXGI_MODE_DESC1,
23484            pConcernedDevice: *mut IUnknown,
23485        ) -> HRESULT,
23486    >,
23487    pub GetDisplaySurfaceData1: ::std::option::Option<
23488        unsafe extern "C" fn(
23489            This: *mut IDXGIOutput4,
23490            pDestination: *mut IDXGIResource,
23491        ) -> HRESULT,
23492    >,
23493    pub DuplicateOutput: ::std::option::Option<
23494        unsafe extern "C" fn(
23495            This: *mut IDXGIOutput4,
23496            pDevice: *mut IUnknown,
23497            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
23498        ) -> HRESULT,
23499    >,
23500    pub SupportsOverlays: ::std::option::Option<
23501        unsafe extern "C" fn(This: *mut IDXGIOutput4) -> BOOL,
23502    >,
23503    pub CheckOverlaySupport: ::std::option::Option<
23504        unsafe extern "C" fn(
23505            This: *mut IDXGIOutput4,
23506            EnumFormat: DXGI_FORMAT,
23507            pConcernedDevice: *mut IUnknown,
23508            pFlags: *mut UINT,
23509        ) -> HRESULT,
23510    >,
23511    pub CheckOverlayColorSpaceSupport: ::std::option::Option<
23512        unsafe extern "C" fn(
23513            This: *mut IDXGIOutput4,
23514            Format: DXGI_FORMAT,
23515            ColorSpace: DXGI_COLOR_SPACE_TYPE,
23516            pConcernedDevice: *mut IUnknown,
23517            pFlags: *mut UINT,
23518        ) -> HRESULT,
23519    >,
23520}
23521#[repr(C)]
23522#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23523pub struct IDXGIOutput4 {
23524    pub lpVtbl: *mut IDXGIOutput4Vtbl,
23525}
23526impl Default for IDXGIOutput4 {
23527    fn default() -> Self {
23528        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23529        unsafe {
23530            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23531            s.assume_init()
23532        }
23533    }
23534}
23535extern "C" {
23536    pub static IID_IDXGIFactory4: IID;
23537}
23538#[repr(C)]
23539#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23540pub struct IDXGIFactory4Vtbl {
23541    pub QueryInterface: ::std::option::Option<
23542        unsafe extern "C" fn(
23543            This: *mut IDXGIFactory4,
23544            riid: *const IID,
23545            ppvObject: *mut *mut ::std::os::raw::c_void,
23546        ) -> HRESULT,
23547    >,
23548    pub AddRef: ::std::option::Option<
23549        unsafe extern "C" fn(This: *mut IDXGIFactory4) -> ULONG,
23550    >,
23551    pub Release: ::std::option::Option<
23552        unsafe extern "C" fn(This: *mut IDXGIFactory4) -> ULONG,
23553    >,
23554    pub SetPrivateData: ::std::option::Option<
23555        unsafe extern "C" fn(
23556            This: *mut IDXGIFactory4,
23557            Name: *const GUID,
23558            DataSize: UINT,
23559            pData: *const ::std::os::raw::c_void,
23560        ) -> HRESULT,
23561    >,
23562    pub SetPrivateDataInterface: ::std::option::Option<
23563        unsafe extern "C" fn(
23564            This: *mut IDXGIFactory4,
23565            Name: *const GUID,
23566            pUnknown: *const IUnknown,
23567        ) -> HRESULT,
23568    >,
23569    pub GetPrivateData: ::std::option::Option<
23570        unsafe extern "C" fn(
23571            This: *mut IDXGIFactory4,
23572            Name: *const GUID,
23573            pDataSize: *mut UINT,
23574            pData: *mut ::std::os::raw::c_void,
23575        ) -> HRESULT,
23576    >,
23577    pub GetParent: ::std::option::Option<
23578        unsafe extern "C" fn(
23579            This: *mut IDXGIFactory4,
23580            riid: *const IID,
23581            ppParent: *mut *mut ::std::os::raw::c_void,
23582        ) -> HRESULT,
23583    >,
23584    pub EnumAdapters: ::std::option::Option<
23585        unsafe extern "C" fn(
23586            This: *mut IDXGIFactory4,
23587            Adapter: UINT,
23588            ppAdapter: *mut *mut IDXGIAdapter,
23589        ) -> HRESULT,
23590    >,
23591    pub MakeWindowAssociation: ::std::option::Option<
23592        unsafe extern "C" fn(
23593            This: *mut IDXGIFactory4,
23594            WindowHandle: HWND,
23595            Flags: UINT,
23596        ) -> HRESULT,
23597    >,
23598    pub GetWindowAssociation: ::std::option::Option<
23599        unsafe extern "C" fn(
23600            This: *mut IDXGIFactory4,
23601            pWindowHandle: *mut HWND,
23602        ) -> HRESULT,
23603    >,
23604    pub CreateSwapChain: ::std::option::Option<
23605        unsafe extern "C" fn(
23606            This: *mut IDXGIFactory4,
23607            pDevice: *mut IUnknown,
23608            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
23609            ppSwapChain: *mut *mut IDXGISwapChain,
23610        ) -> HRESULT,
23611    >,
23612    pub CreateSoftwareAdapter: ::std::option::Option<
23613        unsafe extern "C" fn(
23614            This: *mut IDXGIFactory4,
23615            Module: HMODULE,
23616            ppAdapter: *mut *mut IDXGIAdapter,
23617        ) -> HRESULT,
23618    >,
23619    pub EnumAdapters1: ::std::option::Option<
23620        unsafe extern "C" fn(
23621            This: *mut IDXGIFactory4,
23622            Adapter: UINT,
23623            ppAdapter: *mut *mut IDXGIAdapter1,
23624        ) -> HRESULT,
23625    >,
23626    pub IsCurrent: ::std::option::Option<
23627        unsafe extern "C" fn(This: *mut IDXGIFactory4) -> BOOL,
23628    >,
23629    pub IsWindowedStereoEnabled: ::std::option::Option<
23630        unsafe extern "C" fn(This: *mut IDXGIFactory4) -> BOOL,
23631    >,
23632    pub CreateSwapChainForHwnd: ::std::option::Option<
23633        unsafe extern "C" fn(
23634            This: *mut IDXGIFactory4,
23635            pDevice: *mut IUnknown,
23636            hWnd: HWND,
23637            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
23638            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
23639            pRestrictToOutput: *mut IDXGIOutput,
23640            ppSwapChain: *mut *mut IDXGISwapChain1,
23641        ) -> HRESULT,
23642    >,
23643    pub CreateSwapChainForCoreWindow: ::std::option::Option<
23644        unsafe extern "C" fn(
23645            This: *mut IDXGIFactory4,
23646            pDevice: *mut IUnknown,
23647            pWindow: *mut IUnknown,
23648            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
23649            pRestrictToOutput: *mut IDXGIOutput,
23650            ppSwapChain: *mut *mut IDXGISwapChain1,
23651        ) -> HRESULT,
23652    >,
23653    pub GetSharedResourceAdapterLuid: ::std::option::Option<
23654        unsafe extern "C" fn(
23655            This: *mut IDXGIFactory4,
23656            hResource: HANDLE,
23657            pLuid: *mut LUID,
23658        ) -> HRESULT,
23659    >,
23660    pub RegisterStereoStatusWindow: ::std::option::Option<
23661        unsafe extern "C" fn(
23662            This: *mut IDXGIFactory4,
23663            WindowHandle: HWND,
23664            wMsg: UINT,
23665            pdwCookie: *mut DWORD,
23666        ) -> HRESULT,
23667    >,
23668    pub RegisterStereoStatusEvent: ::std::option::Option<
23669        unsafe extern "C" fn(
23670            This: *mut IDXGIFactory4,
23671            hEvent: HANDLE,
23672            pdwCookie: *mut DWORD,
23673        ) -> HRESULT,
23674    >,
23675    pub UnregisterStereoStatus: ::std::option::Option<
23676        unsafe extern "C" fn(This: *mut IDXGIFactory4, dwCookie: DWORD),
23677    >,
23678    pub RegisterOcclusionStatusWindow: ::std::option::Option<
23679        unsafe extern "C" fn(
23680            This: *mut IDXGIFactory4,
23681            WindowHandle: HWND,
23682            wMsg: UINT,
23683            pdwCookie: *mut DWORD,
23684        ) -> HRESULT,
23685    >,
23686    pub RegisterOcclusionStatusEvent: ::std::option::Option<
23687        unsafe extern "C" fn(
23688            This: *mut IDXGIFactory4,
23689            hEvent: HANDLE,
23690            pdwCookie: *mut DWORD,
23691        ) -> HRESULT,
23692    >,
23693    pub UnregisterOcclusionStatus: ::std::option::Option<
23694        unsafe extern "C" fn(This: *mut IDXGIFactory4, dwCookie: DWORD),
23695    >,
23696    pub CreateSwapChainForComposition: ::std::option::Option<
23697        unsafe extern "C" fn(
23698            This: *mut IDXGIFactory4,
23699            pDevice: *mut IUnknown,
23700            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
23701            pRestrictToOutput: *mut IDXGIOutput,
23702            ppSwapChain: *mut *mut IDXGISwapChain1,
23703        ) -> HRESULT,
23704    >,
23705    pub GetCreationFlags: ::std::option::Option<
23706        unsafe extern "C" fn(This: *mut IDXGIFactory4) -> UINT,
23707    >,
23708    pub EnumAdapterByLuid: ::std::option::Option<
23709        unsafe extern "C" fn(
23710            This: *mut IDXGIFactory4,
23711            AdapterLuid: LUID,
23712            riid: *const IID,
23713            ppvAdapter: *mut *mut ::std::os::raw::c_void,
23714        ) -> HRESULT,
23715    >,
23716    pub EnumWarpAdapter: ::std::option::Option<
23717        unsafe extern "C" fn(
23718            This: *mut IDXGIFactory4,
23719            riid: *const IID,
23720            ppvAdapter: *mut *mut ::std::os::raw::c_void,
23721        ) -> HRESULT,
23722    >,
23723}
23724#[repr(C)]
23725#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23726pub struct IDXGIFactory4 {
23727    pub lpVtbl: *mut IDXGIFactory4Vtbl,
23728}
23729impl Default for IDXGIFactory4 {
23730    fn default() -> Self {
23731        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23732        unsafe {
23733            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23734            s.assume_init()
23735        }
23736    }
23737}
23738pub const DXGI_MEMORY_SEGMENT_GROUP_DXGI_MEMORY_SEGMENT_GROUP_LOCAL:
23739    DXGI_MEMORY_SEGMENT_GROUP = 0;
23740pub const DXGI_MEMORY_SEGMENT_GROUP_DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL:
23741    DXGI_MEMORY_SEGMENT_GROUP = 1;
23742pub type DXGI_MEMORY_SEGMENT_GROUP = ::std::os::raw::c_int;
23743#[repr(C)]
23744#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23745pub struct DXGI_QUERY_VIDEO_MEMORY_INFO {
23746    pub Budget: UINT64,
23747    pub CurrentUsage: UINT64,
23748    pub AvailableForReservation: UINT64,
23749    pub CurrentReservation: UINT64,
23750}
23751extern "C" {
23752    pub static IID_IDXGIAdapter3: IID;
23753}
23754#[repr(C)]
23755#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23756pub struct IDXGIAdapter3Vtbl {
23757    pub QueryInterface: ::std::option::Option<
23758        unsafe extern "C" fn(
23759            This: *mut IDXGIAdapter3,
23760            riid: *const IID,
23761            ppvObject: *mut *mut ::std::os::raw::c_void,
23762        ) -> HRESULT,
23763    >,
23764    pub AddRef: ::std::option::Option<
23765        unsafe extern "C" fn(This: *mut IDXGIAdapter3) -> ULONG,
23766    >,
23767    pub Release: ::std::option::Option<
23768        unsafe extern "C" fn(This: *mut IDXGIAdapter3) -> ULONG,
23769    >,
23770    pub SetPrivateData: ::std::option::Option<
23771        unsafe extern "C" fn(
23772            This: *mut IDXGIAdapter3,
23773            Name: *const GUID,
23774            DataSize: UINT,
23775            pData: *const ::std::os::raw::c_void,
23776        ) -> HRESULT,
23777    >,
23778    pub SetPrivateDataInterface: ::std::option::Option<
23779        unsafe extern "C" fn(
23780            This: *mut IDXGIAdapter3,
23781            Name: *const GUID,
23782            pUnknown: *const IUnknown,
23783        ) -> HRESULT,
23784    >,
23785    pub GetPrivateData: ::std::option::Option<
23786        unsafe extern "C" fn(
23787            This: *mut IDXGIAdapter3,
23788            Name: *const GUID,
23789            pDataSize: *mut UINT,
23790            pData: *mut ::std::os::raw::c_void,
23791        ) -> HRESULT,
23792    >,
23793    pub GetParent: ::std::option::Option<
23794        unsafe extern "C" fn(
23795            This: *mut IDXGIAdapter3,
23796            riid: *const IID,
23797            ppParent: *mut *mut ::std::os::raw::c_void,
23798        ) -> HRESULT,
23799    >,
23800    pub EnumOutputs: ::std::option::Option<
23801        unsafe extern "C" fn(
23802            This: *mut IDXGIAdapter3,
23803            Output: UINT,
23804            ppOutput: *mut *mut IDXGIOutput,
23805        ) -> HRESULT,
23806    >,
23807    pub GetDesc: ::std::option::Option<
23808        unsafe extern "C" fn(
23809            This: *mut IDXGIAdapter3,
23810            pDesc: *mut DXGI_ADAPTER_DESC,
23811        ) -> HRESULT,
23812    >,
23813    pub CheckInterfaceSupport: ::std::option::Option<
23814        unsafe extern "C" fn(
23815            This: *mut IDXGIAdapter3,
23816            InterfaceName: *const GUID,
23817            pUMDVersion: *mut LARGE_INTEGER,
23818        ) -> HRESULT,
23819    >,
23820    pub GetDesc1: ::std::option::Option<
23821        unsafe extern "C" fn(
23822            This: *mut IDXGIAdapter3,
23823            pDesc: *mut DXGI_ADAPTER_DESC1,
23824        ) -> HRESULT,
23825    >,
23826    pub GetDesc2: ::std::option::Option<
23827        unsafe extern "C" fn(
23828            This: *mut IDXGIAdapter3,
23829            pDesc: *mut DXGI_ADAPTER_DESC2,
23830        ) -> HRESULT,
23831    >,
23832    pub RegisterHardwareContentProtectionTeardownStatusEvent:
23833        ::std::option::Option<
23834            unsafe extern "C" fn(
23835                This: *mut IDXGIAdapter3,
23836                hEvent: HANDLE,
23837                pdwCookie: *mut DWORD,
23838            ) -> HRESULT,
23839        >,
23840    pub UnregisterHardwareContentProtectionTeardownStatus:
23841        ::std::option::Option<
23842            unsafe extern "C" fn(This: *mut IDXGIAdapter3, dwCookie: DWORD),
23843        >,
23844    pub QueryVideoMemoryInfo: ::std::option::Option<
23845        unsafe extern "C" fn(
23846            This: *mut IDXGIAdapter3,
23847            NodeIndex: UINT,
23848            MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
23849            pVideoMemoryInfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO,
23850        ) -> HRESULT,
23851    >,
23852    pub SetVideoMemoryReservation: ::std::option::Option<
23853        unsafe extern "C" fn(
23854            This: *mut IDXGIAdapter3,
23855            NodeIndex: UINT,
23856            MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
23857            Reservation: UINT64,
23858        ) -> HRESULT,
23859    >,
23860    pub RegisterVideoMemoryBudgetChangeNotificationEvent: ::std::option::Option<
23861        unsafe extern "C" fn(
23862            This: *mut IDXGIAdapter3,
23863            hEvent: HANDLE,
23864            pdwCookie: *mut DWORD,
23865        ) -> HRESULT,
23866    >,
23867    pub UnregisterVideoMemoryBudgetChangeNotification: ::std::option::Option<
23868        unsafe extern "C" fn(This: *mut IDXGIAdapter3, dwCookie: DWORD),
23869    >,
23870}
23871#[repr(C)]
23872#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23873pub struct IDXGIAdapter3 {
23874    pub lpVtbl: *mut IDXGIAdapter3Vtbl,
23875}
23876impl Default for IDXGIAdapter3 {
23877    fn default() -> Self {
23878        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23879        unsafe {
23880            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23881            s.assume_init()
23882        }
23883    }
23884}
23885pub const DXGI_OUTDUPL_FLAG_DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY:
23886    DXGI_OUTDUPL_FLAG = 1;
23887pub type DXGI_OUTDUPL_FLAG = ::std::os::raw::c_int;
23888extern "C" {
23889    pub static IID_IDXGIOutput5: IID;
23890}
23891#[repr(C)]
23892#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
23893pub struct IDXGIOutput5Vtbl {
23894    pub QueryInterface: ::std::option::Option<
23895        unsafe extern "C" fn(
23896            This: *mut IDXGIOutput5,
23897            riid: *const IID,
23898            ppvObject: *mut *mut ::std::os::raw::c_void,
23899        ) -> HRESULT,
23900    >,
23901    pub AddRef: ::std::option::Option<
23902        unsafe extern "C" fn(This: *mut IDXGIOutput5) -> ULONG,
23903    >,
23904    pub Release: ::std::option::Option<
23905        unsafe extern "C" fn(This: *mut IDXGIOutput5) -> ULONG,
23906    >,
23907    pub SetPrivateData: ::std::option::Option<
23908        unsafe extern "C" fn(
23909            This: *mut IDXGIOutput5,
23910            Name: *const GUID,
23911            DataSize: UINT,
23912            pData: *const ::std::os::raw::c_void,
23913        ) -> HRESULT,
23914    >,
23915    pub SetPrivateDataInterface: ::std::option::Option<
23916        unsafe extern "C" fn(
23917            This: *mut IDXGIOutput5,
23918            Name: *const GUID,
23919            pUnknown: *const IUnknown,
23920        ) -> HRESULT,
23921    >,
23922    pub GetPrivateData: ::std::option::Option<
23923        unsafe extern "C" fn(
23924            This: *mut IDXGIOutput5,
23925            Name: *const GUID,
23926            pDataSize: *mut UINT,
23927            pData: *mut ::std::os::raw::c_void,
23928        ) -> HRESULT,
23929    >,
23930    pub GetParent: ::std::option::Option<
23931        unsafe extern "C" fn(
23932            This: *mut IDXGIOutput5,
23933            riid: *const IID,
23934            ppParent: *mut *mut ::std::os::raw::c_void,
23935        ) -> HRESULT,
23936    >,
23937    pub GetDesc: ::std::option::Option<
23938        unsafe extern "C" fn(
23939            This: *mut IDXGIOutput5,
23940            pDesc: *mut DXGI_OUTPUT_DESC,
23941        ) -> HRESULT,
23942    >,
23943    pub GetDisplayModeList: ::std::option::Option<
23944        unsafe extern "C" fn(
23945            This: *mut IDXGIOutput5,
23946            EnumFormat: DXGI_FORMAT,
23947            Flags: UINT,
23948            pNumModes: *mut UINT,
23949            pDesc: *mut DXGI_MODE_DESC,
23950        ) -> HRESULT,
23951    >,
23952    pub FindClosestMatchingMode: ::std::option::Option<
23953        unsafe extern "C" fn(
23954            This: *mut IDXGIOutput5,
23955            pModeToMatch: *const DXGI_MODE_DESC,
23956            pClosestMatch: *mut DXGI_MODE_DESC,
23957            pConcernedDevice: *mut IUnknown,
23958        ) -> HRESULT,
23959    >,
23960    pub WaitForVBlank: ::std::option::Option<
23961        unsafe extern "C" fn(This: *mut IDXGIOutput5) -> HRESULT,
23962    >,
23963    pub TakeOwnership: ::std::option::Option<
23964        unsafe extern "C" fn(
23965            This: *mut IDXGIOutput5,
23966            pDevice: *mut IUnknown,
23967            Exclusive: BOOL,
23968        ) -> HRESULT,
23969    >,
23970    pub ReleaseOwnership:
23971        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput5)>,
23972    pub GetGammaControlCapabilities: ::std::option::Option<
23973        unsafe extern "C" fn(
23974            This: *mut IDXGIOutput5,
23975            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
23976        ) -> HRESULT,
23977    >,
23978    pub SetGammaControl: ::std::option::Option<
23979        unsafe extern "C" fn(
23980            This: *mut IDXGIOutput5,
23981            pArray: *const DXGI_GAMMA_CONTROL,
23982        ) -> HRESULT,
23983    >,
23984    pub GetGammaControl: ::std::option::Option<
23985        unsafe extern "C" fn(
23986            This: *mut IDXGIOutput5,
23987            pArray: *mut DXGI_GAMMA_CONTROL,
23988        ) -> HRESULT,
23989    >,
23990    pub SetDisplaySurface: ::std::option::Option<
23991        unsafe extern "C" fn(
23992            This: *mut IDXGIOutput5,
23993            pScanoutSurface: *mut IDXGISurface,
23994        ) -> HRESULT,
23995    >,
23996    pub GetDisplaySurfaceData: ::std::option::Option<
23997        unsafe extern "C" fn(
23998            This: *mut IDXGIOutput5,
23999            pDestination: *mut IDXGISurface,
24000        ) -> HRESULT,
24001    >,
24002    pub GetFrameStatistics: ::std::option::Option<
24003        unsafe extern "C" fn(
24004            This: *mut IDXGIOutput5,
24005            pStats: *mut DXGI_FRAME_STATISTICS,
24006        ) -> HRESULT,
24007    >,
24008    pub GetDisplayModeList1: ::std::option::Option<
24009        unsafe extern "C" fn(
24010            This: *mut IDXGIOutput5,
24011            EnumFormat: DXGI_FORMAT,
24012            Flags: UINT,
24013            pNumModes: *mut UINT,
24014            pDesc: *mut DXGI_MODE_DESC1,
24015        ) -> HRESULT,
24016    >,
24017    pub FindClosestMatchingMode1: ::std::option::Option<
24018        unsafe extern "C" fn(
24019            This: *mut IDXGIOutput5,
24020            pModeToMatch: *const DXGI_MODE_DESC1,
24021            pClosestMatch: *mut DXGI_MODE_DESC1,
24022            pConcernedDevice: *mut IUnknown,
24023        ) -> HRESULT,
24024    >,
24025    pub GetDisplaySurfaceData1: ::std::option::Option<
24026        unsafe extern "C" fn(
24027            This: *mut IDXGIOutput5,
24028            pDestination: *mut IDXGIResource,
24029        ) -> HRESULT,
24030    >,
24031    pub DuplicateOutput: ::std::option::Option<
24032        unsafe extern "C" fn(
24033            This: *mut IDXGIOutput5,
24034            pDevice: *mut IUnknown,
24035            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
24036        ) -> HRESULT,
24037    >,
24038    pub SupportsOverlays: ::std::option::Option<
24039        unsafe extern "C" fn(This: *mut IDXGIOutput5) -> BOOL,
24040    >,
24041    pub CheckOverlaySupport: ::std::option::Option<
24042        unsafe extern "C" fn(
24043            This: *mut IDXGIOutput5,
24044            EnumFormat: DXGI_FORMAT,
24045            pConcernedDevice: *mut IUnknown,
24046            pFlags: *mut UINT,
24047        ) -> HRESULT,
24048    >,
24049    pub CheckOverlayColorSpaceSupport: ::std::option::Option<
24050        unsafe extern "C" fn(
24051            This: *mut IDXGIOutput5,
24052            Format: DXGI_FORMAT,
24053            ColorSpace: DXGI_COLOR_SPACE_TYPE,
24054            pConcernedDevice: *mut IUnknown,
24055            pFlags: *mut UINT,
24056        ) -> HRESULT,
24057    >,
24058    pub DuplicateOutput1: ::std::option::Option<
24059        unsafe extern "C" fn(
24060            This: *mut IDXGIOutput5,
24061            pDevice: *mut IUnknown,
24062            Flags: UINT,
24063            SupportedFormatsCount: UINT,
24064            pSupportedFormats: *const DXGI_FORMAT,
24065            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
24066        ) -> HRESULT,
24067    >,
24068}
24069#[repr(C)]
24070#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24071pub struct IDXGIOutput5 {
24072    pub lpVtbl: *mut IDXGIOutput5Vtbl,
24073}
24074impl Default for IDXGIOutput5 {
24075    fn default() -> Self {
24076        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24077        unsafe {
24078            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24079            s.assume_init()
24080        }
24081    }
24082}
24083pub const DXGI_HDR_METADATA_TYPE_DXGI_HDR_METADATA_TYPE_NONE:
24084    DXGI_HDR_METADATA_TYPE = 0;
24085pub const DXGI_HDR_METADATA_TYPE_DXGI_HDR_METADATA_TYPE_HDR10:
24086    DXGI_HDR_METADATA_TYPE = 1;
24087pub const DXGI_HDR_METADATA_TYPE_DXGI_HDR_METADATA_TYPE_HDR10PLUS:
24088    DXGI_HDR_METADATA_TYPE = 2;
24089pub type DXGI_HDR_METADATA_TYPE = ::std::os::raw::c_int;
24090#[repr(C)]
24091#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24092pub struct DXGI_HDR_METADATA_HDR10 {
24093    pub RedPrimary: [UINT16; 2usize],
24094    pub GreenPrimary: [UINT16; 2usize],
24095    pub BluePrimary: [UINT16; 2usize],
24096    pub WhitePoint: [UINT16; 2usize],
24097    pub MaxMasteringLuminance: UINT,
24098    pub MinMasteringLuminance: UINT,
24099    pub MaxContentLightLevel: UINT16,
24100    pub MaxFrameAverageLightLevel: UINT16,
24101}
24102#[repr(C)]
24103#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24104pub struct DXGI_HDR_METADATA_HDR10PLUS {
24105    pub Data: [BYTE; 72usize],
24106}
24107impl Default for DXGI_HDR_METADATA_HDR10PLUS {
24108    fn default() -> Self {
24109        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24110        unsafe {
24111            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24112            s.assume_init()
24113        }
24114    }
24115}
24116extern "C" {
24117    pub static IID_IDXGISwapChain4: IID;
24118}
24119#[repr(C)]
24120#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24121pub struct IDXGISwapChain4Vtbl {
24122    pub QueryInterface: ::std::option::Option<
24123        unsafe extern "C" fn(
24124            This: *mut IDXGISwapChain4,
24125            riid: *const IID,
24126            ppvObject: *mut *mut ::std::os::raw::c_void,
24127        ) -> HRESULT,
24128    >,
24129    pub AddRef: ::std::option::Option<
24130        unsafe extern "C" fn(This: *mut IDXGISwapChain4) -> ULONG,
24131    >,
24132    pub Release: ::std::option::Option<
24133        unsafe extern "C" fn(This: *mut IDXGISwapChain4) -> ULONG,
24134    >,
24135    pub SetPrivateData: ::std::option::Option<
24136        unsafe extern "C" fn(
24137            This: *mut IDXGISwapChain4,
24138            Name: *const GUID,
24139            DataSize: UINT,
24140            pData: *const ::std::os::raw::c_void,
24141        ) -> HRESULT,
24142    >,
24143    pub SetPrivateDataInterface: ::std::option::Option<
24144        unsafe extern "C" fn(
24145            This: *mut IDXGISwapChain4,
24146            Name: *const GUID,
24147            pUnknown: *const IUnknown,
24148        ) -> HRESULT,
24149    >,
24150    pub GetPrivateData: ::std::option::Option<
24151        unsafe extern "C" fn(
24152            This: *mut IDXGISwapChain4,
24153            Name: *const GUID,
24154            pDataSize: *mut UINT,
24155            pData: *mut ::std::os::raw::c_void,
24156        ) -> HRESULT,
24157    >,
24158    pub GetParent: ::std::option::Option<
24159        unsafe extern "C" fn(
24160            This: *mut IDXGISwapChain4,
24161            riid: *const IID,
24162            ppParent: *mut *mut ::std::os::raw::c_void,
24163        ) -> HRESULT,
24164    >,
24165    pub GetDevice: ::std::option::Option<
24166        unsafe extern "C" fn(
24167            This: *mut IDXGISwapChain4,
24168            riid: *const IID,
24169            ppDevice: *mut *mut ::std::os::raw::c_void,
24170        ) -> HRESULT,
24171    >,
24172    pub Present: ::std::option::Option<
24173        unsafe extern "C" fn(
24174            This: *mut IDXGISwapChain4,
24175            SyncInterval: UINT,
24176            Flags: UINT,
24177        ) -> HRESULT,
24178    >,
24179    pub GetBuffer: ::std::option::Option<
24180        unsafe extern "C" fn(
24181            This: *mut IDXGISwapChain4,
24182            Buffer: UINT,
24183            riid: *const IID,
24184            ppSurface: *mut *mut ::std::os::raw::c_void,
24185        ) -> HRESULT,
24186    >,
24187    pub SetFullscreenState: ::std::option::Option<
24188        unsafe extern "C" fn(
24189            This: *mut IDXGISwapChain4,
24190            Fullscreen: BOOL,
24191            pTarget: *mut IDXGIOutput,
24192        ) -> HRESULT,
24193    >,
24194    pub GetFullscreenState: ::std::option::Option<
24195        unsafe extern "C" fn(
24196            This: *mut IDXGISwapChain4,
24197            pFullscreen: *mut BOOL,
24198            ppTarget: *mut *mut IDXGIOutput,
24199        ) -> HRESULT,
24200    >,
24201    pub GetDesc: ::std::option::Option<
24202        unsafe extern "C" fn(
24203            This: *mut IDXGISwapChain4,
24204            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
24205        ) -> HRESULT,
24206    >,
24207    pub ResizeBuffers: ::std::option::Option<
24208        unsafe extern "C" fn(
24209            This: *mut IDXGISwapChain4,
24210            BufferCount: UINT,
24211            Width: UINT,
24212            Height: UINT,
24213            NewFormat: DXGI_FORMAT,
24214            SwapChainFlags: UINT,
24215        ) -> HRESULT,
24216    >,
24217    pub ResizeTarget: ::std::option::Option<
24218        unsafe extern "C" fn(
24219            This: *mut IDXGISwapChain4,
24220            pNewTargetParameters: *const DXGI_MODE_DESC,
24221        ) -> HRESULT,
24222    >,
24223    pub GetContainingOutput: ::std::option::Option<
24224        unsafe extern "C" fn(
24225            This: *mut IDXGISwapChain4,
24226            ppOutput: *mut *mut IDXGIOutput,
24227        ) -> HRESULT,
24228    >,
24229    pub GetFrameStatistics: ::std::option::Option<
24230        unsafe extern "C" fn(
24231            This: *mut IDXGISwapChain4,
24232            pStats: *mut DXGI_FRAME_STATISTICS,
24233        ) -> HRESULT,
24234    >,
24235    pub GetLastPresentCount: ::std::option::Option<
24236        unsafe extern "C" fn(
24237            This: *mut IDXGISwapChain4,
24238            pLastPresentCount: *mut UINT,
24239        ) -> HRESULT,
24240    >,
24241    pub GetDesc1: ::std::option::Option<
24242        unsafe extern "C" fn(
24243            This: *mut IDXGISwapChain4,
24244            pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
24245        ) -> HRESULT,
24246    >,
24247    pub GetFullscreenDesc: ::std::option::Option<
24248        unsafe extern "C" fn(
24249            This: *mut IDXGISwapChain4,
24250            pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
24251        ) -> HRESULT,
24252    >,
24253    pub GetHwnd: ::std::option::Option<
24254        unsafe extern "C" fn(
24255            This: *mut IDXGISwapChain4,
24256            pHwnd: *mut HWND,
24257        ) -> HRESULT,
24258    >,
24259    pub GetCoreWindow: ::std::option::Option<
24260        unsafe extern "C" fn(
24261            This: *mut IDXGISwapChain4,
24262            refiid: *const IID,
24263            ppUnk: *mut *mut ::std::os::raw::c_void,
24264        ) -> HRESULT,
24265    >,
24266    pub Present1: ::std::option::Option<
24267        unsafe extern "C" fn(
24268            This: *mut IDXGISwapChain4,
24269            SyncInterval: UINT,
24270            PresentFlags: UINT,
24271            pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
24272        ) -> HRESULT,
24273    >,
24274    pub IsTemporaryMonoSupported: ::std::option::Option<
24275        unsafe extern "C" fn(This: *mut IDXGISwapChain4) -> BOOL,
24276    >,
24277    pub GetRestrictToOutput: ::std::option::Option<
24278        unsafe extern "C" fn(
24279            This: *mut IDXGISwapChain4,
24280            ppRestrictToOutput: *mut *mut IDXGIOutput,
24281        ) -> HRESULT,
24282    >,
24283    pub SetBackgroundColor: ::std::option::Option<
24284        unsafe extern "C" fn(
24285            This: *mut IDXGISwapChain4,
24286            pColor: *const DXGI_RGBA,
24287        ) -> HRESULT,
24288    >,
24289    pub GetBackgroundColor: ::std::option::Option<
24290        unsafe extern "C" fn(
24291            This: *mut IDXGISwapChain4,
24292            pColor: *mut DXGI_RGBA,
24293        ) -> HRESULT,
24294    >,
24295    pub SetRotation: ::std::option::Option<
24296        unsafe extern "C" fn(
24297            This: *mut IDXGISwapChain4,
24298            Rotation: DXGI_MODE_ROTATION,
24299        ) -> HRESULT,
24300    >,
24301    pub GetRotation: ::std::option::Option<
24302        unsafe extern "C" fn(
24303            This: *mut IDXGISwapChain4,
24304            pRotation: *mut DXGI_MODE_ROTATION,
24305        ) -> HRESULT,
24306    >,
24307    pub SetSourceSize: ::std::option::Option<
24308        unsafe extern "C" fn(
24309            This: *mut IDXGISwapChain4,
24310            Width: UINT,
24311            Height: UINT,
24312        ) -> HRESULT,
24313    >,
24314    pub GetSourceSize: ::std::option::Option<
24315        unsafe extern "C" fn(
24316            This: *mut IDXGISwapChain4,
24317            pWidth: *mut UINT,
24318            pHeight: *mut UINT,
24319        ) -> HRESULT,
24320    >,
24321    pub SetMaximumFrameLatency: ::std::option::Option<
24322        unsafe extern "C" fn(
24323            This: *mut IDXGISwapChain4,
24324            MaxLatency: UINT,
24325        ) -> HRESULT,
24326    >,
24327    pub GetMaximumFrameLatency: ::std::option::Option<
24328        unsafe extern "C" fn(
24329            This: *mut IDXGISwapChain4,
24330            pMaxLatency: *mut UINT,
24331        ) -> HRESULT,
24332    >,
24333    pub GetFrameLatencyWaitableObject: ::std::option::Option<
24334        unsafe extern "C" fn(This: *mut IDXGISwapChain4) -> HANDLE,
24335    >,
24336    pub SetMatrixTransform: ::std::option::Option<
24337        unsafe extern "C" fn(
24338            This: *mut IDXGISwapChain4,
24339            pMatrix: *const DXGI_MATRIX_3X2_F,
24340        ) -> HRESULT,
24341    >,
24342    pub GetMatrixTransform: ::std::option::Option<
24343        unsafe extern "C" fn(
24344            This: *mut IDXGISwapChain4,
24345            pMatrix: *mut DXGI_MATRIX_3X2_F,
24346        ) -> HRESULT,
24347    >,
24348    pub GetCurrentBackBufferIndex: ::std::option::Option<
24349        unsafe extern "C" fn(This: *mut IDXGISwapChain4) -> UINT,
24350    >,
24351    pub CheckColorSpaceSupport: ::std::option::Option<
24352        unsafe extern "C" fn(
24353            This: *mut IDXGISwapChain4,
24354            ColorSpace: DXGI_COLOR_SPACE_TYPE,
24355            pColorSpaceSupport: *mut UINT,
24356        ) -> HRESULT,
24357    >,
24358    pub SetColorSpace1: ::std::option::Option<
24359        unsafe extern "C" fn(
24360            This: *mut IDXGISwapChain4,
24361            ColorSpace: DXGI_COLOR_SPACE_TYPE,
24362        ) -> HRESULT,
24363    >,
24364    pub ResizeBuffers1: ::std::option::Option<
24365        unsafe extern "C" fn(
24366            This: *mut IDXGISwapChain4,
24367            BufferCount: UINT,
24368            Width: UINT,
24369            Height: UINT,
24370            Format: DXGI_FORMAT,
24371            SwapChainFlags: UINT,
24372            pCreationNodeMask: *const UINT,
24373            ppPresentQueue: *const *mut IUnknown,
24374        ) -> HRESULT,
24375    >,
24376    pub SetHDRMetaData: ::std::option::Option<
24377        unsafe extern "C" fn(
24378            This: *mut IDXGISwapChain4,
24379            Type: DXGI_HDR_METADATA_TYPE,
24380            Size: UINT,
24381            pMetaData: *mut ::std::os::raw::c_void,
24382        ) -> HRESULT,
24383    >,
24384}
24385#[repr(C)]
24386#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24387pub struct IDXGISwapChain4 {
24388    pub lpVtbl: *mut IDXGISwapChain4Vtbl,
24389}
24390impl Default for IDXGISwapChain4 {
24391    fn default() -> Self {
24392        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24393        unsafe {
24394            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24395            s.assume_init()
24396        }
24397    }
24398}
24399pub const _DXGI_OFFER_RESOURCE_FLAGS_DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT:
24400    _DXGI_OFFER_RESOURCE_FLAGS = 1;
24401pub type _DXGI_OFFER_RESOURCE_FLAGS = ::std::os::raw::c_int;
24402pub use self::_DXGI_OFFER_RESOURCE_FLAGS as DXGI_OFFER_RESOURCE_FLAGS;
24403pub const _DXGI_RECLAIM_RESOURCE_RESULTS_DXGI_RECLAIM_RESOURCE_RESULT_OK:
24404    _DXGI_RECLAIM_RESOURCE_RESULTS = 0;
24405pub const _DXGI_RECLAIM_RESOURCE_RESULTS_DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED : _DXGI_RECLAIM_RESOURCE_RESULTS = 1 ;
24406pub const _DXGI_RECLAIM_RESOURCE_RESULTS_DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED : _DXGI_RECLAIM_RESOURCE_RESULTS = 2 ;
24407pub type _DXGI_RECLAIM_RESOURCE_RESULTS = ::std::os::raw::c_int;
24408pub use self::_DXGI_RECLAIM_RESOURCE_RESULTS as DXGI_RECLAIM_RESOURCE_RESULTS;
24409extern "C" {
24410    pub static IID_IDXGIDevice4: IID;
24411}
24412#[repr(C)]
24413#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24414pub struct IDXGIDevice4Vtbl {
24415    pub QueryInterface: ::std::option::Option<
24416        unsafe extern "C" fn(
24417            This: *mut IDXGIDevice4,
24418            riid: *const IID,
24419            ppvObject: *mut *mut ::std::os::raw::c_void,
24420        ) -> HRESULT,
24421    >,
24422    pub AddRef: ::std::option::Option<
24423        unsafe extern "C" fn(This: *mut IDXGIDevice4) -> ULONG,
24424    >,
24425    pub Release: ::std::option::Option<
24426        unsafe extern "C" fn(This: *mut IDXGIDevice4) -> ULONG,
24427    >,
24428    pub SetPrivateData: ::std::option::Option<
24429        unsafe extern "C" fn(
24430            This: *mut IDXGIDevice4,
24431            Name: *const GUID,
24432            DataSize: UINT,
24433            pData: *const ::std::os::raw::c_void,
24434        ) -> HRESULT,
24435    >,
24436    pub SetPrivateDataInterface: ::std::option::Option<
24437        unsafe extern "C" fn(
24438            This: *mut IDXGIDevice4,
24439            Name: *const GUID,
24440            pUnknown: *const IUnknown,
24441        ) -> HRESULT,
24442    >,
24443    pub GetPrivateData: ::std::option::Option<
24444        unsafe extern "C" fn(
24445            This: *mut IDXGIDevice4,
24446            Name: *const GUID,
24447            pDataSize: *mut UINT,
24448            pData: *mut ::std::os::raw::c_void,
24449        ) -> HRESULT,
24450    >,
24451    pub GetParent: ::std::option::Option<
24452        unsafe extern "C" fn(
24453            This: *mut IDXGIDevice4,
24454            riid: *const IID,
24455            ppParent: *mut *mut ::std::os::raw::c_void,
24456        ) -> HRESULT,
24457    >,
24458    pub GetAdapter: ::std::option::Option<
24459        unsafe extern "C" fn(
24460            This: *mut IDXGIDevice4,
24461            pAdapter: *mut *mut IDXGIAdapter,
24462        ) -> HRESULT,
24463    >,
24464    pub CreateSurface: ::std::option::Option<
24465        unsafe extern "C" fn(
24466            This: *mut IDXGIDevice4,
24467            pDesc: *const DXGI_SURFACE_DESC,
24468            NumSurfaces: UINT,
24469            Usage: DXGI_USAGE,
24470            pSharedResource: *const DXGI_SHARED_RESOURCE,
24471            ppSurface: *mut *mut IDXGISurface,
24472        ) -> HRESULT,
24473    >,
24474    pub QueryResourceResidency: ::std::option::Option<
24475        unsafe extern "C" fn(
24476            This: *mut IDXGIDevice4,
24477            ppResources: *const *mut IUnknown,
24478            pResidencyStatus: *mut DXGI_RESIDENCY,
24479            NumResources: UINT,
24480        ) -> HRESULT,
24481    >,
24482    pub SetGPUThreadPriority: ::std::option::Option<
24483        unsafe extern "C" fn(This: *mut IDXGIDevice4, Priority: INT) -> HRESULT,
24484    >,
24485    pub GetGPUThreadPriority: ::std::option::Option<
24486        unsafe extern "C" fn(
24487            This: *mut IDXGIDevice4,
24488            pPriority: *mut INT,
24489        ) -> HRESULT,
24490    >,
24491    pub SetMaximumFrameLatency: ::std::option::Option<
24492        unsafe extern "C" fn(
24493            This: *mut IDXGIDevice4,
24494            MaxLatency: UINT,
24495        ) -> HRESULT,
24496    >,
24497    pub GetMaximumFrameLatency: ::std::option::Option<
24498        unsafe extern "C" fn(
24499            This: *mut IDXGIDevice4,
24500            pMaxLatency: *mut UINT,
24501        ) -> HRESULT,
24502    >,
24503    pub OfferResources: ::std::option::Option<
24504        unsafe extern "C" fn(
24505            This: *mut IDXGIDevice4,
24506            NumResources: UINT,
24507            ppResources: *const *mut IDXGIResource,
24508            Priority: DXGI_OFFER_RESOURCE_PRIORITY,
24509        ) -> HRESULT,
24510    >,
24511    pub ReclaimResources: ::std::option::Option<
24512        unsafe extern "C" fn(
24513            This: *mut IDXGIDevice4,
24514            NumResources: UINT,
24515            ppResources: *const *mut IDXGIResource,
24516            pDiscarded: *mut BOOL,
24517        ) -> HRESULT,
24518    >,
24519    pub EnqueueSetEvent: ::std::option::Option<
24520        unsafe extern "C" fn(
24521            This: *mut IDXGIDevice4,
24522            hEvent: HANDLE,
24523        ) -> HRESULT,
24524    >,
24525    pub Trim:
24526        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIDevice4)>,
24527    pub OfferResources1: ::std::option::Option<
24528        unsafe extern "C" fn(
24529            This: *mut IDXGIDevice4,
24530            NumResources: UINT,
24531            ppResources: *const *mut IDXGIResource,
24532            Priority: DXGI_OFFER_RESOURCE_PRIORITY,
24533            Flags: UINT,
24534        ) -> HRESULT,
24535    >,
24536    pub ReclaimResources1: ::std::option::Option<
24537        unsafe extern "C" fn(
24538            This: *mut IDXGIDevice4,
24539            NumResources: UINT,
24540            ppResources: *const *mut IDXGIResource,
24541            pResults: *mut DXGI_RECLAIM_RESOURCE_RESULTS,
24542        ) -> HRESULT,
24543    >,
24544}
24545#[repr(C)]
24546#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24547pub struct IDXGIDevice4 {
24548    pub lpVtbl: *mut IDXGIDevice4Vtbl,
24549}
24550impl Default for IDXGIDevice4 {
24551    fn default() -> Self {
24552        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24553        unsafe {
24554            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24555            s.assume_init()
24556        }
24557    }
24558}
24559pub const DXGI_FEATURE_DXGI_FEATURE_PRESENT_ALLOW_TEARING: DXGI_FEATURE = 0;
24560pub type DXGI_FEATURE = ::std::os::raw::c_int;
24561extern "C" {
24562    pub static IID_IDXGIFactory5: IID;
24563}
24564#[repr(C)]
24565#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24566pub struct IDXGIFactory5Vtbl {
24567    pub QueryInterface: ::std::option::Option<
24568        unsafe extern "C" fn(
24569            This: *mut IDXGIFactory5,
24570            riid: *const IID,
24571            ppvObject: *mut *mut ::std::os::raw::c_void,
24572        ) -> HRESULT,
24573    >,
24574    pub AddRef: ::std::option::Option<
24575        unsafe extern "C" fn(This: *mut IDXGIFactory5) -> ULONG,
24576    >,
24577    pub Release: ::std::option::Option<
24578        unsafe extern "C" fn(This: *mut IDXGIFactory5) -> ULONG,
24579    >,
24580    pub SetPrivateData: ::std::option::Option<
24581        unsafe extern "C" fn(
24582            This: *mut IDXGIFactory5,
24583            Name: *const GUID,
24584            DataSize: UINT,
24585            pData: *const ::std::os::raw::c_void,
24586        ) -> HRESULT,
24587    >,
24588    pub SetPrivateDataInterface: ::std::option::Option<
24589        unsafe extern "C" fn(
24590            This: *mut IDXGIFactory5,
24591            Name: *const GUID,
24592            pUnknown: *const IUnknown,
24593        ) -> HRESULT,
24594    >,
24595    pub GetPrivateData: ::std::option::Option<
24596        unsafe extern "C" fn(
24597            This: *mut IDXGIFactory5,
24598            Name: *const GUID,
24599            pDataSize: *mut UINT,
24600            pData: *mut ::std::os::raw::c_void,
24601        ) -> HRESULT,
24602    >,
24603    pub GetParent: ::std::option::Option<
24604        unsafe extern "C" fn(
24605            This: *mut IDXGIFactory5,
24606            riid: *const IID,
24607            ppParent: *mut *mut ::std::os::raw::c_void,
24608        ) -> HRESULT,
24609    >,
24610    pub EnumAdapters: ::std::option::Option<
24611        unsafe extern "C" fn(
24612            This: *mut IDXGIFactory5,
24613            Adapter: UINT,
24614            ppAdapter: *mut *mut IDXGIAdapter,
24615        ) -> HRESULT,
24616    >,
24617    pub MakeWindowAssociation: ::std::option::Option<
24618        unsafe extern "C" fn(
24619            This: *mut IDXGIFactory5,
24620            WindowHandle: HWND,
24621            Flags: UINT,
24622        ) -> HRESULT,
24623    >,
24624    pub GetWindowAssociation: ::std::option::Option<
24625        unsafe extern "C" fn(
24626            This: *mut IDXGIFactory5,
24627            pWindowHandle: *mut HWND,
24628        ) -> HRESULT,
24629    >,
24630    pub CreateSwapChain: ::std::option::Option<
24631        unsafe extern "C" fn(
24632            This: *mut IDXGIFactory5,
24633            pDevice: *mut IUnknown,
24634            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
24635            ppSwapChain: *mut *mut IDXGISwapChain,
24636        ) -> HRESULT,
24637    >,
24638    pub CreateSoftwareAdapter: ::std::option::Option<
24639        unsafe extern "C" fn(
24640            This: *mut IDXGIFactory5,
24641            Module: HMODULE,
24642            ppAdapter: *mut *mut IDXGIAdapter,
24643        ) -> HRESULT,
24644    >,
24645    pub EnumAdapters1: ::std::option::Option<
24646        unsafe extern "C" fn(
24647            This: *mut IDXGIFactory5,
24648            Adapter: UINT,
24649            ppAdapter: *mut *mut IDXGIAdapter1,
24650        ) -> HRESULT,
24651    >,
24652    pub IsCurrent: ::std::option::Option<
24653        unsafe extern "C" fn(This: *mut IDXGIFactory5) -> BOOL,
24654    >,
24655    pub IsWindowedStereoEnabled: ::std::option::Option<
24656        unsafe extern "C" fn(This: *mut IDXGIFactory5) -> BOOL,
24657    >,
24658    pub CreateSwapChainForHwnd: ::std::option::Option<
24659        unsafe extern "C" fn(
24660            This: *mut IDXGIFactory5,
24661            pDevice: *mut IUnknown,
24662            hWnd: HWND,
24663            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
24664            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
24665            pRestrictToOutput: *mut IDXGIOutput,
24666            ppSwapChain: *mut *mut IDXGISwapChain1,
24667        ) -> HRESULT,
24668    >,
24669    pub CreateSwapChainForCoreWindow: ::std::option::Option<
24670        unsafe extern "C" fn(
24671            This: *mut IDXGIFactory5,
24672            pDevice: *mut IUnknown,
24673            pWindow: *mut IUnknown,
24674            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
24675            pRestrictToOutput: *mut IDXGIOutput,
24676            ppSwapChain: *mut *mut IDXGISwapChain1,
24677        ) -> HRESULT,
24678    >,
24679    pub GetSharedResourceAdapterLuid: ::std::option::Option<
24680        unsafe extern "C" fn(
24681            This: *mut IDXGIFactory5,
24682            hResource: HANDLE,
24683            pLuid: *mut LUID,
24684        ) -> HRESULT,
24685    >,
24686    pub RegisterStereoStatusWindow: ::std::option::Option<
24687        unsafe extern "C" fn(
24688            This: *mut IDXGIFactory5,
24689            WindowHandle: HWND,
24690            wMsg: UINT,
24691            pdwCookie: *mut DWORD,
24692        ) -> HRESULT,
24693    >,
24694    pub RegisterStereoStatusEvent: ::std::option::Option<
24695        unsafe extern "C" fn(
24696            This: *mut IDXGIFactory5,
24697            hEvent: HANDLE,
24698            pdwCookie: *mut DWORD,
24699        ) -> HRESULT,
24700    >,
24701    pub UnregisterStereoStatus: ::std::option::Option<
24702        unsafe extern "C" fn(This: *mut IDXGIFactory5, dwCookie: DWORD),
24703    >,
24704    pub RegisterOcclusionStatusWindow: ::std::option::Option<
24705        unsafe extern "C" fn(
24706            This: *mut IDXGIFactory5,
24707            WindowHandle: HWND,
24708            wMsg: UINT,
24709            pdwCookie: *mut DWORD,
24710        ) -> HRESULT,
24711    >,
24712    pub RegisterOcclusionStatusEvent: ::std::option::Option<
24713        unsafe extern "C" fn(
24714            This: *mut IDXGIFactory5,
24715            hEvent: HANDLE,
24716            pdwCookie: *mut DWORD,
24717        ) -> HRESULT,
24718    >,
24719    pub UnregisterOcclusionStatus: ::std::option::Option<
24720        unsafe extern "C" fn(This: *mut IDXGIFactory5, dwCookie: DWORD),
24721    >,
24722    pub CreateSwapChainForComposition: ::std::option::Option<
24723        unsafe extern "C" fn(
24724            This: *mut IDXGIFactory5,
24725            pDevice: *mut IUnknown,
24726            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
24727            pRestrictToOutput: *mut IDXGIOutput,
24728            ppSwapChain: *mut *mut IDXGISwapChain1,
24729        ) -> HRESULT,
24730    >,
24731    pub GetCreationFlags: ::std::option::Option<
24732        unsafe extern "C" fn(This: *mut IDXGIFactory5) -> UINT,
24733    >,
24734    pub EnumAdapterByLuid: ::std::option::Option<
24735        unsafe extern "C" fn(
24736            This: *mut IDXGIFactory5,
24737            AdapterLuid: LUID,
24738            riid: *const IID,
24739            ppvAdapter: *mut *mut ::std::os::raw::c_void,
24740        ) -> HRESULT,
24741    >,
24742    pub EnumWarpAdapter: ::std::option::Option<
24743        unsafe extern "C" fn(
24744            This: *mut IDXGIFactory5,
24745            riid: *const IID,
24746            ppvAdapter: *mut *mut ::std::os::raw::c_void,
24747        ) -> HRESULT,
24748    >,
24749    pub CheckFeatureSupport: ::std::option::Option<
24750        unsafe extern "C" fn(
24751            This: *mut IDXGIFactory5,
24752            Feature: DXGI_FEATURE,
24753            pFeatureSupportData: *mut ::std::os::raw::c_void,
24754            FeatureSupportDataSize: UINT,
24755        ) -> HRESULT,
24756    >,
24757}
24758#[repr(C)]
24759#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24760pub struct IDXGIFactory5 {
24761    pub lpVtbl: *mut IDXGIFactory5Vtbl,
24762}
24763impl Default for IDXGIFactory5 {
24764    fn default() -> Self {
24765        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24766        unsafe {
24767            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24768            s.assume_init()
24769        }
24770    }
24771}
24772extern "C" {
24773    pub fn DXGIDeclareAdapterRemovalSupport() -> HRESULT;
24774}
24775pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_NONE: DXGI_ADAPTER_FLAG3 = 0;
24776pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_REMOTE: DXGI_ADAPTER_FLAG3 = 1;
24777pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_SOFTWARE: DXGI_ADAPTER_FLAG3 =
24778    2;
24779pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE:
24780    DXGI_ADAPTER_FLAG3 = 4;
24781pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES:
24782    DXGI_ADAPTER_FLAG3 = 8;
24783pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES:
24784    DXGI_ADAPTER_FLAG3 = 16;
24785pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE:
24786    DXGI_ADAPTER_FLAG3 = 32;
24787pub const DXGI_ADAPTER_FLAG3_DXGI_ADAPTER_FLAG3_FORCE_DWORD:
24788    DXGI_ADAPTER_FLAG3 = -1;
24789pub type DXGI_ADAPTER_FLAG3 = ::std::os::raw::c_int;
24790#[repr(C)]
24791#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24792pub struct DXGI_ADAPTER_DESC3 {
24793    pub Description: [WCHAR; 128usize],
24794    pub VendorId: UINT,
24795    pub DeviceId: UINT,
24796    pub SubSysId: UINT,
24797    pub Revision: UINT,
24798    pub DedicatedVideoMemory: SIZE_T,
24799    pub DedicatedSystemMemory: SIZE_T,
24800    pub SharedSystemMemory: SIZE_T,
24801    pub AdapterLuid: LUID,
24802    pub Flags: DXGI_ADAPTER_FLAG3,
24803    pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
24804    pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
24805}
24806impl Default for DXGI_ADAPTER_DESC3 {
24807    fn default() -> Self {
24808        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24809        unsafe {
24810            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24811            s.assume_init()
24812        }
24813    }
24814}
24815extern "C" {
24816    pub static IID_IDXGIAdapter4: IID;
24817}
24818#[repr(C)]
24819#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24820pub struct IDXGIAdapter4Vtbl {
24821    pub QueryInterface: ::std::option::Option<
24822        unsafe extern "C" fn(
24823            This: *mut IDXGIAdapter4,
24824            riid: *const IID,
24825            ppvObject: *mut *mut ::std::os::raw::c_void,
24826        ) -> HRESULT,
24827    >,
24828    pub AddRef: ::std::option::Option<
24829        unsafe extern "C" fn(This: *mut IDXGIAdapter4) -> ULONG,
24830    >,
24831    pub Release: ::std::option::Option<
24832        unsafe extern "C" fn(This: *mut IDXGIAdapter4) -> ULONG,
24833    >,
24834    pub SetPrivateData: ::std::option::Option<
24835        unsafe extern "C" fn(
24836            This: *mut IDXGIAdapter4,
24837            Name: *const GUID,
24838            DataSize: UINT,
24839            pData: *const ::std::os::raw::c_void,
24840        ) -> HRESULT,
24841    >,
24842    pub SetPrivateDataInterface: ::std::option::Option<
24843        unsafe extern "C" fn(
24844            This: *mut IDXGIAdapter4,
24845            Name: *const GUID,
24846            pUnknown: *const IUnknown,
24847        ) -> HRESULT,
24848    >,
24849    pub GetPrivateData: ::std::option::Option<
24850        unsafe extern "C" fn(
24851            This: *mut IDXGIAdapter4,
24852            Name: *const GUID,
24853            pDataSize: *mut UINT,
24854            pData: *mut ::std::os::raw::c_void,
24855        ) -> HRESULT,
24856    >,
24857    pub GetParent: ::std::option::Option<
24858        unsafe extern "C" fn(
24859            This: *mut IDXGIAdapter4,
24860            riid: *const IID,
24861            ppParent: *mut *mut ::std::os::raw::c_void,
24862        ) -> HRESULT,
24863    >,
24864    pub EnumOutputs: ::std::option::Option<
24865        unsafe extern "C" fn(
24866            This: *mut IDXGIAdapter4,
24867            Output: UINT,
24868            ppOutput: *mut *mut IDXGIOutput,
24869        ) -> HRESULT,
24870    >,
24871    pub GetDesc: ::std::option::Option<
24872        unsafe extern "C" fn(
24873            This: *mut IDXGIAdapter4,
24874            pDesc: *mut DXGI_ADAPTER_DESC,
24875        ) -> HRESULT,
24876    >,
24877    pub CheckInterfaceSupport: ::std::option::Option<
24878        unsafe extern "C" fn(
24879            This: *mut IDXGIAdapter4,
24880            InterfaceName: *const GUID,
24881            pUMDVersion: *mut LARGE_INTEGER,
24882        ) -> HRESULT,
24883    >,
24884    pub GetDesc1: ::std::option::Option<
24885        unsafe extern "C" fn(
24886            This: *mut IDXGIAdapter4,
24887            pDesc: *mut DXGI_ADAPTER_DESC1,
24888        ) -> HRESULT,
24889    >,
24890    pub GetDesc2: ::std::option::Option<
24891        unsafe extern "C" fn(
24892            This: *mut IDXGIAdapter4,
24893            pDesc: *mut DXGI_ADAPTER_DESC2,
24894        ) -> HRESULT,
24895    >,
24896    pub RegisterHardwareContentProtectionTeardownStatusEvent:
24897        ::std::option::Option<
24898            unsafe extern "C" fn(
24899                This: *mut IDXGIAdapter4,
24900                hEvent: HANDLE,
24901                pdwCookie: *mut DWORD,
24902            ) -> HRESULT,
24903        >,
24904    pub UnregisterHardwareContentProtectionTeardownStatus:
24905        ::std::option::Option<
24906            unsafe extern "C" fn(This: *mut IDXGIAdapter4, dwCookie: DWORD),
24907        >,
24908    pub QueryVideoMemoryInfo: ::std::option::Option<
24909        unsafe extern "C" fn(
24910            This: *mut IDXGIAdapter4,
24911            NodeIndex: UINT,
24912            MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
24913            pVideoMemoryInfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO,
24914        ) -> HRESULT,
24915    >,
24916    pub SetVideoMemoryReservation: ::std::option::Option<
24917        unsafe extern "C" fn(
24918            This: *mut IDXGIAdapter4,
24919            NodeIndex: UINT,
24920            MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
24921            Reservation: UINT64,
24922        ) -> HRESULT,
24923    >,
24924    pub RegisterVideoMemoryBudgetChangeNotificationEvent: ::std::option::Option<
24925        unsafe extern "C" fn(
24926            This: *mut IDXGIAdapter4,
24927            hEvent: HANDLE,
24928            pdwCookie: *mut DWORD,
24929        ) -> HRESULT,
24930    >,
24931    pub UnregisterVideoMemoryBudgetChangeNotification: ::std::option::Option<
24932        unsafe extern "C" fn(This: *mut IDXGIAdapter4, dwCookie: DWORD),
24933    >,
24934    pub GetDesc3: ::std::option::Option<
24935        unsafe extern "C" fn(
24936            This: *mut IDXGIAdapter4,
24937            pDesc: *mut DXGI_ADAPTER_DESC3,
24938        ) -> HRESULT,
24939    >,
24940}
24941#[repr(C)]
24942#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24943pub struct IDXGIAdapter4 {
24944    pub lpVtbl: *mut IDXGIAdapter4Vtbl,
24945}
24946impl Default for IDXGIAdapter4 {
24947    fn default() -> Self {
24948        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24949        unsafe {
24950            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24951            s.assume_init()
24952        }
24953    }
24954}
24955#[repr(C)]
24956#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
24957pub struct DXGI_OUTPUT_DESC1 {
24958    pub DeviceName: [WCHAR; 32usize],
24959    pub DesktopCoordinates: RECT,
24960    pub AttachedToDesktop: BOOL,
24961    pub Rotation: DXGI_MODE_ROTATION,
24962    pub Monitor: HMONITOR,
24963    pub BitsPerColor: UINT,
24964    pub ColorSpace: DXGI_COLOR_SPACE_TYPE,
24965    pub RedPrimary: [FLOAT; 2usize],
24966    pub GreenPrimary: [FLOAT; 2usize],
24967    pub BluePrimary: [FLOAT; 2usize],
24968    pub WhitePoint: [FLOAT; 2usize],
24969    pub MinLuminance: FLOAT,
24970    pub MaxLuminance: FLOAT,
24971    pub MaxFullFrameLuminance: FLOAT,
24972}
24973impl Default for DXGI_OUTPUT_DESC1 {
24974    fn default() -> Self {
24975        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24976        unsafe {
24977            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24978            s.assume_init()
24979        }
24980    }
24981}
24982pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN : DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = 1 ;
24983pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED : DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = 2 ;
24984pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED : DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = 4 ;
24985pub type DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = ::std::os::raw::c_int;
24986extern "C" {
24987    pub static IID_IDXGIOutput6: IID;
24988}
24989#[repr(C)]
24990#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
24991pub struct IDXGIOutput6Vtbl {
24992    pub QueryInterface: ::std::option::Option<
24993        unsafe extern "C" fn(
24994            This: *mut IDXGIOutput6,
24995            riid: *const IID,
24996            ppvObject: *mut *mut ::std::os::raw::c_void,
24997        ) -> HRESULT,
24998    >,
24999    pub AddRef: ::std::option::Option<
25000        unsafe extern "C" fn(This: *mut IDXGIOutput6) -> ULONG,
25001    >,
25002    pub Release: ::std::option::Option<
25003        unsafe extern "C" fn(This: *mut IDXGIOutput6) -> ULONG,
25004    >,
25005    pub SetPrivateData: ::std::option::Option<
25006        unsafe extern "C" fn(
25007            This: *mut IDXGIOutput6,
25008            Name: *const GUID,
25009            DataSize: UINT,
25010            pData: *const ::std::os::raw::c_void,
25011        ) -> HRESULT,
25012    >,
25013    pub SetPrivateDataInterface: ::std::option::Option<
25014        unsafe extern "C" fn(
25015            This: *mut IDXGIOutput6,
25016            Name: *const GUID,
25017            pUnknown: *const IUnknown,
25018        ) -> HRESULT,
25019    >,
25020    pub GetPrivateData: ::std::option::Option<
25021        unsafe extern "C" fn(
25022            This: *mut IDXGIOutput6,
25023            Name: *const GUID,
25024            pDataSize: *mut UINT,
25025            pData: *mut ::std::os::raw::c_void,
25026        ) -> HRESULT,
25027    >,
25028    pub GetParent: ::std::option::Option<
25029        unsafe extern "C" fn(
25030            This: *mut IDXGIOutput6,
25031            riid: *const IID,
25032            ppParent: *mut *mut ::std::os::raw::c_void,
25033        ) -> HRESULT,
25034    >,
25035    pub GetDesc: ::std::option::Option<
25036        unsafe extern "C" fn(
25037            This: *mut IDXGIOutput6,
25038            pDesc: *mut DXGI_OUTPUT_DESC,
25039        ) -> HRESULT,
25040    >,
25041    pub GetDisplayModeList: ::std::option::Option<
25042        unsafe extern "C" fn(
25043            This: *mut IDXGIOutput6,
25044            EnumFormat: DXGI_FORMAT,
25045            Flags: UINT,
25046            pNumModes: *mut UINT,
25047            pDesc: *mut DXGI_MODE_DESC,
25048        ) -> HRESULT,
25049    >,
25050    pub FindClosestMatchingMode: ::std::option::Option<
25051        unsafe extern "C" fn(
25052            This: *mut IDXGIOutput6,
25053            pModeToMatch: *const DXGI_MODE_DESC,
25054            pClosestMatch: *mut DXGI_MODE_DESC,
25055            pConcernedDevice: *mut IUnknown,
25056        ) -> HRESULT,
25057    >,
25058    pub WaitForVBlank: ::std::option::Option<
25059        unsafe extern "C" fn(This: *mut IDXGIOutput6) -> HRESULT,
25060    >,
25061    pub TakeOwnership: ::std::option::Option<
25062        unsafe extern "C" fn(
25063            This: *mut IDXGIOutput6,
25064            pDevice: *mut IUnknown,
25065            Exclusive: BOOL,
25066        ) -> HRESULT,
25067    >,
25068    pub ReleaseOwnership:
25069        ::std::option::Option<unsafe extern "C" fn(This: *mut IDXGIOutput6)>,
25070    pub GetGammaControlCapabilities: ::std::option::Option<
25071        unsafe extern "C" fn(
25072            This: *mut IDXGIOutput6,
25073            pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
25074        ) -> HRESULT,
25075    >,
25076    pub SetGammaControl: ::std::option::Option<
25077        unsafe extern "C" fn(
25078            This: *mut IDXGIOutput6,
25079            pArray: *const DXGI_GAMMA_CONTROL,
25080        ) -> HRESULT,
25081    >,
25082    pub GetGammaControl: ::std::option::Option<
25083        unsafe extern "C" fn(
25084            This: *mut IDXGIOutput6,
25085            pArray: *mut DXGI_GAMMA_CONTROL,
25086        ) -> HRESULT,
25087    >,
25088    pub SetDisplaySurface: ::std::option::Option<
25089        unsafe extern "C" fn(
25090            This: *mut IDXGIOutput6,
25091            pScanoutSurface: *mut IDXGISurface,
25092        ) -> HRESULT,
25093    >,
25094    pub GetDisplaySurfaceData: ::std::option::Option<
25095        unsafe extern "C" fn(
25096            This: *mut IDXGIOutput6,
25097            pDestination: *mut IDXGISurface,
25098        ) -> HRESULT,
25099    >,
25100    pub GetFrameStatistics: ::std::option::Option<
25101        unsafe extern "C" fn(
25102            This: *mut IDXGIOutput6,
25103            pStats: *mut DXGI_FRAME_STATISTICS,
25104        ) -> HRESULT,
25105    >,
25106    pub GetDisplayModeList1: ::std::option::Option<
25107        unsafe extern "C" fn(
25108            This: *mut IDXGIOutput6,
25109            EnumFormat: DXGI_FORMAT,
25110            Flags: UINT,
25111            pNumModes: *mut UINT,
25112            pDesc: *mut DXGI_MODE_DESC1,
25113        ) -> HRESULT,
25114    >,
25115    pub FindClosestMatchingMode1: ::std::option::Option<
25116        unsafe extern "C" fn(
25117            This: *mut IDXGIOutput6,
25118            pModeToMatch: *const DXGI_MODE_DESC1,
25119            pClosestMatch: *mut DXGI_MODE_DESC1,
25120            pConcernedDevice: *mut IUnknown,
25121        ) -> HRESULT,
25122    >,
25123    pub GetDisplaySurfaceData1: ::std::option::Option<
25124        unsafe extern "C" fn(
25125            This: *mut IDXGIOutput6,
25126            pDestination: *mut IDXGIResource,
25127        ) -> HRESULT,
25128    >,
25129    pub DuplicateOutput: ::std::option::Option<
25130        unsafe extern "C" fn(
25131            This: *mut IDXGIOutput6,
25132            pDevice: *mut IUnknown,
25133            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
25134        ) -> HRESULT,
25135    >,
25136    pub SupportsOverlays: ::std::option::Option<
25137        unsafe extern "C" fn(This: *mut IDXGIOutput6) -> BOOL,
25138    >,
25139    pub CheckOverlaySupport: ::std::option::Option<
25140        unsafe extern "C" fn(
25141            This: *mut IDXGIOutput6,
25142            EnumFormat: DXGI_FORMAT,
25143            pConcernedDevice: *mut IUnknown,
25144            pFlags: *mut UINT,
25145        ) -> HRESULT,
25146    >,
25147    pub CheckOverlayColorSpaceSupport: ::std::option::Option<
25148        unsafe extern "C" fn(
25149            This: *mut IDXGIOutput6,
25150            Format: DXGI_FORMAT,
25151            ColorSpace: DXGI_COLOR_SPACE_TYPE,
25152            pConcernedDevice: *mut IUnknown,
25153            pFlags: *mut UINT,
25154        ) -> HRESULT,
25155    >,
25156    pub DuplicateOutput1: ::std::option::Option<
25157        unsafe extern "C" fn(
25158            This: *mut IDXGIOutput6,
25159            pDevice: *mut IUnknown,
25160            Flags: UINT,
25161            SupportedFormatsCount: UINT,
25162            pSupportedFormats: *const DXGI_FORMAT,
25163            ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
25164        ) -> HRESULT,
25165    >,
25166    pub GetDesc1: ::std::option::Option<
25167        unsafe extern "C" fn(
25168            This: *mut IDXGIOutput6,
25169            pDesc: *mut DXGI_OUTPUT_DESC1,
25170        ) -> HRESULT,
25171    >,
25172    pub CheckHardwareCompositionSupport: ::std::option::Option<
25173        unsafe extern "C" fn(
25174            This: *mut IDXGIOutput6,
25175            pFlags: *mut UINT,
25176        ) -> HRESULT,
25177    >,
25178}
25179#[repr(C)]
25180#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
25181pub struct IDXGIOutput6 {
25182    pub lpVtbl: *mut IDXGIOutput6Vtbl,
25183}
25184impl Default for IDXGIOutput6 {
25185    fn default() -> Self {
25186        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
25187        unsafe {
25188            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
25189            s.assume_init()
25190        }
25191    }
25192}
25193pub const DXGI_GPU_PREFERENCE_DXGI_GPU_PREFERENCE_UNSPECIFIED:
25194    DXGI_GPU_PREFERENCE = 0;
25195pub const DXGI_GPU_PREFERENCE_DXGI_GPU_PREFERENCE_MINIMUM_POWER:
25196    DXGI_GPU_PREFERENCE = 1;
25197pub const DXGI_GPU_PREFERENCE_DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE:
25198    DXGI_GPU_PREFERENCE = 2;
25199pub type DXGI_GPU_PREFERENCE = ::std::os::raw::c_int;
25200extern "C" {
25201    pub static IID_IDXGIFactory6: IID;
25202}
25203#[repr(C)]
25204#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
25205pub struct IDXGIFactory6Vtbl {
25206    pub QueryInterface: ::std::option::Option<
25207        unsafe extern "C" fn(
25208            This: *mut IDXGIFactory6,
25209            riid: *const IID,
25210            ppvObject: *mut *mut ::std::os::raw::c_void,
25211        ) -> HRESULT,
25212    >,
25213    pub AddRef: ::std::option::Option<
25214        unsafe extern "C" fn(This: *mut IDXGIFactory6) -> ULONG,
25215    >,
25216    pub Release: ::std::option::Option<
25217        unsafe extern "C" fn(This: *mut IDXGIFactory6) -> ULONG,
25218    >,
25219    pub SetPrivateData: ::std::option::Option<
25220        unsafe extern "C" fn(
25221            This: *mut IDXGIFactory6,
25222            Name: *const GUID,
25223            DataSize: UINT,
25224            pData: *const ::std::os::raw::c_void,
25225        ) -> HRESULT,
25226    >,
25227    pub SetPrivateDataInterface: ::std::option::Option<
25228        unsafe extern "C" fn(
25229            This: *mut IDXGIFactory6,
25230            Name: *const GUID,
25231            pUnknown: *const IUnknown,
25232        ) -> HRESULT,
25233    >,
25234    pub GetPrivateData: ::std::option::Option<
25235        unsafe extern "C" fn(
25236            This: *mut IDXGIFactory6,
25237            Name: *const GUID,
25238            pDataSize: *mut UINT,
25239            pData: *mut ::std::os::raw::c_void,
25240        ) -> HRESULT,
25241    >,
25242    pub GetParent: ::std::option::Option<
25243        unsafe extern "C" fn(
25244            This: *mut IDXGIFactory6,
25245            riid: *const IID,
25246            ppParent: *mut *mut ::std::os::raw::c_void,
25247        ) -> HRESULT,
25248    >,
25249    pub EnumAdapters: ::std::option::Option<
25250        unsafe extern "C" fn(
25251            This: *mut IDXGIFactory6,
25252            Adapter: UINT,
25253            ppAdapter: *mut *mut IDXGIAdapter,
25254        ) -> HRESULT,
25255    >,
25256    pub MakeWindowAssociation: ::std::option::Option<
25257        unsafe extern "C" fn(
25258            This: *mut IDXGIFactory6,
25259            WindowHandle: HWND,
25260            Flags: UINT,
25261        ) -> HRESULT,
25262    >,
25263    pub GetWindowAssociation: ::std::option::Option<
25264        unsafe extern "C" fn(
25265            This: *mut IDXGIFactory6,
25266            pWindowHandle: *mut HWND,
25267        ) -> HRESULT,
25268    >,
25269    pub CreateSwapChain: ::std::option::Option<
25270        unsafe extern "C" fn(
25271            This: *mut IDXGIFactory6,
25272            pDevice: *mut IUnknown,
25273            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
25274            ppSwapChain: *mut *mut IDXGISwapChain,
25275        ) -> HRESULT,
25276    >,
25277    pub CreateSoftwareAdapter: ::std::option::Option<
25278        unsafe extern "C" fn(
25279            This: *mut IDXGIFactory6,
25280            Module: HMODULE,
25281            ppAdapter: *mut *mut IDXGIAdapter,
25282        ) -> HRESULT,
25283    >,
25284    pub EnumAdapters1: ::std::option::Option<
25285        unsafe extern "C" fn(
25286            This: *mut IDXGIFactory6,
25287            Adapter: UINT,
25288            ppAdapter: *mut *mut IDXGIAdapter1,
25289        ) -> HRESULT,
25290    >,
25291    pub IsCurrent: ::std::option::Option<
25292        unsafe extern "C" fn(This: *mut IDXGIFactory6) -> BOOL,
25293    >,
25294    pub IsWindowedStereoEnabled: ::std::option::Option<
25295        unsafe extern "C" fn(This: *mut IDXGIFactory6) -> BOOL,
25296    >,
25297    pub CreateSwapChainForHwnd: ::std::option::Option<
25298        unsafe extern "C" fn(
25299            This: *mut IDXGIFactory6,
25300            pDevice: *mut IUnknown,
25301            hWnd: HWND,
25302            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25303            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
25304            pRestrictToOutput: *mut IDXGIOutput,
25305            ppSwapChain: *mut *mut IDXGISwapChain1,
25306        ) -> HRESULT,
25307    >,
25308    pub CreateSwapChainForCoreWindow: ::std::option::Option<
25309        unsafe extern "C" fn(
25310            This: *mut IDXGIFactory6,
25311            pDevice: *mut IUnknown,
25312            pWindow: *mut IUnknown,
25313            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25314            pRestrictToOutput: *mut IDXGIOutput,
25315            ppSwapChain: *mut *mut IDXGISwapChain1,
25316        ) -> HRESULT,
25317    >,
25318    pub GetSharedResourceAdapterLuid: ::std::option::Option<
25319        unsafe extern "C" fn(
25320            This: *mut IDXGIFactory6,
25321            hResource: HANDLE,
25322            pLuid: *mut LUID,
25323        ) -> HRESULT,
25324    >,
25325    pub RegisterStereoStatusWindow: ::std::option::Option<
25326        unsafe extern "C" fn(
25327            This: *mut IDXGIFactory6,
25328            WindowHandle: HWND,
25329            wMsg: UINT,
25330            pdwCookie: *mut DWORD,
25331        ) -> HRESULT,
25332    >,
25333    pub RegisterStereoStatusEvent: ::std::option::Option<
25334        unsafe extern "C" fn(
25335            This: *mut IDXGIFactory6,
25336            hEvent: HANDLE,
25337            pdwCookie: *mut DWORD,
25338        ) -> HRESULT,
25339    >,
25340    pub UnregisterStereoStatus: ::std::option::Option<
25341        unsafe extern "C" fn(This: *mut IDXGIFactory6, dwCookie: DWORD),
25342    >,
25343    pub RegisterOcclusionStatusWindow: ::std::option::Option<
25344        unsafe extern "C" fn(
25345            This: *mut IDXGIFactory6,
25346            WindowHandle: HWND,
25347            wMsg: UINT,
25348            pdwCookie: *mut DWORD,
25349        ) -> HRESULT,
25350    >,
25351    pub RegisterOcclusionStatusEvent: ::std::option::Option<
25352        unsafe extern "C" fn(
25353            This: *mut IDXGIFactory6,
25354            hEvent: HANDLE,
25355            pdwCookie: *mut DWORD,
25356        ) -> HRESULT,
25357    >,
25358    pub UnregisterOcclusionStatus: ::std::option::Option<
25359        unsafe extern "C" fn(This: *mut IDXGIFactory6, dwCookie: DWORD),
25360    >,
25361    pub CreateSwapChainForComposition: ::std::option::Option<
25362        unsafe extern "C" fn(
25363            This: *mut IDXGIFactory6,
25364            pDevice: *mut IUnknown,
25365            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25366            pRestrictToOutput: *mut IDXGIOutput,
25367            ppSwapChain: *mut *mut IDXGISwapChain1,
25368        ) -> HRESULT,
25369    >,
25370    pub GetCreationFlags: ::std::option::Option<
25371        unsafe extern "C" fn(This: *mut IDXGIFactory6) -> UINT,
25372    >,
25373    pub EnumAdapterByLuid: ::std::option::Option<
25374        unsafe extern "C" fn(
25375            This: *mut IDXGIFactory6,
25376            AdapterLuid: LUID,
25377            riid: *const IID,
25378            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25379        ) -> HRESULT,
25380    >,
25381    pub EnumWarpAdapter: ::std::option::Option<
25382        unsafe extern "C" fn(
25383            This: *mut IDXGIFactory6,
25384            riid: *const IID,
25385            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25386        ) -> HRESULT,
25387    >,
25388    pub CheckFeatureSupport: ::std::option::Option<
25389        unsafe extern "C" fn(
25390            This: *mut IDXGIFactory6,
25391            Feature: DXGI_FEATURE,
25392            pFeatureSupportData: *mut ::std::os::raw::c_void,
25393            FeatureSupportDataSize: UINT,
25394        ) -> HRESULT,
25395    >,
25396    pub EnumAdapterByGpuPreference: ::std::option::Option<
25397        unsafe extern "C" fn(
25398            This: *mut IDXGIFactory6,
25399            Adapter: UINT,
25400            GpuPreference: DXGI_GPU_PREFERENCE,
25401            riid: *const IID,
25402            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25403        ) -> HRESULT,
25404    >,
25405}
25406#[repr(C)]
25407#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
25408pub struct IDXGIFactory6 {
25409    pub lpVtbl: *mut IDXGIFactory6Vtbl,
25410}
25411impl Default for IDXGIFactory6 {
25412    fn default() -> Self {
25413        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
25414        unsafe {
25415            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
25416            s.assume_init()
25417        }
25418    }
25419}
25420extern "C" {
25421    pub static IID_IDXGIFactory7: IID;
25422}
25423#[repr(C)]
25424#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
25425pub struct IDXGIFactory7Vtbl {
25426    pub QueryInterface: ::std::option::Option<
25427        unsafe extern "C" fn(
25428            This: *mut IDXGIFactory7,
25429            riid: *const IID,
25430            ppvObject: *mut *mut ::std::os::raw::c_void,
25431        ) -> HRESULT,
25432    >,
25433    pub AddRef: ::std::option::Option<
25434        unsafe extern "C" fn(This: *mut IDXGIFactory7) -> ULONG,
25435    >,
25436    pub Release: ::std::option::Option<
25437        unsafe extern "C" fn(This: *mut IDXGIFactory7) -> ULONG,
25438    >,
25439    pub SetPrivateData: ::std::option::Option<
25440        unsafe extern "C" fn(
25441            This: *mut IDXGIFactory7,
25442            Name: *const GUID,
25443            DataSize: UINT,
25444            pData: *const ::std::os::raw::c_void,
25445        ) -> HRESULT,
25446    >,
25447    pub SetPrivateDataInterface: ::std::option::Option<
25448        unsafe extern "C" fn(
25449            This: *mut IDXGIFactory7,
25450            Name: *const GUID,
25451            pUnknown: *const IUnknown,
25452        ) -> HRESULT,
25453    >,
25454    pub GetPrivateData: ::std::option::Option<
25455        unsafe extern "C" fn(
25456            This: *mut IDXGIFactory7,
25457            Name: *const GUID,
25458            pDataSize: *mut UINT,
25459            pData: *mut ::std::os::raw::c_void,
25460        ) -> HRESULT,
25461    >,
25462    pub GetParent: ::std::option::Option<
25463        unsafe extern "C" fn(
25464            This: *mut IDXGIFactory7,
25465            riid: *const IID,
25466            ppParent: *mut *mut ::std::os::raw::c_void,
25467        ) -> HRESULT,
25468    >,
25469    pub EnumAdapters: ::std::option::Option<
25470        unsafe extern "C" fn(
25471            This: *mut IDXGIFactory7,
25472            Adapter: UINT,
25473            ppAdapter: *mut *mut IDXGIAdapter,
25474        ) -> HRESULT,
25475    >,
25476    pub MakeWindowAssociation: ::std::option::Option<
25477        unsafe extern "C" fn(
25478            This: *mut IDXGIFactory7,
25479            WindowHandle: HWND,
25480            Flags: UINT,
25481        ) -> HRESULT,
25482    >,
25483    pub GetWindowAssociation: ::std::option::Option<
25484        unsafe extern "C" fn(
25485            This: *mut IDXGIFactory7,
25486            pWindowHandle: *mut HWND,
25487        ) -> HRESULT,
25488    >,
25489    pub CreateSwapChain: ::std::option::Option<
25490        unsafe extern "C" fn(
25491            This: *mut IDXGIFactory7,
25492            pDevice: *mut IUnknown,
25493            pDesc: *mut DXGI_SWAP_CHAIN_DESC,
25494            ppSwapChain: *mut *mut IDXGISwapChain,
25495        ) -> HRESULT,
25496    >,
25497    pub CreateSoftwareAdapter: ::std::option::Option<
25498        unsafe extern "C" fn(
25499            This: *mut IDXGIFactory7,
25500            Module: HMODULE,
25501            ppAdapter: *mut *mut IDXGIAdapter,
25502        ) -> HRESULT,
25503    >,
25504    pub EnumAdapters1: ::std::option::Option<
25505        unsafe extern "C" fn(
25506            This: *mut IDXGIFactory7,
25507            Adapter: UINT,
25508            ppAdapter: *mut *mut IDXGIAdapter1,
25509        ) -> HRESULT,
25510    >,
25511    pub IsCurrent: ::std::option::Option<
25512        unsafe extern "C" fn(This: *mut IDXGIFactory7) -> BOOL,
25513    >,
25514    pub IsWindowedStereoEnabled: ::std::option::Option<
25515        unsafe extern "C" fn(This: *mut IDXGIFactory7) -> BOOL,
25516    >,
25517    pub CreateSwapChainForHwnd: ::std::option::Option<
25518        unsafe extern "C" fn(
25519            This: *mut IDXGIFactory7,
25520            pDevice: *mut IUnknown,
25521            hWnd: HWND,
25522            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25523            pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
25524            pRestrictToOutput: *mut IDXGIOutput,
25525            ppSwapChain: *mut *mut IDXGISwapChain1,
25526        ) -> HRESULT,
25527    >,
25528    pub CreateSwapChainForCoreWindow: ::std::option::Option<
25529        unsafe extern "C" fn(
25530            This: *mut IDXGIFactory7,
25531            pDevice: *mut IUnknown,
25532            pWindow: *mut IUnknown,
25533            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25534            pRestrictToOutput: *mut IDXGIOutput,
25535            ppSwapChain: *mut *mut IDXGISwapChain1,
25536        ) -> HRESULT,
25537    >,
25538    pub GetSharedResourceAdapterLuid: ::std::option::Option<
25539        unsafe extern "C" fn(
25540            This: *mut IDXGIFactory7,
25541            hResource: HANDLE,
25542            pLuid: *mut LUID,
25543        ) -> HRESULT,
25544    >,
25545    pub RegisterStereoStatusWindow: ::std::option::Option<
25546        unsafe extern "C" fn(
25547            This: *mut IDXGIFactory7,
25548            WindowHandle: HWND,
25549            wMsg: UINT,
25550            pdwCookie: *mut DWORD,
25551        ) -> HRESULT,
25552    >,
25553    pub RegisterStereoStatusEvent: ::std::option::Option<
25554        unsafe extern "C" fn(
25555            This: *mut IDXGIFactory7,
25556            hEvent: HANDLE,
25557            pdwCookie: *mut DWORD,
25558        ) -> HRESULT,
25559    >,
25560    pub UnregisterStereoStatus: ::std::option::Option<
25561        unsafe extern "C" fn(This: *mut IDXGIFactory7, dwCookie: DWORD),
25562    >,
25563    pub RegisterOcclusionStatusWindow: ::std::option::Option<
25564        unsafe extern "C" fn(
25565            This: *mut IDXGIFactory7,
25566            WindowHandle: HWND,
25567            wMsg: UINT,
25568            pdwCookie: *mut DWORD,
25569        ) -> HRESULT,
25570    >,
25571    pub RegisterOcclusionStatusEvent: ::std::option::Option<
25572        unsafe extern "C" fn(
25573            This: *mut IDXGIFactory7,
25574            hEvent: HANDLE,
25575            pdwCookie: *mut DWORD,
25576        ) -> HRESULT,
25577    >,
25578    pub UnregisterOcclusionStatus: ::std::option::Option<
25579        unsafe extern "C" fn(This: *mut IDXGIFactory7, dwCookie: DWORD),
25580    >,
25581    pub CreateSwapChainForComposition: ::std::option::Option<
25582        unsafe extern "C" fn(
25583            This: *mut IDXGIFactory7,
25584            pDevice: *mut IUnknown,
25585            pDesc: *const DXGI_SWAP_CHAIN_DESC1,
25586            pRestrictToOutput: *mut IDXGIOutput,
25587            ppSwapChain: *mut *mut IDXGISwapChain1,
25588        ) -> HRESULT,
25589    >,
25590    pub GetCreationFlags: ::std::option::Option<
25591        unsafe extern "C" fn(This: *mut IDXGIFactory7) -> UINT,
25592    >,
25593    pub EnumAdapterByLuid: ::std::option::Option<
25594        unsafe extern "C" fn(
25595            This: *mut IDXGIFactory7,
25596            AdapterLuid: LUID,
25597            riid: *const IID,
25598            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25599        ) -> HRESULT,
25600    >,
25601    pub EnumWarpAdapter: ::std::option::Option<
25602        unsafe extern "C" fn(
25603            This: *mut IDXGIFactory7,
25604            riid: *const IID,
25605            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25606        ) -> HRESULT,
25607    >,
25608    pub CheckFeatureSupport: ::std::option::Option<
25609        unsafe extern "C" fn(
25610            This: *mut IDXGIFactory7,
25611            Feature: DXGI_FEATURE,
25612            pFeatureSupportData: *mut ::std::os::raw::c_void,
25613            FeatureSupportDataSize: UINT,
25614        ) -> HRESULT,
25615    >,
25616    pub EnumAdapterByGpuPreference: ::std::option::Option<
25617        unsafe extern "C" fn(
25618            This: *mut IDXGIFactory7,
25619            Adapter: UINT,
25620            GpuPreference: DXGI_GPU_PREFERENCE,
25621            riid: *const IID,
25622            ppvAdapter: *mut *mut ::std::os::raw::c_void,
25623        ) -> HRESULT,
25624    >,
25625    pub RegisterAdaptersChangedEvent: ::std::option::Option<
25626        unsafe extern "C" fn(
25627            This: *mut IDXGIFactory7,
25628            hEvent: HANDLE,
25629            pdwCookie: *mut DWORD,
25630        ) -> HRESULT,
25631    >,
25632    pub UnregisterAdaptersChangedEvent: ::std::option::Option<
25633        unsafe extern "C" fn(
25634            This: *mut IDXGIFactory7,
25635            dwCookie: DWORD,
25636        ) -> HRESULT,
25637    >,
25638}
25639#[repr(C)]
25640#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
25641pub struct IDXGIFactory7 {
25642    pub lpVtbl: *mut IDXGIFactory7Vtbl,
25643}
25644impl Default for IDXGIFactory7 {
25645    fn default() -> Self {
25646        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
25647        unsafe {
25648            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
25649            s.assume_init()
25650        }
25651    }
25652}