我正在开发 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_1
,GLEW_VERSION_1_2
,GLEW_VERSION_1_3
,GLEW_VERSION_2_0
,GLEW_VERSION_2_1
,GLEW_VERSION_3_0
,所有这些都返回false。
还有其他建议吗?我甚至试过GLEW_ARB_vertex_shader
&&
GLEW_ARB_fragment_shader
,这也是假的。
答案 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/
希望它有所帮助。