• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use crate::vk;
2 use crate::{Device, Instance};
3 use std::ffi::CStr;
4 use std::mem;
5 
6 /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_copy_commands2.html>
7 #[derive(Clone)]
8 pub struct CopyCommands2 {
9     fp: vk::KhrCopyCommands2Fn,
10 }
11 
12 impl CopyCommands2 {
new(instance: &Instance, device: &Device) -> Self13     pub fn new(instance: &Instance, device: &Device) -> Self {
14         let fp = vk::KhrCopyCommands2Fn::load(|name| unsafe {
15             mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr()))
16         });
17         Self { fp }
18     }
19 
20     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyBuffer2KHR.html>
21     #[inline]
cmd_copy_buffer2( &self, command_buffer: vk::CommandBuffer, copy_buffer_info: &vk::CopyBufferInfo2KHR, )22     pub unsafe fn cmd_copy_buffer2(
23         &self,
24         command_buffer: vk::CommandBuffer,
25         copy_buffer_info: &vk::CopyBufferInfo2KHR,
26     ) {
27         (self.fp.cmd_copy_buffer2_khr)(command_buffer, copy_buffer_info)
28     }
29     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyImage2KHR.html>
30     #[inline]
cmd_copy_image2( &self, command_buffer: vk::CommandBuffer, copy_image_info: &vk::CopyImageInfo2KHR, )31     pub unsafe fn cmd_copy_image2(
32         &self,
33         command_buffer: vk::CommandBuffer,
34         copy_image_info: &vk::CopyImageInfo2KHR,
35     ) {
36         (self.fp.cmd_copy_image2_khr)(command_buffer, copy_image_info)
37     }
38     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyBufferToImage2KHR.html>
39     #[inline]
cmd_copy_buffer_to_image2( &self, command_buffer: vk::CommandBuffer, copy_buffer_to_image_info: &vk::CopyBufferToImageInfo2KHR, )40     pub unsafe fn cmd_copy_buffer_to_image2(
41         &self,
42         command_buffer: vk::CommandBuffer,
43         copy_buffer_to_image_info: &vk::CopyBufferToImageInfo2KHR,
44     ) {
45         (self.fp.cmd_copy_buffer_to_image2_khr)(command_buffer, copy_buffer_to_image_info)
46     }
47     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyImageToBuffer2KHR.html>
48     #[inline]
cmd_copy_image_to_buffer2( &self, command_buffer: vk::CommandBuffer, copy_image_to_buffer_info: &vk::CopyImageToBufferInfo2KHR, )49     pub unsafe fn cmd_copy_image_to_buffer2(
50         &self,
51         command_buffer: vk::CommandBuffer,
52         copy_image_to_buffer_info: &vk::CopyImageToBufferInfo2KHR,
53     ) {
54         (self.fp.cmd_copy_image_to_buffer2_khr)(command_buffer, copy_image_to_buffer_info)
55     }
56     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBlitImage2KHR.html>
57     #[inline]
cmd_blit_image2( &self, command_buffer: vk::CommandBuffer, blit_image_info: &vk::BlitImageInfo2KHR, )58     pub unsafe fn cmd_blit_image2(
59         &self,
60         command_buffer: vk::CommandBuffer,
61         blit_image_info: &vk::BlitImageInfo2KHR,
62     ) {
63         (self.fp.cmd_blit_image2_khr)(command_buffer, blit_image_info)
64     }
65     /// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdResolveImage2KHR.html>
66     #[inline]
cmd_resolve_image2( &self, command_buffer: vk::CommandBuffer, resolve_image_info: &vk::ResolveImageInfo2KHR, )67     pub unsafe fn cmd_resolve_image2(
68         &self,
69         command_buffer: vk::CommandBuffer,
70         resolve_image_info: &vk::ResolveImageInfo2KHR,
71     ) {
72         (self.fp.cmd_resolve_image2_khr)(command_buffer, resolve_image_info)
73     }
74 
75     #[inline]
name() -> &'static CStr76     pub const fn name() -> &'static CStr {
77         vk::KhrCopyCommands2Fn::name()
78     }
79 
80     #[inline]
fp(&self) -> &vk::KhrCopyCommands2Fn81     pub fn fp(&self) -> &vk::KhrCopyCommands2Fn {
82         &self.fp
83     }
84 }
85