我有两个计时器来重绘 QGLWidget 并确定 FPS
QObject::connect(&fpsTimer, SIGNAL(timeout()), this, SLOT(updateFps()));
fpsTimer.start(1000);
QObject::connect(&updateTimer, SIGNAL(timeout()), this, SLOT(updatePanel()));
updateTimer.start(0);
void GLPanel::updatePanel()
{
updateBuffers();
updateGL();
frameCount++;
}
我还在每一帧都用新数据更新 vbos。
在我安装了 Qt 的机器上,我得到了一致的 60 FPS,因为更新计时器将根据 GUI 线程触发。我尝试将其设置为每 15 毫秒更新一次,而不是依靠 GUI 线程而没有运气。在其他机器上,它上升到大约 1000 FPS。
我遇到的另一个问题是我的观点在其他机器上没有正确绘制。它们被绘制在错误的位置和颜色。至于这是否与Qt或OpenGL有关......?
关于什么会导致这种情况的任何想法?
点击屏幕中间的 其他机器 其他机器
点击一个点 Working Dev Machine 后的 Working Dev Machine
他们应该看起来完全一样。