我正在将 OpenGL 应用程序从 win32 项目移植到 Qt 项目。
在 win32 项目中,我只是有一个主循环,它会在前一帧完成后立即执行下一帧。
在我找到的关于 Qt 和 OpenGL 的教程中,他们使用计时器来控制场景的更新。但是,我想尽可能频繁地渲染帧 - 怎么做?
最佳答案
However, I'd like to render as many frames as frequent as possible - how to do that?
不适用于 Qt。 Qt 完全控制了事件循环,因此不会为您提供任何直接执行空闲操作的方法。在 Qt 中执行空闲操作的标准方法是使用超时为 0 的 QTime。
另一种可能性是使用第二个线程仅用于 OpenGL 操作。但是,为了可靠地工作,您应该为该线程创建一个专用的 OpenGL 上下文。
Qt 根本不适合那些主循环的主要任务是渲染图片而输入和事件管理只是次要的程序。
关于Qt & OpenGL : how to render as frequent as possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698322/