41 using NodePtr = std::unique_ptr<score::gfx::Node>;
46 int32_t register_node(NodePtr node);
47 int32_t register_preview_node(NodePtr node);
48 void connect_preview_node(EdgeSpec e);
49 void disconnect_preview_node(EdgeSpec e);
50 void unregister_node(int32_t idx);
51 void unregister_preview_node(int32_t idx);
53 void recompute_edges();
54 void recompute_graph();
55 void recompute_connections();
62 tick_messages.enqueue(std::move(msg));
68 void remove_preview_output();
69 void add_edge(EdgeSpec e);
70 void remove_edge(EdgeSpec e);
71 void remove_node(std::vector<std::unique_ptr<score::gfx::Node>>& nursery, int32_t
id);
77 std::atomic_int32_t index{1};
78 ossia::hash_map<int32_t, NodePtr> nodes;
94 std::unique_ptr<score::gfx::Node> node;
101 CONNECT_PREVIEW_NODE,
102 DISCONNECT_PREVIEW_NODE
107 using Command = ossia::variant<NodeCommand, EdgeCommand>;
108 moodycamel::ConcurrentQueue<Command> tick_commands;
109 moodycamel::ConcurrentQueue<score::gfx::Message> tick_messages;
111 std::mutex edges_lock;
112 ossia::flat_set<EdgeSpec> new_edges TS_GUARDED_BY(edges_lock);
113 ossia::flat_set<EdgeSpec> edges;
114 ossia::flat_set<EdgeSpec> preview_edges;
115 std::atomic_bool edges_changed{};
120 ossia::small_flat_map<score::HighResolutionTimer*, ossia::flat_set<score::gfx::OutputNode*>, 8> m_manualTimers;
122 ossia::object_pool<std::vector<score::gfx::gfx_input>> m_buffers;
Definition GfxContext.hpp:37
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:31
Definition DocumentContext.hpp:18