我正在开发一个OpenGL应用程序,需要使用glew库。我正在使用Visual C++ 2008Express。
我用gl.h、glu.h和Glu.h编写了一个程序,它完成了它应该做的事情。但是,在包含glw.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"),但它仍然返回错误,这意味着它不支持OpenGL版本。
我有一个Radeon 5750,所以,它应该支持OpenGL 3.1和一些特点的3.2。我知道所有的设备驱动程序都是正确安装的,因为我能够运行ATI提供的Radeon中的所有程序。
我还安装了Opengl扩展查看器3.15,它显示OpenGL版本3.1Ati驱动程序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,所有这些都是假的。
还有其他建议吗?我甚至尝试过GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader,这也是返回false。
发布于 2009-12-30 20:57:39
glewIsSupported的目的是检查是否支持特定特性。你想要的更像是..。
if (GLEW_VERSION_1_3)
{
/* Yay! OpenGL 1.3 is supported! */
}发布于 2013-06-04 11:21:33
可能缺乏必要的初始化。我遇到了同样的问题。下面是我解决这个问题的方法:您需要包括前面的glCreateWindow()。包含此函数,然后再试一次。
发布于 2015-07-02 11:39:39
首先,您应该检查glew是否已正确初始化:
if(glewInit() != GLEW_OK)
{ // something is wrong };其次,您需要在调用glewInit()之前创建上下文
第三,你也可以尝试:
glewExperimental=true;在调用glewInit()之前
https://stackoverflow.com/questions/1982429
复制相似问题