MayaFlux 0.4.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 328 of file VKBuffer.cpp.

329{
330 using namespace Kakshya;
331
332 m_dimensions.clear();
333
334 switch (m_modality) {
335 case DataModality::VERTEX_POSITIONS_3D: {
336 uint64_t count = byte_count / sizeof(glm::vec3);
337 m_dimensions.push_back(DataDimension::vertex_positions(count));
338 break;
339 }
340
341 case DataModality::VERTEX_NORMALS_3D: {
342 uint64_t count = byte_count / sizeof(glm::vec3);
343 m_dimensions.push_back(DataDimension::vertex_normals(count));
344 break;
345 }
346
347 case DataModality::TEXTURE_COORDS_2D: {
348 uint64_t count = byte_count / sizeof(glm::vec2);
349 m_dimensions.push_back(DataDimension::texture_coords(count));
350 break;
351 }
352
353 case DataModality::VERTEX_COLORS_RGB: {
354 uint64_t count = byte_count / sizeof(glm::vec3);
355 m_dimensions.push_back(DataDimension::vertex_colors(count, false));
356 break;
357 }
358
359 case DataModality::VERTEX_COLORS_RGBA: {
360 uint64_t count = byte_count / sizeof(glm::vec4);
361 m_dimensions.push_back(DataDimension::vertex_colors(count, true));
362 break;
363 }
364
365 case DataModality::AUDIO_1D: {
366 uint64_t samples = byte_count / sizeof(double);
367 m_dimensions.push_back(DataDimension::time(samples));
368 break;
369 }
370
371 default:
372 m_dimensions.emplace_back("data", byte_count, 1, DataDimension::Role::CUSTOM);
373 break;
374 }
375}
Eigen::Index count
std::vector< Kakshya::DataDimension > m_dimensions
Definition VKBuffer.hpp:616
Kakshya::DataModality m_modality
Definition VKBuffer.hpp:615
@ 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: