2009-09-02 4 views

答えて

3

経過時間を測定し、フレーム数を数えます。 フレームレートを与えるために、1つずつ割ります。

経過時間が1秒に達した場合、それ以上の時間を平均したい場合は、両方のカウントをリセットして再開してください。

+0

私は供給過剰を使用していると私は、これはglutIdleFunc(ONEFRAME)を呼び出す作る場合。私は、oneFrameはすべてのフレームと呼ばれるだろうと仮定していますこれは正しいですか? – Mike2012

+0

私はそう信じていますが、私はglutに精通していません – jcoder

5

メインループの開始時にタイマーをつけて、そこに戻るのにかかる時間をテストします。あなたのようなものだろう窓の下

double oldTime = 0.0. 
while(!exit) 
{ 
    __int64 counter; 
    QueryPerformanceCounter((LARGE_INTEGER*)&counter); 

    __int64 frequency; 
    QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); 

    double newTime  = (double)counter/(double)frequency; 
    double frameRate = 1.0/(newTime - oldTime); 
    oldTime   = newTime; 

    // Rest of your game loop goes here.  
} 
+1

私は実際のコードでしか言わなかったので、+1 (それは窓を想定していますが...) – jcoder

+0

彼はプラットフォームや言語について言及していません...推測時間;) – Goz

関連する問題