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

◆ register_buffer()

MAYAFLUX_API void MayaFlux::register_buffer ( const std::shared_ptr< Buffers::Buffer > &  buffer,
const CreationContext &  ctx 
)

Definition at line 83 of file Creator.cpp.

84{
85 auto token = get_buffer_token(ctx.domain.value());
86
87 if (auto audio_buffer = std::dynamic_pointer_cast<Buffers::AudioBuffer>(buffer)) {
88 if (ctx.channel.has_value()) {
89 register_audio_buffer(audio_buffer, ctx.channel.value());
90 } else if (ctx.channels.has_value()) {
91 register_audio_buffer(audio_buffer, ctx.channels.value()[0]);
92 for (size_t i = 1; i < ctx.channels.value().size(); ++i) {
93 clone_buffer_to_channels(audio_buffer, { static_cast<uint32_t>(i) }, token);
94 }
95 } else {
96 register_audio_buffer(audio_buffer, audio_buffer->get_channel_id());
97 }
98 return;
99 }
100
101 if (auto vk_buffer = std::dynamic_pointer_cast<Buffers::VKBuffer>(buffer)) {
102 register_graphics_buffer(vk_buffer, token);
103 return;
104 }
105}
bool size
std::shared_ptr< NetworkGeometryBuffer > buffer
void register_audio_buffer(const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel)
Registers an AudioBuffer with the default engine's buffer manager.
Definition Graph.cpp:240
void register_graphics_buffer(const std::shared_ptr< Buffers::VKBuffer > &buffer, Buffers::ProcessingToken token)
Registers a VKBuffer with the default engine's buffer manager.
Definition Graph.cpp:250
MAYAFLUX_API Buffers::ProcessingToken get_buffer_token(Domain domain)
Extracts buffer processing token from domain.
Definition Domain.hpp:184
std::optional< uint32_t > channel
Definition Creator.hpp:29
std::optional< std::vector< uint32_t > > channels
Definition Creator.hpp:30
std::optional< Domain > domain
Definition Creator.hpp:28

References buffer, MayaFlux::CreationContext::channel, MayaFlux::CreationContext::channels, clone_buffer_to_channels(), MayaFlux::CreationContext::domain, get_buffer_token(), register_audio_buffer(), register_graphics_buffer(), and size.

Referenced by MayaFlux::MeshGroupHandle::operator|(), and operator|().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: