MayaFlux 0.3.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 37 of file VKImage.cpp.

38{
39 vk::ImageUsageFlags flags = vk::ImageUsageFlagBits::eTransferSrc | vk::ImageUsageFlagBits::eTransferDst;
40
41 switch (m_usage) {
43 flags |= vk::ImageUsageFlagBits::eSampled;
44 break;
45
47 flags |= vk::ImageUsageFlagBits::eColorAttachment | vk::ImageUsageFlagBits::eSampled;
48 break;
49
51 flags |= vk::ImageUsageFlagBits::eDepthStencilAttachment | vk::ImageUsageFlagBits::eSampled;
52 break;
53
54 case Usage::STORAGE:
55 flags |= vk::ImageUsageFlagBits::eStorage | vk::ImageUsageFlagBits::eSampled;
56 break;
57
60 case Usage::STAGING:
61 // Staging images are rare in Vulkan (usually use buffers)
62 // Just transfer ops
63 break;
64 }
65
66 return flags;
67}
@ 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.