Called when this processor is attached to a buffer.
- Parameters
-
| buffer | Buffer this processor is being attached to |
Provides an opportunity for the processor to initialize buffer-specific state, allocate resources, or perform validation. With expanded processor capabilities, this method can also:
- Analyze Buffer Characteristics: Examine data type, size, and format requirements
- Select Optimal Backend: Choose the most appropriate processing backend for the buffer
- Initialize Hardware Resources: Set up GPU contexts, CUDA streams, or other acceleration
- Configure Processing Parameters: Adapt algorithm parameters to buffer characteristics
- Establish Processing Strategy: Determine whether to use sequential or parallel execution
- Validate Compatibility: Ensure the processor can handle the buffer's data type and format
Default implementation does nothing, but derived classes should override this method to leverage the full capabilities of the expanded processor architecture.
Reimplemented from MayaFlux::Buffers::BufferProcessor.
Definition at line 537 of file RenderProcessor.cpp.
538{
540
541 auto vk_buffer = std::dynamic_pointer_cast<VKBuffer>(buffer);
542 if (vk_buffer && vk_buffer->has_vertex_layout()) {
543 auto vertex_layout = vk_buffer->get_vertex_layout();
544 if (vertex_layout.has_value()) {
546 "RenderProcessor: Auto-injecting vertex layout "
547 "({} vertices, {} attributes)",
548 vertex_layout->vertex_count,
549 vertex_layout->attributes.size());
550
552 m_buffer_info[vk_buffer] = { .semantic_layout = vertex_layout.value(), .use_reflection =
false };
553 }
554 }
555
557 vk_buffer->set_needs_depth_attachment(true);
558 }
559
563 }
564}
#define MF_INFO(comp, ctx,...)
std::unordered_map< std::shared_ptr< VKBuffer >, VertexInfo > m_buffer_info
Registry::Service::DisplayService * m_display_service
bool m_needs_pipeline_rebuild
void on_attach(const std::shared_ptr< Buffer > &buffer) override
Called when this processor is attached to a buffer.
Interface * get_service()
Query for a backend service.
static BackendRegistry & instance()
Get the global registry instance.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Registry::BackendRegistry::instance(), m_buffer_info, m_depth_enabled, m_display_service, MayaFlux::Buffers::ShaderProcessor::m_needs_pipeline_rebuild, MF_INFO, and MayaFlux::Buffers::ShaderProcessor::on_attach().