erupt/generated/extensions/
qnx_screen_surface.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_QNX_SCREEN_SURFACE_SPEC_VERSION")]
4pub const QNX_SCREEN_SURFACE_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[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);
10///<s>Vulkan Manual Page</s> · Constant
11pub const FN_CREATE_SCREEN_SURFACE_QNX: *const std::os::raw::c_char = crate::cstr!(
12    "vkCreateScreenSurfaceQNX"
13);
14///<s>Vulkan Manual Page</s> · Constant
15pub 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///<s>Vulkan Manual Page</s> · Bits enum of [`ScreenSurfaceCreateFlagsQNX`]
26#[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    ///Converts this enum variant to the corresponding bitmask
33    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}
46///Provided by [`crate::extensions::qnx_screen_surface`]
47impl crate::vk1_0::StructureType {
48    pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1000378000);
49}
50///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateScreenSurfaceQNX.html) · Function
51#[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///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html) · Function
59#[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///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScreenSurfaceCreateInfoQNX.html) · Structure
66#[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///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScreenSurfaceCreateInfoQNX.html) · Builder of [`ScreenSurfaceCreateInfoQNX`]
109#[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    /// Discards all lifetime information.
142    /// Use the `Deref` and `DerefMut` implementations if possible.
143    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}
168///Provided by [`crate::extensions::qnx_screen_surface`]
169impl crate::InstanceLoader {
170    #[inline]
171    #[track_caller]
172    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateScreenSurfaceQNX.html) · Function
173    #[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    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html) · Function
195    #[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}