我正在使用 OpenGL 为 Windows 编写一个 3D 应用程序。目前,它使用大约 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);