Loading...
Searching...
No Matches
PreviewNode.hpp
1#pragma once
2
3#include <Gfx/Graph/OutputNode.hpp>
4#include <Gfx/SharedOutputSettings.hpp>
5
6namespace score::gfx
7{
8
9class SCORE_PLUGIN_GFX_EXPORT PreviewNode : public score::gfx::OutputNode
10{
11public:
12 explicit PreviewNode(
13 Gfx::SharedOutputSettings s, QRhi* rhi, QRhiRenderTarget* tgt, QRhiTexture* tex);
14 virtual ~PreviewNode();
15
16 void startRendering() override;
17 void onRendererChange() override;
18 void render() override;
19 bool canRender() const override;
20 void stopRendering() override;
21
22 void setRenderer(std::shared_ptr<score::gfx::RenderList> r) override;
23 score::gfx::RenderList* renderer() const override;
24
25 void createOutput(
26 score::gfx::GraphicsApi graphicsApi, std::function<void()> onReady,
27 std::function<void()> onUpdate, std::function<void()> onResize) override;
28 void destroyOutput() override;
29
30 std::shared_ptr<score::gfx::RenderState> renderState() const override;
32 createRenderer(score::gfx::RenderList& r) const noexcept override;
33 Configuration configuration() const noexcept override;
34
35 QRhiTexture* texture() const noexcept { return m_texture; }
36
37private:
39 QRhi* m_rhi{};
40
41 std::weak_ptr<score::gfx::RenderList> m_renderer{};
42 QRhiRenderTarget* m_renderTarget{};
43 QRhiTexture* m_texture{};
44 std::function<void()> m_update;
45 std::shared_ptr<score::gfx::RenderState> m_renderState{};
46};
47}
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:24
Definition OutputNode.hpp:11
Definition PreviewNode.hpp:10
List of nodes to be rendered to an output.
Definition RenderList.hpp:19
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:12
GraphicsApi
Available graphics APIs to use.
Definition RenderState.hpp:20
Definition SharedOutputSettings.hpp:19
Definition OutputNode.hpp:49