diff options
Diffstat (limited to 'src/corelib/kernel/qelapsedtimer_win.cpp')
-rw-r--r-- | src/corelib/kernel/qelapsedtimer_win.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/corelib/kernel/qelapsedtimer_win.cpp b/src/corelib/kernel/qelapsedtimer_win.cpp index 520126d262..0c380b2f6a 100644 --- a/src/corelib/kernel/qelapsedtimer_win.cpp +++ b/src/corelib/kernel/qelapsedtimer_win.cpp @@ -38,6 +38,8 @@ ****************************************************************************/ #include "qelapsedtimer.h" +#include "qdeadlinetimer.h" +#include "qdeadlinetimer_p.h" #include <qt_windows.h> QT_BEGIN_NAMESPACE @@ -76,6 +78,17 @@ static inline qint64 ticksToNanoseconds(qint64 ticks) } } +static inline qint64 nanosecondsToTicks(qint64 nsec) +{ + if (counterFrequency > 0) { + // QueryPerformanceCounter uses an arbitrary frequency + return double(nsec) * counterFrequency / 1000000000.; + } else { + // GetTickCount(64) uses milliseconds + return nsec / 1000000; + } +} + static quint64 getTickCount() { resolveCounterFrequency(); @@ -161,4 +174,13 @@ bool operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) Q_DECL_NOTHROW return (v1.t1 - v2.t1) < 0; } +QDeadlineTimer QDeadlineTimer::current(Qt::TimerType timerType) Q_DECL_NOTHROW +{ + Q_STATIC_ASSERT(!QDeadlineTimerNanosecondsInT2); + QDeadlineTimer result; + result.t1 = ticksToNanoseconds(getTickCount()); + result.type = timerType; + return result; +} + QT_END_NAMESPACE |