C++ QueryPerformanceCounter和QueryPerformanceFrequency

I P*_*m I -1 c++ game-loop

我一直试图为我的游戏创建一个计时器,我听说过QueryPerformanceCounter和QueryPerformanceFrequency.有人可以解释一下这些可以用来计算游戏循环中的时间/ fps /滴答吗?

Bo *_*son 11

Microsoft支持有一篇专门针对此的知识库文章:

如何使用QueryPerformanceCounter来计时码

基本上,您可以使用QueryPerformanceCounter在想要计时的事件之前和之后获得高分辨率计时器值.

然后QueryPerformanceFrequency用来获得每秒的滴答数.将时间差除以此值,将值转换为秒.


Hen*_*rik 5

LARGE_INTEGER m_liPerformanceFrequency;
QueryPerformanceFrequency( &m_liPerformanceFrequency);

//...

LARGE_INTEGER liPerformanceCount;
QueryPerformanceCounter( &liPerformanceCount);
double dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);
Run Code Online (Sandbox Code Playgroud)