#[doc = "<s>Vulkan Manual Page</s> · Constant"]
#[doc(alias = "VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION")]
pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION: u32 = 1;
#[doc = "<s>Vulkan Manual Page</s> · Constant"]
#[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");
#[doc = "<s>Vulkan Manual Page</s> · Constant"]
pub const FN_GET_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: *const std::os::raw::c_char = crate::cstr!("vkGetImageDrmFormatModifierPropertiesEXT");
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html) · Function"]
#[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;
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDrmFormatModifierPropertiesListEXT.html) · Structure"]
#[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 Default for DrmFormatModifierPropertiesListEXT {
fn default() -> Self {
Self {
s_type: crate::vk1_0::StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDrmFormatModifierPropertiesListEXT.html) · Builder of [`DrmFormatModifierPropertiesListEXT`]"]
#[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]
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]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
pub fn build(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 = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDrmFormatModifierPropertiesEXT.html) · Structure"]
#[doc(alias = "VkDrmFormatModifierPropertiesEXT")]
#[derive(Copy, Clone)]
#[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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDrmFormatModifierPropertiesEXT.html) · Builder of [`DrmFormatModifierPropertiesEXT`]"]
#[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]
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 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]
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]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
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 = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html) · Structure"]
#[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 Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
fn default() -> Self {
Self {
s_type: crate::vk1_0::StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html) · Builder of [`PhysicalDeviceImageDrmFormatModifierInfoEXT`]"]
#[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]
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 sharing_mode(mut self, sharing_mode: crate::vk1_0::SharingMode) -> Self {
self.0.sharing_mode = sharing_mode as _;
self
}
#[inline]
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]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
pub fn build(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 = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html) · Structure"]
#[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 Default for ImageDrmFormatModifierListCreateInfoEXT {
fn default() -> Self {
Self {
s_type: crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html) · Builder of [`ImageDrmFormatModifierListCreateInfoEXT`]"]
#[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]
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]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
pub fn build(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 = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html) · Structure"]
#[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 Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
fn default() -> Self {
Self {
s_type: crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html) · Builder of [`ImageDrmFormatModifierExplicitCreateInfoEXT`]"]
#[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]
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 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]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
pub fn build(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 = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierPropertiesEXT.html) · Structure"]
#[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 Default for ImageDrmFormatModifierPropertiesEXT {
fn default() -> Self {
Self {
s_type: crate::vk1_0::StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
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)]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageDrmFormatModifierPropertiesEXT.html) · Builder of [`ImageDrmFormatModifierPropertiesEXT`]"]
#[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]
pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self {
self.0.drm_format_modifier = drm_format_modifier as _;
self
}
#[inline]
#[doc = "Discards all lifetime information. Use the `Deref` and `DerefMut` implementations if possible."]
pub fn build(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 = "Provided by [`crate::extensions::ext_image_drm_format_modifier`]"]
impl crate::DeviceLoader {
#[inline]
#[doc = "[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html) · Function"]
#[doc(alias = "vkGetImageDrmFormatModifierPropertiesEXT")]
pub unsafe fn get_image_drm_format_modifier_properties_ext(
&self,
image: crate::vk1_0::Image,
properties: Option<crate::extensions::ext_image_drm_format_modifier::ImageDrmFormatModifierPropertiesEXT>,
) -> crate::utils::VulkanResult<crate::extensions::ext_image_drm_format_modifier::ImageDrmFormatModifierPropertiesEXT> {
let _function = self.get_image_drm_format_modifier_properties_ext.expect("`get_image_drm_format_modifier_properties_ext` is not loaded");
let mut properties = match properties {
Some(v) => v,
None => Default::default(),
};
let _return = _function(self.handle, image as _, &mut properties);
crate::utils::VulkanResult::new(_return, properties)
}
}