gpt4 book ai didi

c++ - Qt 双缓冲行为

转载 作者:行者123 更新时间:2023-11-28 01:44:50 25 4
gpt4 key购买 nike

我正在将一些代码从使用 QWidget 转换为 QOpenGLWidget,我想使用双缓冲来呈现小部件,到目前为止:

    void clsElevStrip::initializeGL() {
qDebug() << "clsElevStrip::initializeGL()";
initializeOpenGLFunctions();
//Get the openGL context
mpobjContext = context();

if ( mpobjContext != NULL ) {
//Setup surface
mobjFormat.setDepthBufferSize(24);
mobjFormat.setSamples(4);
mobjFormat.setVersion(3, 0);
mobjFormat.setProfile(QSurfaceFormat::NoProfile);
mobjFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
int intSB = (int)mobjFormat.swapBehavior();
qDebug() << "swapBehavour as set-up in format: " << QString::number(intSB);
mpobjContext->setFormat(mobjFormat);
intSB = (int)mpobjContext->format().swapBehavior();
qDebug() << "swapBehavour as set-up in context: " << QString::number(intSB);
}
}

从格式检查交换行为时,我可以在调试器中看到 intSB 为 2,但是当我检查在上下文中设置的 intSB 时,它是 0,而不是 2?

因此,我渲染到上下文的任何内容都是可见的。

最佳答案

已解决:

我修改了代码,添加了

    mpobjContext->create();

之后:

    mpobjContext->setFormat(mobjFormat);

现在可以了!

关于c++ - Qt 双缓冲行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com