use core;
use vks;
bitflags! {
#[derive(Default)]
pub struct ExternalMemoryHandleTypeFlagsNv: vks::VkExternalMemoryHandleTypeFlagsNV {
const EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = vks::VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV;
const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = vks::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV;
const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = vks::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV;
const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = vks::VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV;
const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = vks::VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV;
}
}
pub type ExternalMemoryHandleTypeFlagBitsNv = ExternalMemoryHandleTypeFlagsNv;
bitflags! {
#[derive(Default)]
pub struct ExternalMemoryFeatureFlagsNv: vks::VkExternalMemoryFeatureFlagsNV {
const EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = vks::VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV;
const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = vks::VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV;
const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = vks::VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV;
const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = vks::VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV;
}
}
pub type ExternalMemoryFeatureFlagBitsNv = ExternalMemoryFeatureFlagsNv;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct ExternalImageFormatPropertiesNv {
pub image_format_properties: core::ImageFormatProperties,
pub external_memory_features: ExternalMemoryFeatureFlagsNv,
pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNv,
pub compatible_handle_types: ExternalMemoryHandleTypeFlagsNv,
}
impl<'a> From<&'a vks::VkExternalImageFormatPropertiesNV> for ExternalImageFormatPropertiesNv {
fn from(properties: &'a vks::VkExternalImageFormatPropertiesNV) -> Self {
ExternalImageFormatPropertiesNv {
image_format_properties: (&properties.imageFormatProperties).into(),
external_memory_features: ExternalMemoryFeatureFlagsNv::from_bits_truncate(properties.externalMemoryFeatures),
export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNv::from_bits_truncate(properties.exportFromImportedHandleTypes),
compatible_handle_types: ExternalMemoryHandleTypeFlagsNv::from_bits_truncate(properties.compatibleHandleTypes),
}
}
}