2#include <Gfx/Graph/Node.hpp>
3#include <Gfx/Graph/NodeRenderer.hpp>
4#include <Gfx/Graph/RenderState.hpp>
5#include <Gfx/Graph/Uniforms.hpp>
7#include <score_plugin_gfx_export.h>
13class GpuResourceRegistry;
17 std::function<void()> onReady;
18 std::function<void()> onResize;
38 using score::gfx::NodeRenderer::NodeRenderer;
41 finishFrame(
RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res);
58 virtual void setRenderer(std::shared_ptr<RenderList>) = 0;
63 virtual void startRendering() = 0;
64 virtual void render() = 0;
65 virtual void stopRendering() = 0;
66 virtual bool canRender()
const = 0;
67 virtual void onRendererChange() = 0;
75 virtual void setVSyncCallback(std::function<
void()>);
80 virtual void destroyOutput() = 0;
81 virtual std::shared_ptr<RenderState> renderState()
const = 0;
87 std::optional<double> manualRenderingRate;
88 bool outputNeedsRenderPass{};
153 void releaseRegistry();
166 void releaseOwnedRenderList();
170 std::function<void()> m_onReleaseRenderList;
176 std::unique_ptr<GpuResourceRegistry> m_registry;
Per-RenderList arena store for GPU-resident scene data.
Definition GpuResourceRegistry.hpp:44
Root data model for visual nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:74
Renderer for a given node.
Definition NodeRenderer.hpp:11
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:54
OutputNodeRenderer * createRenderer(RenderList &r) const noexcept override=0
Create a renderer in a given context for this node.
GpuResourceRegistry * registry() const noexcept
Non-owning accessor. Returns null if no registry has been acquired yet (e.g. queried before the first...
Definition OutputNode.hpp:139
Definition OutputNode.hpp:36
void removeOutputPass(RenderList &, Edge &) override
Definition OutputNode.hpp:46
List of nodes to be rendered to an output.
Definition RenderList.hpp:30
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
Definition OutputNode.hpp:15
std::function< void()> onReleaseRenderList
Ask the owning Graph to release + deregister the RenderList that was built against this output's QRhi...
Definition OutputNode.hpp:32
Definition OutputNode.hpp:84
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:152