gpt4 book ai didi

c++ - 查询 GL_MAJOR_VERSION 抛出 "invalid enumerant"

转载 作者:行者123 更新时间:2023-11-30 04:09:26 26 4
gpt4 key购买 nike

我正在 Windows 7 上使用版本 3.2 创建 OpenGL 上下文。然后我启动 GLEW:

    GLenum err = glewInit();
glGetError();
if (err != GLEW_OK){
throw Exception(std::string((const char*)glewGetErrorString(err)));
}

这部分在所有测试用例中都通过了。

接下来我查询 GL 版本以确保这是预期的版本:

     GLint major =0, minor = 0;
GL_ASSERT(glGetIntegerv(GL_MAJOR_VERSION, &major ));
GL_ASSERT(glGetIntegerv(GL_MINOR_VERSION, &minor ));

在 4 台机器中的 2 台机器上,我在第一次查询时就已经收到“无效枚举数”:

 GL_ASSERT(glGetIntegerv(GL_MAJOR_VERSION, &major ));

测试机器硬件:

  1. 笔记本电脑 - Nvidia GeForce GT 630m,OpenGL 4.3 - 失败。

  2. 台式电脑 -Nvidia GeForce 550GTX,OpenGL 4.3 - 失败。

  3. 台式机 -Nvidia Quadro K4000,OpenGL 4.4 - 通过。

  4. 台式机 -Nvidia Quadro 4000,OpenGL 4.3 -通过。

这真的很奇怪,因为所有这些机器都安装了最新的驱动程序,并且运行基于 OpenGL 的应用程序达到安装的驱动程序支持的最高水平就好了。另外,如果我不执行版本查询,其余的应用程序运行正常。为什么会这样?

最佳答案

具有 GL_MAJOR_VERSIONGL_MINOR_VERSION

glGetIntegerv 仅在 3.0 及更高版本的 GL 上下文中受支持。参见 https://www.opengl.org/wiki/Get_Context_Info .如果您收到“无效枚举”以响应其中任何一个,则很可能是您创建的上下文不支持 OpenGL 3.0 或更高版本。

关于c++ - 查询 GL_MAJOR_VERSION 抛出 "invalid enumerant",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21229606/

26 4 0