2#include <score_plugin_gfx_export.h>
15class HighResolutionTimer;
52 virtual Kind kind()
const noexcept = 0;
60 virtual void start(std::function<
void()> tick) = 0;
89 Kind kind()
const noexcept override {
return Kind::Timer; }
91 double frequency()
const noexcept {
return m_frequency; }
96 bool empty()
const noexcept {
return m_outputs.empty(); }
97 const std::vector<OutputNode*>& outputs()
const noexcept {
return m_outputs; }
99 void start(std::function<
void()> tick)
override;
100 void stop()
override;
105 double m_frequency{};
107 QMetaObject::Connection m_conn;
108 std::function<void()> m_tick;
109 std::vector<OutputNode*> m_outputs;
133 Kind kind()
const noexcept override {
return Kind::DisplayVSync; }
135 void start(std::function<
void()> tick)
override;
136 void stop()
override;
181 Kind kind()
const noexcept override {
return Kind::ExternalGenlock; }
183 void start(std::function<
void()> tick)
override;
184 void stop()
override;
190 std::function<bool()> m_waitForNextTick;
191 std::function<void()> m_tick;
192 std::thread m_thread;
193 std::atomic<bool> m_running{
false};
194 std::atomic<bool> m_exited{
false};
Wraps ScreenNode's swap-chain vsync callback path (clock #1, push).
Definition RenderClock.hpp:128
Hardware-genlock render clock (opt-in): a card's output VBI.
Definition RenderClock.hpp:169
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:54
Abstract render clock.
Definition RenderClock.hpp:41
virtual void start(std::function< void()> tick)=0
Begin delivering ticks.
virtual void stop()=0
Stop delivering ticks and release the underlying tick source.
Wraps GfxContext's shared wall-timer (clock #2, the default).
Definition RenderClock.hpp:77
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:11
Base toolkit upon which the software is built.
Definition Application.cpp:116