当我让我的程序只使用 0-2% cpu(删除了一些 CPU 密集型 opengl 函数)时,我的鼠标坐标开始滞后!当我使用 100% CPU(启用 opengl 功能时)时,我会得到漂亮而平滑的鼠标坐标,请注意 opengl 函数对我的鼠标坐标没有任何作用。看下图,我使用鼠标坐标记录了我的旋转函数值:
这是 100% cpu 使用率(应该看起来): 没有滞后 http://img15.imageshack.us/img15/1304/mousecursorsmoothcoords.png
-
这是 2% 的 CPU 使用率: 滞后 http://img5.imageshack.us/img5/5514/mousecursorlaggedcoords.png
这确实是一个烦人的问题,因为我使用鼠标光标位置来改变旋转角度,并且对于上面的图像情况,它看起来真的很滞后旋转。
我也许可以自己做插值之类的,但我想知道是什么原因造成的以及如何解决它。
我使用 WM_MOUSEMOVE 消息获取鼠标坐标,并且我还尝试在旋转代码之前的每一帧上使用 GetCursorPos(),但它没有区别。
编辑:我注意到 CPU 使用率不一定要 100% 才能获得平滑,但 CPU 只需要“唤醒”,然后即使 CPU 使用率低,它也能保持平滑。