Loading...
Searching...
No Matches
GfxExecContext.hpp
1#pragma once
2#include <Process/ExecutionAction.hpp>
3
4#include <Gfx/GfxContext.hpp>
5
6#include <ossia/detail/flat_set.hpp>
7
8#include <memory>
9
10#include <concurrentqueue.h>
11#include <score_plugin_gfx_export.h>
12
13namespace Gfx
14{
15
16class SCORE_PLUGIN_GFX_EXPORT GfxExecutionAction final
18{
19 SCORE_CONCRETE("06f48270-35a4-44d2-929a-e67b8e2904f5")
20public:
21 explicit GfxExecutionAction(GfxContext& w);
23
24 score::gfx::Message allocateMessage(int inputs);
25 void releaseMessage(score::gfx::Message&&);
26
27 void startTick(const ossia::audio_tick_state& st) override;
28 void setEdge(port_index source, port_index sink, Process::CableType t);
29 void endTick(const ossia::audio_tick_state& st) override;
30
33 std::shared_ptr<bool> alive{std::make_shared<bool>(true)};
34
35 GfxContext* ui{};
36 std::vector<EdgeSpec> prev_edges;
37 std::vector<EdgeSpec> edges_cache;
38 using edge_queue = moodycamel::ConcurrentQueue<EdgeSpec>;
39 edge_queue incoming_edges;
40};
41
42}
Definition ExecutionAction.hpp:12
Definition GfxContext.hpp:69
Definition GfxExecContext.hpp:18
Binds the rendering pipeline to ossia processes.
Definition AssetTable.cpp:7
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:49