【发布时间】:2020-12-07 22:17:47
【问题描述】:
Qt5 允许使用QSurfaceFormat::setSwapInterval 让应用程序决定是否启用垂直同步。但是,这只能在应用程序启动时完成,例如要禁用 VSync,在创建应用程序对象之前调用以下命令就足够了:
QSurfaceFormat format;
format.setSwapInterval(0);
QSurfaceFormat::setDefaultFormat(format);
上面的代码将通过在 Qt Scenegraph 使用的 Opengl 上下文中将交换间隔设置为零来禁用 Qt Quick 应用程序中的 VSync。但是,我想要的是可以在运行时在需要时(不仅仅是在 QML 引擎启动之前)禁用和启用 VSync,如下所示:
void toggleVSync(){...}
环顾四周,我并没有真正找到任何东西,所以我想知道是否有办法实现这一目标。
【问题讨论】: