こんにちは、アニメーションで単純な FPS カウンターを取得しました。FPS は正常にカウントされますが、アニメーション時間を測定できない理由がわかりません。通常、私はその時間を取得しますglutGet(GLUT ELAPSED TIME)
が、Winapiに行かなければならないので、使用したい(または使用する必要がある)これGetTickCount()
が私のコードです:
int Frames=0;
int CurrentTime=0;
int PreviousTime=0;
int IntervalTime=0;
int CounterTime=0;
float FPS;
void fpscount(){
Frames++;
CurrentTime = GetTickCount();
IntervalTime = CurrentTime - PreviousTime;
if(IntervalTime >= 1000)
{
FPS = Frames / (IntervalTime / 1000.0f);
PreviousTime = CurrentTime;
Frames = 0;
CounterTime += IntervalTime;
}
}
私は行ごとに測定し、次CounterTime += IntervalTime;
のような奇妙な値を取得します: 44834406 44835420
上記のように値を取得するようCounterTime = IntervalTime+CounterTime;
にその行を定義するとします。CounterTime
その行を取得値: 1014 1014 として定義するとCounterTime = IntervalTime;
、CounterTime
それらは合計されません。
正しい値は 1014 2028 です。. .
私が間違っていることは何ですか?