libGDX имеет интерфейсы для прямого доступа к OpenGL ES 2.0 и 3.0 (при использовании libGDX 0.9.9 или более ранней версии, доступно 1,0 и 1.x). OpenGL ES эмулируется на персональном компьютере с помощью сопоставления OpenGL ES функций и OpenGL функций персонального компьютера. На некоторых платформах (iOS, GWT/HTML) поддерживается только OpenGL ES 2.0.
Если вашему Android приложению требуется OpenGL ES 2.0 функциональность, то необходимо добавить следующую строку в файл манифеста:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
Если вашему Android приложению требуется OpenGL ES 3.0 функциональность, то необходимо добавить следующую строку в файл манифеста:
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
Этим самым вы предотвращаете себя от попадания вашей игры в список приложений, не поддерживающихся устройством в Google Play Store.
Модификаторы точности
OpenGL ES 2.0 требует указания модификаторов точности для атрибутов, униформ и локальных переменных. Это не поддерживается в OpenGL на персональном компьютере. Вы будет защищены от указания модификаторов точности в вашем фрагменте шейдеров с помощью кода, примерно похожего на следующее:
#ifdef GL_ES #define LOW lowp #define MED mediump #define HIGH highp precision mediump float; #else #define MED #define LOW #define HIGH #endif
Этот код позволяет определить LOW, MED и HIGH макросы для эквивалентных OpenGL ES модификаторов точности и установить среднею точность по умолчанию для float типа в фрагменте шейдеров libGDX приложении. Имеет влияние только для платформ, работающих с OpenGL ES, на персональном компьютере макросы будут пустыми.