0

我目前正在使用 glew 来检测绑定的 openGL 上下文的一些 GPU 功能。

想象一个纹理类,如果可用,我想使用 openGL 3.0 枚举,如果没有 opengl 3.0 但扩展名是,则回退到扩展名,即:

uint32 chooseGlInternalFormat(uint32 _pixelType, uint32 _pixelFormat)
{
    uint32 ret;
    //...
    if(GLEW_EXT_texture_integer || GLEW_VERSION_3_0)
    {
        bool bUseExt = !GLEW_VERSION_3_0; //if only the extension is available but not gl 3.0, fallback
        ret = bUseIntEXT ? GL_LUMINANCE8UI_EXT : GL_R8UI;
    }
    //...
}

显然,这会导致编译时错误,因为GL_R8UI如果不支持 opengl 3.0,则不会存在。-解决此问题的常用方法是什么?

4

1 回答 1

1

一些较大的应用程序采用最新的枚举规范并基于它添加自己的枚举。如果您只需要这一次,您可以为这个单一案例定义自己的枚举。

于 2011-09-21T12:20:36.513 回答