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

◆ create_graphics_buffer()

template<typename BufferType , typename... Args>
std::shared_ptr< BufferType > MayaFlux::Buffers::BufferManager::create_graphics_buffer ( ProcessingToken  token,
Args &&...  args 
)
inline

Creates a specialized vulkan buffer and adds it to the specified token/channel.

Template Parameters
BufferTypeType of buffer to create (must be compatible with token)
ArgsConstructor argument types
Parameters
tokenProcessing domain
argsConstructor arguments
Returns
Shared pointer to the created buffer

Definition at line 271 of file BufferManager.hpp.

272 {
273 auto& unit = m_unit_manager->get_or_create_graphics_unit(token);
274 auto buffer = std::make_shared<BufferType>(std::forward<Args>(args)...);
275
276 if (auto vk_buffer = std::dynamic_pointer_cast<VKBuffer>(buffer)) {
277 add_buffer(vk_buffer, token);
278 }
279
280 return buffer;
281 }
static MayaFlux::Nodes::ProcessingToken token
Definition Timers.cpp:8
std::unique_ptr< TokenUnitManager > m_unit_manager
Token/unit storage and lifecycle.
void add_buffer(const std::shared_ptr< Buffer > &buffer, ProcessingToken token, uint32_t channel=0)
Adds a buffer to a token and channel.

References token.