В настоящее время я использую glew для обнаружения некоторых функций графического процессора в связанном контексте openGL.
Представьте себе класс текстур, в котором я хочу использовать перечисления 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 не поддерживается. - Как обычно это можно решить?