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