jay_ash/extensions/khr/
deferred_host_operations.rs1use crate::RawPtr;
4use crate::prelude::*;
5use crate::vk;
6use core::mem;
7
8impl crate::khr::deferred_host_operations::Device {
9 #[inline]
11 pub unsafe fn create_deferred_operation(
12 &self,
13 allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
14 ) -> VkResult<vk::DeferredOperationKHR> {
15 unsafe {
16 let mut operation = mem::MaybeUninit::uninit();
17 (self.fp.create_deferred_operation_khr)(
18 self.handle,
19 allocation_callbacks.as_raw_ptr(),
20 operation.as_mut_ptr(),
21 )
22 .assume_init_on_success(operation)
23 }
24 }
25
26 #[inline]
28 pub unsafe fn deferred_operation_join(
29 &self,
30 operation: vk::DeferredOperationKHR,
31 ) -> VkResult<()> {
32 unsafe { (self.fp.deferred_operation_join_khr)(self.handle, operation).result() }
33 }
34
35 #[inline]
37 pub unsafe fn destroy_deferred_operation(
38 &self,
39 operation: vk::DeferredOperationKHR,
40 allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
41 ) {
42 unsafe {
43 (self.fp.destroy_deferred_operation_khr)(
44 self.handle,
45 operation,
46 allocation_callbacks.as_raw_ptr(),
47 );
48 }
49 }
50
51 #[inline]
53 pub unsafe fn get_deferred_operation_max_concurrency(
54 &self,
55 operation: vk::DeferredOperationKHR,
56 ) -> u32 {
57 unsafe { (self.fp.get_deferred_operation_max_concurrency_khr)(self.handle, operation) }
58 }
59
60 #[inline]
62 pub unsafe fn get_deferred_operation_result(
63 &self,
64 operation: vk::DeferredOperationKHR,
65 ) -> VkResult<()> {
66 unsafe { (self.fp.get_deferred_operation_result_khr)(self.handle, operation).result() }
67 }
68}