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_R8UIopengl 3.0がサポートされていない場合は存在しないため、明らかにこれはコンパイル時エラーを引き起こします.-これを解決する一般的な方法は何ですか?

4

1 に答える 1

1

一部の大規模なアプリケーションは、最新の列挙仕様を採用し、それに基づいて独自の列挙を追加します。今回だけ必要な場合は、この単一のケースに対して独自の列挙型を定義するだけです。

于 2011-09-21T12:20:36.513 に答える