MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ get_usage_flags()

vk::ImageUsageFlags MayaFlux::Core::VKImage::get_usage_flags ( ) const

Get appropriate VkImageUsageFlags based on Usage.

Returns
VkImageUsageFlags to use when creating VkImage

Definition at line 35 of file VKImage.cpp.

36{
37 vk::ImageUsageFlags flags = vk::ImageUsageFlagBits::eTransferSrc | vk::ImageUsageFlagBits::eTransferDst;
38
39 switch (m_usage) {
41 flags |= vk::ImageUsageFlagBits::eSampled;
42 break;
43
45 flags |= vk::ImageUsageFlagBits::eColorAttachment | vk::ImageUsageFlagBits::eSampled;
46 break;
47
49 flags |= vk::ImageUsageFlagBits::eDepthStencilAttachment | vk::ImageUsageFlagBits::eSampled;
50 break;
51
52 case Usage::STORAGE:
53 flags |= vk::ImageUsageFlagBits::eStorage | vk::ImageUsageFlagBits::eSampled;
54 break;
55
57 // Already included above
58 break;
59
61 // Already included above
62 break;
63
64 case Usage::STAGING:
65 // Staging images are rare in Vulkan (usually use buffers)
66 // Just transfer ops
67 break;
68 }
69
70 return flags;
71}
@ RENDER_TARGET
Color attachment for rendering.
@ STORAGE
Storage image (compute shader read/write)
@ TRANSFER_SRC
Transfer source.
@ TRANSFER_DST
Transfer destination.
@ STAGING
Host-visible staging image (rare)
@ TEXTURE_2D
Sampled texture (shader read)
@ DEPTH_STENCIL
Depth/stencil attachment.

References DEPTH_STENCIL, m_usage, RENDER_TARGET, STAGING, STORAGE, TEXTURE_2D, TRANSFER_DST, and TRANSFER_SRC.