gpt4 book ai didi

c++ - 在 MacOS 上使用 QOpenGLDebugLogger

转载 作者:行者123 更新时间:2023-11-30 05:06:25 25 4
gpt4 key购买 nike

我希望能够在 MacOS 上使用 QOpenGLDebugLogger 功能。

我知道我必须创建一个特定的 QOpenGLContext 所以这是我自定义 QOpenGLWidget 类构造函数中的代码:

QSurfaceFormat format;
format.setMajorVersion(3);
format.setMinorVersion(2);
format.setOption(QSurfaceFormat::DebugContext);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);

不幸的是,它对我的​​QOpenGLWidget 创建的当前上下文没有影响。我的 initializeGL() 覆盖方法中的以下代码输出 false:

qDebug() << QOpenGLContext::currentContext()->hasExtension(QByteArrayLiteral("GL_KHR_debug"));

我注意到QOpenGLContext 版本似乎总是2.1:

qDebug() << QOpenGLContext::currentContext()->format().majorVersion() << QOpenGLContext::currentContext()->format().minorVersion();

知道为什么在构造函数中设置格式无效吗?

最佳答案

QOpenGLWidget 的构造函数中请求特定 OpenGL 上下文版本的正确方法是调用 QOpenGLWidget::setFormat(..) 方法。另请注意,KHR_DEBUG 是在 OpenGL 4.3 Core Profile 中引入的,因此在此之前可能无法使用此功能。 OpenGL 4.3 调试上下文的正确设置代码是

QSurfaceFormat format;
format.setMajorVersion(4);
format.setMinorVersion(3);
format.setOption(QSurfaceFormat::DebugContext);
format.setProfile(QSurfaceFormat::CoreProfile);
setFormat(format);

关于c++ - 在 MacOS 上使用 QOpenGLDebugLogger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47907526/

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