erupt/generated/extensions/
ext_private_data.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_EXT_PRIVATE_DATA_SPEC_VERSION")]
4pub const EXT_PRIVATE_DATA_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_EXT_PRIVATE_DATA_EXTENSION_NAME")]
7pub const EXT_PRIVATE_DATA_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_EXT_private_data"
9);
10///<s>Vulkan Manual Page</s> · Constant
11pub const FN_CREATE_PRIVATE_DATA_SLOT_EXT: *const std::os::raw::c_char = crate::cstr!(
12    "vkCreatePrivateDataSlotEXT"
13);
14///<s>Vulkan Manual Page</s> · Constant
15pub const FN_DESTROY_PRIVATE_DATA_SLOT_EXT: *const std::os::raw::c_char = crate::cstr!(
16    "vkDestroyPrivateDataSlotEXT"
17);
18///<s>Vulkan Manual Page</s> · Constant
19pub const FN_SET_PRIVATE_DATA_EXT: *const std::os::raw::c_char = crate::cstr!(
20    "vkSetPrivateDataEXT"
21);
22///<s>Vulkan Manual Page</s> · Constant
23pub const FN_GET_PRIVATE_DATA_EXT: *const std::os::raw::c_char = crate::cstr!(
24    "vkGetPrivateDataEXT"
25);
26///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateFlagsEXT.html) · Alias
27#[doc(alias = "VkPrivateDataSlotCreateFlagsEXT")]
28#[allow(non_camel_case_types)]
29pub type PrivateDataSlotCreateFlagsEXT = crate::vk1_3::PrivateDataSlotCreateFlags;
30///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotEXT.html) · Alias
31#[doc(alias = "VkPrivateDataSlotEXT")]
32#[allow(non_camel_case_types)]
33pub type PrivateDataSlotEXT = crate::vk1_3::PrivateDataSlot;
34///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfoEXT.html) · Alias
35#[doc(alias = "VkDevicePrivateDataCreateInfoEXT")]
36#[allow(non_camel_case_types)]
37pub type DevicePrivateDataCreateInfoEXT = crate::vk1_3::DevicePrivateDataCreateInfo;
38///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePrivateDataCreateInfoEXT.html) · Alias
39#[doc(alias = "VkDevicePrivateDataCreateInfoEXT")]
40#[allow(non_camel_case_types)]
41pub type DevicePrivateDataCreateInfoEXTBuilder<'a> = crate::vk1_3::DevicePrivateDataCreateInfoBuilder<
42    'a,
43>;
44///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfoEXT.html) · Alias
45#[doc(alias = "VkPrivateDataSlotCreateInfoEXT")]
46#[allow(non_camel_case_types)]
47pub type PrivateDataSlotCreateInfoEXT = crate::vk1_3::PrivateDataSlotCreateInfo;
48///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateInfoEXT.html) · Alias
49#[doc(alias = "VkPrivateDataSlotCreateInfoEXT")]
50#[allow(non_camel_case_types)]
51pub type PrivateDataSlotCreateInfoEXTBuilder<'a> = crate::vk1_3::PrivateDataSlotCreateInfoBuilder<
52    'a,
53>;
54///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeaturesEXT.html) · Alias
55#[doc(alias = "VkPhysicalDevicePrivateDataFeaturesEXT")]
56#[allow(non_camel_case_types)]
57pub type PhysicalDevicePrivateDataFeaturesEXT = crate::vk1_3::PhysicalDevicePrivateDataFeatures;
58///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePrivateDataFeaturesEXT.html) · Alias
59#[doc(alias = "VkPhysicalDevicePrivateDataFeaturesEXT")]
60#[allow(non_camel_case_types)]
61pub type PhysicalDevicePrivateDataFeaturesEXTBuilder<'a> = crate::vk1_3::PhysicalDevicePrivateDataFeaturesBuilder<
62    'a,
63>;
64///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePrivateDataSlotEXT.html) · Alias
65#[allow(non_camel_case_types)]
66pub type PFN_vkCreatePrivateDataSlotEXT = crate::vk1_3::PFN_vkCreatePrivateDataSlot;
67///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPrivateDataSlotEXT.html) · Alias
68#[allow(non_camel_case_types)]
69pub type PFN_vkDestroyPrivateDataSlotEXT = crate::vk1_3::PFN_vkDestroyPrivateDataSlot;
70///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSetPrivateDataEXT.html) · Alias
71#[allow(non_camel_case_types)]
72pub type PFN_vkSetPrivateDataEXT = crate::vk1_3::PFN_vkSetPrivateData;
73///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPrivateDataEXT.html) · Alias
74#[allow(non_camel_case_types)]
75pub type PFN_vkGetPrivateDataEXT = crate::vk1_3::PFN_vkGetPrivateData;
76///Provided by [`crate::extensions::ext_private_data`]
77impl crate::vk1_0::StructureType {
78    pub const PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: Self = Self::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
79    pub const DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: Self = Self::DEVICE_PRIVATE_DATA_CREATE_INFO;
80    pub const PRIVATE_DATA_SLOT_CREATE_INFO_EXT: Self = Self::PRIVATE_DATA_SLOT_CREATE_INFO;
81}
82///Provided by [`crate::extensions::ext_private_data`]
83impl crate::vk1_0::ObjectType {
84    pub const PRIVATE_DATA_SLOT_EXT: Self = Self::PRIVATE_DATA_SLOT;
85}
86///Provided by [`crate::extensions::ext_private_data`]
87impl crate::DeviceLoader {
88    #[inline]
89    #[track_caller]
90    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePrivateDataSlotEXT.html) · Function
91    #[doc(alias = "vkCreatePrivateDataSlotEXT")]
92    pub unsafe fn create_private_data_slot_ext(
93        &self,
94        create_info: &crate::vk1_3::PrivateDataSlotCreateInfo,
95        allocator: Option<&crate::vk1_0::AllocationCallbacks>,
96    ) -> crate::utils::VulkanResult<crate::vk1_3::PrivateDataSlot> {
97        let _function = self
98            .create_private_data_slot_ext
99            .expect(crate::NOT_LOADED_MESSAGE);
100        let mut private_data_slot = Default::default();
101        let _return = _function(
102            self.handle,
103            create_info as _,
104            match allocator {
105                Some(v) => v,
106                None => std::ptr::null(),
107            },
108            &mut private_data_slot,
109        );
110        crate::utils::VulkanResult::new(_return, private_data_slot)
111    }
112    #[inline]
113    #[track_caller]
114    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPrivateDataSlotEXT.html) · Function
115    #[doc(alias = "vkDestroyPrivateDataSlotEXT")]
116    pub unsafe fn destroy_private_data_slot_ext(
117        &self,
118        private_data_slot: crate::vk1_3::PrivateDataSlot,
119        allocator: Option<&crate::vk1_0::AllocationCallbacks>,
120    ) -> () {
121        let _function = self
122            .destroy_private_data_slot_ext
123            .expect(crate::NOT_LOADED_MESSAGE);
124        let _return = _function(
125            self.handle,
126            private_data_slot as _,
127            match allocator {
128                Some(v) => v,
129                None => std::ptr::null(),
130            },
131        );
132        ()
133    }
134    #[inline]
135    #[track_caller]
136    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSetPrivateDataEXT.html) · Function
137    #[doc(alias = "vkSetPrivateDataEXT")]
138    pub unsafe fn set_private_data_ext(
139        &self,
140        object_type: crate::vk1_0::ObjectType,
141        object_handle: u64,
142        private_data_slot: crate::vk1_3::PrivateDataSlot,
143        data: u64,
144    ) -> crate::utils::VulkanResult<()> {
145        let _function = self.set_private_data_ext.expect(crate::NOT_LOADED_MESSAGE);
146        let _return = _function(
147            self.handle,
148            object_type as _,
149            object_handle as _,
150            private_data_slot as _,
151            data as _,
152        );
153        crate::utils::VulkanResult::new(_return, ())
154    }
155    #[inline]
156    #[track_caller]
157    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPrivateDataEXT.html) · Function
158    #[doc(alias = "vkGetPrivateDataEXT")]
159    pub unsafe fn get_private_data_ext(
160        &self,
161        object_type: crate::vk1_0::ObjectType,
162        object_handle: u64,
163        private_data_slot: crate::vk1_3::PrivateDataSlot,
164    ) -> u64 {
165        let _function = self.get_private_data_ext.expect(crate::NOT_LOADED_MESSAGE);
166        let mut data = Default::default();
167        let _return = _function(
168            self.handle,
169            object_type as _,
170            object_handle as _,
171            private_data_slot as _,
172            &mut data,
173        );
174        data
175    }
176}