C ++ QueryPerformanceCounter и QueryPerformanceFrequency - PullRequest
0 голосов
/ 17 мая 2011

Я пытался создать таймер для своей игры, и я слышал о QueryPerformanceCounter и QueryPerformanceFrequency.Может кто-нибудь объяснить, как их можно использовать для вычисления времени / кадров / тактов в игровом цикле?.

Ответы [ 2 ]

11 голосов
/ 17 мая 2011

Служба поддержки Microsoft имеет статью базы знаний, в частности об этом:

Как использовать QueryPerformanceCounter для тайм-кода

В основном вы используете QueryPerformanceCounter для получения высокого разрешениязначение таймера до и после события, которое вы хотите время.

Затем используйте QueryPerformanceFrequency, чтобы получить количество тиков в секунду.Разделите разницу во времени на это значение, чтобы преобразовать значение в секунды.

5 голосов
/ 17 мая 2011
LARGE_INTEGER m_liPerformanceFrequency;
QueryPerformanceFrequency( &m_liPerformanceFrequency);

//...

LARGE_INTEGER liPerformanceCount;
QueryPerformanceCounter( &liPerformanceCount);
double dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);
...