erupt/generated/extensions/
amd_rasterization_order.rs

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