1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use ash::vk;
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum DedicatedResourceHandle {
Buffer(vk::Buffer),
Image(vk::Image),
None,
}
impl DedicatedResourceHandle {
pub fn as_dedicated_allocation_info(
&self,
) -> vk::MemoryDedicatedAllocateInfo {
let mut dedicated_allocate_info =
vk::MemoryDedicatedAllocateInfo::default();
match self {
DedicatedResourceHandle::Buffer(buffer) => {
dedicated_allocate_info.buffer = *buffer;
}
DedicatedResourceHandle::Image(image) => {
dedicated_allocate_info.image = *image;
}
DedicatedResourceHandle::None => (),
}
dedicated_allocate_info
}
}
impl Default for DedicatedResourceHandle {
fn default() -> Self {
Self::None
}
}