MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
VKEnumUtils.hpp
Go to the documentation of this file.
1#pragma once
2#include <vulkan/vulkan.hpp>
3
5
6namespace MayaFlux::Core {
7
9{
11 switch (fmt) {
12 case SF::B8G8R8A8_SRGB:
13 return vk::Format::eB8G8R8A8Srgb;
14 case SF::R8G8B8A8_SRGB:
15 return vk::Format::eR8G8B8A8Srgb;
16 case SF::B8G8R8A8_UNORM:
17 return vk::Format::eB8G8R8A8Unorm;
18 case SF::R8G8B8A8_UNORM:
19 return vk::Format::eR8G8B8A8Unorm;
20 case SF::R16G16B16A16_SFLOAT:
21 return vk::Format::eR16G16B16A16Sfloat;
22 case SF::A2B10G10R10_UNORM:
23 return vk::Format::eA2B10G10R10UnormPack32;
24 case SF::R32G32B32A32_SFLOAT:
25 return vk::Format::eR32G32B32A32Sfloat;
26 default:
27 return vk::Format::eB8G8R8A8Srgb;
28 }
29}
30
32{
34 switch (space) {
35 case CS::SRGB_NONLINEAR:
36 return vk::ColorSpaceKHR::eSrgbNonlinear;
37 case CS::EXTENDED_SRGB:
38 return vk::ColorSpaceKHR::eExtendedSrgbLinearEXT;
39 case CS::HDR10_ST2084:
40 return vk::ColorSpaceKHR::eHdr10St2084EXT;
41 case CS::DISPLAY_P3:
42 return vk::ColorSpaceKHR::eDisplayP3NonlinearEXT;
43 default:
44 return vk::ColorSpaceKHR::eSrgbNonlinear;
45 }
46}
47
49{
51 switch (mode) {
52 case PM::IMMEDIATE:
53 return vk::PresentModeKHR::eImmediate;
54 case PM::MAILBOX:
55 return vk::PresentModeKHR::eMailbox;
56 case PM::FIFO:
57 return vk::PresentModeKHR::eFifo;
58 case PM::FIFO_RELAXED:
59 return vk::PresentModeKHR::eFifoRelaxed;
60 default:
61 return vk::PresentModeKHR::eFifo;
62 }
63}
64
65} // namespace MF::VulkanEnumTranslator
vk::Format to_vk_format(GraphicsSurfaceInfo::SurfaceFormat fmt)
vk::PresentModeKHR to_vk_present_mode(GraphicsSurfaceInfo::PresentMode mode)
vk::ColorSpaceKHR to_vk_color_space(GraphicsSurfaceInfo::ColorSpace space)
ColorSpace
Default color space for window surfaces.
SurfaceFormat
Default pixel format for window surfaces (Vulkan-compatible)
PresentMode
Frame presentation strategy.