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 <concurrentqueue.h>
9 #include <score_plugin_gfx_export.h>
10 
11 namespace Gfx
12 {
13 
14 class SCORE_PLUGIN_GFX_EXPORT GfxExecutionAction final
16 {
17  SCORE_CONCRETE("06f48270-35a4-44d2-929a-e67b8e2904f5")
18 public:
20 
21  score::gfx::Message allocateMessage(int inputs);
22  void releaseMessage(score::gfx::Message&&);
23 
24  void startTick(const ossia::audio_tick_state& st) override;
25  void setEdge(port_index source, port_index sink);
26  void endTick(const ossia::audio_tick_state& st) override;
27 
28  GfxContext* ui{};
29  std::vector<Edge> prev_edges;
30  std::vector<Edge> edges_cache;
31  using edge_queue = moodycamel::ConcurrentQueue<Edge>;
32  edge_queue incoming_edges;
33 };
34 
35 }
Definition: ExecutionAction.hpp:12
Definition: GfxContext.hpp:32
Definition: GfxExecContext.hpp:16
Binds the rendering pipeline to ossia processes.
Definition: CameraDevice.cpp:28
Definition: score-plugin-gfx/Gfx/Graph/Node.hpp:51