当前位置: 首页 > 知识库问答 >
问题:

查询GL_MAJOR_版本时抛出“无效枚举器”

庾远航
2023-03-14

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

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

该部件在所有测试用例中均通过ok。

接下来,我查询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 ));

经过测试的机器硬件:

>

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

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

    台式电脑-Nvidia Quadro K4000,OpenGL 4.4-通过。

    台式电脑-Nvidia Quadro 4000,OpenGL 4.3-通过。

    这真的很奇怪,因为所有这些机器都安装了最新的驱动程序,并运行基于OpenGL的应用程序,直到安装的驱动程序支持的最高版本。此外,如果我不执行版本查询,应用程序的其余部分工作正常。为什么会发生这种情况?

  • 共有1个答案

    严狐若
    2023-03-14

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

     类似资料:
    • 我有我的dll,它包含函数: 然后我得到例外: InnerException消息为“无效枚举值”\u 24170“无法反序列化为类型“MyEnum”。 我希望日志异常消息包含作为参数传递的字符串值,但不要包含一些不清楚的数字,如“\u 24170”。我该怎么做? 更新: 假设我有一个MyEnum,有三个值(一、二、三),当我传递到函数字符串“五”时,我想看到如下异常: 无效的枚举值“Five”无法

    • 我正在使用LWJGL,当使用Util.checkGLError()检查时,下面的OpenGL调用导致无效的枚举错误 GL11.glTexParameteri(GL11.GL_TEXTURE_2D,GL11.GL_Textture_WRAP_S,GL11.GL_CLAMP); 我已经把范围缩小到GL_CLAMP,因为GL_REPEAT有效。还应该指出的是,GL_CLAMP在我的笔记本电脑上运行良好,

    • 问题内容: 我不了解如何实现模式的版本。下面是使用Singleton模式实现“传统”方法的示例。我想将其更改为使用Enum版本,但不确定如何。 问题答案: 这是您的单例:一个只有一个实例的枚举。 请注意,此单例是线程安全的,而您的不是:线程安全的:两个线程可能都陷入竞争状况或可见性问题,并且都创建了自己的单例实例。

    • 我有一个班级评语: 保留comment类可以工作,但以下条件查询是有效的: 抛出org.hibernate.exception.DataException:未为参数%1指定值。 这是生成的查询: 选择this_.comment_id作为comment1_0_0_,this_.comment_id作为comment0_0_,commenttop2_.comment_id作为comment1_0_2_

    • 作为最近一个项目的一部分,我们的Solr搜索引擎升级到了5.0.0。运行客户机的程序在生产/qa中运行良好,但当我在本地系统上运行该程序时,会收到以下错误消息: 这个例外来自apache-solr-solrj-1.4.1。罐子,我想应该换掉。但当我检查(正在运行的)生产代码时,相同的jar文件就在那里。 但是,生产服务器上的java版本已升级为java版本“1.7.0_79”。在我的本地系统上,我

    • 问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案: