6#ifndef QQUICKANIMATORJOB_P_H
7#define QQUICKANIMATORJOB_P_H
20#include <private/qabstractanimationjob_p.h>
21#include <private/qquickanimator_p.h>
22#include <private/qtquickglobal_p.h>
24#include <QtQuick/qquickitem.h>
26#include <QtCore/qeasingcurve.h>
27#include <QtCore/qpointer.h>
34class QQuickAbstractAnimation;
36class QQuickAnimatorController;
45 QQuickAnimatorProxyJob(QAbstractAnimationJob *job, QQuickAbstractAnimation *animation);
46 ~QQuickAnimatorProxyJob();
48 int duration()
const override {
return m_duration; }
50 const QSharedPointer<QAbstractAnimationJob> &job()
const {
return m_job; }
53 void updateCurrentTime(
int) override;
54 void updateLoopCount(
int) override;
55 void updateState(QAbstractAnimationJob::State newState, QAbstractAnimationJob::State oldState) override;
56 void debugAnimation(QDebug d)
const override;
59 void windowChanged(QQuickWindow *window);
60 void sceneGraphInitialized();
63 void syncBackCurrentValues();
64 void readyToAnimate();
65 void setWindow(QQuickWindow *window);
66 static QObject *findAnimationContext(QQuickAbstractAnimation *);
68 QPointer<QQuickAnimatorController> m_controller;
69 QSharedPointer<QAbstractAnimationJob> m_job;
79 InternalState m_internalState;
85 virtual void setTarget(QQuickItem *target);
86 QQuickItem *target()
const {
return m_target; }
88 void setFrom(qreal from) {
92 qreal from()
const {
return m_from; }
94 void setTo(qreal to) {
98 qreal to()
const {
return m_to; }
100 void setDuration(
int duration) { m_duration = duration; }
101 int duration()
const override {
return m_duration; }
103 QEasingCurve easingCurve()
const {
return m_easing; }
104 void setEasingCurve(
const QEasingCurve &curve) { m_easing = curve; }
108 virtual void initialize(QQuickAnimatorController *controller);
111 virtual void invalidate() = 0;
116 virtual void writeBack() = 0;
120 virtual void preSync() { }
124 virtual void postSync() { }
129 virtual void commit() { }
131 bool isTransform()
const {
return m_isTransform; }
132 bool isUniform()
const {
return m_isUniform; }
136 QQuickAnimatorController *controller()
const {
return m_controller; }
140 void debugAnimation(QDebug d)
const override;
142 qreal progress(
int time)
const;
145 QPointer<QQuickItem> m_target;
146 QQuickAnimatorController *m_controller;
152 QEasingCurve m_easing;
156 uint m_isTransform : 1;
157 uint m_isUniform : 1;
217 void updateCurrentTime(
int time) override;
218 void writeBack() override;
224 void updateCurrentTime(
int time) override;
225 void writeBack() override;
231 void updateCurrentTime(
int time) override;
232 void writeBack() override;
238 QQuickRotationAnimatorJob();
240 void updateCurrentTime(
int time) override;
241 void writeBack() override;
243 void setDirection(QQuickRotationAnimator::RotationDirection direction) { m_direction = direction; }
244 QQuickRotationAnimator::RotationDirection direction()
const {
return m_direction; }
247 QQuickRotationAnimator::RotationDirection m_direction;
253 QQuickOpacityAnimatorJob();
255 void invalidate() override;
256 void updateCurrentTime(
int time) override;
257 void writeBack() override;
258 void postSync() override;
261 QSGOpacityNode *m_opacityNode;
264#if QT_CONFIG(quick_shadereffect)
265class QQuickShaderEffect;
267class Q_QUICK_EXPORT QQuickUniformAnimatorJob :
public QQuickAnimatorJob
270 QQuickUniformAnimatorJob();
272 void setTarget(QQuickItem *target) override;
274 void setUniform(
const QByteArray &uniform) { m_uniform = uniform; }
275 QByteArray uniform()
const {
return m_uniform; }
277 void updateCurrentTime(
int time) override;
278 void writeBack() override;
279 void postSync() override;
281 void invalidate() override;
284 QByteArray m_uniform;
285 QPointer<QQuickShaderEffect> m_effect;
virtual void debugAction(QDebug, int) const
virtual void doAction()=0
virtual ~QAbstractAnimationAction()
QAnimationActionProxy(T *instance)
void debugAction(QDebug d, int indentLevel) const override
The QQmlScriptString class encapsulates a script and its context.
static qsizetype count_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
QList< QQuickAbstractAnimation * > animations
void animationCurrentLoopChanged(QAbstractAnimationJob *job) override
static void replace_animation(QQmlListProperty< QQuickAbstractAnimation > *list, qsizetype index, QQuickAbstractAnimation *role)
static void removeLast_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
static QQuickAbstractAnimation * at_animation(QQmlListProperty< QQuickAbstractAnimation > *list, qsizetype index)
static void clear_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
void restartFromCurrentLoop()
virtual void debugUpdater(QDebug, int) const
virtual ~QQuickBulkValueUpdater()
virtual void setValue(qreal value)=0
QQmlNullableValue< QVariant > value
QList< QObject * > exclude
QList< QObject * > targets
QQmlScriptString runScriptScript
QAbstractAnimationAction * createAction()
QAnimationActionProxy< QQuickScriptActionPrivate, &QQuickScriptActionPrivate::execute, &QQuickScriptActionPrivate::debugAction > Proxy
void debugAction(QDebug d, int indentLevel) const
QVariant _q_interpolateClockwiseRotation(qreal &f, qreal &t, qreal progress)
QVariant _q_interpolateShortestRotation(qreal &f, qreal &t, qreal progress)
\qmltype RotationAnimation \nativetype QQuickRotationAnimation \inqmlmodule QtQuick\inherits Property...
QVariant _q_interpolateCounterclockwiseRotation(qreal &f, qreal &t, qreal progress)
QQuickStateOperation::ActionList QQuickStateActions