首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt 5:禁用vsync

Qt 5:禁用vsync
EN

Stack Overflow用户
提问于 2016-05-19 09:37:05
回答 1查看 4K关注 0票数 3

为了方便第三方渲染系统的集成,我想从vsync格式中禁用QOpenGLContext。

QSurfaceFormat::swapInterval似乎是Qt中唯一相关的参数。

我尝试了几种方法来实现这一点,但是即使我将QSurfaceFormat::swapInterval(0)设置在早期阶段(在QMainWindow构造之前),QOpenGLContext::create()调用也会恢复它。

代码语言:javascript
复制
// at application startup, before creating the Qt windows (or in MyQWindow constructor)
QSurfaceFormat format;
format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
format.setRedBufferSize(8);
format.setGreenBufferSize(8);
format.setBlueBufferSize(8);
format.setAlphaBufferSize(8);
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setSwapInterval(0);
QSurfaceFormat::setDefaultFormat(format);

QMainWindow *w = new QMainWindow;
w->show();
代码语言:javascript
复制
// at QWindow with QOpenGLContext creation, at the first frame update (or at the constructor)
MyQWindow::initialization() {
    WbOpenGLContext *c = new WbOpenGLContext(this);
    c->setFormat(requestedFormat());
    qDebug() << "requested format:" << c->format();
    c->create();
    qDebug() << "actual format:" << c->format();
}
代码语言:javascript
复制
# output
requested format: QSurfaceFormat(
    version 2.0,
    options QFlags(),
    depthBufferSize 24,
    redBufferSize 8,
    greenBufferSize 8,
    blueBufferSize 8,
    alphaBufferSize 8,
    stencilBufferSize 8,
    samples -1,
    swapBehavior 2,
    swapInterval 0,
    profile 0
)
context format: QSurfaceFormat(
    version 3.0,
    options QFlags(0x4),
    depthBufferSize 24,
    redBufferSize 8,
    greenBufferSize 8,
    blueBufferSize 8,
    alphaBufferSize 8,
    stencilBufferSize 8,
    samples 0,
    swapBehavior 2,
    swapInterval 1, # Not what I asked
    profile 0
)

有办法强制vsync被禁用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-19 15:22:40

正如peppe在问题的注释中所建议的那样,QOpenGLContext实例创建后的QOpenGLContext格式不幸与内部使用的实际格式不匹配。

这意味着我实现的代码可能正在工作,但是第二个debug语句显示了错误的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37319328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档