Anti-Grain Geometry ( AGG ) — это графическая библиотека 2D-рендеринга, написанная на C++ . Он имеет сглаживание и субпиксельное разрешение . Это не графическая библиотека как таковая, а скорее платформа для создания графической библиотеки.
Библиотека не зависит от операционной системы и визуализируется в абстрактный объект памяти. Он поставляется с примерами, связанными с X Window System , Microsoft Windows , Mac OS X , AmigaOS , BeOS , SDL . В примеры также включена программа просмотра SVG .
В конструкции AGG шаблоны C++ используются только на очень высоком уровне, а не широко, чтобы обеспечить гибкость подключения пользовательских классов к конвейеру рендеринга, не требуя жесткой иерархии классов, и позволяет компилятору встраивать многие вызовы методов для высокая производительность. Для библиотеки такой сложности она удивительно легка: не имеет зависимостей от стандартных библиотек C++ и позволяет избежать C++ STL при реализации основных алгоритмов. Однако неявные интерфейсы плохо документированы, и это может сделать процесс обучения весьма затруднительным.
Хотя AGG версии 2.5 лицензируется под лицензией GNU General Public License версии 2 или выше, AGG версии 2.4 по-прежнему доступен под лицензией BSD из 3 пунктов и практически не отличается от версии 2.5.
История
Активное развитие кодовой базы AGG застопорилось в 2006 году, примерно во время выпуска версии 2.5, из-за смены приоритетов ее главного разработчика и сопровождающего Максима Шеманарева. М. Шеманарев оставался активным членом сообщества до своей внезапной смерти в 2013 году. Продолжалась разработка версии 2.4 с более свободной лицензией на SourceForge.net. [1]
Применение
- Операционная система Haiku использует AGG в своей оконной системе.
- Это один из средств визуализации, доступных для использования в проигрывателе Gnash Flash от GNU .
- Графическая версия интерпретатора языка Rebol использует AGG для масштабируемого диалекта векторной графики DRAW.
- Hilti использует его в некоторых своих инструментах обнаружения арматуры, таких как PS 1000.
- Matplotlib использует AGG в качестве канонического средства визуализации интерактивных пользовательских интерфейсов. [2]
- В fpGUI Toolkit имеется дополнительный механизм внутреннего рендеринга AggPas. [3] Ведется работа над тем, чтобы сделать AggPas основным или единственным механизмом рендеринга для fpGUI.
- Mapnik , набор инструментов, который визуализирует карты на веб-сайте OpenStreetMap , использует AGG для рендеринга всех карт. [4]
- HTTPhotos использует AGG для масштабирования фотографий.
- Pdfium, механизм рендеринга PDF, используемый Google Chrome , использует AGG, [5] хотя ведется работа по замене его на Skia Graphics Engine . [6]
- Graphics Mill, пакет SDK для обработки изображений .NET, использует AGG в качестве механизма рисования. [7]
- Image-Line FL Studio , рабочая станция цифрового аудио, начиная с версии 10.8, выпущенной 30 сентября 2012 года, использует AGG для рисования. [8]
- Компрессоры Supercharger и Supercharger GT от Native Instruments используют AGG в качестве пользовательского интерфейса.
Автор
Главным автором библиотеки был Максим Шеманарев . 26 ноября 2013 года Шеманарев (род. 15 июня 1966, Нижний Новгород , Россия) был объявлен мертвым в возрасте 47 лет в своем доме в Колумбии , штат Мэриленд (США). Он умер внезапно, предположительно от эпилептического припадка , которым он страдал некоторое время. [примечание 1] [9] [10] Он окончил Нижегородский государственный технический университет . О его личной жизни известно мало. Однако известно, что он был разведен и на момент его смерти его мать была жива. Раньше он любил кататься на лыжах , сноуборде (в Колорадо) и роликовых коньках . [примечание 2] Друзья хвалили его за умные навыки программирования. [9]
Примечания
- ^ Информация в основном взята из российского интернет-форума RSDN, который он посещал, и его личной страницы в ВКонтакте.
- ↑ Об этом свидетельствуют некоторые видеоролики, которые он опубликовал на YouTube в марте 2012 года.
Рекомендации
- ^ "Библиотека антизерновой геометрии" . 28 мая 2021 г.
- ^ «Документация Matplotlib — Использование Matplotlib — Рисунки и серверные части — Серверные части» . Проверено 26 сентября 2023 г.
- ^ "Новости fpGUI Toolkit" . Архивировано из оригинала 23 апреля 2012 года . Проверено 14 мая 2013 г.
- ^ "Мапник вики" .
- ^ "Источник Pdfium" . Проверено 23 декабря 2016 г.
- ^ «11 — Поддержка Skia — pdfium» . Проверено 23 апреля 2022 г.
- ^ "Документация Graphics Mill" . Проверено 16 августа 2015 г.
- ^ «История — FL Studio 10.8 (бета)» . Архивировано из оригинала 3 мая 2019 года . Проверено 4 мая 2019 г.
- ^ ab "Максим Шеманаев aka McSeem2, 1966-2013 - О жизни - RSDN" [Максим Шеманаев aka McSeem2, 1966-2014 - О жизни - RSDN]. 28 ноября 2013. Архивировано из оригинала 4 марта 2016 года . Проверено 3 октября 2021 г.
- ^ "RIP Максим Шеманарев". вектор-agg-general.narkive.com . Проверено 3 октября 2021 г.
Внешние ссылки
- Обновленная версия версии 2.4, сохраняющая исходную лицензию BSD.
- Обновленная версия версии 2.6 на GitHub, поддерживающая исходную лицензию BSD.
- agg-sharp — это порт AC# библиотеки C++.
- AggPas — это порт библиотеки C++ на Object Pascal.
- AggPasMod — это модернизированный порт библиотеки C++ на Object Pascal.
- AntiGrainRT — это оболочка WinRT для Магазина Windows и Windows Phone.