FPSクラスの作成

ウインドウがとりあえず形になったので次にFPSクラスを作ることにしました。
(実際はウインドウ管理クラスなども作らないといけないけど、まぁそれは置いておく)


class CFps
{
private:
DWORD m_begin;
int m_count;
int m_fps;
DWORD m_request_fps;
DWORD m_keep_count;
public:
//初期化
CFps()
{
m_count = 0;
m_fps = 0;
m_request_fps = 0;
}

void Init( int keep )
{
m_request_fps = 1000 / keep;
m_keep_count = 0;
}

//計測開始
void Begin()
{
if( m_count == 0 )
m_begin = timeGetTime();
}

//計測終了
void End()
{
if( timeGetTime() - m_begin >= 1000 ) {
m_fps = m_count;
m_count = 0;
} else {
m_count++;
}
}

//取得
int GetFps()
{
return m_fps;
}

//待ち時間
void WaitTime()
{
long time = 0;

time = m_request_fps - ( timeGetTime() - m_keep_count );
if( time > 0 )
Sleep( time );

m_keep_count = timeGetTime();
}
};

最低限の「FPSの計測」と「FPS固定」の機能をつけました。
フレームスキップできるようにしないといけないなぁ〜

まぁフレームスキップは次で(ぉぃ