OpenGL を使用して、Windows 用の 3D アプリケーションを作成しています。今のところ、約 50000 ポリゴンの 1 つのモデルで単純なテスト シーンをレンダリングし、60FPS でスムーズにレンダリングします。
ただし、マウスがアプリケーション ウィンドウ上に移動するたびに、フレームレートが非常に不均一になります。400 FPS から 20 FPS までランダムに変動します。これには何か理由がありますか?これは、アプリが強制的に処理するマウス イベントが原因ですか? それらを無効にして、マウスの状態をポーリングすることはできますか?
私のアプリのループは非常に単純で、多かれ少なかれ次のようになります。
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT)
{
quit();
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
draw();
Sleep(1);
}
ウィンドウプロシージャは基本的に
return DefWindowProc(hWnd,uMsg,wParam,lParam);