gpt4 book ai didi

c++ - GL_VERSION 字符串和 glxinfo 版本字符串不一致?

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:11 24 4
gpt4 key购买 nike

我正在尝试启动并运行一个非常基本的 openGL 应用程序。我有一个 GTX 770,我已经安装了 nvidia-361 驱动程序。当我运行 glxinfo | grep 版本,我得到:

OpenGL 核心配置文件版本字符串:4.5.0 NVIDIA 361.42

OpenGL 核心配置文件着色语言版本字符串:4.5.0 NVIDIA

OpenGL 版本字符串:4.5.0 NVIDIA

这会让人相信您的驱动程序支持 OpenGL 4.5,对吧?

现在,我在我的基本应用程序中使用 GLEW。我得到版本字符串并打印它:

const GLubyte* version = glGetString(GL_VERSION);
printf("version: %s\n", version);

当我运行程序时,我得到:

版本:3.2.0 NVIDIA 361.42

??????????????????????????

这里发生了什么?我检查了我的 libglew-dev 版本,它是 1.13.0。 1.11.0 中添加了 OpenGL 4.5 支持。所以我不认为 GLEW 是问题所在,但我不知道发生了什么。

最佳答案

glGetString(GL_VERSION) 返回当前 GL 上下文提供的版本,不一定是您的 GL 实现支持的最高版本。

GLEW 与此无关,它只是加载 GL 函数指针。相关的是您创建上下文的方式。您在这里看到的是 nvidia 驱动程序在最新版本中的正常行为:当您要求它提供一些 GL x.y 上下文时,它会返回 x.y 版本,而不是它仍然支持的更高版本。

如果您想要 4.5 上下文,只需请求 GL 4.5 上下文。如何做到这一点取决于您创建上下文的方式。如果您使用一些库,如 GLFW、GLUT、SDL、Qt 等,只需查阅有关如何请求特定上下文版本的文档。如果您通过 glX 手动创建上下文,请使用具有适当 GLX_CONTEXT_MAJOR_VERSION_ARBGLX_CONTEXT_MINOR_VERSION_ARB 属性的 glXCreateContextAttribsARB

关于c++ - GL_VERSION 字符串和 glxinfo 版本字符串不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39480174/

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