erupt/generated/extensions/
khr_get_memory_requirements2.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION")]
4pub const KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME")]
7pub const KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_KHR_get_memory_requirements2"
9);
10///<s>Vulkan Manual Page</s> · Constant
11pub const FN_GET_BUFFER_MEMORY_REQUIREMENTS2_KHR: *const std::os::raw::c_char = crate::cstr!(
12    "vkGetBufferMemoryRequirements2KHR"
13);
14///<s>Vulkan Manual Page</s> · Constant
15pub const FN_GET_IMAGE_MEMORY_REQUIREMENTS2_KHR: *const std::os::raw::c_char = crate::cstr!(
16    "vkGetImageMemoryRequirements2KHR"
17);
18///<s>Vulkan Manual Page</s> · Constant
19pub const FN_GET_IMAGE_SPARSE_MEMORY_REQUIREMENTS2_KHR: *const std::os::raw::c_char = crate::cstr!(
20    "vkGetImageSparseMemoryRequirements2KHR"
21);
22///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryRequirementsInfo2KHR.html) · Alias
23#[doc(alias = "VkBufferMemoryRequirementsInfo2KHR")]
24#[allow(non_camel_case_types)]
25pub type BufferMemoryRequirementsInfo2KHR = crate::vk1_1::BufferMemoryRequirementsInfo2;
26///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryRequirementsInfo2KHR.html) · Alias
27#[doc(alias = "VkBufferMemoryRequirementsInfo2KHR")]
28#[allow(non_camel_case_types)]
29pub type BufferMemoryRequirementsInfo2KHRBuilder<'a> = crate::vk1_1::BufferMemoryRequirementsInfo2Builder<
30    'a,
31>;
32///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryRequirementsInfo2KHR.html) · Alias
33#[doc(alias = "VkImageMemoryRequirementsInfo2KHR")]
34#[allow(non_camel_case_types)]
35pub type ImageMemoryRequirementsInfo2KHR = crate::vk1_1::ImageMemoryRequirementsInfo2;
36///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageMemoryRequirementsInfo2KHR.html) · Alias
37#[doc(alias = "VkImageMemoryRequirementsInfo2KHR")]
38#[allow(non_camel_case_types)]
39pub type ImageMemoryRequirementsInfo2KHRBuilder<'a> = crate::vk1_1::ImageMemoryRequirementsInfo2Builder<
40    'a,
41>;
42///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSparseMemoryRequirementsInfo2KHR.html) · Alias
43#[doc(alias = "VkImageSparseMemoryRequirementsInfo2KHR")]
44#[allow(non_camel_case_types)]
45pub type ImageSparseMemoryRequirementsInfo2KHR = crate::vk1_1::ImageSparseMemoryRequirementsInfo2;
46///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSparseMemoryRequirementsInfo2KHR.html) · Alias
47#[doc(alias = "VkImageSparseMemoryRequirementsInfo2KHR")]
48#[allow(non_camel_case_types)]
49pub type ImageSparseMemoryRequirementsInfo2KHRBuilder<'a> = crate::vk1_1::ImageSparseMemoryRequirementsInfo2Builder<
50    'a,
51>;
52///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements2KHR.html) · Alias
53#[doc(alias = "VkMemoryRequirements2KHR")]
54#[allow(non_camel_case_types)]
55pub type MemoryRequirements2KHR = crate::vk1_1::MemoryRequirements2;
56///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements2KHR.html) · Alias
57#[doc(alias = "VkMemoryRequirements2KHR")]
58#[allow(non_camel_case_types)]
59pub type MemoryRequirements2KHRBuilder<'a> = crate::vk1_1::MemoryRequirements2Builder<
60    'a,
61>;
62///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements2KHR.html) · Alias
63#[doc(alias = "VkSparseImageMemoryRequirements2KHR")]
64#[allow(non_camel_case_types)]
65pub type SparseImageMemoryRequirements2KHR = crate::vk1_1::SparseImageMemoryRequirements2;
66///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements2KHR.html) · Alias
67#[doc(alias = "VkSparseImageMemoryRequirements2KHR")]
68#[allow(non_camel_case_types)]
69pub type SparseImageMemoryRequirements2KHRBuilder<'a> = crate::vk1_1::SparseImageMemoryRequirements2Builder<
70    'a,
71>;
72///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferMemoryRequirements2KHR.html) · Alias
73#[allow(non_camel_case_types)]
74pub type PFN_vkGetBufferMemoryRequirements2KHR = crate::vk1_1::PFN_vkGetBufferMemoryRequirements2;
75///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageMemoryRequirements2KHR.html) · Alias
76#[allow(non_camel_case_types)]
77pub type PFN_vkGetImageMemoryRequirements2KHR = crate::vk1_1::PFN_vkGetImageMemoryRequirements2;
78///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSparseMemoryRequirements2KHR.html) · Alias
79#[allow(non_camel_case_types)]
80pub type PFN_vkGetImageSparseMemoryRequirements2KHR = crate::vk1_1::PFN_vkGetImageSparseMemoryRequirements2;
81///Provided by [`crate::extensions::khr_get_memory_requirements2`]
82impl crate::vk1_0::StructureType {
83    pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
84    pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
85    pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
86    pub const MEMORY_REQUIREMENTS_2_KHR: Self = Self::MEMORY_REQUIREMENTS_2;
87    pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: Self = Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
88}
89///Provided by [`crate::extensions::khr_get_memory_requirements2`]
90impl crate::DeviceLoader {
91    #[inline]
92    #[track_caller]
93    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferMemoryRequirements2KHR.html) · Function
94    #[doc(alias = "vkGetBufferMemoryRequirements2KHR")]
95    pub unsafe fn get_buffer_memory_requirements2_khr(
96        &self,
97        info: &crate::vk1_1::BufferMemoryRequirementsInfo2,
98        memory_requirements: &mut crate::vk1_1::MemoryRequirements2,
99    ) -> () {
100        let _function = self
101            .get_buffer_memory_requirements2_khr
102            .expect(crate::NOT_LOADED_MESSAGE);
103        let _return = _function(self.handle, info as _, memory_requirements as _);
104        ()
105    }
106    #[inline]
107    #[track_caller]
108    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageMemoryRequirements2KHR.html) · Function
109    #[doc(alias = "vkGetImageMemoryRequirements2KHR")]
110    pub unsafe fn get_image_memory_requirements2_khr(
111        &self,
112        info: &crate::vk1_1::ImageMemoryRequirementsInfo2,
113        memory_requirements: &mut crate::vk1_1::MemoryRequirements2,
114    ) -> () {
115        let _function = self
116            .get_image_memory_requirements2_khr
117            .expect(crate::NOT_LOADED_MESSAGE);
118        let _return = _function(self.handle, info as _, memory_requirements as _);
119        ()
120    }
121    #[inline]
122    #[track_caller]
123    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSparseMemoryRequirements2KHR.html) · Function
124    #[doc(alias = "vkGetImageSparseMemoryRequirements2KHR")]
125    pub unsafe fn get_image_sparse_memory_requirements2_khr(
126        &self,
127        info: &crate::vk1_1::ImageSparseMemoryRequirementsInfo2,
128        sparse_memory_requirement_count: Option<u32>,
129        sparse_memory_requirements_callback: impl FnMut(
130            &mut crate::SmallVec<crate::vk1_1::SparseImageMemoryRequirements2>,
131        ) -> (),
132    ) -> crate::SmallVec<crate::vk1_1::SparseImageMemoryRequirements2> {
133        let _function = self
134            .get_image_sparse_memory_requirements2_khr
135            .expect(crate::NOT_LOADED_MESSAGE);
136        let mut sparse_memory_requirement_count = match sparse_memory_requirement_count {
137            Some(v) => v,
138            None => {
139                let mut v = Default::default();
140                _function(self.handle, info as _, &mut v, std::ptr::null_mut());
141                v
142            }
143        };
144        let mut sparse_memory_requirements = crate::SmallVec::from_elem(
145            Default::default(),
146            sparse_memory_requirement_count as _,
147        );
148        let mut _callback = sparse_memory_requirements_callback;
149        _callback(&mut sparse_memory_requirements);
150        let _return = _function(
151            self.handle,
152            info as _,
153            &mut sparse_memory_requirement_count,
154            sparse_memory_requirements.as_mut_ptr(),
155        );
156        sparse_memory_requirements
157    }
158}