Я пишу 3D-приложение для Windows, используя OpenGL. На данный момент он воспроизводит простую тестовую сцену с одной моделью из 50000 полигонов и плавно рендерит со скоростью 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);