erupt/generated/extensions/
khr_get_display_properties2.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION")]
4pub const KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME")]
7pub const KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_KHR_get_display_properties2"
9);
10///<s>Vulkan Manual Page</s> · Constant
11pub const FN_GET_PHYSICAL_DEVICE_DISPLAY_PROPERTIES2_KHR: *const std::os::raw::c_char = crate::cstr!(
12    "vkGetPhysicalDeviceDisplayProperties2KHR"
13);
14///<s>Vulkan Manual Page</s> · Constant
15pub const FN_GET_PHYSICAL_DEVICE_DISPLAY_PLANE_PROPERTIES2_KHR: *const std::os::raw::c_char = crate::cstr!(
16    "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"
17);
18///<s>Vulkan Manual Page</s> · Constant
19pub const FN_GET_DISPLAY_MODE_PROPERTIES2_KHR: *const std::os::raw::c_char = crate::cstr!(
20    "vkGetDisplayModeProperties2KHR"
21);
22///<s>Vulkan Manual Page</s> · Constant
23pub const FN_GET_DISPLAY_PLANE_CAPABILITIES2_KHR: *const std::os::raw::c_char = crate::cstr!(
24    "vkGetDisplayPlaneCapabilities2KHR"
25);
26///Provided by [`crate::extensions::khr_get_display_properties2`]
27impl crate::vk1_0::StructureType {
28    pub const DISPLAY_PROPERTIES_2_KHR: Self = Self(1000121000);
29    pub const DISPLAY_PLANE_PROPERTIES_2_KHR: Self = Self(1000121001);
30    pub const DISPLAY_MODE_PROPERTIES_2_KHR: Self = Self(1000121002);
31    pub const DISPLAY_PLANE_INFO_2_KHR: Self = Self(1000121003);
32    pub const DISPLAY_PLANE_CAPABILITIES_2_KHR: Self = Self(1000121004);
33}
34///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html) · Function
35#[allow(non_camel_case_types)]
36pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn(
37    physical_device: crate::vk1_0::PhysicalDevice,
38    p_property_count: *mut u32,
39    p_properties: *mut crate::extensions::khr_get_display_properties2::DisplayProperties2KHR,
40) -> crate::vk1_0::Result;
41///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html) · Function
42#[allow(non_camel_case_types)]
43pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = unsafe extern "system" fn(
44    physical_device: crate::vk1_0::PhysicalDevice,
45    p_property_count: *mut u32,
46    p_properties: *mut crate::extensions::khr_get_display_properties2::DisplayPlaneProperties2KHR,
47) -> crate::vk1_0::Result;
48///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDisplayModeProperties2KHR.html) · Function
49#[allow(non_camel_case_types)]
50pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn(
51    physical_device: crate::vk1_0::PhysicalDevice,
52    display: crate::extensions::khr_display::DisplayKHR,
53    p_property_count: *mut u32,
54    p_properties: *mut crate::extensions::khr_get_display_properties2::DisplayModeProperties2KHR,
55) -> crate::vk1_0::Result;
56///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDisplayPlaneCapabilities2KHR.html) · Function
57#[allow(non_camel_case_types)]
58pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn(
59    physical_device: crate::vk1_0::PhysicalDevice,
60    p_display_plane_info: *const crate::extensions::khr_get_display_properties2::DisplayPlaneInfo2KHR,
61    p_capabilities: *mut crate::extensions::khr_get_display_properties2::DisplayPlaneCapabilities2KHR,
62) -> crate::vk1_0::Result;
63///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayProperties2KHR.html) · Structure
64#[doc(alias = "VkDisplayProperties2KHR")]
65#[derive(Copy, Clone)]
66#[repr(C)]
67pub struct DisplayProperties2KHR {
68    pub s_type: crate::vk1_0::StructureType,
69    pub p_next: *mut std::ffi::c_void,
70    pub display_properties: crate::extensions::khr_display::DisplayPropertiesKHR,
71}
72impl DisplayProperties2KHR {
73    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DISPLAY_PROPERTIES_2_KHR;
74}
75impl Default for DisplayProperties2KHR {
76    fn default() -> Self {
77        Self {
78            s_type: Self::STRUCTURE_TYPE,
79            p_next: std::ptr::null_mut(),
80            display_properties: Default::default(),
81        }
82    }
83}
84impl std::fmt::Debug for DisplayProperties2KHR {
85    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
86        f.debug_struct("DisplayProperties2KHR")
87            .field("s_type", &self.s_type)
88            .field("p_next", &self.p_next)
89            .field("display_properties", &self.display_properties)
90            .finish()
91    }
92}
93impl DisplayProperties2KHR {
94    #[inline]
95    pub fn into_builder<'a>(self) -> DisplayProperties2KHRBuilder<'a> {
96        DisplayProperties2KHRBuilder(self, std::marker::PhantomData)
97    }
98}
99#[derive(Copy, Clone)]
100///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayProperties2KHR.html) · Builder of [`DisplayProperties2KHR`]
101#[repr(transparent)]
102pub struct DisplayProperties2KHRBuilder<'a>(
103    DisplayProperties2KHR,
104    std::marker::PhantomData<&'a ()>,
105);
106impl<'a> DisplayProperties2KHRBuilder<'a> {
107    #[inline]
108    pub fn new() -> DisplayProperties2KHRBuilder<'a> {
109        DisplayProperties2KHRBuilder(Default::default(), std::marker::PhantomData)
110    }
111    #[inline]
112    #[must_use]
113    pub fn display_properties(
114        mut self,
115        display_properties: crate::extensions::khr_display::DisplayPropertiesKHR,
116    ) -> Self {
117        self.0.display_properties = display_properties as _;
118        self
119    }
120    #[inline]
121    /// Discards all lifetime information.
122    /// Use the `Deref` and `DerefMut` implementations if possible.
123    pub fn build_dangling(self) -> DisplayProperties2KHR {
124        self.0
125    }
126}
127impl<'a> std::default::Default for DisplayProperties2KHRBuilder<'a> {
128    fn default() -> DisplayProperties2KHRBuilder<'a> {
129        Self::new()
130    }
131}
132impl<'a> std::fmt::Debug for DisplayProperties2KHRBuilder<'a> {
133    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
134        std::fmt::Debug::fmt(&self.0, f)
135    }
136}
137impl<'a> std::ops::Deref for DisplayProperties2KHRBuilder<'a> {
138    type Target = DisplayProperties2KHR;
139    fn deref(&self) -> &Self::Target {
140        &self.0
141    }
142}
143impl<'a> std::ops::DerefMut for DisplayProperties2KHRBuilder<'a> {
144    fn deref_mut(&mut self) -> &mut Self::Target {
145        &mut self.0
146    }
147}
148///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneProperties2KHR.html) · Structure
149#[doc(alias = "VkDisplayPlaneProperties2KHR")]
150#[derive(Copy, Clone)]
151#[repr(C)]
152pub struct DisplayPlaneProperties2KHR {
153    pub s_type: crate::vk1_0::StructureType,
154    pub p_next: *mut std::ffi::c_void,
155    pub display_plane_properties: crate::extensions::khr_display::DisplayPlanePropertiesKHR,
156}
157impl DisplayPlaneProperties2KHR {
158    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR;
159}
160impl Default for DisplayPlaneProperties2KHR {
161    fn default() -> Self {
162        Self {
163            s_type: Self::STRUCTURE_TYPE,
164            p_next: std::ptr::null_mut(),
165            display_plane_properties: Default::default(),
166        }
167    }
168}
169impl std::fmt::Debug for DisplayPlaneProperties2KHR {
170    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
171        f.debug_struct("DisplayPlaneProperties2KHR")
172            .field("s_type", &self.s_type)
173            .field("p_next", &self.p_next)
174            .field("display_plane_properties", &self.display_plane_properties)
175            .finish()
176    }
177}
178impl DisplayPlaneProperties2KHR {
179    #[inline]
180    pub fn into_builder<'a>(self) -> DisplayPlaneProperties2KHRBuilder<'a> {
181        DisplayPlaneProperties2KHRBuilder(self, std::marker::PhantomData)
182    }
183}
184#[derive(Copy, Clone)]
185///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneProperties2KHR.html) · Builder of [`DisplayPlaneProperties2KHR`]
186#[repr(transparent)]
187pub struct DisplayPlaneProperties2KHRBuilder<'a>(
188    DisplayPlaneProperties2KHR,
189    std::marker::PhantomData<&'a ()>,
190);
191impl<'a> DisplayPlaneProperties2KHRBuilder<'a> {
192    #[inline]
193    pub fn new() -> DisplayPlaneProperties2KHRBuilder<'a> {
194        DisplayPlaneProperties2KHRBuilder(Default::default(), std::marker::PhantomData)
195    }
196    #[inline]
197    #[must_use]
198    pub fn display_plane_properties(
199        mut self,
200        display_plane_properties: crate::extensions::khr_display::DisplayPlanePropertiesKHR,
201    ) -> Self {
202        self.0.display_plane_properties = display_plane_properties as _;
203        self
204    }
205    #[inline]
206    /// Discards all lifetime information.
207    /// Use the `Deref` and `DerefMut` implementations if possible.
208    pub fn build_dangling(self) -> DisplayPlaneProperties2KHR {
209        self.0
210    }
211}
212impl<'a> std::default::Default for DisplayPlaneProperties2KHRBuilder<'a> {
213    fn default() -> DisplayPlaneProperties2KHRBuilder<'a> {
214        Self::new()
215    }
216}
217impl<'a> std::fmt::Debug for DisplayPlaneProperties2KHRBuilder<'a> {
218    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
219        std::fmt::Debug::fmt(&self.0, f)
220    }
221}
222impl<'a> std::ops::Deref for DisplayPlaneProperties2KHRBuilder<'a> {
223    type Target = DisplayPlaneProperties2KHR;
224    fn deref(&self) -> &Self::Target {
225        &self.0
226    }
227}
228impl<'a> std::ops::DerefMut for DisplayPlaneProperties2KHRBuilder<'a> {
229    fn deref_mut(&mut self) -> &mut Self::Target {
230        &mut self.0
231    }
232}
233///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeProperties2KHR.html) · Structure
234#[doc(alias = "VkDisplayModeProperties2KHR")]
235#[derive(Copy, Clone)]
236#[repr(C)]
237pub struct DisplayModeProperties2KHR {
238    pub s_type: crate::vk1_0::StructureType,
239    pub p_next: *mut std::ffi::c_void,
240    pub display_mode_properties: crate::extensions::khr_display::DisplayModePropertiesKHR,
241}
242impl DisplayModeProperties2KHR {
243    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DISPLAY_MODE_PROPERTIES_2_KHR;
244}
245impl Default for DisplayModeProperties2KHR {
246    fn default() -> Self {
247        Self {
248            s_type: Self::STRUCTURE_TYPE,
249            p_next: std::ptr::null_mut(),
250            display_mode_properties: Default::default(),
251        }
252    }
253}
254impl std::fmt::Debug for DisplayModeProperties2KHR {
255    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
256        f.debug_struct("DisplayModeProperties2KHR")
257            .field("s_type", &self.s_type)
258            .field("p_next", &self.p_next)
259            .field("display_mode_properties", &self.display_mode_properties)
260            .finish()
261    }
262}
263impl DisplayModeProperties2KHR {
264    #[inline]
265    pub fn into_builder<'a>(self) -> DisplayModeProperties2KHRBuilder<'a> {
266        DisplayModeProperties2KHRBuilder(self, std::marker::PhantomData)
267    }
268}
269#[derive(Copy, Clone)]
270///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeProperties2KHR.html) · Builder of [`DisplayModeProperties2KHR`]
271#[repr(transparent)]
272pub struct DisplayModeProperties2KHRBuilder<'a>(
273    DisplayModeProperties2KHR,
274    std::marker::PhantomData<&'a ()>,
275);
276impl<'a> DisplayModeProperties2KHRBuilder<'a> {
277    #[inline]
278    pub fn new() -> DisplayModeProperties2KHRBuilder<'a> {
279        DisplayModeProperties2KHRBuilder(Default::default(), std::marker::PhantomData)
280    }
281    #[inline]
282    #[must_use]
283    pub fn display_mode_properties(
284        mut self,
285        display_mode_properties: crate::extensions::khr_display::DisplayModePropertiesKHR,
286    ) -> Self {
287        self.0.display_mode_properties = display_mode_properties as _;
288        self
289    }
290    #[inline]
291    /// Discards all lifetime information.
292    /// Use the `Deref` and `DerefMut` implementations if possible.
293    pub fn build_dangling(self) -> DisplayModeProperties2KHR {
294        self.0
295    }
296}
297impl<'a> std::default::Default for DisplayModeProperties2KHRBuilder<'a> {
298    fn default() -> DisplayModeProperties2KHRBuilder<'a> {
299        Self::new()
300    }
301}
302impl<'a> std::fmt::Debug for DisplayModeProperties2KHRBuilder<'a> {
303    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
304        std::fmt::Debug::fmt(&self.0, f)
305    }
306}
307impl<'a> std::ops::Deref for DisplayModeProperties2KHRBuilder<'a> {
308    type Target = DisplayModeProperties2KHR;
309    fn deref(&self) -> &Self::Target {
310        &self.0
311    }
312}
313impl<'a> std::ops::DerefMut for DisplayModeProperties2KHRBuilder<'a> {
314    fn deref_mut(&mut self) -> &mut Self::Target {
315        &mut self.0
316    }
317}
318///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneInfo2KHR.html) · Structure
319#[doc(alias = "VkDisplayPlaneInfo2KHR")]
320#[derive(Copy, Clone)]
321#[repr(C)]
322pub struct DisplayPlaneInfo2KHR {
323    pub s_type: crate::vk1_0::StructureType,
324    pub p_next: *const std::ffi::c_void,
325    pub mode: crate::extensions::khr_display::DisplayModeKHR,
326    pub plane_index: u32,
327}
328impl DisplayPlaneInfo2KHR {
329    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DISPLAY_PLANE_INFO_2_KHR;
330}
331impl Default for DisplayPlaneInfo2KHR {
332    fn default() -> Self {
333        Self {
334            s_type: Self::STRUCTURE_TYPE,
335            p_next: std::ptr::null(),
336            mode: Default::default(),
337            plane_index: Default::default(),
338        }
339    }
340}
341impl std::fmt::Debug for DisplayPlaneInfo2KHR {
342    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
343        f.debug_struct("DisplayPlaneInfo2KHR")
344            .field("s_type", &self.s_type)
345            .field("p_next", &self.p_next)
346            .field("mode", &self.mode)
347            .field("plane_index", &self.plane_index)
348            .finish()
349    }
350}
351impl DisplayPlaneInfo2KHR {
352    #[inline]
353    pub fn into_builder<'a>(self) -> DisplayPlaneInfo2KHRBuilder<'a> {
354        DisplayPlaneInfo2KHRBuilder(self, std::marker::PhantomData)
355    }
356}
357#[derive(Copy, Clone)]
358///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneInfo2KHR.html) · Builder of [`DisplayPlaneInfo2KHR`]
359#[repr(transparent)]
360pub struct DisplayPlaneInfo2KHRBuilder<'a>(
361    DisplayPlaneInfo2KHR,
362    std::marker::PhantomData<&'a ()>,
363);
364impl<'a> DisplayPlaneInfo2KHRBuilder<'a> {
365    #[inline]
366    pub fn new() -> DisplayPlaneInfo2KHRBuilder<'a> {
367        DisplayPlaneInfo2KHRBuilder(Default::default(), std::marker::PhantomData)
368    }
369    #[inline]
370    #[must_use]
371    pub fn mode(mut self, mode: crate::extensions::khr_display::DisplayModeKHR) -> Self {
372        self.0.mode = mode as _;
373        self
374    }
375    #[inline]
376    #[must_use]
377    pub fn plane_index(mut self, plane_index: u32) -> Self {
378        self.0.plane_index = plane_index as _;
379        self
380    }
381    #[inline]
382    /// Discards all lifetime information.
383    /// Use the `Deref` and `DerefMut` implementations if possible.
384    pub fn build_dangling(self) -> DisplayPlaneInfo2KHR {
385        self.0
386    }
387}
388impl<'a> std::default::Default for DisplayPlaneInfo2KHRBuilder<'a> {
389    fn default() -> DisplayPlaneInfo2KHRBuilder<'a> {
390        Self::new()
391    }
392}
393impl<'a> std::fmt::Debug for DisplayPlaneInfo2KHRBuilder<'a> {
394    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
395        std::fmt::Debug::fmt(&self.0, f)
396    }
397}
398impl<'a> std::ops::Deref for DisplayPlaneInfo2KHRBuilder<'a> {
399    type Target = DisplayPlaneInfo2KHR;
400    fn deref(&self) -> &Self::Target {
401        &self.0
402    }
403}
404impl<'a> std::ops::DerefMut for DisplayPlaneInfo2KHRBuilder<'a> {
405    fn deref_mut(&mut self) -> &mut Self::Target {
406        &mut self.0
407    }
408}
409///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneCapabilities2KHR.html) · Structure
410#[doc(alias = "VkDisplayPlaneCapabilities2KHR")]
411#[derive(Copy, Clone)]
412#[repr(C)]
413pub struct DisplayPlaneCapabilities2KHR {
414    pub s_type: crate::vk1_0::StructureType,
415    pub p_next: *mut std::ffi::c_void,
416    pub capabilities: crate::extensions::khr_display::DisplayPlaneCapabilitiesKHR,
417}
418impl DisplayPlaneCapabilities2KHR {
419    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR;
420}
421impl Default for DisplayPlaneCapabilities2KHR {
422    fn default() -> Self {
423        Self {
424            s_type: Self::STRUCTURE_TYPE,
425            p_next: std::ptr::null_mut(),
426            capabilities: Default::default(),
427        }
428    }
429}
430impl std::fmt::Debug for DisplayPlaneCapabilities2KHR {
431    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
432        f.debug_struct("DisplayPlaneCapabilities2KHR")
433            .field("s_type", &self.s_type)
434            .field("p_next", &self.p_next)
435            .field("capabilities", &self.capabilities)
436            .finish()
437    }
438}
439impl DisplayPlaneCapabilities2KHR {
440    #[inline]
441    pub fn into_builder<'a>(self) -> DisplayPlaneCapabilities2KHRBuilder<'a> {
442        DisplayPlaneCapabilities2KHRBuilder(self, std::marker::PhantomData)
443    }
444}
445#[derive(Copy, Clone)]
446///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneCapabilities2KHR.html) · Builder of [`DisplayPlaneCapabilities2KHR`]
447#[repr(transparent)]
448pub struct DisplayPlaneCapabilities2KHRBuilder<'a>(
449    DisplayPlaneCapabilities2KHR,
450    std::marker::PhantomData<&'a ()>,
451);
452impl<'a> DisplayPlaneCapabilities2KHRBuilder<'a> {
453    #[inline]
454    pub fn new() -> DisplayPlaneCapabilities2KHRBuilder<'a> {
455        DisplayPlaneCapabilities2KHRBuilder(Default::default(), std::marker::PhantomData)
456    }
457    #[inline]
458    #[must_use]
459    pub fn capabilities(
460        mut self,
461        capabilities: crate::extensions::khr_display::DisplayPlaneCapabilitiesKHR,
462    ) -> Self {
463        self.0.capabilities = capabilities as _;
464        self
465    }
466    #[inline]
467    /// Discards all lifetime information.
468    /// Use the `Deref` and `DerefMut` implementations if possible.
469    pub fn build_dangling(self) -> DisplayPlaneCapabilities2KHR {
470        self.0
471    }
472}
473impl<'a> std::default::Default for DisplayPlaneCapabilities2KHRBuilder<'a> {
474    fn default() -> DisplayPlaneCapabilities2KHRBuilder<'a> {
475        Self::new()
476    }
477}
478impl<'a> std::fmt::Debug for DisplayPlaneCapabilities2KHRBuilder<'a> {
479    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
480        std::fmt::Debug::fmt(&self.0, f)
481    }
482}
483impl<'a> std::ops::Deref for DisplayPlaneCapabilities2KHRBuilder<'a> {
484    type Target = DisplayPlaneCapabilities2KHR;
485    fn deref(&self) -> &Self::Target {
486        &self.0
487    }
488}
489impl<'a> std::ops::DerefMut for DisplayPlaneCapabilities2KHRBuilder<'a> {
490    fn deref_mut(&mut self) -> &mut Self::Target {
491        &mut self.0
492    }
493}
494///Provided by [`crate::extensions::khr_get_display_properties2`]
495impl crate::InstanceLoader {
496    #[inline]
497    #[track_caller]
498    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html) · Function
499    #[doc(alias = "vkGetPhysicalDeviceDisplayProperties2KHR")]
500    pub unsafe fn get_physical_device_display_properties2_khr(
501        &self,
502        physical_device: crate::vk1_0::PhysicalDevice,
503        property_count: Option<u32>,
504        properties_callback: impl FnMut(
505            &mut crate::SmallVec<
506                crate::extensions::khr_get_display_properties2::DisplayProperties2KHR,
507            >,
508        ) -> (),
509    ) -> crate::utils::VulkanResult<
510            crate::SmallVec<
511                crate::extensions::khr_get_display_properties2::DisplayProperties2KHR,
512            >,
513        > {
514        let _function = self
515            .get_physical_device_display_properties2_khr
516            .expect(crate::NOT_LOADED_MESSAGE);
517        let mut property_count = match property_count {
518            Some(v) => v,
519            None => {
520                let mut v = Default::default();
521                _function(physical_device as _, &mut v, std::ptr::null_mut());
522                v
523            }
524        };
525        let mut properties = crate::SmallVec::from_elem(
526            Default::default(),
527            property_count as _,
528        );
529        let mut _callback = properties_callback;
530        _callback(&mut properties);
531        let _return = _function(
532            physical_device as _,
533            &mut property_count,
534            properties.as_mut_ptr(),
535        );
536        crate::utils::VulkanResult::new(_return, properties)
537    }
538    #[inline]
539    #[track_caller]
540    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html) · Function
541    #[doc(alias = "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")]
542    pub unsafe fn get_physical_device_display_plane_properties2_khr(
543        &self,
544        physical_device: crate::vk1_0::PhysicalDevice,
545        property_count: Option<u32>,
546        properties_callback: impl FnMut(
547            &mut crate::SmallVec<
548                crate::extensions::khr_get_display_properties2::DisplayPlaneProperties2KHR,
549            >,
550        ) -> (),
551    ) -> crate::utils::VulkanResult<
552            crate::SmallVec<
553                crate::extensions::khr_get_display_properties2::DisplayPlaneProperties2KHR,
554            >,
555        > {
556        let _function = self
557            .get_physical_device_display_plane_properties2_khr
558            .expect(crate::NOT_LOADED_MESSAGE);
559        let mut property_count = match property_count {
560            Some(v) => v,
561            None => {
562                let mut v = Default::default();
563                _function(physical_device as _, &mut v, std::ptr::null_mut());
564                v
565            }
566        };
567        let mut properties = crate::SmallVec::from_elem(
568            Default::default(),
569            property_count as _,
570        );
571        let mut _callback = properties_callback;
572        _callback(&mut properties);
573        let _return = _function(
574            physical_device as _,
575            &mut property_count,
576            properties.as_mut_ptr(),
577        );
578        crate::utils::VulkanResult::new(_return, properties)
579    }
580    #[inline]
581    #[track_caller]
582    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDisplayModeProperties2KHR.html) · Function
583    #[doc(alias = "vkGetDisplayModeProperties2KHR")]
584    pub unsafe fn get_display_mode_properties2_khr(
585        &self,
586        physical_device: crate::vk1_0::PhysicalDevice,
587        display: crate::extensions::khr_display::DisplayKHR,
588        property_count: Option<u32>,
589        properties_callback: impl FnMut(
590            &mut crate::SmallVec<
591                crate::extensions::khr_get_display_properties2::DisplayModeProperties2KHR,
592            >,
593        ) -> (),
594    ) -> crate::utils::VulkanResult<
595            crate::SmallVec<
596                crate::extensions::khr_get_display_properties2::DisplayModeProperties2KHR,
597            >,
598        > {
599        let _function = self
600            .get_display_mode_properties2_khr
601            .expect(crate::NOT_LOADED_MESSAGE);
602        let mut property_count = match property_count {
603            Some(v) => v,
604            None => {
605                let mut v = Default::default();
606                _function(
607                    physical_device as _,
608                    display as _,
609                    &mut v,
610                    std::ptr::null_mut(),
611                );
612                v
613            }
614        };
615        let mut properties = crate::SmallVec::from_elem(
616            Default::default(),
617            property_count as _,
618        );
619        let mut _callback = properties_callback;
620        _callback(&mut properties);
621        let _return = _function(
622            physical_device as _,
623            display as _,
624            &mut property_count,
625            properties.as_mut_ptr(),
626        );
627        crate::utils::VulkanResult::new(_return, properties)
628    }
629    #[inline]
630    #[track_caller]
631    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDisplayPlaneCapabilities2KHR.html) · Function
632    #[doc(alias = "vkGetDisplayPlaneCapabilities2KHR")]
633    pub unsafe fn get_display_plane_capabilities2_khr(
634        &self,
635        physical_device: crate::vk1_0::PhysicalDevice,
636        display_plane_info: &crate::extensions::khr_get_display_properties2::DisplayPlaneInfo2KHR,
637        capabilities: &mut crate::extensions::khr_get_display_properties2::DisplayPlaneCapabilities2KHR,
638    ) -> crate::utils::VulkanResult<()> {
639        let _function = self
640            .get_display_plane_capabilities2_khr
641            .expect(crate::NOT_LOADED_MESSAGE);
642        let _return = _function(
643            physical_device as _,
644            display_plane_info as _,
645            capabilities as _,
646        );
647        crate::utils::VulkanResult::new(_return, ())
648    }
649}