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

◆ set_influence_target()

void MayaFlux::Nexus::Emitter::set_influence_target ( std::shared_ptr< Buffers::RenderProcessor proc,
uint32_t  set = 1,
uint32_t  binding = 0 
)

Set the render processor to target for GPU-side influence delivery.

Creates a UBO matching the InfluenceUBO layout, registers a binding named "u_influence" at set=1 binding=0 on the target processor, and binds the UBO. On each subsequent invoke(), the context fields are packed into the UBO automatically.

Parameters
procTarget render processor. Must outlive this Emitter or be cleared via clear_influence_target() first.
setDescriptor set index for the UBO binding. Default is 1.
bindingDescriptor binding index for the UBO. Default is 0.

Definition at line 17 of file Emitter.cpp.

18{
19 if (!proc) {
21 "Cannot set null influence target");
22 return;
23 }
24
25 if (m_influence_ubo) {
27 }
28
29 m_influence_ubo = std::make_shared<Buffers::VKBuffer>(
30 sizeof(InfluenceUBO),
31 Buffers::VKBuffer::Usage::UNIFORM,
33
34 proc->add_binding("u_influence",
35 Buffers::ShaderBinding { set, binding, vk::DescriptorType::eUniformBuffer });
36
37 proc->bind_buffer("u_influence", m_influence_ubo);
38
39 m_influence_target = std::move(proc);
40}
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< Buffers::VKBuffer > m_influence_ubo
Definition Emitter.hpp:243
std::shared_ptr< Buffers::RenderProcessor > m_influence_target
Definition Emitter.hpp:242
void clear_influence_target()
Disconnect from the current influence target.
Definition Emitter.cpp:42
@ Init
Engine/subsystem initialization.
@ Nexus
Spatial indexing and scheduling for user-defined behaviour.
@ UNKNOWN
Unknown or undefined modality.

References clear_influence_target(), MayaFlux::Journal::Init, m_influence_target, m_influence_ubo, MF_ERROR, MayaFlux::Journal::Nexus, and MayaFlux::Kakshya::UNKNOWN.

+ Here is the call graph for this function: