Я пишу 3d-игру, в которой используется GL10, но я бы хотел, чтобы приложение поддерживало GL11 или GL20, если таковые имеются.Каков наилучший дизайн для поддержки всех 3?Или это глупое поручение, и я должен просто сосредоточиться на поддержке одной версии?
Моя текущая идея состоит в том, чтобы разделить мою функцию render () на renderGL10, renderGL11, renderGL20 и вызвать соответствующую функцию рендеринга на основе доступного GLпример.Внутри каждой функции рендеринга есть правильный способ рендеринга для версии GL;скорее всего, будет совпадение для GL10 и GL11.Это подходящий способ решить мою проблему или есть лучший способ?
public render(){
if (Gdx.graphics.isGL20Available()){
renderGL20();
} else if (Gdx.graphics.isGL11Available()){
renderGL11();
} else {
renderGL10();
}
}
РЕДАКТИРОВАТЬ: Решение: Если доступен gl1.x, также доступен gl10 (и Gdx.gl10 не является нулевым).Итак, мой код рендеринга обычно должен быть структурирован следующим образом:
public render(){
// Use Gdx.gl for any gl calls common to all versions
if (Gdx.graphics.isGL20Available()){
// Use Gdx.GL20 for all gl calls
} else {
if (Gdx.graphics.isGL11Available()){
// Use Gdx.gl11 for any gl11 call not supported by gl10
}
// Use Gdx.gl10 for all gl calls
}
}