0

こんにちは、アニメーションで単純な 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 です。. .

私が間違っていることは何ですか?

4

4 に答える 4

0

タイマーの精度を上げるには、 timeGetTimeを使用してみてください。

于 2013-08-20T10:31:51.073 に答える