6#include <PhosphorAnimation/phosphoranimation_export.h>
28 virtual std::chrono::nanoseconds
now()
const = 0;
55 return epochA && epochA == epochB;
Abstract clock interface for the motion runtime.
Definition IMotionClock.h:18
static bool epochCompatible(const IMotionClock *a, const IMotionClock *b)
True iff both clocks are non-null and share the same non-null epochIdentity.
Definition IMotionClock.h:48
IMotionClock(const IMotionClock &)=delete
virtual ~IMotionClock()=default
IMotionClock & operator=(IMotionClock &&)=delete
static const void * steadyClockEpoch()
Shared sentinel for std::chrono::steady_clock-backed clocks.
virtual void requestFrame()=0
Schedule another paint tick. Idempotent within a single frame.
virtual std::chrono::nanoseconds now() const =0
Monotonically non-decreasing steady-clock reading (nanoseconds).
IMotionClock & operator=(const IMotionClock &)=delete
IMotionClock(IMotionClock &&)=delete
virtual qreal refreshRate() const =0
Nominal refresh rate in Hz, or zero if unknown.
virtual const void * epochIdentity() const
Opaque epoch identity for rebindClock compatibility.
Definition IMotionClock.h:39
Definition AnimatedValue.h:31