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 137 of file DataWriteProcessor.cpp.
138{
139 auto vk = std::dynamic_pointer_cast<VKBuffer>(buffer);
140 if (!vk) {
142 "DataWriteProcessor attached to non-VKBuffer");
143 return;
144 }
145
149 if (auto rp = vk->get_render_processor()) {
151 }
153 }
154 }
155
160 }
161
163 if (auto rp = vk->get_render_processor()) {
167 }
168 }
169 }
170
172 return;
173 }
174
177
179 return;
180 }
181
183
184 for (
size_t i = 1; i <
m_active.size(); ++i) {
187 } else {
189 }
190 }
191}
#define MF_RT_ERROR(comp, ctx,...)
void upload_secondary(const std::shared_ptr< VKBuffer > &vk, Kakshya::DataVariant &slot)
std::vector< Kakshya::DataVariant > m_data_pending
Kakshya::DataVariant m_pixel_pending
bool m_tex_binding_confirmed
static bool is_vertex_modality(Kakshya::DataModality m) noexcept
std::atomic_flag m_texture_dirty
std::atomic_flag m_pixel_dirty
std::string m_tex_binding
void upload_texture(const std::shared_ptr< VKBuffer > &vk, Kakshya::DataVariant &slot)
std::atomic_flag m_data_dirty
std::shared_ptr< Core::VKImage > m_gpu_texture
Kakshya::DataModality m_modality
std::optional< PendingTexture > m_pending_texture
Kakshya::DataVariant m_pixel_active
std::vector< Kakshya::DataVariant > m_active
void upload_primary(const std::shared_ptr< VKBuffer > &vk, std::vector< Kakshya::DataVariant > &slots)
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, is_vertex_modality(), m_active, m_data_dirty, m_data_pending, m_gpu_texture, m_modality, m_pending_texture, m_pixel_active, m_pixel_dirty, m_pixel_pending, m_tex_binding, m_tex_binding_confirmed, m_tex_width, m_texture_dirty, MF_RT_ERROR, upload_primary(), upload_secondary(), and upload_texture().