13 Configuration conf,
const std::vector<Gfx::OutputMapping>& mappings);
16 void startRendering()
override;
17 void render()
override;
18 void onRendererChange()
override;
19 bool canRender()
const override;
20 void stopRendering()
override;
22 void setRenderer(std::shared_ptr<RenderList> r)
override;
26 void destroyOutput()
override;
28 void setVSyncCallback(std::function<
void()>)
override;
30 std::shared_ptr<RenderState> renderState()
const override;
42 std::shared_ptr<Window> window;
43 QRhiSwapChain* swapChain{};
44 QRhiRenderBuffer* depthStencil{};
45 QRhiRenderPassDescriptor* renderPassDescriptor{};
46 QRectF sourceRect{0, 0, 1, 1};
58 const std::vector<WindowOutput>& windowOutputs() const noexcept
60 return m_windowOutputs;
69 return m_offscreenTarget;
72 void setRenderSize(QSize sz);
73 void setSourceRect(
int windowIndex, QRectF rect);
74 void setEdgeBlend(
int windowIndex,
int side,
float width,
float gamma);
76 void setTransform(
int windowIndex,
int rotation,
bool mirrorX,
bool mirrorY);
77 void setSwapchainFlag(Gfx::SwapchainFlag flag);
78 void setSwapchainFormat(Gfx::SwapchainFormat format);
80 std::function<void(
float)> onFps;
84 std::function<void()> onWindowsCreated;
90 void initWindowSwapChain(
int index);
91 void releaseWindowSwapChain(
int index);
95 void recreateOffscreenTarget();
98 std::vector<Gfx::OutputMapping> m_mappings;
99 std::vector<WindowOutput> m_windowOutputs;
101 std::shared_ptr<RenderState> m_renderState;
102 std::weak_ptr<RenderList> m_renderer;
104 TextureRenderTarget m_offscreenTarget;
106 Gfx::SwapchainFlag m_swapchainFlag{};
107 Gfx::SwapchainFormat m_swapchainFormat{};
108 std::function<void()> m_vsyncCallback;
112 std::function<void()> m_onResize;
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:31
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:122