【问题标题】:Opengl version trouble glew.hopengl版本麻烦glew.h
【发布时间】:2010-12-31 05:53:16
【问题描述】:

我正在开发一个 OpenGL 应用程序,需要使用 glew 库。我正在使用 Visual Studio C++ 2008 Express

我使用 gl.h、glu.h 和 glut.h 编译了一个程序,它很好地完成了它应该做的事情。但是在包含 glew.h 之后它仍然编译得很好,但是当我尝试时:

glewInit();
if (glewIsSupported("GL_VERSION_2_0"))
    printf("Ready for OpenGL 2.0\n");
else {
    printf("OpenGL 2.0 not supported\n");
}

它一直在打印:

“不支持 OpenGL 2.0”。

我尝试将其更改为glewIsSupported("GL_VERSION_1_3") 甚至glewIsSupported("GL_VERSION_1_0"),但它仍然返回 false,这意味着它不支持任何 OpenGL 版本。

我有一个 Radeon HD 5750,所以它应该支持 OpenGL 3.1 和 3.2 的一些功能。我知道所有设备驱动程序都已正确安装,因为我能够运行 ATI 提供的 Radeon sdk 中的所有程序。

我还安装了 Opengl Extensions Viewer 3.15,它显示 OpenGL Version 3.1 Ati Driver 6.14.10.9116。我累了所有GLEW_VERSION_1_1GLEW_VERSION_1_2GLEW_VERSION_1_3GLEW_VERSION_2_0GLEW_VERSION_2_1GLEW_VERSION_3_0,所有这些都返回错误。

还有其他建议吗?我什至试过GLEW_ARB_vertex_shader&&GLEW_ARB_fragment_shader,这也返回false。

【问题讨论】:

    标签: c++ opengl visual-studio-2008 glut glew


    【解决方案1】:

    glewIsSupported 用于检查是否支持特定功能。你想要的东西更像...

    if (GLEW_VERSION_1_3)
    {
        /* Yay! OpenGL 1.3 is supported! */
    }
    

    【讨论】:

    • 正如 OP 所说,它不起作用,不管你如何使用它。这总是将其值设置为 false,我在 linux 上的 OpenGL 也有同样的问题。
    • 我相信 OP 正在将字符串传递给 glewIsSupported 函数。我的意思是它不是字符串,而是 glew 头文件中的全局变量。您使用的是哪个版本的 GLEW?
    【解决方案2】:

    可能缺少一些必要的初始化。我遇到同样的问题。这是我解决问题的方法:您需要在前面包含glCreateWindow()。包含此函数,然后重试。

    【讨论】:

      【解决方案3】:

      首先,您应该检查glew是否已正确初始化:

       if(glewInit() != GLEW_OK)
       { // something is wrong };
      

      其次,您需要在调用glewInit()

      之前创建上下文

      第三,你也可以试试:

        glewExperimental=true;
      

      致电glewInit()之前

      【讨论】:

        【解决方案4】:

        我在通过windows RDP运行程序时也遇到了同样的问题,然后我注意到我的显卡在使用RDP时可能无法正常工作,所以我尝试了teamviewer 相反,glewinfo.exe 和我的程序都开始正常工作。

        OP的问题可能解决了很久,仅供参考。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-11
          相关资源
          最近更新 更多