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 84 of file FormaProcessor.cpp.
85{
88
89 auto vk = std::dynamic_pointer_cast<VKBuffer>(buffer);
90 if (vk) {
91 if (auto rp = vk->get_render_processor()) {
95 }
96 }
97 }
99 }
100
102 return;
103
106
108 return;
109
110 auto vk = std::dynamic_pointer_cast<VKBuffer>(buffer);
111 if (!vk)
112 return;
113
114 const size_t required =
m_active.size();
115 const size_t available = vk->get_size_bytes();
116
118 vk->resize(static_cast<size_t>(required * 1.5F), false);
120 }
121
124 std::min<size_t>(required, vk->get_size_bytes()),
125 vk,
127
128 auto layout = vk->get_vertex_layout();
129 if (layout) {
130 auto updated = *layout;
132 vk->set_vertex_layout(updated);
133 }
134}
std::shared_ptr< VKBuffer > create_staging_buffer(size_t size)
Create staging buffer for transfers.
void upload_to_gpu(const void *data, size_t size, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging, size_t dst_offset)
Upload raw data to GPU buffer (auto-detects host-visible vs device-local)
References available, MayaFlux::Buffers::create_staging_buffer(), m_active, m_geometry_dirty, m_pending_geometry, m_pending_texture, m_staging, m_texture_dirty, MayaFlux::Buffers::upload_to_gpu(), and vertex_count().