#![allow(unused_imports)]
use crate::{vk::Result as VkResult, vk::*, *};
use core::ffi::{CStr, c_char, c_int, c_void};
use core::mem::transmute;
use core::ptr;
pub const EXTENSION_NAME: &CStr = c"VK_KHR_copy_commands2";
pub(super) mod defs {
#![allow(non_camel_case_types, unused_imports)]
use crate::{vk::*, *};
use core::ffi::{CStr, c_char, c_int, c_void};
use core::fmt;
use core::marker::PhantomData;
use core::ptr;
pub type BufferCopy2KHR<'a> = BufferCopy2<'a>;
pub type ImageCopy2KHR<'a> = ImageCopy2<'a>;
pub type ImageBlit2KHR<'a> = ImageBlit2<'a>;
pub type BufferImageCopy2KHR<'a> = BufferImageCopy2<'a>;
pub type ImageResolve2KHR<'a> = ImageResolve2<'a>;
pub type CopyBufferInfo2KHR<'a> = CopyBufferInfo2<'a>;
pub type CopyImageInfo2KHR<'a> = CopyImageInfo2<'a>;
pub type BlitImageInfo2KHR<'a> = BlitImageInfo2<'a>;
pub type CopyBufferToImageInfo2KHR<'a> = CopyBufferToImageInfo2<'a>;
pub type CopyImageToBufferInfo2KHR<'a> = CopyImageToBufferInfo2<'a>;
pub type ResolveImageInfo2KHR<'a> = ResolveImageInfo2<'a>;
pub type PFN_vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2;
pub type PFN_vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2;
pub type PFN_vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2;
pub type PFN_vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2;
pub type PFN_vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2;
pub type PFN_vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2;
}
#[cfg(feature = "ffi")]
pub(super) mod ffi {
#![allow(non_camel_case_types)]
use super::defs::*;
pub type VkBufferCopy2KHR = BufferCopy2KHR<'static>;
pub type VkImageCopy2KHR = ImageCopy2KHR<'static>;
pub type VkImageBlit2KHR = ImageBlit2KHR<'static>;
pub type VkBufferImageCopy2KHR = BufferImageCopy2KHR<'static>;
pub type VkImageResolve2KHR = ImageResolve2KHR<'static>;
pub type VkCopyBufferInfo2KHR = CopyBufferInfo2KHR<'static>;
pub type VkCopyImageInfo2KHR = CopyImageInfo2KHR<'static>;
pub type VkBlitImageInfo2KHR = BlitImageInfo2KHR<'static>;
pub type VkCopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR<'static>;
pub type VkCopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR<'static>;
pub type VkResolveImageInfo2KHR = ResolveImageInfo2KHR<'static>;
}
pub struct DeviceFn {
cmd_copy_buffer2: PFN_vkCmdCopyBuffer2,
cmd_copy_image2: PFN_vkCmdCopyImage2,
cmd_copy_buffer_to_image2: PFN_vkCmdCopyBufferToImage2,
cmd_copy_image_to_buffer2: PFN_vkCmdCopyImageToBuffer2,
cmd_blit_image2: PFN_vkCmdBlitImage2,
cmd_resolve_image2: PFN_vkCmdResolveImage2,
}
impl LoadDeviceFn for DeviceFn {
unsafe fn load_with(
load: impl Fn(&CStr) -> Option<PFN_vkVoidFunction>,
) -> core::result::Result<Self, MissingEntryPointError> {
unsafe {
Ok(Self {
cmd_copy_buffer2: transmute(
load(c"vkCmdCopyBuffer2KHR").ok_or(MissingEntryPointError)?,
),
cmd_copy_image2: transmute(
load(c"vkCmdCopyImage2KHR").ok_or(MissingEntryPointError)?,
),
cmd_copy_buffer_to_image2: transmute(
load(c"vkCmdCopyBufferToImage2KHR").ok_or(MissingEntryPointError)?,
),
cmd_copy_image_to_buffer2: transmute(
load(c"vkCmdCopyImageToBuffer2KHR").ok_or(MissingEntryPointError)?,
),
cmd_blit_image2: transmute(
load(c"vkCmdBlitImage2KHR").ok_or(MissingEntryPointError)?,
),
cmd_resolve_image2: transmute(
load(c"vkCmdResolveImage2KHR").ok_or(MissingEntryPointError)?,
),
})
}
}
}
impl DeviceFn {
#[inline]
pub unsafe fn cmd_copy_buffer2(
&self,
command_buffer: CommandBuffer,
copy_buffer_info: &CopyBufferInfo2<'_>,
) {
unsafe { (self.cmd_copy_buffer2)(command_buffer, copy_buffer_info) }
}
#[inline]
pub unsafe fn cmd_copy_image2(
&self,
command_buffer: CommandBuffer,
copy_image_info: &CopyImageInfo2<'_>,
) {
unsafe { (self.cmd_copy_image2)(command_buffer, copy_image_info) }
}
#[inline]
pub unsafe fn cmd_copy_buffer_to_image2(
&self,
command_buffer: CommandBuffer,
copy_buffer_to_image_info: &CopyBufferToImageInfo2<'_>,
) {
unsafe { (self.cmd_copy_buffer_to_image2)(command_buffer, copy_buffer_to_image_info) }
}
#[inline]
pub unsafe fn cmd_copy_image_to_buffer2(
&self,
command_buffer: CommandBuffer,
copy_image_to_buffer_info: &CopyImageToBufferInfo2<'_>,
) {
unsafe { (self.cmd_copy_image_to_buffer2)(command_buffer, copy_image_to_buffer_info) }
}
#[inline]
pub unsafe fn cmd_blit_image2(
&self,
command_buffer: CommandBuffer,
blit_image_info: &BlitImageInfo2<'_>,
) {
unsafe { (self.cmd_blit_image2)(command_buffer, blit_image_info) }
}
#[inline]
pub unsafe fn cmd_resolve_image2(
&self,
command_buffer: CommandBuffer,
resolve_image_info: &ResolveImageInfo2<'_>,
) {
unsafe { (self.cmd_resolve_image2)(command_buffer, resolve_image_info) }
}
}