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

◆ frame_results() [2/2]

template<typename T >
std::shared_ptr< Vruta::BroadcastSource< T > > MayaFlux::Kriya::frame_results ( Vruta::TaskScheduler &  scheduler,
std::function< std::optional< T >()>  fn,
const std::string &  name = "" 
)

Broadcast of what fn returns, taken once per graphics frame.

Adds a routine to scheduler that calls fn every graphics frame and signals each value it returns, registered under name. The routine ends once nothing holds the returned source, or when the task is cancelled.

auto results = Kriya::frame_results<Result>(*scheduler, [state]() -> std::optional<Result> {
return state->try_finish();
});
event_manager->add_event(std::make_shared<Vruta::Event>(
Kriya::on_signal(results, [](const Result& r) { })));
Vruta::Event on_signal(std::shared_ptr< Vruta::BroadcastSource< T > > source, Callback callback)
Creates an Event coroutine that fires on every signal from a BroadcastSource.