gpt4 book ai didi

c++ - 设置 QSurfaceFormat 无效

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:09:32 25 4
gpt4 key购买 nike

我目前在使用 Windows 上的 Qt 5.8 获​​取调试上下文时遇到问题。

我正在使用 Qt 5.8 编写一个小型 OpenGL 应用程序,使用这样声明的查看器类

class GLViewer3DModel : public QOpenGLWidget, protected QOpenGLFunctions
{
//...
};

在初始化 QApplication 之前,我的 main.cpp 文件使用了这段代码:

 QSurfaceFormat format;     
format.setOption(QSurfaceFormat::DebugContext);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);

在 3D 查看器的构造函数中,QSurfaceFormat::DebugContext 选项似乎已正确设置。但是,如果我在我的 initializeGL 重写中再次测试它,则以下代码

void GLViewer3DModel::initializeGL()
{
initializeOpenGLFunctions();

QSurfaceFormat fmt = format();
bool hasDebug = fmt.testOption(QSurfaceFormat::DebugContext);
std::cout << "STILL DEBUG? " << hasDebug << std::endl;
}

打印“STILL DEBUG? 0”,因此出于某种原因格式已更改。我能做些什么来使调试上下文工作吗?我很乐意使用 QOpenGLDebugLogger 来查看哪里可能出了问题。

FWIW,我的系统支持 GL_KHR_debug 扩展。

最佳答案

尝试将 OpenGL 版本设置为高于 4.1,因为我认为那是调试成为核心的时候。默认构造的 QSurfaceFormat 请求不支持调试的 GL 2.0。看看你会得到什么。

也可以尝试初始化记录器,看看它向你吐出什么

关于c++ - 设置 QSurfaceFormat 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036378/

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