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_EXT_PRIVATE_DATA_SPEC_VERSION")]
pub const EXT_PRIVATE_DATA_SPEC_VERSION: u32 = 1;
///<s>Vulkan Manual Page</s> · Constant
#[doc(alias = "VK_EXT_PRIVATE_DATA_EXTENSION_NAME")]
pub const EXT_PRIVATE_DATA_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
    "VK_EXT_private_data"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_CREATE_PRIVATE_DATA_SLOT_EXT: *const std::os::raw::c_char = crate::cstr!(
    "vkCreatePrivateDataSlotEXT"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_DESTROY_PRIVATE_DATA_SLOT_EXT: *const std::os::raw::c_char = crate::cstr!(
    "vkDestroyPrivateDataSlotEXT"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_SET_PRIVATE_DATA_EXT: *const std::os::raw::c_char = crate::cstr!(
    "vkSetPrivateDataEXT"
);
///<s>Vulkan Manual Page</s> · Constant
pub const FN_GET_PRIVATE_DATA_EXT: *const std::os::raw::c_char = crate::cstr!(
    "vkGetPrivateDataEXT"
);
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateFlagsEXT.html) · Alias
#[doc(alias = "VkPrivateDataSlotCreateFlagsEXT")]
#[allow(non_camel_case_types)]
pub type PrivateDataSlotCreateFlagsEXT = crate::vk1_3::PrivateDataSlotCreateFlags;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotEXT.html) · Alias
#[doc(alias = "VkPrivateDataSlotEXT")]
#[allow(non_camel_case_types)]
pub type PrivateDataSlotEXT = crate::vk1_3::PrivateDataSlot;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfoEXT.html) · Alias
#[doc(alias = "VkDevicePrivateDataCreateInfoEXT")]
#[allow(non_camel_case_types)]
pub type DevicePrivateDataCreateInfoEXT = crate::vk1_3::DevicePrivateDataCreateInfo;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfoEXT.html) · Alias
#[doc(alias = "VkDevicePrivateDataCreateInfoEXT")]
#[allow(non_camel_case_types)]
pub type DevicePrivateDataCreateInfoEXTBuilder<'a> = crate::vk1_3::DevicePrivateDataCreateInfoBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfoEXT.html) · Alias
#[doc(alias = "VkPrivateDataSlotCreateInfoEXT")]
#[allow(non_camel_case_types)]
pub type PrivateDataSlotCreateInfoEXT = crate::vk1_3::PrivateDataSlotCreateInfo;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfoEXT.html) · Alias
#[doc(alias = "VkPrivateDataSlotCreateInfoEXT")]
#[allow(non_camel_case_types)]
pub type PrivateDataSlotCreateInfoEXTBuilder<'a> = crate::vk1_3::PrivateDataSlotCreateInfoBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeaturesEXT.html) · Alias
#[doc(alias = "VkPhysicalDevicePrivateDataFeaturesEXT")]
#[allow(non_camel_case_types)]
pub type PhysicalDevicePrivateDataFeaturesEXT = crate::vk1_3::PhysicalDevicePrivateDataFeatures;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeaturesEXT.html) · Alias
#[doc(alias = "VkPhysicalDevicePrivateDataFeaturesEXT")]
#[allow(non_camel_case_types)]
pub type PhysicalDevicePrivateDataFeaturesEXTBuilder<'a> = crate::vk1_3::PhysicalDevicePrivateDataFeaturesBuilder<
    'a,
>;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePrivateDataSlotEXT.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkCreatePrivateDataSlotEXT = crate::vk1_3::PFN_vkCreatePrivateDataSlot;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPrivateDataSlotEXT.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkDestroyPrivateDataSlotEXT = crate::vk1_3::PFN_vkDestroyPrivateDataSlot;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSetPrivateDataEXT.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkSetPrivateDataEXT = crate::vk1_3::PFN_vkSetPrivateData;
///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPrivateDataEXT.html) · Alias
#[allow(non_camel_case_types)]
pub type PFN_vkGetPrivateDataEXT = crate::vk1_3::PFN_vkGetPrivateData;
///Provided by [`crate::extensions::ext_private_data`]
impl crate::vk1_0::StructureType {
    pub const PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: Self = Self::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
    pub const DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: Self = Self::DEVICE_PRIVATE_DATA_CREATE_INFO;
    pub const PRIVATE_DATA_SLOT_CREATE_INFO_EXT: Self = Self::PRIVATE_DATA_SLOT_CREATE_INFO;
}
///Provided by [`crate::extensions::ext_private_data`]
impl crate::vk1_0::ObjectType {
    pub const PRIVATE_DATA_SLOT_EXT: Self = Self::PRIVATE_DATA_SLOT;
}
///Provided by [`crate::extensions::ext_private_data`]
impl crate::DeviceLoader {
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePrivateDataSlotEXT.html) · Function
    #[doc(alias = "vkCreatePrivateDataSlotEXT")]
    pub unsafe fn create_private_data_slot_ext(
        &self,
        create_info: &crate::vk1_3::PrivateDataSlotCreateInfo,
        allocator: Option<&crate::vk1_0::AllocationCallbacks>,
    ) -> crate::utils::VulkanResult<crate::vk1_3::PrivateDataSlot> {
        let _function = self
            .create_private_data_slot_ext
            .expect(crate::NOT_LOADED_MESSAGE);
        let mut private_data_slot = Default::default();
        let _return = _function(
            self.handle,
            create_info as _,
            match allocator {
                Some(v) => v,
                None => std::ptr::null(),
            },
            &mut private_data_slot,
        );
        crate::utils::VulkanResult::new(_return, private_data_slot)
    }
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPrivateDataSlotEXT.html) · Function
    #[doc(alias = "vkDestroyPrivateDataSlotEXT")]
    pub unsafe fn destroy_private_data_slot_ext(
        &self,
        private_data_slot: crate::vk1_3::PrivateDataSlot,
        allocator: Option<&crate::vk1_0::AllocationCallbacks>,
    ) -> () {
        let _function = self
            .destroy_private_data_slot_ext
            .expect(crate::NOT_LOADED_MESSAGE);
        let _return = _function(
            self.handle,
            private_data_slot as _,
            match allocator {
                Some(v) => v,
                None => std::ptr::null(),
            },
        );
        ()
    }
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSetPrivateDataEXT.html) · Function
    #[doc(alias = "vkSetPrivateDataEXT")]
    pub unsafe fn set_private_data_ext(
        &self,
        object_type: crate::vk1_0::ObjectType,
        object_handle: u64,
        private_data_slot: crate::vk1_3::PrivateDataSlot,
        data: u64,
    ) -> crate::utils::VulkanResult<()> {
        let _function = self.set_private_data_ext.expect(crate::NOT_LOADED_MESSAGE);
        let _return = _function(
            self.handle,
            object_type as _,
            object_handle as _,
            private_data_slot as _,
            data as _,
        );
        crate::utils::VulkanResult::new(_return, ())
    }
    #[inline]
    #[track_caller]
    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPrivateDataEXT.html) · Function
    #[doc(alias = "vkGetPrivateDataEXT")]
    pub unsafe fn get_private_data_ext(
        &self,
        object_type: crate::vk1_0::ObjectType,
        object_handle: u64,
        private_data_slot: crate::vk1_3::PrivateDataSlot,
    ) -> u64 {
        let _function = self.get_private_data_ext.expect(crate::NOT_LOADED_MESSAGE);
        let mut data = Default::default();
        let _return = _function(
            self.handle,
            object_type as _,
            object_handle as _,
            private_data_slot as _,
            &mut data,
        );
        data
    }
}