Opengl版本麻烦glew.h

时间:2009-12-30 20:53:37

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

我正在开发 OpenG L应用程序,需要使用 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 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,所有这些都返回false。

还有其他建议吗?我甚至试过GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader,这也是假的。

5 个答案:

答案 0 :(得分:7)

glewIsSupported旨在检查并查看是否支持特定功能。你想要更像......的东西。

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

答案 1 :(得分:2)

可能缺少必要的初始化。我遇到了同样的问题。以下是我解决问题的方法:您需要提前glCreateWindow()。包含此功能,然后重试。

答案 2 :(得分:0)

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

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

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

之前创建上下文

第三,您也可以尝试:

  glewExperimental=true;

在致电glewInit()

之前

答案 3 :(得分:0)

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

OP的问题可能会在很长一段时间内解决,只是为了其他人的信息。

答案 4 :(得分:-1)

我也有类似的问题,通过使用更新的glew得到修复。 您可以从此链接下载它。 http://sourceforge.net/projects/glew/

希望它有所帮助。