diff options
Diffstat (limited to 'src/declarative/qml/qperformancetimer.cpp')
-rw-r--r-- | src/declarative/qml/qperformancetimer.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/declarative/qml/qperformancetimer.cpp b/src/declarative/qml/qperformancetimer.cpp index b7c2f47c..9e2e0734 100644 --- a/src/declarative/qml/qperformancetimer.cpp +++ b/src/declarative/qml/qperformancetimer.cpp @@ -80,6 +80,13 @@ qint64 QPerformanceTimer::elapsed() const return absoluteToNSecs(cpu_time - t1); } +// return number of nsecs elapsed from timer start time till absoluteMonotonicTimeNs +qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const +{ + uint64_t cpu_time = absoluteMonotonicTimeNs; + return absoluteToNSecs(cpu_time - t1); +} + ////////////////////////////// Unix ////////////////////////////// #elif defined(Q_OS_UNIX) @@ -154,6 +161,16 @@ qint64 QPerformanceTimer::elapsed() const return sec * Q_INT64_C(1000000000) + frac; } +qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const +{ + qint64 sec = absoluteMonotonicTimeNs / Q_INT64_C(1000000000); + qint64 frac = absoluteMonotonicTimeNs % Q_INT64_C(1000000000); + sec = sec - t1; + frac = frac - t2; + + return sec * Q_INT64_C(1000000000) + frac; +} + ////////////////////////////// Windows ////////////////////////////// #elif defined(Q_OS_WIN) @@ -179,6 +196,11 @@ qint64 QPerformanceTimer::elapsed() const return getTimeFromTick(li.QuadPart - t1); } +qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const +{ + return absoluteMonotonicTimeNs - t1; +} + ////////////////////////////// Default ////////////////////////////// #else @@ -192,6 +214,12 @@ qint64 QPerformanceTimer::elapsed() const return 0; } +qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const +{ + Q_UNUSED(absoluteMonotonicTimeNs); + return 0; +} + #endif QT_END_NAMESPACE |