6#include <QtCore/qcoreapplication.h>
7#include <QtCore/qelapsedtimer.h>
8#include "private/qabstractanimationjob_p.h"
9#include <private/qobject_p.h>
34 if (!running || paused)
38 qint64 frameTimeNs = elapsedTimeNs - prevElapsedTimeNs;
39 if (prevFrameTimeNs != frameTimeNs) {
40 frameTime =
qreal(frameTimeNs) / 1000000000.0;
45 qreal newSmoothFrameTime =
f * frameTime + (1.0 -
f) * smoothFrameTime;
47 smoothFrameTime = newSmoothFrameTime;
48 Q_EMIT q->smoothFrameTimeChanged();
51 q->setElapsedTime(elapsedTime + frameTime);
53 const int frame = (firstTick && currentFrame > 0) ? 0 : currentFrame + 1;
56 prevElapsedTimeNs = elapsedTimeNs;
57 prevFrameTimeNs = frameTimeNs;
66 if (!componentComplete)
69 if (running && !paused) {
85 qreal frameTime = 0.0;
86 qreal smoothFrameTime = 0.0;
87 qreal elapsedTime = 0.0;
88 qint64 prevFrameTimeNs = 0;
89 qint64 prevElapsedTimeNs = 0;
92 bool componentComplete =
false;
93 bool firstTick =
true;
151 d->frameJob.setLoopCount(-1);
251 return d->currentFrame;
316 return d->smoothFrameTime;
330 return d->elapsedTime;
414 d->prevElapsedTimeNs = 0;
415 d->elapsedTimer.start();
424 d->componentComplete =
false;
433 d->componentComplete =
true;
440void QQuickFrameAnimation::setCurrentFrame(
int frame)
443 if (
d->currentFrame !=
frame) {
452void QQuickFrameAnimation::setElapsedTime(
qreal elapsedTime)
463#include "moc_qquickframeanimation_p.cpp"
void start() noexcept
Starts this timer.
qint64 nsecsElapsed() const noexcept
int duration() const override
QQuickFrameAnimationPrivate()
void animationCurrentLoopChanged(QAbstractAnimationJob *) override
bool isRunning() const
\qmlsignal QtQuick::FrameAnimation::triggered()
void resume()
\qmlmethod QtQuick::FrameAnimation::resume()
void classBegin() override
void setRunning(bool running)
void elapsedTimeChanged()
void pause()
\qmlmethod QtQuick::FrameAnimation::pause()
QQuickFrameAnimation(QObject *parent=nullptr)
\qmltype FrameAnimation \instantiates QQuickFrameAnimation \inqmlmodule QtQuick
void reset()
\qmlmethod QtQuick::FrameAnimation::reset()
void restart()
\qmlmethod QtQuick::FrameAnimation::restart()
void start()
\qmlmethod QtQuick::FrameAnimation::start()
bool isPaused() const
\qmlproperty bool QtQuick::FrameAnimation::paused
void setPaused(bool paused)
void currentFrameChanged()
void componentComplete() override
void stop()
\qmlmethod QtQuick::FrameAnimation::stop()
Combined button and popup list for selecting options.
static Q_CONSTINIT QBasicAtomicInt running
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
GLdouble GLdouble GLdouble GLdouble q
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent