erupt/generated/extensions/
ext_shader_image_atomic_int64.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION")]
4pub const EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME")]
7pub const EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_EXT_shader_image_atomic_int64"
9);
10///Provided by [`crate::extensions::ext_shader_image_atomic_int64`]
11impl crate::vk1_0::StructureType {
12    pub const PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: Self = Self(
13        1000234000,
14    );
15}
16impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
17for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
18impl<
19    'a,
20> crate::ExtendableFrom<'a, PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'_>>
21for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
22impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
23for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
24impl<
25    'a,
26> crate::ExtendableFrom<'a, PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'_>>
27for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
28///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html) · Structure
29#[doc(alias = "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT")]
30#[derive(Copy, Clone)]
31#[repr(C)]
32pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
33    pub s_type: crate::vk1_0::StructureType,
34    pub p_next: *mut std::ffi::c_void,
35    pub shader_image_int64_atomics: crate::vk1_0::Bool32,
36    pub sparse_image_int64_atomics: crate::vk1_0::Bool32,
37}
38impl PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
39    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
40}
41impl Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
42    fn default() -> Self {
43        Self {
44            s_type: Self::STRUCTURE_TYPE,
45            p_next: std::ptr::null_mut(),
46            shader_image_int64_atomics: Default::default(),
47            sparse_image_int64_atomics: Default::default(),
48        }
49    }
50}
51impl std::fmt::Debug for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
52    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
53        f.debug_struct("PhysicalDeviceShaderImageAtomicInt64FeaturesEXT")
54            .field("s_type", &self.s_type)
55            .field("p_next", &self.p_next)
56            .field("shader_image_int64_atomics", &(self.shader_image_int64_atomics != 0))
57            .field("sparse_image_int64_atomics", &(self.sparse_image_int64_atomics != 0))
58            .finish()
59    }
60}
61impl PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
62    #[inline]
63    pub fn into_builder<'a>(
64        self,
65    ) -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
66        PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder(
67            self,
68            std::marker::PhantomData,
69        )
70    }
71}
72#[derive(Copy, Clone)]
73///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html) · Builder of [`PhysicalDeviceShaderImageAtomicInt64FeaturesEXT`]
74#[repr(transparent)]
75pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a>(
76    PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,
77    std::marker::PhantomData<&'a ()>,
78);
79impl<'a> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
80    #[inline]
81    pub fn new() -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
82        PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder(
83            Default::default(),
84            std::marker::PhantomData,
85        )
86    }
87    #[inline]
88    #[must_use]
89    pub fn shader_image_int64_atomics(
90        mut self,
91        shader_image_int64_atomics: bool,
92    ) -> Self {
93        self.0.shader_image_int64_atomics = shader_image_int64_atomics as _;
94        self
95    }
96    #[inline]
97    #[must_use]
98    pub fn sparse_image_int64_atomics(
99        mut self,
100        sparse_image_int64_atomics: bool,
101    ) -> Self {
102        self.0.sparse_image_int64_atomics = sparse_image_int64_atomics as _;
103        self
104    }
105    #[inline]
106    /// Discards all lifetime information.
107    /// Use the `Deref` and `DerefMut` implementations if possible.
108    pub fn build_dangling(self) -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
109        self.0
110    }
111}
112impl<'a> std::default::Default
113for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
114    fn default() -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
115        Self::new()
116    }
117}
118impl<'a> std::fmt::Debug for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
119    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
120        std::fmt::Debug::fmt(&self.0, f)
121    }
122}
123impl<'a> std::ops::Deref for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
124    type Target = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
125    fn deref(&self) -> &Self::Target {
126        &self.0
127    }
128}
129impl<'a> std::ops::DerefMut
130for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
131    fn deref_mut(&mut self) -> &mut Self::Target {
132        &mut self.0
133    }
134}