Qt & OpenGL : how to render as frequent as possible?

标签 qt opengl timer game-loop

我正在将 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/

相关文章:

c++ - 如果有一个几何着色器处于事件状态,如何将信息从顶点着色器传递到片段着色器?

opengl - 模型 View 投影矩阵的目的

ios - 当设备时间改变时执行函数

c++ - 如何更改另一个 qml 文件的标签文本?

c++ - Qt Creator 中的 Qt GUI 应用程序build设置

c++ - 在 Qt 中等待数据从串口到达

c++ - Foreach 通过 QJsonObject 获取 Key/Value Pair

OpenGL 几何着色器,设置输入大小

java - 定时器启动/停止参数

java - 如何在 n 秒后停止 Swing 计时器?