当检查是否支持各向异性过滤时,我得到了相反的结果。
if(glewIsSupported("GL_EXT_texture_filter_anisotropic") || GLEW_EXT_texture_filter_anisotropic) {
std::cout << "support anisotropic" << std::endl;
}
GLfloat max;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max);
std::cout << max << std::endl;
我机器上此部分的输出是:
16
所以看起来支持16的各向异性过滤,但glewIsSupported
以及glew扩展字符串则相反。
是否正在检查GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
并且检查错误,或者发生了什么不同?
答案 0 :(得分:2)
显然有一个known bug in glew即使在OpenGL 3+上下文中也使用glGetString(GL_EXTENSIONS)
而不是glGetStringi
取代了OpenGL 3+中的扩展查询。
因此,在修补之前,扩展查询必须是done manually。
答案 1 :(得分:0)
解决鸡和蛋问题的一种可能方法是调用glGetString(GL_EXTENSIONS)并检查GL_INVALID_ENUM的glGetError()。只有在GL_EXTENSIONS不可用的情况下才应该这样做。如果遇到此错误,请尝试glGetStringi。别忘了在这里查看错误。 GLEW没有(从版本1.10开始:/)。