ash/extensions/khr/
copy_commands2.rs
1use crate::vk;
2use crate::{Device, Instance};
3use std::ffi::CStr;
4use std::mem;
5
6#[derive(Clone)]
8pub struct CopyCommands2 {
9 fp: vk::KhrCopyCommands2Fn,
10}
11
12impl CopyCommands2 {
13 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 pub unsafe fn cmd_copy_buffer2(
22 &self,
23 command_buffer: vk::CommandBuffer,
24 copy_buffer_info: &vk::CopyBufferInfo2KHR,
25 ) {
26 (self.fp.cmd_copy_buffer2_khr)(command_buffer, copy_buffer_info)
27 }
28 pub unsafe fn cmd_copy_image2(
30 &self,
31 command_buffer: vk::CommandBuffer,
32 copy_image_info: &vk::CopyImageInfo2KHR,
33 ) {
34 (self.fp.cmd_copy_image2_khr)(command_buffer, copy_image_info)
35 }
36 pub unsafe fn cmd_copy_buffer_to_image2(
38 &self,
39 command_buffer: vk::CommandBuffer,
40 copy_buffer_to_image_info: &vk::CopyBufferToImageInfo2KHR,
41 ) {
42 (self.fp.cmd_copy_buffer_to_image2_khr)(command_buffer, copy_buffer_to_image_info)
43 }
44 pub unsafe fn cmd_copy_image_to_buffer2(
46 &self,
47 command_buffer: vk::CommandBuffer,
48 copy_image_to_buffer_info: &vk::CopyImageToBufferInfo2KHR,
49 ) {
50 (self.fp.cmd_copy_image_to_buffer2_khr)(command_buffer, copy_image_to_buffer_info)
51 }
52 pub unsafe fn cmd_blit_image2(
54 &self,
55 command_buffer: vk::CommandBuffer,
56 blit_image_info: &vk::BlitImageInfo2KHR,
57 ) {
58 (self.fp.cmd_blit_image2_khr)(command_buffer, blit_image_info)
59 }
60 pub unsafe fn cmd_resolve_image2(
62 &self,
63 command_buffer: vk::CommandBuffer,
64 resolve_image_info: &vk::ResolveImageInfo2KHR,
65 ) {
66 (self.fp.cmd_resolve_image2_khr)(command_buffer, resolve_image_info)
67 }
68
69 pub const fn name() -> &'static CStr {
70 vk::KhrCopyCommands2Fn::name()
71 }
72
73 pub fn fp(&self) -> &vk::KhrCopyCommands2Fn {
74 &self.fp
75 }
76}