#[doc(alias = "VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION")]
pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION: u32 = 2;
#[doc(alias = "VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME")]
pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
"VK_EXT_image_drm_format_modifier"
);
pub const FN_GET_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: *const std::os::raw::c_char = crate::cstr!(
"vkGetImageDrmFormatModifierPropertiesEXT"
);
impl crate::vk1_0::ImageAspectFlagBits {
pub const MEMORY_PLANE_0_EXT: Self = Self(128);
pub const MEMORY_PLANE_1_EXT: Self = Self(256);
pub const MEMORY_PLANE_2_EXT: Self = Self(512);
pub const MEMORY_PLANE_3_EXT: Self = Self(1024);
}
impl crate::vk1_0::ImageTiling {
pub const DRM_FORMAT_MODIFIER_EXT: Self = Self(1000158000);
}
impl crate::vk1_0::Result {
pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: Self = Self(
-1000158000,
);
}
impl crate::vk1_0::StructureType {
pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: Self = Self(1000158000);
pub const PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: Self = Self(
1000158002,
);
pub const IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: Self = Self(1000158003);
pub const IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: Self = Self(
1000158004,
);
pub const IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: Self = Self(1000158005);
pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: Self = Self(1000158006);
}
#[allow(non_camel_case_types)]
pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn(
device: crate::vk1_0::Device,
image: crate::vk1_0::Image,
p_properties: *mut crate::extensions::ext_image_drm_format_modifier::ImageDrmFormatModifierPropertiesEXT,
) -> crate::vk1_0::Result;
impl<'a> crate::ExtendableFrom<'a, ImageDrmFormatModifierListCreateInfoEXT>
for crate::vk1_0::ImageCreateInfoBuilder<'a> {}
impl<'a> crate::ExtendableFrom<'a, ImageDrmFormatModifierListCreateInfoEXTBuilder<'_>>
for crate::vk1_0::ImageCreateInfoBuilder<'a> {}
impl<'a> crate::ExtendableFrom<'a, ImageDrmFormatModifierExplicitCreateInfoEXT>
for crate::vk1_0::ImageCreateInfoBuilder<'a> {}
impl<
'a,
> crate::ExtendableFrom<'a, ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'_>>
for crate::vk1_0::ImageCreateInfoBuilder<'a> {}
impl<'a> crate::ExtendableFrom<'a, DrmFormatModifierPropertiesListEXT>
for crate::vk1_1::FormatProperties2Builder<'a> {}
impl<'a> crate::ExtendableFrom<'a, DrmFormatModifierPropertiesListEXTBuilder<'_>>
for crate::vk1_1::FormatProperties2Builder<'a> {}
impl<'a> crate::ExtendableFrom<'a, DrmFormatModifierPropertiesList2EXT>
for crate::vk1_1::FormatProperties2Builder<'a> {}
impl<'a> crate::ExtendableFrom<'a, DrmFormatModifierPropertiesList2EXTBuilder<'_>>
for crate::vk1_1::FormatProperties2Builder<'a> {}
impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceImageDrmFormatModifierInfoEXT>
for crate::vk1_1::PhysicalDeviceImageFormatInfo2Builder<'a> {}
impl<
'a,
> crate::ExtendableFrom<'a, PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'_>>
for crate::vk1_1::PhysicalDeviceImageFormatInfo2Builder<'a> {}
#[doc(alias = "VkDrmFormatModifierPropertiesListEXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct DrmFormatModifierPropertiesListEXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *mut std::ffi::c_void,
pub drm_format_modifier_count: u32,
pub p_drm_format_modifier_properties: *mut crate::extensions::ext_image_drm_format_modifier::DrmFormatModifierPropertiesEXT,
}
impl DrmFormatModifierPropertiesListEXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
}
impl Default for DrmFormatModifierPropertiesListEXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null_mut(),
drm_format_modifier_count: Default::default(),
p_drm_format_modifier_properties: std::ptr::null_mut(),
}
}
}
impl std::fmt::Debug for DrmFormatModifierPropertiesListEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DrmFormatModifierPropertiesListEXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier_count", &self.drm_format_modifier_count)
.field(
"p_drm_format_modifier_properties",
&self.p_drm_format_modifier_properties,
)
.finish()
}
}
impl DrmFormatModifierPropertiesListEXT {
#[inline]
pub fn into_builder<'a>(self) -> DrmFormatModifierPropertiesListEXTBuilder<'a> {
DrmFormatModifierPropertiesListEXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct DrmFormatModifierPropertiesListEXTBuilder<'a>(
DrmFormatModifierPropertiesListEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> DrmFormatModifierPropertiesListEXTBuilder<'a> {
#[inline]
pub fn new() -> DrmFormatModifierPropertiesListEXTBuilder<'a> {
DrmFormatModifierPropertiesListEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier_properties(
mut self,
drm_format_modifier_properties: &'a mut [crate::extensions::ext_image_drm_format_modifier::DrmFormatModifierPropertiesEXTBuilder],
) -> Self {
self
.0
.p_drm_format_modifier_properties = drm_format_modifier_properties.as_ptr()
as _;
self.0.drm_format_modifier_count = drm_format_modifier_properties.len() as _;
self
}
#[inline]
pub fn build_dangling(self) -> DrmFormatModifierPropertiesListEXT {
self.0
}
}
impl<'a> std::default::Default for DrmFormatModifierPropertiesListEXTBuilder<'a> {
fn default() -> DrmFormatModifierPropertiesListEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for DrmFormatModifierPropertiesListEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for DrmFormatModifierPropertiesListEXTBuilder<'a> {
type Target = DrmFormatModifierPropertiesListEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for DrmFormatModifierPropertiesListEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkDrmFormatModifierPropertiesEXT")]
#[derive(Copy, Clone, Hash, PartialEq, Eq)]
#[repr(C)]
pub struct DrmFormatModifierPropertiesEXT {
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub drm_format_modifier_tiling_features: crate::vk1_0::FormatFeatureFlags,
}
impl Default for DrmFormatModifierPropertiesEXT {
fn default() -> Self {
Self {
drm_format_modifier: Default::default(),
drm_format_modifier_plane_count: Default::default(),
drm_format_modifier_tiling_features: Default::default(),
}
}
}
impl std::fmt::Debug for DrmFormatModifierPropertiesEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DrmFormatModifierPropertiesEXT")
.field("drm_format_modifier", &self.drm_format_modifier)
.field(
"drm_format_modifier_plane_count",
&self.drm_format_modifier_plane_count,
)
.field(
"drm_format_modifier_tiling_features",
&self.drm_format_modifier_tiling_features,
)
.finish()
}
}
impl DrmFormatModifierPropertiesEXT {
#[inline]
pub fn into_builder<'a>(self) -> DrmFormatModifierPropertiesEXTBuilder<'a> {
DrmFormatModifierPropertiesEXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct DrmFormatModifierPropertiesEXTBuilder<'a>(
DrmFormatModifierPropertiesEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> DrmFormatModifierPropertiesEXTBuilder<'a> {
#[inline]
pub fn new() -> DrmFormatModifierPropertiesEXTBuilder<'a> {
DrmFormatModifierPropertiesEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
#[must_use]
pub fn drm_format_modifier_plane_count(
mut self,
drm_format_modifier_plane_count: u32,
) -> Self {
self.0.drm_format_modifier_plane_count = drm_format_modifier_plane_count as _;
self
}
#[inline]
#[must_use]
pub fn drm_format_modifier_tiling_features(
mut self,
drm_format_modifier_tiling_features: crate::vk1_0::FormatFeatureFlags,
) -> Self {
self
.0
.drm_format_modifier_tiling_features = drm_format_modifier_tiling_features
as _;
self
}
#[inline]
pub fn build(self) -> DrmFormatModifierPropertiesEXT {
self.0
}
}
impl<'a> std::default::Default for DrmFormatModifierPropertiesEXTBuilder<'a> {
fn default() -> DrmFormatModifierPropertiesEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for DrmFormatModifierPropertiesEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for DrmFormatModifierPropertiesEXTBuilder<'a> {
type Target = DrmFormatModifierPropertiesEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for DrmFormatModifierPropertiesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkPhysicalDeviceImageDrmFormatModifierInfoEXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *const std::ffi::c_void,
pub drm_format_modifier: u64,
pub sharing_mode: crate::vk1_0::SharingMode,
pub queue_family_index_count: u32,
pub p_queue_family_indices: *const u32,
}
impl PhysicalDeviceImageDrmFormatModifierInfoEXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
}
impl Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null(),
drm_format_modifier: Default::default(),
sharing_mode: Default::default(),
queue_family_index_count: Default::default(),
p_queue_family_indices: std::ptr::null(),
}
}
}
impl std::fmt::Debug for PhysicalDeviceImageDrmFormatModifierInfoEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("PhysicalDeviceImageDrmFormatModifierInfoEXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier", &self.drm_format_modifier)
.field("sharing_mode", &self.sharing_mode)
.field("queue_family_index_count", &self.queue_family_index_count)
.field("p_queue_family_indices", &self.p_queue_family_indices)
.finish()
}
}
impl PhysicalDeviceImageDrmFormatModifierInfoEXT {
#[inline]
pub fn into_builder<'a>(
self,
) -> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder(
self,
std::marker::PhantomData,
)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a>(
PhysicalDeviceImageDrmFormatModifierInfoEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
#[inline]
pub fn new() -> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
#[must_use]
pub fn sharing_mode(mut self, sharing_mode: crate::vk1_0::SharingMode) -> Self {
self.0.sharing_mode = sharing_mode as _;
self
}
#[inline]
#[must_use]
pub fn queue_family_indices(mut self, queue_family_indices: &'a [u32]) -> Self {
self.0.p_queue_family_indices = queue_family_indices.as_ptr() as _;
self.0.queue_family_index_count = queue_family_indices.len() as _;
self
}
#[inline]
pub fn build_dangling(self) -> PhysicalDeviceImageDrmFormatModifierInfoEXT {
self.0
}
}
impl<'a> std::default::Default
for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
fn default() -> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
type Target = PhysicalDeviceImageDrmFormatModifierInfoEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkImageDrmFormatModifierListCreateInfoEXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct ImageDrmFormatModifierListCreateInfoEXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *const std::ffi::c_void,
pub drm_format_modifier_count: u32,
pub p_drm_format_modifiers: *const u64,
}
impl ImageDrmFormatModifierListCreateInfoEXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
}
impl Default for ImageDrmFormatModifierListCreateInfoEXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null(),
drm_format_modifier_count: Default::default(),
p_drm_format_modifiers: std::ptr::null(),
}
}
}
impl std::fmt::Debug for ImageDrmFormatModifierListCreateInfoEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("ImageDrmFormatModifierListCreateInfoEXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier_count", &self.drm_format_modifier_count)
.field("p_drm_format_modifiers", &self.p_drm_format_modifiers)
.finish()
}
}
impl ImageDrmFormatModifierListCreateInfoEXT {
#[inline]
pub fn into_builder<'a>(self) -> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
ImageDrmFormatModifierListCreateInfoEXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct ImageDrmFormatModifierListCreateInfoEXTBuilder<'a>(
ImageDrmFormatModifierListCreateInfoEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
#[inline]
pub fn new() -> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
ImageDrmFormatModifierListCreateInfoEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifiers(mut self, drm_format_modifiers: &'a [u64]) -> Self {
self.0.p_drm_format_modifiers = drm_format_modifiers.as_ptr() as _;
self.0.drm_format_modifier_count = drm_format_modifiers.len() as _;
self
}
#[inline]
pub fn build_dangling(self) -> ImageDrmFormatModifierListCreateInfoEXT {
self.0
}
}
impl<'a> std::default::Default for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
fn default() -> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
type Target = ImageDrmFormatModifierListCreateInfoEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkImageDrmFormatModifierExplicitCreateInfoEXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *const std::ffi::c_void,
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub p_plane_layouts: *const crate::vk1_0::SubresourceLayout,
}
impl ImageDrmFormatModifierExplicitCreateInfoEXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
}
impl Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null(),
drm_format_modifier: Default::default(),
drm_format_modifier_plane_count: Default::default(),
p_plane_layouts: std::ptr::null(),
}
}
}
impl std::fmt::Debug for ImageDrmFormatModifierExplicitCreateInfoEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("ImageDrmFormatModifierExplicitCreateInfoEXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier", &self.drm_format_modifier)
.field(
"drm_format_modifier_plane_count",
&self.drm_format_modifier_plane_count,
)
.field("p_plane_layouts", &self.p_plane_layouts)
.finish()
}
}
impl ImageDrmFormatModifierExplicitCreateInfoEXT {
#[inline]
pub fn into_builder<'a>(
self,
) -> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
ImageDrmFormatModifierExplicitCreateInfoEXTBuilder(
self,
std::marker::PhantomData,
)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a>(
ImageDrmFormatModifierExplicitCreateInfoEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
#[inline]
pub fn new() -> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
ImageDrmFormatModifierExplicitCreateInfoEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
#[must_use]
pub fn plane_layouts(
mut self,
plane_layouts: &'a [crate::vk1_0::SubresourceLayoutBuilder],
) -> Self {
self.0.p_plane_layouts = plane_layouts.as_ptr() as _;
self.0.drm_format_modifier_plane_count = plane_layouts.len() as _;
self
}
#[inline]
pub fn build_dangling(self) -> ImageDrmFormatModifierExplicitCreateInfoEXT {
self.0
}
}
impl<'a> std::default::Default
for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
fn default() -> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
type Target = ImageDrmFormatModifierExplicitCreateInfoEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkImageDrmFormatModifierPropertiesEXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct ImageDrmFormatModifierPropertiesEXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *mut std::ffi::c_void,
pub drm_format_modifier: u64,
}
impl ImageDrmFormatModifierPropertiesEXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
}
impl Default for ImageDrmFormatModifierPropertiesEXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null_mut(),
drm_format_modifier: Default::default(),
}
}
}
impl std::fmt::Debug for ImageDrmFormatModifierPropertiesEXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("ImageDrmFormatModifierPropertiesEXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier", &self.drm_format_modifier)
.finish()
}
}
impl ImageDrmFormatModifierPropertiesEXT {
#[inline]
pub fn into_builder<'a>(self) -> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
ImageDrmFormatModifierPropertiesEXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct ImageDrmFormatModifierPropertiesEXTBuilder<'a>(
ImageDrmFormatModifierPropertiesEXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
#[inline]
pub fn new() -> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
ImageDrmFormatModifierPropertiesEXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
pub fn build_dangling(self) -> ImageDrmFormatModifierPropertiesEXT {
self.0
}
}
impl<'a> std::default::Default for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
fn default() -> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
type Target = ImageDrmFormatModifierPropertiesEXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkDrmFormatModifierPropertiesList2EXT")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct DrmFormatModifierPropertiesList2EXT {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *mut std::ffi::c_void,
pub drm_format_modifier_count: u32,
pub p_drm_format_modifier_properties: *mut crate::extensions::ext_image_drm_format_modifier::DrmFormatModifierProperties2EXT,
}
impl DrmFormatModifierPropertiesList2EXT {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
}
impl Default for DrmFormatModifierPropertiesList2EXT {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null_mut(),
drm_format_modifier_count: Default::default(),
p_drm_format_modifier_properties: std::ptr::null_mut(),
}
}
}
impl std::fmt::Debug for DrmFormatModifierPropertiesList2EXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DrmFormatModifierPropertiesList2EXT")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("drm_format_modifier_count", &self.drm_format_modifier_count)
.field(
"p_drm_format_modifier_properties",
&self.p_drm_format_modifier_properties,
)
.finish()
}
}
impl DrmFormatModifierPropertiesList2EXT {
#[inline]
pub fn into_builder<'a>(self) -> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
DrmFormatModifierPropertiesList2EXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct DrmFormatModifierPropertiesList2EXTBuilder<'a>(
DrmFormatModifierPropertiesList2EXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
#[inline]
pub fn new() -> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
DrmFormatModifierPropertiesList2EXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier_properties(
mut self,
drm_format_modifier_properties: &'a mut [crate::extensions::ext_image_drm_format_modifier::DrmFormatModifierProperties2EXTBuilder],
) -> Self {
self
.0
.p_drm_format_modifier_properties = drm_format_modifier_properties.as_ptr()
as _;
self.0.drm_format_modifier_count = drm_format_modifier_properties.len() as _;
self
}
#[inline]
pub fn build_dangling(self) -> DrmFormatModifierPropertiesList2EXT {
self.0
}
}
impl<'a> std::default::Default for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
fn default() -> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
type Target = DrmFormatModifierPropertiesList2EXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkDrmFormatModifierProperties2EXT")]
#[derive(Copy, Clone, Hash, PartialEq, Eq)]
#[repr(C)]
pub struct DrmFormatModifierProperties2EXT {
pub drm_format_modifier: u64,
pub drm_format_modifier_plane_count: u32,
pub drm_format_modifier_tiling_features: crate::vk1_3::FormatFeatureFlags2,
}
impl Default for DrmFormatModifierProperties2EXT {
fn default() -> Self {
Self {
drm_format_modifier: Default::default(),
drm_format_modifier_plane_count: Default::default(),
drm_format_modifier_tiling_features: Default::default(),
}
}
}
impl std::fmt::Debug for DrmFormatModifierProperties2EXT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DrmFormatModifierProperties2EXT")
.field("drm_format_modifier", &self.drm_format_modifier)
.field(
"drm_format_modifier_plane_count",
&self.drm_format_modifier_plane_count,
)
.field(
"drm_format_modifier_tiling_features",
&self.drm_format_modifier_tiling_features,
)
.finish()
}
}
impl DrmFormatModifierProperties2EXT {
#[inline]
pub fn into_builder<'a>(self) -> DrmFormatModifierProperties2EXTBuilder<'a> {
DrmFormatModifierProperties2EXTBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct DrmFormatModifierProperties2EXTBuilder<'a>(
DrmFormatModifierProperties2EXT,
std::marker::PhantomData<&'a ()>,
);
impl<'a> DrmFormatModifierProperties2EXTBuilder<'a> {
#[inline]
pub fn new() -> DrmFormatModifierProperties2EXTBuilder<'a> {
DrmFormatModifierProperties2EXTBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
#[must_use]
pub fn drm_format_modifier_plane_count(
mut self,
drm_format_modifier_plane_count: u32,
) -> Self {
self.0.drm_format_modifier_plane_count = drm_format_modifier_plane_count as _;
self
}
#[inline]
#[must_use]
pub fn drm_format_modifier_tiling_features(
mut self,
drm_format_modifier_tiling_features: crate::vk1_3::FormatFeatureFlags2,
) -> Self {
self
.0
.drm_format_modifier_tiling_features = drm_format_modifier_tiling_features
as _;
self
}
#[inline]
pub fn build(self) -> DrmFormatModifierProperties2EXT {
self.0
}
}
impl<'a> std::default::Default for DrmFormatModifierProperties2EXTBuilder<'a> {
fn default() -> DrmFormatModifierProperties2EXTBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for DrmFormatModifierProperties2EXTBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for DrmFormatModifierProperties2EXTBuilder<'a> {
type Target = DrmFormatModifierProperties2EXT;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for DrmFormatModifierProperties2EXTBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl crate::DeviceLoader {
#[inline]
#[track_caller]
#[doc(alias = "vkGetImageDrmFormatModifierPropertiesEXT")]
pub unsafe fn get_image_drm_format_modifier_properties_ext(
&self,
image: crate::vk1_0::Image,
properties: &mut crate::extensions::ext_image_drm_format_modifier::ImageDrmFormatModifierPropertiesEXT,
) -> crate::utils::VulkanResult<()> {
let _function = self
.get_image_drm_format_modifier_properties_ext
.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(self.handle, image as _, properties as _);
crate::utils::VulkanResult::new(_return, ())
}
}