The core processing function that must be implemented by derived classes.
- Parameters
-
This method is where the actual transformation logic is implemented. It should contain the algorithmic details of how the buffer's data is transformed, analyzed, or processed. The implementation can utilize any backend capabilities available to the processor, including:
- Parallel Processing: Using multi-threading or GPU compute for large datasets
- Data Transformations: Applying mathematical operations, filters, or effects
- Feature Extraction: Analyzing data characteristics for further processing
Derived classes must override this method to provide specific processing behavior.
Implements MayaFlux::Buffers::BufferProcessor.
Definition at line 23 of file BufferDownloadProcessor.cpp.
24{
25 auto vk_buffer = std::dynamic_pointer_cast<VKBuffer>(buffer);
26 if (!vk_buffer) {
28 "BufferDownloadProcessor requires VKBuffer");
29 return;
30 }
31
32 if (!vk_buffer->is_initialized()) {
34 "VKBuffer not initialized - register with BufferManager first");
35 return;
36 }
37
40 return;
41 }
42
44 if (target_it ==
m_target_map.end() || !target_it->second) {
46 "BufferDownloadProcessor has no target configured for this buffer");
47 return;
48 }
49
50 if (vk_buffer->is_host_visible()) {
52 } else {
54 }
55}
#define MF_RT_ERROR(comp, ctx,...)
void download_device_local(const std::shared_ptr< VKBuffer > &source)
std::unordered_map< std::shared_ptr< Buffer >, std::shared_ptr< Buffer > > m_target_map
Maps source VKBuffer -> target Buffer.
void download_back_buffers(const std::shared_ptr< VKBuffer > &source)
void download_host_visible(const std::shared_ptr< VKBuffer > &source)
std::unordered_map< std::shared_ptr< Buffer >, std::vector< std::shared_ptr< Buffer > > > m_back_buffers_target_map
Maps source VKBuffer -> vector of target Buffers for back_buffers.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, download_back_buffers(), download_device_local(), download_host_visible(), m_back_buffers_target_map, m_target_map, and MF_RT_ERROR.