mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 21:43:03 +02:00
Merge pull request #3025 from talentraspel/19753
replaced usleep for windows
This commit is contained in:
commit
5b62733a36
3 changed files with 52 additions and 9 deletions
|
@ -1419,7 +1419,7 @@ bool Audio::switchOutputToAudioDevice(const QAudioDeviceInfo& outputDeviceInfo)
|
||||||
// proportional to the accelerator ratio.
|
// proportional to the accelerator ratio.
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
const float Audio::CALLBACK_ACCELERATOR_RATIO = 0.4f;
|
const float Audio::CALLBACK_ACCELERATOR_RATIO = 0.1f;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#include <SharedUtil.h>
|
#include <SharedUtil.h>
|
||||||
|
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
#include "InterfaceConfig.h"
|
#include "InterfaceConfig.h"
|
||||||
#include "ui/TextRenderer.h"
|
#include "ui/TextRenderer.h"
|
||||||
#include "VoxelConstants.h"
|
#include "VoxelConstants.h"
|
||||||
|
@ -409,7 +411,43 @@ void runTimingTests() {
|
||||||
|
|
||||||
float NSEC_TO_USEC = 1.0f / 1000.0f;
|
float NSEC_TO_USEC = 1.0f / 1000.0f;
|
||||||
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
qDebug("QElapsedTimer::nsecElapsed() usecs: %f", elapsedUsecs / (float) numTests);
|
qDebug("QElapsedTimer::nsecElapsed() usecs: %f", elapsedUsecs);
|
||||||
|
|
||||||
|
// Test sleep functions for accuracy
|
||||||
|
startTime.start();
|
||||||
|
QThread::msleep(1);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("QThread::msleep(1) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
QThread::sleep(1);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("QThread::sleep(1) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
usleep(1);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("usleep(1) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
usleep(10);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("usleep(10) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
usleep(100);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("usleep(100) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
usleep(1000);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("usleep(1000) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
usleep(15000);
|
||||||
|
elapsedUsecs = (float)startTime.nsecsElapsed() * NSEC_TO_USEC;
|
||||||
|
qDebug("usleep(15000) ms: %f", elapsedUsecs / 1000.0f);
|
||||||
|
|
||||||
// Random number generation
|
// Random number generation
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QElapsedTimer>
|
#include <QElapsedTimer>
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
#include "OctalCode.h"
|
#include "OctalCode.h"
|
||||||
#include "SharedUtil.h"
|
#include "SharedUtil.h"
|
||||||
|
@ -415,13 +416,17 @@ void printVoxelCode(unsigned char* voxelCode) {
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
void usleep(int waitTime) {
|
void usleep(int waitTime) {
|
||||||
__int64 time1 = 0, time2 = 0, sysFreq = 0;
|
const quint64 BUSY_LOOP_USECS = 2000;
|
||||||
|
quint64 compTime = waitTime + usecTimestampNow();
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&time1);
|
quint64 compTimeSleep = compTime - BUSY_LOOP_USECS;
|
||||||
QueryPerformanceFrequency((LARGE_INTEGER *)&sysFreq);
|
while (true) {
|
||||||
do {
|
if (usecTimestampNow() < compTimeSleep) {
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&time2);
|
QThread::msleep(1);
|
||||||
} while( (time2 - time1) < waitTime);
|
}
|
||||||
|
if (usecTimestampNow() >= compTime) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue