ページ 11

FPSについて

Posted: 2009年12月30日(水) 02:14
by たこやき
一つ質問なのですが、FPSの計測したいのですが、以下のソースでやるとFPSが30前後になってしまうのですが。
どうしたらFPSを60前後にすることが出来るのでしょうか?どこか間違っているのでしょうか?
ソースです。
多分ここら辺だろうなというところを載せます。
void FPSCount(void){


static DWORD before_time = timeGetTime(); // 以前の時間
DWORD now_time = timeGetTime(); // 現在の時間
static DWORD fps_ctr = 0;
TCHAR buff[80]; // 文字列表示用バッファ


if(now_time - before_time >= 1000){
// 初期化
before_time = now_time;
*fps = fps_ctr;
    wsprintf(buff,_T("%d\n"),fps_ctr);
    OutputDebugString(buff);
    fps_ctr = 0;
}
fps_ctr++;


}

// エントリポイント
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
     ・
     ・
     ・
// メッセージループ
while(true)
{
if (PeekMessage(&msg, NULL, 0,0,PM_REMOVE))
{
if (msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
fps++;
// 同期処理
if (timeGetTime() - dwStart >= 1000/FPS+0.5)
{
FPSCount();
// 時間更新
dwStart = timeGetTime();
fps=0;
// 描画処理
Draw();
}
}
Sleep(1);
}
timeEndPeriod(1);
// 終了処理
Cleanup();
// 戻り値を返します。
return (int)msg.wParam;
}

}
です。よろしくお願いします。

Re:FPSについて

Posted: 2009年12月30日(水) 02:19
by たこやき
何とか、FPSが60にすることが出来たのですが、FPSが57止まりで60になりません。これはこれでいいのでしょうか?