@@ -58,7 +58,7 @@ pub const API_VERSION_1_2: u32 = make_api_version(0, 1, 2, 0);
5858#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_API_VERSION_1_3.html>"]
5959pub const API_VERSION_1_3: u32 = make_api_version(0, 1, 3, 0);
6060#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION.html>"]
61- pub const HEADER_VERSION: u32 = 300 ;
61+ pub const HEADER_VERSION: u32 = 301 ;
6262#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HEADER_VERSION_COMPLETE.html>"]
6363pub const HEADER_VERSION_COMPLETE: u32 = make_api_version(0, 1, 3, HEADER_VERSION);
6464#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleMask.html>"]
@@ -15398,6 +15398,7 @@ impl ::core::default::Default for HdrMetadataEXT<'_> {
1539815398unsafe impl<'a> TaggedStructure for HdrMetadataEXT<'a> {
1539915399 const STRUCTURE_TYPE: StructureType = StructureType::HDR_METADATA_EXT;
1540015400}
15401+ pub unsafe trait ExtendsHdrMetadataEXT {}
1540115402impl<'a> HdrMetadataEXT<'a> {
1540215403 #[inline]
1540315404 pub fn display_primary_red(mut self, display_primary_red: XYColorEXT) -> Self {
@@ -15439,6 +15440,58 @@ impl<'a> HdrMetadataEXT<'a> {
1543915440 self.max_frame_average_light_level = max_frame_average_light_level;
1544015441 self
1544115442 }
15443+ #[doc = r" Prepends the given extension struct between the root and the first pointer. This"]
15444+ #[doc = r" method only exists on structs that can be passed to a function directly. Only"]
15445+ #[doc = r" valid extension structs can be pushed into the chain."]
15446+ #[doc = r" If the chain looks like `A -> B -> C`, and you call `x.push_next(&mut D)`, then the"]
15447+ #[doc = r" chain will look like `A -> D -> B -> C`."]
15448+ pub fn push_next<T: ExtendsHdrMetadataEXT + ?Sized>(mut self, next: &'a mut T) -> Self {
15449+ unsafe {
15450+ let next_ptr = <*const T>::cast(next);
15451+ let last_next = ptr_chain_iter(next).last().unwrap();
15452+ (*last_next).p_next = self.p_next as _;
15453+ self.p_next = next_ptr;
15454+ }
15455+ self
15456+ }
15457+ }
15458+ #[repr(C)]
15459+ #[cfg_attr(feature = "debug", derive(Debug))]
15460+ #[derive(Copy, Clone)]
15461+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkHdrVividDynamicMetadataHUAWEI.html>"]
15462+ #[must_use]
15463+ pub struct HdrVividDynamicMetadataHUAWEI<'a> {
15464+ pub s_type: StructureType,
15465+ pub p_next: *const c_void,
15466+ pub dynamic_metadata_size: usize,
15467+ pub p_dynamic_metadata: *const c_void,
15468+ pub _marker: PhantomData<&'a ()>,
15469+ }
15470+ unsafe impl Send for HdrVividDynamicMetadataHUAWEI<'_> {}
15471+ unsafe impl Sync for HdrVividDynamicMetadataHUAWEI<'_> {}
15472+ impl ::core::default::Default for HdrVividDynamicMetadataHUAWEI<'_> {
15473+ #[inline]
15474+ fn default() -> Self {
15475+ Self {
15476+ s_type: Self::STRUCTURE_TYPE,
15477+ p_next: ::core::ptr::null(),
15478+ dynamic_metadata_size: usize::default(),
15479+ p_dynamic_metadata: ::core::ptr::null(),
15480+ _marker: PhantomData,
15481+ }
15482+ }
15483+ }
15484+ unsafe impl<'a> TaggedStructure for HdrVividDynamicMetadataHUAWEI<'a> {
15485+ const STRUCTURE_TYPE: StructureType = StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI;
15486+ }
15487+ unsafe impl ExtendsHdrMetadataEXT for HdrVividDynamicMetadataHUAWEI<'_> {}
15488+ impl<'a> HdrVividDynamicMetadataHUAWEI<'a> {
15489+ #[inline]
15490+ pub fn dynamic_metadata(mut self, dynamic_metadata: &'a [u8]) -> Self {
15491+ self.dynamic_metadata_size = dynamic_metadata.len();
15492+ self.p_dynamic_metadata = dynamic_metadata.as_ptr().cast();
15493+ self
15494+ }
1544215495}
1544315496#[repr(C)]
1544415497#[cfg_attr(feature = "debug", derive(Debug))]
@@ -60238,3 +60291,39 @@ impl<'a> CooperativeMatrixFlexibleDimensionsPropertiesNV<'a> {
6023860291 self
6023960292 }
6024060293}
60294+ #[repr(C)]
60295+ #[cfg_attr(feature = "debug", derive(Debug))]
60296+ #[derive(Copy, Clone)]
60297+ #[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceHdrVividFeaturesHUAWEI.html>"]
60298+ #[must_use]
60299+ pub struct PhysicalDeviceHdrVividFeaturesHUAWEI<'a> {
60300+ pub s_type: StructureType,
60301+ pub p_next: *mut c_void,
60302+ pub hdr_vivid: Bool32,
60303+ pub _marker: PhantomData<&'a ()>,
60304+ }
60305+ unsafe impl Send for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {}
60306+ unsafe impl Sync for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {}
60307+ impl ::core::default::Default for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {
60308+ #[inline]
60309+ fn default() -> Self {
60310+ Self {
60311+ s_type: Self::STRUCTURE_TYPE,
60312+ p_next: ::core::ptr::null_mut(),
60313+ hdr_vivid: Bool32::default(),
60314+ _marker: PhantomData,
60315+ }
60316+ }
60317+ }
60318+ unsafe impl<'a> TaggedStructure for PhysicalDeviceHdrVividFeaturesHUAWEI<'a> {
60319+ const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI;
60320+ }
60321+ unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {}
60322+ unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHdrVividFeaturesHUAWEI<'_> {}
60323+ impl<'a> PhysicalDeviceHdrVividFeaturesHUAWEI<'a> {
60324+ #[inline]
60325+ pub fn hdr_vivid(mut self, hdr_vivid: bool) -> Self {
60326+ self.hdr_vivid = hdr_vivid.into();
60327+ self
60328+ }
60329+ }
0 commit comments