Но AGG кажется более эффективным, чем OpenGL ES при рендеринге карт, например Mapnik использует AGG.
Q1: MapBox-GL почему бы не использовать AGG, но использовать OpenGL?
Q2: В чем разница между AGG и OpenGL ES?
Спасибо! 🙂
Re Q1 и Q2:
OpenGL / -ES обычно ускоряется с помощью графического процессора (фактически на большинстве платформ с поддержкой OpenGL-ES OpenGL-ES доступен только при наличии графического процессора). AGG — программный растеризатор.
Таким образом, если присутствует графический процессор, обычно более эффективно / эффективно использовать OpenGL / -ES, если вы хотите генерировать вывод для интерактивного (в реальном времени) дисплея.
OpenGL — это API для управления буферами на GPU и определения функций для отображения данных между ними; Первоначально он был для рендеринга трехмерной геометрии, но все же в первую очередь ориентирован на достижение этой цели. Это открытый стандарт с 25-летней историей, который внедряется всеми основными поставщиками во всех основных операционных системах, а подмножество теперь даже включено в веб-браузеры, соответствующие стандартам.
Anti-Grain Geometry — это двухмерная библиотека растеризации на базе процессора от одного поставщика, которая, по-видимому, была запущена где-то в 2001 году и не видела обновлений веб-страниц с 2007 года. Самая последняя публикация в своем списке рассылки посвящена состоянию ее разрыва из-за на различные независимые патчи.
Разработчик может предпочесть AGG OpenGL, потому что последний очень низкий уровень и не особенно дружелюбен для разработчиков. Это обеспечивает очень мало, если вы не прикладываете усилий, а инструменты отладки часто бывают плохими. Первая, похоже, является библиотекой высокого уровня, которая, поскольку она работает на ЦП, будет доступна вашему обычному отладчику.
Тем не менее, AGG не ускоряется, не имеет явного владельца или будущего, не имеет форума для губернаторства и не является широко доступным.