#pragma once
#include <windows.h>
typedef struct tag_FPSData{
unsigned fps;
unsigned skipFrame;
} FPSData;
////////////////////////////////////////////
// FPS調整クラス
////////////////////////////////////////////
class Timer {
public:
Timer();
~Timer();
void resetTimer(); //タイマーのリセット
void setFPS(unsigned fps); //FPS上限設定
bool isElapsedFrame(); //1Fの単位時間を越えているか
void wait(); //1Fの単位時間まで待つ
FPSData getFPS(); //FPS情報を返す
private:
unsigned m_fps; //設定FPS数、通常60
bool m_isElapsedFrame; //フレームスキップするかどうか
__int64 m_lastTime; //前フレーム終了時間
__int64 m_surplusTime; //余剰時間
__int64 m_maxWait; //1F単位時間
//フレームレート計測用
unsigned m_skipCount;
unsigned m_drawCount;
unsigned m_drawFPS;
unsigned m_drawSkip;
DWORD m_lastCalc;
UINT m_periodMin; //タイマの最小分解能、終了処理に必要
};
最終更新:2008年11月26日 07:28