use nv_external_memory_capabilities;
use vks;
gen_chain_struct! {
name: ExternalMemoryImageCreateInfoChainNv [ExternalMemoryImageCreateInfoChainNvWrapper],
query: ExternalMemoryImageCreateInfoChainQueryNv [ExternalMemoryImageCreateInfoChainQueryNvWrapper],
vks: VkExternalMemoryImageCreateInfoNV,
input: true,
output: false,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ExternalMemoryImageCreateInfoNv {
pub handle_types: nv_external_memory_capabilities::ExternalMemoryHandleTypeFlagsNv,
pub chain: Option<ExternalMemoryImageCreateInfoChainNv>,
}
#[derive(Debug)]
pub(crate) struct VkExternalMemoryImageCreateInfoNVWrapper {
pub vks_struct: vks::VkExternalMemoryImageCreateInfoNV,
chain: Option<ExternalMemoryImageCreateInfoChainNvWrapper>,
}
impl VkExternalMemoryImageCreateInfoNVWrapper {
pub fn new(create_info: &ExternalMemoryImageCreateInfoNv, with_chain: bool) -> Self {
let (pnext, chain) = ExternalMemoryImageCreateInfoChainNvWrapper::new_optional(&create_info.chain, with_chain);
VkExternalMemoryImageCreateInfoNVWrapper {
vks_struct: vks::VkExternalMemoryImageCreateInfoNV {
sType: vks::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
pNext: pnext,
handleTypes: create_info.handle_types.bits(),
},
chain: chain,
}
}
}
gen_chain_struct! {
name: ExportMemoryAllocateInfoChainNv [ExportMemoryAllocateInfoChainNvWrapper],
query: ExportMemoryAllocateInfoChainQueryNv [ExportMemoryAllocateInfoChainQueryNvWrapper],
vks: VkExportMemoryAllocateInfoNV,
input: true,
output: false,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ExportMemoryAllocateInfoNv {
pub handle_types: nv_external_memory_capabilities::ExternalMemoryHandleTypeFlagBitsNv,
pub chain: Option<ExportMemoryAllocateInfoChainNv>,
}
#[derive(Debug)]
pub(crate) struct VkExportMemoryAllocateInfoNVWrapper {
pub vks_struct: vks::VkExportMemoryAllocateInfoNV,
chain: Option<ExportMemoryAllocateInfoChainNvWrapper>,
}
impl VkExportMemoryAllocateInfoNVWrapper {
pub fn new(info: &ExportMemoryAllocateInfoNv, with_chain: bool) -> Self {
let (pnext, chain) = ExportMemoryAllocateInfoChainNvWrapper::new_optional(&info.chain, with_chain);
VkExportMemoryAllocateInfoNVWrapper {
vks_struct: vks::VkExportMemoryAllocateInfoNV {
sType: vks::VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
pNext: pnext,
handleTypes: info.handle_types.bits(),
},
chain: chain,
}
}
}