47{
50 "No node bindings configured for NodeBindingsProcessor");
51 return;
52 }
53
55
57
58 if (!binding.node) {
60 "Node binding '{}' has null node", name);
61 continue;
62 }
63 double value {};
64 uint32_t state = binding.node->m_state.load();
65
67 value = binding.node->process_sample();
68 } else {
69 binding.node->save_state();
70 value = binding.node->process_sample();
71 binding.node->restore_state();
72 }
73
74 if (binding.size == sizeof(float)) {
75 auto float_val = static_cast<float>(value);
76 std::memcpy(
77 pc_data.data() + binding.push_constant_offset,
78 &float_val,
79 sizeof(float));
80 } else if (binding.size == sizeof(double)) {
81 std::memcpy(
82 pc_data.data() + binding.push_constant_offset,
83 &value,
84 sizeof(double));
85 }
86 }
87}
#define MF_RT_ERROR(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
std::unordered_map< std::string, NodeBinding > m_bindings
const std::vector< uint8_t > & get_push_constant_data() const
Get current push constant data.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
@ INACTIVE
Engine is not processing this node.