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

◆ write_assembled_data()

void MayaFlux::Portal::Forma::Bridge::write_assembled_data ( Layer &  layer,
std::function< Kakshya::DataVariant()>  assemble,
std::function< void(Kakshya::DataVariant)>  write 
)
private

Definition at line 501 of file Bridge.cpp.

505{
506 auto name = make_layer_task_name("assembled_data");
507 m_layer_tasks[layer.weak_from_this()].push_back(name);
508
509 auto routine = [](Vruta::TaskScheduler&,
510 std::function<Kakshya::DataVariant()> make_data,
511 std::function<void(Kakshya::DataVariant)> target)
512 -> Vruta::GraphicsRoutine {
513 auto& p = co_await Kriya::GetGraphicsPromise {};
514 while (!p.should_terminate) {
515 target(make_data());
516 co_await Kriya::FrameDelay { .frames_to_wait = 1 };
517 }
518 };
519
521 std::make_shared<Vruta::GraphicsRoutine>(
522 routine(m_scheduler, std::move(assemble), std::move(write))),
523 name, false);
524}
std::string name
Definition VKDevice.cpp:123
std::map< std::weak_ptr< Layer >, std::vector< std::string >, std::owner_less<> > m_layer_tasks
Definition Bridge.hpp:699
void write(std::shared_ptr< MappedState< T > > state, std::function< void(std::span< const float >)> sink)
Definition Bridge.hpp:138
Vruta::TaskScheduler & m_scheduler
Definition Bridge.hpp:693
std::string make_layer_task_name(const char *suffix) const
Definition Bridge.cpp:422
void add_task(const std::shared_ptr< Routine > &routine, const std::string &name="", bool initialize=false)
Add a routine to the scheduler based on its processing token.
Definition Scheduler.cpp:94
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:70
GetPromiseBase< Vruta::graphics_promise > GetGraphicsPromise
Graphics domain promise accessor.

References MayaFlux::Vruta::TaskScheduler::add_task(), MayaFlux::Kriya::FrameDelay::frames_to_wait, m_layer_tasks, m_scheduler, make_layer_task_name(), name, and write().

+ Here is the call graph for this function: