erupt/generated/extensions/
qnx_screen_surface.rs1#[doc(alias = "VK_QNX_SCREEN_SURFACE_SPEC_VERSION")]
4pub const QNX_SCREEN_SURFACE_SPEC_VERSION: u32 = 1;
5#[doc(alias = "VK_QNX_SCREEN_SURFACE_EXTENSION_NAME")]
7pub const QNX_SCREEN_SURFACE_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8 "VK_QNX_screen_surface"
9);
10pub const FN_CREATE_SCREEN_SURFACE_QNX: *const std::os::raw::c_char = crate::cstr!(
12 "vkCreateScreenSurfaceQNX"
13);
14pub const FN_GET_PHYSICAL_DEVICE_SCREEN_PRESENTATION_SUPPORT_QNX: *const std::os::raw::c_char = crate::cstr!(
16 "vkGetPhysicalDeviceScreenPresentationSupportQNX"
17);
18bitflags::bitflags! {
19 #[doc =
20 "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScreenSurfaceCreateFlagsQNX.html) · Bitmask of [`ScreenSurfaceCreateFlagBitsQNX`]"]
21 #[doc(alias = "VkScreenSurfaceCreateFlagsQNX")] #[derive(Default)]
22 #[repr(transparent)] pub struct ScreenSurfaceCreateFlagsQNX : u32 {
23 #[cfg(empty_bitflag_workaround)] const EMPTY_BITFLAG_WORKAROUND = 0; }
24}
25#[doc(alias = "VkScreenSurfaceCreateFlagBitsQNX")]
27#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
28#[repr(transparent)]
29pub struct ScreenSurfaceCreateFlagBitsQNX(pub u32);
30impl ScreenSurfaceCreateFlagBitsQNX {
31 #[inline]
32 pub const fn bitmask(&self) -> ScreenSurfaceCreateFlagsQNX {
34 ScreenSurfaceCreateFlagsQNX::from_bits_truncate(self.0)
35 }
36}
37impl std::fmt::Debug for ScreenSurfaceCreateFlagBitsQNX {
38 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
39 f.write_str(
40 match self {
41 _ => "(unknown variant)",
42 },
43 )
44 }
45}
46impl crate::vk1_0::StructureType {
48 pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1000378000);
49}
50#[allow(non_camel_case_types)]
52pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn(
53 instance: crate::vk1_0::Instance,
54 p_create_info: *const crate::extensions::qnx_screen_surface::ScreenSurfaceCreateInfoQNX,
55 p_allocator: *const crate::vk1_0::AllocationCallbacks,
56 p_surface: *mut crate::extensions::khr_surface::SurfaceKHR,
57) -> crate::vk1_0::Result;
58#[allow(non_camel_case_types)]
60pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn(
61 physical_device: crate::vk1_0::PhysicalDevice,
62 queue_family_index: u32,
63 window: *mut std::ffi::c_void,
64) -> crate::vk1_0::Bool32;
65#[doc(alias = "VkScreenSurfaceCreateInfoQNX")]
67#[derive(Copy, Clone)]
68#[repr(C)]
69pub struct ScreenSurfaceCreateInfoQNX {
70 pub s_type: crate::vk1_0::StructureType,
71 pub p_next: *const std::ffi::c_void,
72 pub flags: crate::extensions::qnx_screen_surface::ScreenSurfaceCreateFlagsQNX,
73 pub context: *mut std::ffi::c_void,
74 pub window: *mut std::ffi::c_void,
75}
76impl ScreenSurfaceCreateInfoQNX {
77 pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::SCREEN_SURFACE_CREATE_INFO_QNX;
78}
79impl Default for ScreenSurfaceCreateInfoQNX {
80 fn default() -> Self {
81 Self {
82 s_type: Self::STRUCTURE_TYPE,
83 p_next: std::ptr::null(),
84 flags: Default::default(),
85 context: std::ptr::null_mut(),
86 window: std::ptr::null_mut(),
87 }
88 }
89}
90impl std::fmt::Debug for ScreenSurfaceCreateInfoQNX {
91 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
92 f.debug_struct("ScreenSurfaceCreateInfoQNX")
93 .field("s_type", &self.s_type)
94 .field("p_next", &self.p_next)
95 .field("flags", &self.flags)
96 .field("context", &self.context)
97 .field("window", &self.window)
98 .finish()
99 }
100}
101impl ScreenSurfaceCreateInfoQNX {
102 #[inline]
103 pub fn into_builder<'a>(self) -> ScreenSurfaceCreateInfoQNXBuilder<'a> {
104 ScreenSurfaceCreateInfoQNXBuilder(self, std::marker::PhantomData)
105 }
106}
107#[derive(Copy, Clone)]
108#[repr(transparent)]
110pub struct ScreenSurfaceCreateInfoQNXBuilder<'a>(
111 ScreenSurfaceCreateInfoQNX,
112 std::marker::PhantomData<&'a ()>,
113);
114impl<'a> ScreenSurfaceCreateInfoQNXBuilder<'a> {
115 #[inline]
116 pub fn new() -> ScreenSurfaceCreateInfoQNXBuilder<'a> {
117 ScreenSurfaceCreateInfoQNXBuilder(Default::default(), std::marker::PhantomData)
118 }
119 #[inline]
120 #[must_use]
121 pub fn flags(
122 mut self,
123 flags: crate::extensions::qnx_screen_surface::ScreenSurfaceCreateFlagsQNX,
124 ) -> Self {
125 self.0.flags = flags as _;
126 self
127 }
128 #[inline]
129 #[must_use]
130 pub fn context(mut self, context: *mut std::ffi::c_void) -> Self {
131 self.0.context = context;
132 self
133 }
134 #[inline]
135 #[must_use]
136 pub fn window(mut self, window: *mut std::ffi::c_void) -> Self {
137 self.0.window = window;
138 self
139 }
140 #[inline]
141 pub fn build_dangling(self) -> ScreenSurfaceCreateInfoQNX {
144 self.0
145 }
146}
147impl<'a> std::default::Default for ScreenSurfaceCreateInfoQNXBuilder<'a> {
148 fn default() -> ScreenSurfaceCreateInfoQNXBuilder<'a> {
149 Self::new()
150 }
151}
152impl<'a> std::fmt::Debug for ScreenSurfaceCreateInfoQNXBuilder<'a> {
153 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
154 std::fmt::Debug::fmt(&self.0, f)
155 }
156}
157impl<'a> std::ops::Deref for ScreenSurfaceCreateInfoQNXBuilder<'a> {
158 type Target = ScreenSurfaceCreateInfoQNX;
159 fn deref(&self) -> &Self::Target {
160 &self.0
161 }
162}
163impl<'a> std::ops::DerefMut for ScreenSurfaceCreateInfoQNXBuilder<'a> {
164 fn deref_mut(&mut self) -> &mut Self::Target {
165 &mut self.0
166 }
167}
168impl crate::InstanceLoader {
170 #[inline]
171 #[track_caller]
172 #[doc(alias = "vkCreateScreenSurfaceQNX")]
174 pub unsafe fn create_screen_surface_qnx(
175 &self,
176 create_info: &crate::extensions::qnx_screen_surface::ScreenSurfaceCreateInfoQNX,
177 allocator: Option<&crate::vk1_0::AllocationCallbacks>,
178 ) -> crate::utils::VulkanResult<crate::extensions::khr_surface::SurfaceKHR> {
179 let _function = self.create_screen_surface_qnx.expect(crate::NOT_LOADED_MESSAGE);
180 let mut surface = Default::default();
181 let _return = _function(
182 self.handle,
183 create_info as _,
184 match allocator {
185 Some(v) => v,
186 None => std::ptr::null(),
187 },
188 &mut surface,
189 );
190 crate::utils::VulkanResult::new(_return, surface)
191 }
192 #[inline]
193 #[track_caller]
194 #[doc(alias = "vkGetPhysicalDeviceScreenPresentationSupportQNX")]
196 pub unsafe fn get_physical_device_screen_presentation_support_qnx(
197 &self,
198 physical_device: crate::vk1_0::PhysicalDevice,
199 queue_family_index: u32,
200 window: *mut std::ffi::c_void,
201 ) -> bool {
202 let _function = self
203 .get_physical_device_screen_presentation_support_qnx
204 .expect(crate::NOT_LOADED_MESSAGE);
205 let _return = _function(physical_device as _, queue_family_index as _, window);
206 _return != 0
207 }
208}