ash/extensions/khr/
deferred_host_operations.rs1use crate::prelude::*;
4use crate::vk;
5use crate::RawPtr;
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 let mut operation = mem::MaybeUninit::uninit();
16 (self.fp.create_deferred_operation_khr)(
17 self.handle,
18 allocation_callbacks.as_raw_ptr(),
19 operation.as_mut_ptr(),
20 )
21 .assume_init_on_success(operation)
22 }
23
24 #[inline]
26 pub unsafe fn deferred_operation_join(
27 &self,
28 operation: vk::DeferredOperationKHR,
29 ) -> VkResult<()> {
30 (self.fp.deferred_operation_join_khr)(self.handle, operation).result()
31 }
32
33 #[inline]
35 pub unsafe fn destroy_deferred_operation(
36 &self,
37 operation: vk::DeferredOperationKHR,
38 allocation_callbacks: Option<&vk::AllocationCallbacks<'_>>,
39 ) {
40 (self.fp.destroy_deferred_operation_khr)(
41 self.handle,
42 operation,
43 allocation_callbacks.as_raw_ptr(),
44 );
45 }
46
47 #[inline]
49 pub unsafe fn get_deferred_operation_max_concurrency(
50 &self,
51 operation: vk::DeferredOperationKHR,
52 ) -> u32 {
53 (self.fp.get_deferred_operation_max_concurrency_khr)(self.handle, operation)
54 }
55
56 #[inline]
58 pub unsafe fn get_deferred_operation_result(
59 &self,
60 operation: vk::DeferredOperationKHR,
61 ) -> VkResult<()> {
62 (self.fp.get_deferred_operation_result_khr)(self.handle, operation).result()
63 }
64}