erupt 0.23.0+213

Vulkan API bindings
Documentation
// DO NOT EDIT: @generated by erupt's generator
///<s>Vulkan Manual Page</s> · Constant
#[doc(alias = "VK_KHR_MAINTENANCE_4_SPEC_VERSION")]
pub const KHR_MAINTENANCE_4_SPEC_VERSION: u32 = 2;
///<s>Vulkan Manual Page</s> · Constant
#[doc(alias = "VK_KHR_MAINTENANCE_4_EXTENSION_NAME")]
pub const KHR_MAINTENANCE_4_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
    "VK_KHR_maintenance4"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_GET_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR: *const std::os::raw::c_char = crate::cstr!(
    "vkGetDeviceBufferMemoryRequirementsKHR"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_GET_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR: *const std::os::raw::c_char = crate::cstr!(
    "vkGetDeviceImageMemoryRequirementsKHR"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_GET_DEVICE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_KHR: *const std::os::raw::c_char = crate::cstr!(
    "vkGetDeviceImageSparseMemoryRequirementsKHR"
);
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceBufferMemoryRequirementsKHR.html) · Alias
#[doc(alias = "VkDeviceBufferMemoryRequirementsKHR")]
#[allow(non_camel_case_types)]
pub type DeviceBufferMemoryRequirementsKHR = crate::vk1_3::DeviceBufferMemoryRequirements;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceBufferMemoryRequirementsKHR.html) · Alias
#[doc(alias = "VkDeviceBufferMemoryRequirementsKHR")]
#[allow(non_camel_case_types)]
pub type DeviceBufferMemoryRequirementsKHRBuilder<'a> = crate::vk1_3::DeviceBufferMemoryRequirementsBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceImageMemoryRequirementsKHR.html) · Alias
#[doc(alias = "VkDeviceImageMemoryRequirementsKHR")]
#[allow(non_camel_case_types)]
pub type DeviceImageMemoryRequirementsKHR = crate::vk1_3::DeviceImageMemoryRequirements;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceImageMemoryRequirementsKHR.html) · Alias
#[doc(alias = "VkDeviceImageMemoryRequirementsKHR")]
#[allow(non_camel_case_types)]
pub type DeviceImageMemoryRequirementsKHRBuilder<'a> = crate::vk1_3::DeviceImageMemoryRequirementsBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4FeaturesKHR.html) · Alias
#[doc(alias = "VkPhysicalDeviceMaintenance4FeaturesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceMaintenance4FeaturesKHR = crate::vk1_3::PhysicalDeviceMaintenance4Features;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4FeaturesKHR.html) · Alias
#[doc(alias = "VkPhysicalDeviceMaintenance4FeaturesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceMaintenance4FeaturesKHRBuilder<'a> = crate::vk1_3::PhysicalDeviceMaintenance4FeaturesBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4PropertiesKHR.html) · Alias
#[doc(alias = "VkPhysicalDeviceMaintenance4PropertiesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceMaintenance4PropertiesKHR = crate::vk1_3::PhysicalDeviceMaintenance4Properties;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance4PropertiesKHR.html) · Alias
#[doc(alias = "VkPhysicalDeviceMaintenance4PropertiesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceMaintenance4PropertiesKHRBuilder<'a> = crate::vk1_3::PhysicalDeviceMaintenance4PropertiesBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkGetDeviceBufferMemoryRequirementsKHR = crate::vk1_3::PFN_vkGetDeviceBufferMemoryRequirements;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageMemoryRequirementsKHR.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkGetDeviceImageMemoryRequirementsKHR = crate::vk1_3::PFN_vkGetDeviceImageMemoryRequirements;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = crate::vk1_3::PFN_vkGetDeviceImageSparseMemoryRequirements;
///Provided by [`crate::extensions::khr_maintenance4`]
impl crate::vk1_0::ImageAspectFlagBits {
    pub const NONE_KHR: Self = Self::NONE;
}
///Provided by [`crate::extensions::khr_maintenance4`]
impl crate::vk1_0::StructureType {
    pub const PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR: Self = Self::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
    pub const PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
    pub const DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR: Self = Self::DEVICE_BUFFER_MEMORY_REQUIREMENTS;
    pub const DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR: Self = Self::DEVICE_IMAGE_MEMORY_REQUIREMENTS;
}
///Provided by [`crate::extensions::khr_maintenance4`]
impl crate::DeviceLoader {
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html) · Function
    #[doc(alias = "vkGetDeviceBufferMemoryRequirementsKHR")]
    pub unsafe fn get_device_buffer_memory_requirements_khr(
        &self,
        info: &crate::vk1_3::DeviceBufferMemoryRequirements,
        memory_requirements: &mut crate::vk1_1::MemoryRequirements2,
    ) -> () {
        let _function = self
            .get_device_buffer_memory_requirements_khr
            .expect(crate::NOT_LOADED_MESSAGE);
        let _return = _function(self.handle, info as _, memory_requirements as _);
        ()
    }
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageMemoryRequirementsKHR.html) · Function
    #[doc(alias = "vkGetDeviceImageMemoryRequirementsKHR")]
    pub unsafe fn get_device_image_memory_requirements_khr(
        &self,
        info: &crate::vk1_3::DeviceImageMemoryRequirements,
        memory_requirements: &mut crate::vk1_1::MemoryRequirements2,
    ) -> () {
        let _function = self
            .get_device_image_memory_requirements_khr
            .expect(crate::NOT_LOADED_MESSAGE);
        let _return = _function(self.handle, info as _, memory_requirements as _);
        ()
    }
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html) · Function
    #[doc(alias = "vkGetDeviceImageSparseMemoryRequirementsKHR")]
    pub unsafe fn get_device_image_sparse_memory_requirements_khr(
        &self,
        info: &crate::vk1_3::DeviceImageMemoryRequirements,
        sparse_memory_requirement_count: Option<u32>,
        sparse_memory_requirements_callback: impl FnMut(
            &mut crate::SmallVec<crate::vk1_1::SparseImageMemoryRequirements2>,
        ) -> (),
    ) -> crate::SmallVec<crate::vk1_1::SparseImageMemoryRequirements2> {
        let _function = self
            .get_device_image_sparse_memory_requirements_khr
            .expect(crate::NOT_LOADED_MESSAGE);
        let mut sparse_memory_requirement_count = match sparse_memory_requirement_count {
            Some(v) => v,
            None => {
                let mut v = Default::default();
                _function(self.handle, info as _, &mut v, std::ptr::null_mut());
                v
            }
        };
        let mut sparse_memory_requirements = crate::SmallVec::from_elem(
            Default::default(),
            sparse_memory_requirement_count as _,
        );
        let mut _callback = sparse_memory_requirements_callback;
        _callback(&mut sparse_memory_requirements);
        let _return = _function(
            self.handle,
            info as _,
            &mut sparse_memory_requirement_count,
            sparse_memory_requirements.as_mut_ptr(),
        );
        sparse_memory_requirements
    }
}