summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qperformancetimer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qperformancetimer.cpp')
-rw-r--r--src/declarative/qml/qperformancetimer.cpp28
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