ash/extensions/khr/
display.rs1use crate::prelude::*;
4use crate::vk;
5use crate::RawPtr;
6use alloc::vec::Vec;
7use core::mem;
8
9impl crate::khr::display::Instance {
10 #[inline]
12 pub unsafe fn get_physical_device_display_properties(
13 &self,
14 physical_device: vk::PhysicalDevice,
15 ) -> VkResult<Vec<vk::DisplayPropertiesKHR<'_>>> {
16 read_into_uninitialized_vector(|count, data| {
17 (self.fp.get_physical_device_display_properties_khr)(physical_device, count, data)
18 })
19 }
20
21 #[inline]
23 pub unsafe fn get_physical_device_display_plane_properties(
24 &self,
25 physical_device: vk::PhysicalDevice,
26 ) -> VkResult<Vec<vk::DisplayPlanePropertiesKHR>> {
27 read_into_uninitialized_vector(|count, data| {
28 (self.fp.get_physical_device_display_plane_properties_khr)(physical_device, count, data)
29 })
30 }
31
32 #[inline]
34 pub unsafe fn get_display_plane_supported_displays(
35 &self,
36 physical_device: vk::PhysicalDevice,
37 plane_index: u32,
38 ) -> VkResult<Vec<vk::DisplayKHR>> {
39 read_into_uninitialized_vector(|count, data| {
40 (self.fp.get_display_plane_supported_displays_khr)(
41 physical_device,
42 plane_index,
43 count,
44 data,
45 )
46 })
47 }
48
49 #[inline]
51 pub unsafe fn get_display_mode_properties(
52 &self,
53 physical_device: vk::PhysicalDevice,
54 display: vk::DisplayKHR,
55 ) -> VkResult<Vec<vk::DisplayModePropertiesKHR>> {
56 read_into_uninitialized_vector(|count, data| {
57 (self.fp.get_display_mode_properties_khr)(physical_device, display, count, data)
58 })
59 }
60
61 #[inline]
63 pub unsafe fn create_display_mode(
64 &self,
65 physical_device: vk::PhysicalDevice,
66 display: vk::DisplayKHR,
67 create_info: &vk::DisplayModeCreateInfoKHR<'_>,
68 allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
69 ) -> VkResult<vk::DisplayModeKHR> {
70 let mut display_mode = mem::MaybeUninit::uninit();
71 (self.fp.create_display_mode_khr)(
72 physical_device,
73 display,
74 create_info,
75 allocation_callbacks.as_raw_ptr(),
76 display_mode.as_mut_ptr(),
77 )
78 .assume_init_on_success(display_mode)
79 }
80
81 #[inline]
83 pub unsafe fn get_display_plane_capabilities(
84 &self,
85 physical_device: vk::PhysicalDevice,
86 mode: vk::DisplayModeKHR,
87 plane_index: u32,
88 ) -> VkResult<vk::DisplayPlaneCapabilitiesKHR> {
89 let mut display_plane_capabilities = mem::MaybeUninit::uninit();
90 (self.fp.get_display_plane_capabilities_khr)(
91 physical_device,
92 mode,
93 plane_index,
94 display_plane_capabilities.as_mut_ptr(),
95 )
96 .assume_init_on_success(display_plane_capabilities)
97 }
98
99 #[inline]
101 pub unsafe fn create_display_plane_surface(
102 &self,
103 create_info: &vk::DisplaySurfaceCreateInfoKHR<'_>,
104 allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
105 ) -> VkResult<vk::SurfaceKHR> {
106 let mut surface = mem::MaybeUninit::uninit();
107 (self.fp.create_display_plane_surface_khr)(
108 self.handle,
109 create_info,
110 allocation_callbacks.as_raw_ptr(),
111 surface.as_mut_ptr(),
112 )
113 .assume_init_on_success(surface)
114 }
115}