73 using VkF = vk::Format;
75 static std::array<FormatInfo, 11> format_infos = {{
76{F::uninitialized, VkF::eUndefined, },
77{F::RGBA8, VkF::eR8G8B8A8Unorm, },
78{F::RGB8, VkF::eR8G8B8Srgb, },
79{F::UYVY8_422, VkF::eB8G8R8G8422Unorm, },
80{F::UYVY8_422_conv, VkF::eR8G8B8A8Unorm, {
"UYVY8_conv"}, VkF::eR8G8B8A8Unorm},
81{F::YUYV8_422, VkF::eG8B8G8R8422Unorm, },
82{F::YUYV16_422, VkF::eG16B16G16R16422Unorm, },
83{F::UYVA16_422_conv, VkF::eR16G16B16A16Uint, {
"UYVA16_conv"}, VkF::eR16G16B16A16Sfloat},
84{F::RGB10A2_conv, VkF::eR8G8B8A8Uint, {
"RGB10A2_conv"}, VkF::eA2B10G10R10UnormPack32},
85{F::RGB16, VkF::eR16G16B16Unorm },
88 auto& result = format_infos[
static_cast<size_t>(format)];
89 assert(result.format == format);
157 vk::MemoryPropertyFlags requested_properties, vk::MemoryPropertyFlags optional_properties);
159 vk::ImageView
get_image_view(vk::Device device, vk::SamplerYcbcrConversion conversion);
161 void destroy(vk::Device device);
163 vk::ImageMemoryBarrier
create_memory_barrier(vk::ImageLayout new_layout, vk::AccessFlags new_access_mask,
164 uint32_t src_queue_family_index = VK_QUEUE_FAMILY_IGNORED,
165 uint32_t dst_queue_family_index = VK_QUEUE_FAMILY_IGNORED);
void init(VulkanContext &context, vk::Extent2D size, vk::Format format, vk::ImageUsageFlags usage, vk::AccessFlags initial_access, InitialImageData preinitialised, MemoryLocation memory_location)