MayaFlux 0.2.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 37 of file NodeBindingsProcessor.cpp.

38{
40
41 auto& staging = buffer->get_pipeline_context().push_constant_staging;
42
43 for (const auto& [name, binding] : m_bindings) {
44 size_t end_offset = binding.push_constant_offset + binding.size;
45
46 if (staging.size() < end_offset) {
47 staging.resize(end_offset);
48 }
49
50 std::memcpy(
51 staging.data() + binding.push_constant_offset,
52 m_push_constant_data.data() + binding.push_constant_offset,
53 binding.size);
54
56 "NodeBindingsProcessor: Merged binding '{}' at offset {} ({} bytes)",
57 name, binding.push_constant_offset, binding.size);
58 }
59}
#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: