Uses current modality, dimensions, and format to populate m_dimensions so processors and UI code can reason about the image layout.
210{
212
214
218 break;
219
222 break;
223
226 break;
227
229 m_dimensions.push_back(DataDimension::grouped(
"cubemap_faces", 6, 2));
230
231 break;
232 }
233
234 uint32_t num_channels = 0;
236 case vk::Format::eR8Unorm:
237 case vk::Format::eR16Unorm:
238 case vk::Format::eR32Sfloat:
239 num_channels = 1;
240 break;
241
242 case vk::Format::eR8G8Unorm:
243 case vk::Format::eR16G16Unorm:
244 case vk::Format::eR32G32Sfloat:
245 num_channels = 2;
246 break;
247
248 case vk::Format::eR8G8B8Unorm:
249 case vk::Format::eB8G8R8Unorm:
250 num_channels = 3;
251 break;
252
253 case vk::Format::eR8G8B8A8Unorm:
254 case vk::Format::eB8G8R8A8Unorm:
255 case vk::Format::eR8G8B8A8Srgb:
256 case vk::Format::eR16G16B16A16Unorm:
257 case vk::Format::eR32G32B32A32Sfloat:
258 default:
259 num_channels = 4;
260 break;
261 }
262
263 if (num_channels > 0) {
264 m_dimensions.push_back(DataDimension::channel(num_channels));
265 }
266
269 }
270
272 m_dimensions.push_back(DataDimension::grouped(
"cubemap_faces", 6, 2));
273 }
274
276 "VKImage dimensions inferred: {}x{}x{}, {} channels, {} mips, {} layers",
278}
#define MF_DEBUG(comp, ctx,...)
std::vector< Kakshya::DataDimension > m_dimensions
@ GraphicsBackend
Graphics/visual rendering backend (Vulkan, OpenGL)
@ Core
Core engine, backend, subsystems.
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.