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

◆ ~BufferPipeline()

MayaFlux::Kriya::BufferPipeline::~BufferPipeline ( )

Definition at line 20 of file BufferPipeline.cpp.

21{
22 for (auto& [key, entry] : m_readers) {
23 entry.buffer->get_processing_chain()->remove_processor(entry.processor, entry.buffer);
24 }
25
26 if (!m_buffer_manager) {
27 return;
28 }
29
30 for (auto& op : m_operations) {
31 if (op.m_attached_processor) {
32 const bool detachable = op.get_type() == BufferOperation::OpType::ROUTE
33 || op.get_type() == BufferOperation::OpType::LOAD
34 || op.get_type() == BufferOperation::OpType::FUSE
35 || op.get_type() == BufferOperation::OpType::MODIFY;
36
37 if (detachable && op.m_target_audio_buffer) {
38 m_buffer_manager->remove_processor(op.m_attached_processor, op.m_target_audio_buffer);
39 }
40 if (detachable && op.m_target_graphics_buffer) {
41 m_buffer_manager->remove_processor(op.m_attached_processor, op.m_target_graphics_buffer);
42 }
43 op.m_attached_processor = nullptr;
44 }
45 }
46}
@ LOAD
Load data from container to buffer with position control.
@ FUSE
Fuse multiple sources using custom fusion functions.
@ ROUTE
Route data to destination (buffer or container)
@ MODIFY
Modify Buffer Data using custom quick process.
std::map< std::pair< const BufferOperation *, const Buffers::VKBuffer * >, GraphicsReader > m_readers
std::vector< BufferOperation > m_operations
std::shared_ptr< Buffers::BufferManager > m_buffer_manager

References MayaFlux::Kriya::BufferOperation::FUSE, MayaFlux::Kriya::BufferOperation::LOAD, m_buffer_manager, m_operations, m_readers, MayaFlux::Kriya::BufferOperation::MODIFY, and MayaFlux::Kriya::BufferOperation::ROUTE.