erupt/generated/extensions/
khr_android_surface.rs1#[doc(alias = "VK_KHR_ANDROID_SURFACE_SPEC_VERSION")]
4pub const KHR_ANDROID_SURFACE_SPEC_VERSION: u32 = 6;
5#[doc(alias = "VK_KHR_ANDROID_SURFACE_EXTENSION_NAME")]
7pub const KHR_ANDROID_SURFACE_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8 "VK_KHR_android_surface"
9);
10pub const FN_CREATE_ANDROID_SURFACE_KHR: *const std::os::raw::c_char = crate::cstr!(
12 "vkCreateAndroidSurfaceKHR"
13);
14pub type ANativeWindow = std::ffi::c_void;
16bitflags::bitflags! {
17 #[doc =
18 "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAndroidSurfaceCreateFlagsKHR.html) · Bitmask of [`AndroidSurfaceCreateFlagBitsKHR`]"]
19 #[doc(alias = "VkAndroidSurfaceCreateFlagsKHR")] #[derive(Default)]
20 #[repr(transparent)] pub struct AndroidSurfaceCreateFlagsKHR : u32 {
21 #[cfg(empty_bitflag_workaround)] const EMPTY_BITFLAG_WORKAROUND = 0; }
22}
23#[doc(alias = "VkAndroidSurfaceCreateFlagBitsKHR")]
25#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
26#[repr(transparent)]
27pub struct AndroidSurfaceCreateFlagBitsKHR(pub u32);
28impl AndroidSurfaceCreateFlagBitsKHR {
29 #[inline]
30 pub const fn bitmask(&self) -> AndroidSurfaceCreateFlagsKHR {
32 AndroidSurfaceCreateFlagsKHR::from_bits_truncate(self.0)
33 }
34}
35impl std::fmt::Debug for AndroidSurfaceCreateFlagBitsKHR {
36 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
37 f.write_str(
38 match self {
39 _ => "(unknown variant)",
40 },
41 )
42 }
43}
44impl crate::vk1_0::StructureType {
46 pub const ANDROID_SURFACE_CREATE_INFO_KHR: Self = Self(1000008000);
47}
48#[allow(non_camel_case_types)]
50pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn(
51 instance: crate::vk1_0::Instance,
52 p_create_info: *const crate::extensions::khr_android_surface::AndroidSurfaceCreateInfoKHR,
53 p_allocator: *const crate::vk1_0::AllocationCallbacks,
54 p_surface: *mut crate::extensions::khr_surface::SurfaceKHR,
55) -> crate::vk1_0::Result;
56#[doc(alias = "VkAndroidSurfaceCreateInfoKHR")]
58#[derive(Copy, Clone)]
59#[repr(C)]
60pub struct AndroidSurfaceCreateInfoKHR {
61 pub s_type: crate::vk1_0::StructureType,
62 pub p_next: *const std::ffi::c_void,
63 pub flags: crate::extensions::khr_android_surface::AndroidSurfaceCreateFlagsKHR,
64 pub window: *mut crate::extensions::khr_android_surface::ANativeWindow,
65}
66impl AndroidSurfaceCreateInfoKHR {
67 pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::ANDROID_SURFACE_CREATE_INFO_KHR;
68}
69impl Default for AndroidSurfaceCreateInfoKHR {
70 fn default() -> Self {
71 Self {
72 s_type: Self::STRUCTURE_TYPE,
73 p_next: std::ptr::null(),
74 flags: Default::default(),
75 window: std::ptr::null_mut(),
76 }
77 }
78}
79impl std::fmt::Debug for AndroidSurfaceCreateInfoKHR {
80 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
81 f.debug_struct("AndroidSurfaceCreateInfoKHR")
82 .field("s_type", &self.s_type)
83 .field("p_next", &self.p_next)
84 .field("flags", &self.flags)
85 .field("window", &self.window)
86 .finish()
87 }
88}
89impl AndroidSurfaceCreateInfoKHR {
90 #[inline]
91 pub fn into_builder<'a>(self) -> AndroidSurfaceCreateInfoKHRBuilder<'a> {
92 AndroidSurfaceCreateInfoKHRBuilder(self, std::marker::PhantomData)
93 }
94}
95#[derive(Copy, Clone)]
96#[repr(transparent)]
98pub struct AndroidSurfaceCreateInfoKHRBuilder<'a>(
99 AndroidSurfaceCreateInfoKHR,
100 std::marker::PhantomData<&'a ()>,
101);
102impl<'a> AndroidSurfaceCreateInfoKHRBuilder<'a> {
103 #[inline]
104 pub fn new() -> AndroidSurfaceCreateInfoKHRBuilder<'a> {
105 AndroidSurfaceCreateInfoKHRBuilder(Default::default(), std::marker::PhantomData)
106 }
107 #[inline]
108 #[must_use]
109 pub fn flags(
110 mut self,
111 flags: crate::extensions::khr_android_surface::AndroidSurfaceCreateFlagsKHR,
112 ) -> Self {
113 self.0.flags = flags as _;
114 self
115 }
116 #[inline]
117 #[must_use]
118 pub fn window(
119 mut self,
120 window: &'a mut crate::extensions::khr_android_surface::ANativeWindow,
121 ) -> Self {
122 self.0.window = window as _;
123 self
124 }
125 #[inline]
126 pub fn build_dangling(self) -> AndroidSurfaceCreateInfoKHR {
129 self.0
130 }
131}
132impl<'a> std::default::Default for AndroidSurfaceCreateInfoKHRBuilder<'a> {
133 fn default() -> AndroidSurfaceCreateInfoKHRBuilder<'a> {
134 Self::new()
135 }
136}
137impl<'a> std::fmt::Debug for AndroidSurfaceCreateInfoKHRBuilder<'a> {
138 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
139 std::fmt::Debug::fmt(&self.0, f)
140 }
141}
142impl<'a> std::ops::Deref for AndroidSurfaceCreateInfoKHRBuilder<'a> {
143 type Target = AndroidSurfaceCreateInfoKHR;
144 fn deref(&self) -> &Self::Target {
145 &self.0
146 }
147}
148impl<'a> std::ops::DerefMut for AndroidSurfaceCreateInfoKHRBuilder<'a> {
149 fn deref_mut(&mut self) -> &mut Self::Target {
150 &mut self.0
151 }
152}
153impl crate::InstanceLoader {
155 #[inline]
156 #[track_caller]
157 #[doc(alias = "vkCreateAndroidSurfaceKHR")]
159 pub unsafe fn create_android_surface_khr(
160 &self,
161 create_info: &crate::extensions::khr_android_surface::AndroidSurfaceCreateInfoKHR,
162 allocator: Option<&crate::vk1_0::AllocationCallbacks>,
163 ) -> crate::utils::VulkanResult<crate::extensions::khr_surface::SurfaceKHR> {
164 let _function = self
165 .create_android_surface_khr
166 .expect(crate::NOT_LOADED_MESSAGE);
167 let mut surface = Default::default();
168 let _return = _function(
169 self.handle,
170 create_info as _,
171 match allocator {
172 Some(v) => v,
173 None => std::ptr::null(),
174 },
175 &mut surface,
176 );
177 crate::utils::VulkanResult::new(_return, surface)
178 }
179}