MayaFlux 0.4.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)

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.

Definition at line 10 of file Emitter.cpp.

11{
12 if (!proc) {
14 "Cannot set null influence target");
15 return;
16 }
17
18 if (m_influence_ubo) {
20 }
21
22 m_influence_ubo = std::make_shared<Buffers::VKBuffer>(
23 sizeof(InfluenceUBO),
26
27 proc->add_binding("u_influence",
28 Buffers::ShaderBinding { 1, 0, vk::DescriptorType::eUniformBuffer });
29
30 proc->bind_buffer("u_influence", m_influence_ubo);
31
32 m_influence_target = std::move(proc);
33}
#define MF_ERROR(comp, ctx,...)
@ UNIFORM
Uniform buffer (host-visible)
std::shared_ptr< Buffers::VKBuffer > m_influence_ubo
Definition Emitter.hpp:249
std::shared_ptr< Buffers::RenderProcessor > m_influence_target
Definition Emitter.hpp:248
void clear_influence_target()
Disconnect from the current influence target.
Definition Emitter.cpp:35
@ 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, MayaFlux::Buffers::VKBuffer::UNIFORM, and MayaFlux::Kakshya::UNKNOWN.

+ Here is the call graph for this function: