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

◆ infer_dimensions_from_data()

void MayaFlux::Buffers::VKBuffer::infer_dimensions_from_data ( size_t  byte_count)
private

Infer Kakshya::DataDimension entries from a given byte count.

Uses the current modality and provided byte count to populate m_dimensions so processors and UI code can reason about the buffer's layout.

Parameters
byte_countNumber of bytes of data to infer dimensions from.

Definition at line 288 of file VKBuffer.cpp.

289{
290 using namespace Kakshya;
291
292 m_dimensions.clear();
293
294 switch (m_modality) {
295 case DataModality::VERTEX_POSITIONS_3D: {
296 uint64_t count = byte_count / sizeof(glm::vec3);
297 m_dimensions.push_back(DataDimension::vertex_positions(count));
298 break;
299 }
300
301 case DataModality::VERTEX_NORMALS_3D: {
302 uint64_t count = byte_count / sizeof(glm::vec3);
303 m_dimensions.push_back(DataDimension::vertex_normals(count));
304 break;
305 }
306
307 case DataModality::TEXTURE_COORDS_2D: {
308 uint64_t count = byte_count / sizeof(glm::vec2);
309 m_dimensions.push_back(DataDimension::texture_coords(count));
310 break;
311 }
312
313 case DataModality::VERTEX_COLORS_RGB: {
314 uint64_t count = byte_count / sizeof(glm::vec3);
315 m_dimensions.push_back(DataDimension::vertex_colors(count, false));
316 break;
317 }
318
319 case DataModality::VERTEX_COLORS_RGBA: {
320 uint64_t count = byte_count / sizeof(glm::vec4);
321 m_dimensions.push_back(DataDimension::vertex_colors(count, true));
322 break;
323 }
324
325 case DataModality::AUDIO_1D: {
326 uint64_t samples = byte_count / sizeof(double);
327 m_dimensions.push_back(DataDimension::time(samples));
328 break;
329 }
330
331 default:
332 m_dimensions.emplace_back("data", byte_count, 1, DataDimension::Role::CUSTOM);
333 break;
334 }
335}
Eigen::Index count
std::vector< Kakshya::DataDimension > m_dimensions
Definition VKBuffer.hpp:521
Kakshya::DataModality m_modality
Definition VKBuffer.hpp:520
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.

References count, m_dimensions, and m_modality.

Referenced by resize(), set_data(), set_modality(), and VKBuffer().

+ Here is the caller graph for this function: