MayaFlux 0.1.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 295 of file VKBuffer.cpp.

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

References m_dimensions, and m_modality.

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

+ Here is the caller graph for this function: