EGL против GLES 2.0 на Android (например, Java) - PullRequest
15 голосов
/ 28 июня 2011

(опытный программист c, предварительный шейдер, фиксированная функция open gl. Компетентный Java-программист)

Я работал с GLES на Android и получил примеры для запуска (как на нативном, так и на Java). В частности, пример текстурированного треугольника. Что меня смущает, так это «связь» Khronos EGL и интерфейсов Android GLES.

Это параллельные, независимые интерфейсы (API)? Должен ли EGL быть независимым от платформы (нейтральным) интерфейсом? EGL полностью поддерживает GLES 1.0 и 1.1, но не поддерживает ES 2.0 (на Android)?

Итак, мне кажется, что EGL должен быть нейтральным платформой, параллельным интерфейсом, НО он не полностью поддерживает GLES 2.0 (включен Android); Поэтому, если вы пишете код GLES 2.0 (для Android), вам лучше использовать API-интерфейс GLxxx, а не EGLxxx (и в любом случае прибегать к API-интерфейсу GLxxx). Насколько я могу судить, вы не можете> HAVE <использовать EGL для чего-либо, поскольку он поддерживает только подмножество API ES 2.0. </p>

(Каждый пример / книга / ссылка либо смешивает их, либо использует собственный интерфейс, либо использует только функции EGL 1.1; здесь я что-то упускаю?)

Ответы [ 2 ]

22 голосов
/ 28 июня 2011

EGL является дополнением к OpenGL ES. EGL используется для получения поверхностей для рендеринга с использованием функций, таких как eglCreateWindowSurface, и вы можете затем рисовать на этой поверхности с помощью OpenGL ES. Его роль похожа на GLX / WGL / CGL.

Может ли EGL предоставить вам контекст, который поддерживает OpenGL ES 2.0, может зависеть от платформы, но если устройство Android поддерживает ES 2.0 и EGL, вы должны иметь возможность получить такой контекст из EGL. Обратите внимание на атрибут EGL_RENDERABLE_TYPE и EGL_OPENGL_ES2_BIT при запросе EGLConfig.

http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf

14 голосов
/ 01 февраля 2012

EGL на Android, кажется, нигде не объясняется должным образом, но я собрал некоторые заметки здесь , которые, надеюсь, должны прояснить ситуацию.

...