Uses current modality, dimensions, and format to populate m_dimensions so processors and UI code can reason about the image layout.
123{
125
127
131 break;
132
135 break;
136
139 break;
140
142 m_dimensions.push_back(DataDimension::grouped(
"cubemap_faces", 6, 2));
143
144 break;
145 }
146
147 uint32_t num_channels = 0;
149 case vk::Format::eR8Unorm:
150 case vk::Format::eR16Unorm:
151 case vk::Format::eR32Sfloat:
152 num_channels = 1;
153 break;
154
155 case vk::Format::eR8G8Unorm:
156 case vk::Format::eR16G16Unorm:
157 case vk::Format::eR32G32Sfloat:
158 num_channels = 2;
159 break;
160
161 case vk::Format::eR8G8B8Unorm:
162 case vk::Format::eB8G8R8Unorm:
163 num_channels = 3;
164 break;
165
166 case vk::Format::eR8G8B8A8Unorm:
167 case vk::Format::eB8G8R8A8Unorm:
168 case vk::Format::eR8G8B8A8Srgb:
169 case vk::Format::eR16G16B16A16Unorm:
170 case vk::Format::eR32G32B32A32Sfloat:
171 default:
172 num_channels = 4;
173 break;
174 }
175
176 if (num_channels > 0) {
177 m_dimensions.push_back(DataDimension::channel(num_channels));
178 }
179
182 }
183
185 m_dimensions.push_back(DataDimension::grouped(
"cubemap_faces", 6, 2));
186 }
187
189 "VKImage dimensions inferred: {}x{}x{}, {} channels, {} mips, {} layers",
191}
#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.