18 void startRendering()
override;
19 void render()
override;
20 void onRendererChange()
override;
21 bool canRender()
const override;
22 void stopRendering()
override;
24 void setRenderer(std::shared_ptr<RenderList> r)
override;
27 void setScreen(QScreen*);
28 void setPosition(QPoint pos);
29 void setSize(QSize sz);
30 void setRenderSize(QSize sz);
31 void setFullScreen(
bool);
33 void setTitle(QString);
35 void setSwapchainFlag(Gfx::SwapchainFlag flag);
36 void setSwapchainFormat(Gfx::SwapchainFormat format);
39 void destroyOutput()
override;
41 void setVSyncCallback(std::function<
void()>)
override;
43 std::shared_ptr<RenderState> renderState()
const override;
47 const std::shared_ptr<Window>& window()
const noexcept {
return m_window; }
53 void requestReadback()
const noexcept { m_readbackRequested.store(
true); }
54 bool takeReadbackRequest()
const noexcept
56 return m_readbackRequested.exchange(
false);
58 const std::shared_ptr<QRhiReadbackResult>& readback()
const noexcept
63 std::function<void(QPointF)> onWindowMove;
64 std::function<void(QPointF, QPointF)> onMouseMove;
65 std::function<void(QTabletEvent*)> onTabletMove;
66 std::function<void(
int,
const QString&)> onKey;
67 std::function<void(
int,
const QString&)> onKeyRelease;
68 std::function<void(
float)> onFps;
72 mutable std::atomic_bool m_readbackRequested{
false};
73 std::shared_ptr<QRhiReadbackResult> m_readback
74 = std::make_shared<QRhiReadbackResult>();
75 std::shared_ptr<Window> m_window{};
76 QRhiSwapChain* m_swapChain{};
77 QRhiRenderBuffer* m_depthStencil{};
80 std::optional<QPoint> m_pos{};
81 std::optional<QSize> m_sz{};
82 std::optional<QSize> m_renderSz{};
83 std::function<void()> m_vsyncCallback;
85 Gfx::SwapchainFlag m_swapchainFlag{};
86 Gfx::SwapchainFormat m_swapchainFormat{};
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:54
void setCursor(Qt::CursorShape c)
setCursor sets the cursor safely.
Definition ClearLayout.cpp:8