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

◆ execute_shader()

void MayaFlux::Buffers::NodeBindingsProcessor::execute_shader ( const std::shared_ptr< VKBuffer > &  buffer)
overrideprotectedvirtual

Implements MayaFlux::Buffers::ShaderProcessor.

Definition at line 68 of file NodeBindingsProcessor.cpp.

69{
71
72 auto& staging = buffer->get_pipeline_context().push_constant_staging;
73
74 for (const auto& [name, binding] : m_bindings) {
75 size_t end_offset = binding.push_constant_offset + binding.size;
76
77 if (staging.size() < end_offset) {
78 staging.resize(end_offset);
79 }
80
81 std::memcpy(
82 staging.data() + binding.push_constant_offset,
83 m_push_constant_data.data() + binding.push_constant_offset,
84 binding.size);
85
87 "NodeBindingsProcessor: Merged binding '{}' at offset {} ({} bytes)",
88 name, binding.push_constant_offset, binding.size);
89 }
90}
#define MF_DEBUG(comp, ctx,...)
std::unordered_map< std::string, NodeBinding > m_bindings
std::vector< uint8_t > m_push_constant_data
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, m_bindings, MayaFlux::Buffers::ShaderProcessor::m_push_constant_data, MF_DEBUG, and update_push_constants_from_nodes().

+ Here is the call graph for this function: