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

◆ process()

void MayaFlux::Nodes::Network::WalkOperator::process ( float  frames)
overridevirtual

Self-contained step.

Does nothing when every_n_blocks is 0 (the default). Otherwise counts blocks and calls advance() every every_n_blocks calls, so the chain progresses on its own with no code outside the network. Runs regardless of whether advance() is also being called externally; the two do not conflict, they simply both move the same walk.

Implements MayaFlux::Nodes::Network::NetworkOperator.

Definition at line 31 of file WalkOperator.cpp.

32{
34
35 const uint32_t every = m_every_n_blocks.load(std::memory_order_relaxed);
36 if (every == 0) {
37 return;
38 }
39 if (m_blocks_until == 0) {
40 m_blocks_until = every;
41 }
43 if (m_blocks_until == 0) {
44 advance();
45 }
46}
void ensure_established()
Activate slot m_current and deactivate every other slot that currently exists.
std::atomic< uint32_t > m_every_n_blocks

References advance(), ensure_established(), m_blocks_until, and m_every_n_blocks.

+ Here is the call graph for this function: