2#include <Process/Dataflow/CableData.hpp>
4#include <Gfx/Graph/Node.hpp>
5#include <Gfx/Graph/RenderList.hpp>
7#include <ossia/detail/algorithms.hpp>
9#include <score_plugin_gfx_export.h>
21struct SCORE_PLUGIN_GFX_EXPORT
Graph
43 void addEdge(
Port* source,
Port* sink, Process::CableType t);
48 void removeEdge(
Port* source,
Port* sink);
54 void removeNodeFromRenderLists(
Node* node);
59 void removeNodeAndEdges(
Node* node);
71 onEdgeRemoved(
Edge& edge,
const ossia::hash_set<const Port*>* preserveSinks =
nullptr);
75 void updateSinkSampler(
Edge& edge);
78 void createAllMissingPasses();
79 void updateAllSinkSamplers();
83 void createPassForEdgeIfMissing(
Edge& edge);
88 void reconcileAllRenderLists();
128 bool canDoVSync()
const noexcept;
139 void createMissingRenderLists();
141 const std::vector<std::shared_ptr<RenderList>>& renderLists()
const noexcept
146 std::span<OutputNode* const> outputs()
const noexcept
167 void retopologicalSort(RenderList& rl);
169 void initializeOutput(OutputNode* output, GraphicsApi graphicsApi);
170 void createOutputRenderList(OutputNode& output);
171 void recreateOutputRenderList(OutputNode& output);
172 std::shared_ptr<RenderList>
173 createRenderList(OutputNode*, std::shared_ptr<RenderState> state);
175 std::vector<std::shared_ptr<RenderList>> m_renderers;
176 std::vector<std::shared_ptr<Window>> m_unused_windows;
178 std::vector<score::gfx::Node*> m_nodes;
179 std::vector<Edge*> m_edges;
181 std::vector<OutputNode*> m_outputs;
Cross-RenderList content-hash dedup for decoded asset bytes.
Definition AssetTable.hpp:71
Root data model for visual nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:74
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:54
Binds the rendering pipeline to ossia processes.
Definition AssetTable.cpp:7
@ Window
A separate top-level window.
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:11
GraphicsApi
Available graphics APIs to use.
Definition RenderState.hpp:22
Connection between two score::gfx::Port.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:103
Represents a graph of renderers.
Definition score-plugin-gfx/Gfx/Graph/Graph.hpp:22
void setAssetTable(Gfx::AssetTable *a) noexcept
Inject the session-wide AssetTable.
Definition score-plugin-gfx/Gfx/Graph/Graph.hpp:162
Port of a score::gfx::Node.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:82