- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试启动并运行一个非常基本的 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_ARB
和 GLX_CONTEXT_MINOR_VERSION_ARB
属性的 glXCreateContextAttribsARB
。
关于c++ - GL_VERSION 字符串和 glxinfo 版本字符串不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39480174/
glGetString(GL_VERSION) 是获取系统支持的最大版本,还是当前上下文的版本? 我知道您需要创建上下文才能使 glGetString() 正常工作,因此我想知道它是当前上下文还是可用
我试图了解 glGetString(GL_VERSION) 返回的内容,因为我在使用此函数时得到了奇怪的结果。这是否返回我的 GPU 支持的最大 opengl 版本或当前创建的上下文的 oepngl
在 GLFW 中,我通过以下方式设置 OpenGL 上下文版本: glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2); glfwWindowHint(GLFW_
我正在尝试启动并运行一个非常基本的 openGL 应用程序。我有一个 GTX 770,我已经安装了 nvidia-361 驱动程序。当我运行 glxinfo | grep 版本,我得到: OpenGL
我正在 Fedora 13 上学习 OpenGL 并注意到对 glGetString 的调用导致段错误。我搜索过 Google,但没有找到解决方案。 代码很简单: #include int main
我有一个在 Linux 上使用 SDL 的简单 OpenGL 程序,它只是尝试加载和打印 OpenGL 版本。 cout << "GL_VERSION : " << glGetString(GL_V
我正在开发一个用 java 编写的 3d 地球仪应用程序,使用 java3d 进行渲染。我有一个 Windows 安装程序,它基本上将文件从开发快照复制到程序文件目录。它在开发快照中运行良好,但在安装
我在使用 SDL2 和 OpenGL 时遇到了一个小问题。我一直在尝试让 VBO 正常工作(特别是 ARB 对象),但一直没有成功。通过各种搜索,我发现板载 GL.h 是多么古老,并选择了 glew.
我正在尝试使用 eclipse IDE 在 Oracle Linux 中开发简单的 javafx 程序。我已经安装了 jdk 7 并且所有程序都正常运行,除了它显示 Prism-ES2 Error :
我使用的是 Linux Mint 13 XFCE。我的问题是,当我在终端中运行命令时: glxinfo | grep "OpenGL version" 我得到以下输出: OpenGL version
我正在尝试制作一个基于 NDK 的 OpenGL 应用程序。在我的代码中的某个时刻,我想检查设备上可用的 OpenGL 版本。 我正在使用以下代码: const char *version = (co
我是一名优秀的程序员,十分优秀!