6#include <PhosphorAnimation/phosphoranimation_export.h>
8#include <QtCore/QMetaObject>
9#include <QtCore/QObject>
10#include <QtCore/QPointer>
15#include <unordered_map>
205 static std::atomic<QtQuickClockManager*> s_defaultManager;
209 QPointer<QQuickWindow> window;
210 std::unique_ptr<QtQuickClock> clock;
219 QMetaObject::Connection destroyedConnection;
222 mutable std::mutex m_mutex;
232 std::unordered_map<QQuickWindow*, Entry> m_entries;
Abstract clock interface for the motion runtime.
Definition IMotionClock.h:18
Enforces "one QtQuickClock per QQuickWindow" within a single composition-root-owned manager instance.
Definition QtQuickClockManager.h:135
IMotionClock * clockFor(QQuickWindow *window)
Return the clock for window, constructing it on first call.
QtQuickClockManager & operator=(const QtQuickClockManager &)=delete
int entryCount() const
Current number of active entries.
void clearForTest()
Drop every entry.
static void setDefaultManager(QtQuickClockManager *manager)
Publish manager as the process-wide default for QML-side consumers (PhosphorAnimatedValueBase::resolv...
void releaseClockFor(QQuickWindow *window)
Drop the clock entry for window, if any.
static QtQuickClockManager * defaultManager()
Read-only view of the manager pointer published by setDefaultManager.
QtQuickClockManager(const QtQuickClockManager &)=delete
Definition AnimatedValue.h:31