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

◆ execute_shader()

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

Implements MayaFlux::Buffers::ShaderProcessor.

Definition at line 205 of file FormaBindingsProcessor.cpp.

206{
208
209 for (const auto& [name, b] : m_bindings) {
210 if (b.typed_reader) {
211 if (b.pc)
212 flush_typed_push_constant(name, b.typed_reader(), *b.pc, buffer);
213 continue;
214 }
215
216 if (!b.reader) {
218 "FormaBindingsProcessor: binding '{}' has no reader", name);
219 continue;
220 }
221
222 const float value = b.reader();
223 switch (b.kind) {
225 if (b.pc)
227 break;
229 if (b.desc)
231 break;
232 }
233 }
234}
#define MF_RT_WARN(comp, ctx,...)
std::shared_ptr< NetworkGeometryBuffer > buffer
size_t b
glm::vec3 value
std::string name
Definition VKDevice.cpp:123
void flush_descriptor(float value, const DescriptorTarget &desc, const std::shared_ptr< VKBuffer > &attached)
void remember_target(const std::shared_ptr< VKBuffer > &buffer)
void flush_typed_push_constant(const std::string &name, const Kakshya::GpuValue &value, const PushConstantTarget &pc, const std::shared_ptr< VKBuffer > &buffer)
void flush_push_constant(const std::string &name, float value, const PushConstantTarget &pc, const std::shared_ptr< VKBuffer > &buffer)
std::unordered_map< std::string, Binding > m_bindings
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References b, buffer, MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, DESCRIPTOR, flush_descriptor(), flush_push_constant(), flush_typed_push_constant(), m_bindings, MF_RT_WARN, name, PUSH_CONSTANT, remember_target(), and value.

+ Here is the call graph for this function: