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

◆ vk_format_bytes_per_pixel()

uint32_t MayaFlux::Core::vk_format_bytes_per_pixel ( vk::Format  fmt)
inline

Byte width of a single pixel for a given Vulkan format.

Covers all formats currently tracked in GraphicsSurfaceInfo plus the full set used by VKImage (depth, stencil, compute). Returns 4 with a warning for unknown formats, matching the previous VKImage fallback behaviour.

Parameters
fmtVulkan format.
Returns
Bytes per pixel, or 4 on unknown formats.

Definition at line 92 of file VKEnumUtils.hpp.

93{
94 switch (fmt) {
95 case vk::Format::eR8Unorm:
96 case vk::Format::eR8Snorm:
97 case vk::Format::eR8Uint:
98 case vk::Format::eR8Sint:
99 return 1U;
100
101 case vk::Format::eR8G8Unorm:
102 case vk::Format::eR8G8Snorm:
103 case vk::Format::eR8G8Uint:
104 case vk::Format::eR8G8Sint:
105 case vk::Format::eR16Unorm:
106 case vk::Format::eR16Snorm:
107 case vk::Format::eR16Uint:
108 case vk::Format::eR16Sint:
109 case vk::Format::eR16Sfloat:
110 return 2U;
111
112 case vk::Format::eR8G8B8Unorm:
113 case vk::Format::eR8G8B8Snorm:
114 case vk::Format::eR8G8B8Uint:
115 case vk::Format::eR8G8B8Sint:
116 case vk::Format::eB8G8R8Unorm:
117 return 3U;
118
119 case vk::Format::eR8G8B8A8Unorm:
120 case vk::Format::eR8G8B8A8Snorm:
121 case vk::Format::eR8G8B8A8Uint:
122 case vk::Format::eR8G8B8A8Sint:
123 case vk::Format::eR8G8B8A8Srgb:
124 case vk::Format::eB8G8R8A8Unorm:
125 case vk::Format::eB8G8R8A8Srgb:
126 case vk::Format::eR16G16Unorm:
127 case vk::Format::eR16G16Snorm:
128 case vk::Format::eR16G16Uint:
129 case vk::Format::eR16G16Sint:
130 case vk::Format::eR16G16Sfloat:
131 case vk::Format::eR32Uint:
132 case vk::Format::eR32Sint:
133 case vk::Format::eR32Sfloat:
134 case vk::Format::eD24UnormS8Uint:
135 case vk::Format::eD32Sfloat:
136 case vk::Format::eA2B10G10R10UnormPack32:
137 return 4U;
138
139 case vk::Format::eR16G16B16A16Unorm:
140 case vk::Format::eR16G16B16A16Snorm:
141 case vk::Format::eR16G16B16A16Uint:
142 case vk::Format::eR16G16B16A16Sint:
143 case vk::Format::eR16G16B16A16Sfloat:
144 case vk::Format::eR32G32Uint:
145 case vk::Format::eR32G32Sint:
146 case vk::Format::eR32G32Sfloat:
147 return 8U;
148
149 case vk::Format::eR32G32B32Uint:
150 case vk::Format::eR32G32B32Sint:
151 case vk::Format::eR32G32B32Sfloat:
152 return 12U;
153
154 case vk::Format::eR32G32B32A32Uint:
155 case vk::Format::eR32G32B32A32Sint:
156 case vk::Format::eR32G32B32A32Sfloat:
157 return 16U;
158
159 default:
160 return 4U;
161 }
162}

Referenced by MayaFlux::Core::VKImage::get_size_bytes(), MayaFlux::Kakshya::WindowAccessProcessor::on_attach(), MayaFlux::Kakshya::WindowAccessProcessor::process(), and MayaFlux::Kakshya::readback_region().

+ Here is the caller graph for this function: