erupt/generated/extensions/
ext_conditional_rendering.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION")]
4pub const EXT_CONDITIONAL_RENDERING_SPEC_VERSION: u32 = 2;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME")]
7pub const EXT_CONDITIONAL_RENDERING_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_EXT_conditional_rendering"
9);
10///<s>Vulkan Manual Page</s> · Constant
11pub const FN_CMD_BEGIN_CONDITIONAL_RENDERING_EXT: *const std::os::raw::c_char = crate::cstr!(
12    "vkCmdBeginConditionalRenderingEXT"
13);
14///<s>Vulkan Manual Page</s> · Constant
15pub const FN_CMD_END_CONDITIONAL_RENDERING_EXT: *const std::os::raw::c_char = crate::cstr!(
16    "vkCmdEndConditionalRenderingEXT"
17);
18///Provided by [`crate::extensions::ext_conditional_rendering`]
19impl crate::vk1_0::BufferUsageFlagBits {
20    pub const CONDITIONAL_RENDERING_EXT: Self = Self(512);
21}
22///Provided by [`crate::extensions::ext_conditional_rendering`]
23impl crate::vk1_0::AccessFlagBits {
24    pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(1048576);
25}
26///Provided by [`crate::extensions::ext_conditional_rendering`]
27impl crate::vk1_0::StructureType {
28    pub const COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: Self = Self(
29        1000081000,
30    );
31    pub const PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: Self = Self(
32        1000081001,
33    );
34    pub const CONDITIONAL_RENDERING_BEGIN_INFO_EXT: Self = Self(1000081002);
35}
36///Provided by [`crate::extensions::ext_conditional_rendering`]
37impl crate::vk1_0::PipelineStageFlagBits {
38    pub const CONDITIONAL_RENDERING_EXT: Self = Self(262144);
39}
40bitflags::bitflags! {
41    #[doc =
42    "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingFlagsEXT.html) · Bitmask of [`ConditionalRenderingFlagBitsEXT`]"]
43    #[doc(alias = "VkConditionalRenderingFlagsEXT")] #[derive(Default)]
44    #[repr(transparent)] pub struct ConditionalRenderingFlagsEXT : u32 { const
45    INVERTED_EXT = ConditionalRenderingFlagBitsEXT::INVERTED_EXT.0; }
46}
47///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingFlagBitsEXT.html) · Bits enum of [`ConditionalRenderingFlagsEXT`]
48#[doc(alias = "VkConditionalRenderingFlagBitsEXT")]
49#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
50#[repr(transparent)]
51pub struct ConditionalRenderingFlagBitsEXT(pub u32);
52impl ConditionalRenderingFlagBitsEXT {
53    #[inline]
54    ///Converts this enum variant to the corresponding bitmask
55    pub const fn bitmask(&self) -> ConditionalRenderingFlagsEXT {
56        ConditionalRenderingFlagsEXT::from_bits_truncate(self.0)
57    }
58}
59impl std::fmt::Debug for ConditionalRenderingFlagBitsEXT {
60    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
61        f.write_str(
62            match self {
63                &Self::INVERTED_EXT => "INVERTED_EXT",
64                _ => "(unknown variant)",
65            },
66        )
67    }
68}
69///Provided by [`crate::extensions::ext_conditional_rendering`]
70impl crate::extensions::ext_conditional_rendering::ConditionalRenderingFlagBitsEXT {
71    pub const INVERTED_EXT: Self = Self(1);
72}
73///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBeginConditionalRenderingEXT.html) · Function
74#[allow(non_camel_case_types)]
75pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn(
76    command_buffer: crate::vk1_0::CommandBuffer,
77    p_conditional_rendering_begin: *const crate::extensions::ext_conditional_rendering::ConditionalRenderingBeginInfoEXT,
78) -> ();
79///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdEndConditionalRenderingEXT.html) · Function
80#[allow(non_camel_case_types)]
81pub type PFN_vkCmdEndConditionalRenderingEXT = unsafe extern "system" fn(
82    command_buffer: crate::vk1_0::CommandBuffer,
83) -> ();
84impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceConditionalRenderingFeaturesEXT>
85for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
86impl<
87    'a,
88> crate::ExtendableFrom<'a, PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'_>>
89for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
90impl<'a> crate::ExtendableFrom<'a, CommandBufferInheritanceConditionalRenderingInfoEXT>
91for crate::vk1_0::CommandBufferInheritanceInfoBuilder<'a> {}
92impl<
93    'a,
94> crate::ExtendableFrom<
95    'a,
96    CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'_>,
97> for crate::vk1_0::CommandBufferInheritanceInfoBuilder<'a> {}
98impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceConditionalRenderingFeaturesEXT>
99for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
100impl<
101    'a,
102> crate::ExtendableFrom<'a, PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'_>>
103for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
104///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingBeginInfoEXT.html) · Structure
105#[doc(alias = "VkConditionalRenderingBeginInfoEXT")]
106#[derive(Copy, Clone)]
107#[repr(C)]
108pub struct ConditionalRenderingBeginInfoEXT {
109    pub s_type: crate::vk1_0::StructureType,
110    pub p_next: *const std::ffi::c_void,
111    pub buffer: crate::vk1_0::Buffer,
112    pub offset: crate::vk1_0::DeviceSize,
113    pub flags: crate::extensions::ext_conditional_rendering::ConditionalRenderingFlagsEXT,
114}
115impl ConditionalRenderingBeginInfoEXT {
116    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
117}
118impl Default for ConditionalRenderingBeginInfoEXT {
119    fn default() -> Self {
120        Self {
121            s_type: Self::STRUCTURE_TYPE,
122            p_next: std::ptr::null(),
123            buffer: Default::default(),
124            offset: Default::default(),
125            flags: Default::default(),
126        }
127    }
128}
129impl std::fmt::Debug for ConditionalRenderingBeginInfoEXT {
130    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
131        f.debug_struct("ConditionalRenderingBeginInfoEXT")
132            .field("s_type", &self.s_type)
133            .field("p_next", &self.p_next)
134            .field("buffer", &self.buffer)
135            .field("offset", &self.offset)
136            .field("flags", &self.flags)
137            .finish()
138    }
139}
140impl ConditionalRenderingBeginInfoEXT {
141    #[inline]
142    pub fn into_builder<'a>(self) -> ConditionalRenderingBeginInfoEXTBuilder<'a> {
143        ConditionalRenderingBeginInfoEXTBuilder(self, std::marker::PhantomData)
144    }
145}
146#[derive(Copy, Clone)]
147///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingBeginInfoEXT.html) · Builder of [`ConditionalRenderingBeginInfoEXT`]
148#[repr(transparent)]
149pub struct ConditionalRenderingBeginInfoEXTBuilder<'a>(
150    ConditionalRenderingBeginInfoEXT,
151    std::marker::PhantomData<&'a ()>,
152);
153impl<'a> ConditionalRenderingBeginInfoEXTBuilder<'a> {
154    #[inline]
155    pub fn new() -> ConditionalRenderingBeginInfoEXTBuilder<'a> {
156        ConditionalRenderingBeginInfoEXTBuilder(
157            Default::default(),
158            std::marker::PhantomData,
159        )
160    }
161    #[inline]
162    #[must_use]
163    pub fn buffer(mut self, buffer: crate::vk1_0::Buffer) -> Self {
164        self.0.buffer = buffer as _;
165        self
166    }
167    #[inline]
168    #[must_use]
169    pub fn offset(mut self, offset: crate::vk1_0::DeviceSize) -> Self {
170        self.0.offset = offset as _;
171        self
172    }
173    #[inline]
174    #[must_use]
175    pub fn flags(
176        mut self,
177        flags: crate::extensions::ext_conditional_rendering::ConditionalRenderingFlagsEXT,
178    ) -> Self {
179        self.0.flags = flags as _;
180        self
181    }
182    #[inline]
183    /// Discards all lifetime information.
184    /// Use the `Deref` and `DerefMut` implementations if possible.
185    pub fn build_dangling(self) -> ConditionalRenderingBeginInfoEXT {
186        self.0
187    }
188}
189impl<'a> std::default::Default for ConditionalRenderingBeginInfoEXTBuilder<'a> {
190    fn default() -> ConditionalRenderingBeginInfoEXTBuilder<'a> {
191        Self::new()
192    }
193}
194impl<'a> std::fmt::Debug for ConditionalRenderingBeginInfoEXTBuilder<'a> {
195    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
196        std::fmt::Debug::fmt(&self.0, f)
197    }
198}
199impl<'a> std::ops::Deref for ConditionalRenderingBeginInfoEXTBuilder<'a> {
200    type Target = ConditionalRenderingBeginInfoEXT;
201    fn deref(&self) -> &Self::Target {
202        &self.0
203    }
204}
205impl<'a> std::ops::DerefMut for ConditionalRenderingBeginInfoEXTBuilder<'a> {
206    fn deref_mut(&mut self) -> &mut Self::Target {
207        &mut self.0
208    }
209}
210///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html) · Structure
211#[doc(alias = "VkCommandBufferInheritanceConditionalRenderingInfoEXT")]
212#[derive(Copy, Clone)]
213#[repr(C)]
214pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
215    pub s_type: crate::vk1_0::StructureType,
216    pub p_next: *const std::ffi::c_void,
217    pub conditional_rendering_enable: crate::vk1_0::Bool32,
218}
219impl CommandBufferInheritanceConditionalRenderingInfoEXT {
220    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
221}
222impl Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
223    fn default() -> Self {
224        Self {
225            s_type: Self::STRUCTURE_TYPE,
226            p_next: std::ptr::null(),
227            conditional_rendering_enable: Default::default(),
228        }
229    }
230}
231impl std::fmt::Debug for CommandBufferInheritanceConditionalRenderingInfoEXT {
232    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
233        f.debug_struct("CommandBufferInheritanceConditionalRenderingInfoEXT")
234            .field("s_type", &self.s_type)
235            .field("p_next", &self.p_next)
236            .field(
237                "conditional_rendering_enable",
238                &(self.conditional_rendering_enable != 0),
239            )
240            .finish()
241    }
242}
243impl CommandBufferInheritanceConditionalRenderingInfoEXT {
244    #[inline]
245    pub fn into_builder<'a>(
246        self,
247    ) -> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
248        CommandBufferInheritanceConditionalRenderingInfoEXTBuilder(
249            self,
250            std::marker::PhantomData,
251        )
252    }
253}
254#[derive(Copy, Clone)]
255///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html) · Builder of [`CommandBufferInheritanceConditionalRenderingInfoEXT`]
256#[repr(transparent)]
257pub struct CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a>(
258    CommandBufferInheritanceConditionalRenderingInfoEXT,
259    std::marker::PhantomData<&'a ()>,
260);
261impl<'a> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
262    #[inline]
263    pub fn new() -> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
264        CommandBufferInheritanceConditionalRenderingInfoEXTBuilder(
265            Default::default(),
266            std::marker::PhantomData,
267        )
268    }
269    #[inline]
270    #[must_use]
271    pub fn conditional_rendering_enable(
272        mut self,
273        conditional_rendering_enable: bool,
274    ) -> Self {
275        self.0.conditional_rendering_enable = conditional_rendering_enable as _;
276        self
277    }
278    #[inline]
279    /// Discards all lifetime information.
280    /// Use the `Deref` and `DerefMut` implementations if possible.
281    pub fn build_dangling(self) -> CommandBufferInheritanceConditionalRenderingInfoEXT {
282        self.0
283    }
284}
285impl<'a> std::default::Default
286for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
287    fn default() -> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
288        Self::new()
289    }
290}
291impl<'a> std::fmt::Debug
292for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
293    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
294        std::fmt::Debug::fmt(&self.0, f)
295    }
296}
297impl<'a> std::ops::Deref
298for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
299    type Target = CommandBufferInheritanceConditionalRenderingInfoEXT;
300    fn deref(&self) -> &Self::Target {
301        &self.0
302    }
303}
304impl<'a> std::ops::DerefMut
305for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
306    fn deref_mut(&mut self) -> &mut Self::Target {
307        &mut self.0
308    }
309}
310///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html) · Structure
311#[doc(alias = "VkPhysicalDeviceConditionalRenderingFeaturesEXT")]
312#[derive(Copy, Clone)]
313#[repr(C)]
314pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
315    pub s_type: crate::vk1_0::StructureType,
316    pub p_next: *mut std::ffi::c_void,
317    pub conditional_rendering: crate::vk1_0::Bool32,
318    pub inherited_conditional_rendering: crate::vk1_0::Bool32,
319}
320impl PhysicalDeviceConditionalRenderingFeaturesEXT {
321    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
322}
323impl Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
324    fn default() -> Self {
325        Self {
326            s_type: Self::STRUCTURE_TYPE,
327            p_next: std::ptr::null_mut(),
328            conditional_rendering: Default::default(),
329            inherited_conditional_rendering: Default::default(),
330        }
331    }
332}
333impl std::fmt::Debug for PhysicalDeviceConditionalRenderingFeaturesEXT {
334    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
335        f.debug_struct("PhysicalDeviceConditionalRenderingFeaturesEXT")
336            .field("s_type", &self.s_type)
337            .field("p_next", &self.p_next)
338            .field("conditional_rendering", &(self.conditional_rendering != 0))
339            .field(
340                "inherited_conditional_rendering",
341                &(self.inherited_conditional_rendering != 0),
342            )
343            .finish()
344    }
345}
346impl PhysicalDeviceConditionalRenderingFeaturesEXT {
347    #[inline]
348    pub fn into_builder<'a>(
349        self,
350    ) -> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
351        PhysicalDeviceConditionalRenderingFeaturesEXTBuilder(
352            self,
353            std::marker::PhantomData,
354        )
355    }
356}
357#[derive(Copy, Clone)]
358///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html) · Builder of [`PhysicalDeviceConditionalRenderingFeaturesEXT`]
359#[repr(transparent)]
360pub struct PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a>(
361    PhysicalDeviceConditionalRenderingFeaturesEXT,
362    std::marker::PhantomData<&'a ()>,
363);
364impl<'a> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
365    #[inline]
366    pub fn new() -> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
367        PhysicalDeviceConditionalRenderingFeaturesEXTBuilder(
368            Default::default(),
369            std::marker::PhantomData,
370        )
371    }
372    #[inline]
373    #[must_use]
374    pub fn conditional_rendering(mut self, conditional_rendering: bool) -> Self {
375        self.0.conditional_rendering = conditional_rendering as _;
376        self
377    }
378    #[inline]
379    #[must_use]
380    pub fn inherited_conditional_rendering(
381        mut self,
382        inherited_conditional_rendering: bool,
383    ) -> Self {
384        self.0.inherited_conditional_rendering = inherited_conditional_rendering as _;
385        self
386    }
387    #[inline]
388    /// Discards all lifetime information.
389    /// Use the `Deref` and `DerefMut` implementations if possible.
390    pub fn build_dangling(self) -> PhysicalDeviceConditionalRenderingFeaturesEXT {
391        self.0
392    }
393}
394impl<'a> std::default::Default
395for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
396    fn default() -> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
397        Self::new()
398    }
399}
400impl<'a> std::fmt::Debug for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
401    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
402        std::fmt::Debug::fmt(&self.0, f)
403    }
404}
405impl<'a> std::ops::Deref for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
406    type Target = PhysicalDeviceConditionalRenderingFeaturesEXT;
407    fn deref(&self) -> &Self::Target {
408        &self.0
409    }
410}
411impl<'a> std::ops::DerefMut
412for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
413    fn deref_mut(&mut self) -> &mut Self::Target {
414        &mut self.0
415    }
416}
417///Provided by [`crate::extensions::ext_conditional_rendering`]
418impl crate::DeviceLoader {
419    #[inline]
420    #[track_caller]
421    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBeginConditionalRenderingEXT.html) · Function
422    #[doc(alias = "vkCmdBeginConditionalRenderingEXT")]
423    pub unsafe fn cmd_begin_conditional_rendering_ext(
424        &self,
425        command_buffer: crate::vk1_0::CommandBuffer,
426        conditional_rendering_begin: &crate::extensions::ext_conditional_rendering::ConditionalRenderingBeginInfoEXT,
427    ) -> () {
428        let _function = self
429            .cmd_begin_conditional_rendering_ext
430            .expect(crate::NOT_LOADED_MESSAGE);
431        let _return = _function(command_buffer as _, conditional_rendering_begin as _);
432        ()
433    }
434    #[inline]
435    #[track_caller]
436    ///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdEndConditionalRenderingEXT.html) · Function
437    #[doc(alias = "vkCmdEndConditionalRenderingEXT")]
438    pub unsafe fn cmd_end_conditional_rendering_ext(
439        &self,
440        command_buffer: crate::vk1_0::CommandBuffer,
441    ) -> () {
442        let _function = self
443            .cmd_end_conditional_rendering_ext
444            .expect(crate::NOT_LOADED_MESSAGE);
445        let _return = _function(command_buffer as _);
446        ()
447    }
448}