不支持GL_ARB_sparse_texture

时间:2015-05-07 20:13:25

标签: opengl glsl opengl-extensions

我有这段代码检查是否支持GL_ARB_sparse_texture

GLint ExtensionCount = 0;
    glGetIntegerv(GL_NUM_EXTENSIONS, &ExtensionCount);
    for (GLint i = 0; i < ExtensionCount; ++i)
        if (std::string((char const*)glGetStringi(GL_EXTENSIONS, i)) == std::string("GL_ARB_sparse_texture")){
            std::cout << "supported" << std::endl;
        }

打印出它受支持。问题是我的着色器说它不是:

#version 450 core
#extension GL_ARB_sparse_texture : require

输出: enter image description here

我在Windows 8.1上安装了带有350.12驱动程序的GTX 660Ti。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

正如genpfault在评论中所说,只需要在着色器中使用#extension指令手动启用为GLSL语言添加功能的扩展。由于GL_ARB_sparse_texture不会添加GLSL功能,因此您无需在着色器中明确启用它 - 使用glGetIntegerv检查支持就足够了。

如果扩展修改了GLSL规范(例如ARB_shader_subroutine),则会在扩展规范中提及。