Нужен ли загрузчик функций OpenGL? - PullRequest
1 голос
/ 26 мая 2019

В настольных ОС загрузчики функций OpenGL, такие как GLEW, GLAD и т. Д., Используются для загрузки функций во время выполнения.Но как насчет Android?Как загружаются функции?Я просмотрел несколько приложений, и все они, похоже, зависят от EGL и GLES.Но AFAIK EGL это не библиотека загрузки, а интерфейс.Что ж, интерфейс к интерфейсу как GLES на самом деле является интерфейсом.

Это приводит к другому вопросу: почему Android использует EGL, когда его обычно не используют на настольных ПК?

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Когда я немного использовал android, вы могли либо связать библиотеку GLES 2.0, либо ссылаться на библиотеку GLES 3.0, так что они как бы предоставляют указатели функций для вас.иш.Если вы используете GLES3.0, но телефон, на котором вы работали, поддерживает только 2.0, ваше приложение не загрузится.Чтобы обойти это, я всегда ссылался на GLES 2.0 и писал свой собственный загрузчик функций, используя eglGetProcAddress для извлечения API GLES3.0, если он доступен.Это почти то, как работают загрузчики функций в windows / linux (используя wglGetProcAddress или glxGetProcAddress).

GLES всегда была урезанной версией полнофункциональной настольной GL.Он всегда был нацелен на меньшее подмножество полнофункционального API (удаляя все устаревшие версии), что, в свою очередь, несколько упрощает код драйвера OpenGL, что, в свою очередь, должно уменьшить использование памяти и сэкономить немного времени автономной работы.По сути, он больше подходит для использования в системах с низким энергопотреблением, где важен срок службы батареи.

0 голосов
/ 27 мая 2019

Почему Android использует EGL, когда он обычно не используется на настольных ПК?

Он широко использовался во встроенной электронике до Android, поэтому я подозреваю, что это был путь наименьшего сопротивления дляновая ОС для смартфонов, так как у всех поставщиков графических процессоров уже была реализация EGL.

...