Allegro (мультимедийная библиотека)
Allegro — свободная кроссплатформенная мультимедийная библиотека[2][3][4]. Она предоставляет инструменты для вывода базовой 2D-графики и текста, работы с изображениями, воспроизведения аудиофайлов (в том числе MIDI-музыки) и обработки пользовательского ввода. Она также предоставляет дополнительные функции для использования чисел с фиксированной и плавающей запятой, операций над матрицами, использования строк в формате Юникод, работы с файловой системой и 3D-графикой. Библиотека написана на языке программирования C и рассчитана на использование с языками C, C++. Также возможна связка с Pascal, Python, Lua, Scheme, D, Go и множеством других языков[5].
Allegro поддерживает платформы Windows, macOS, Unix-подобные системы, Android и iOS, абстрагируя их API в один переносимый интерфейс. Существует независимый порт Allegro на AmigaOS 4 и MorphOS.
Общие сведения
| Allegro | |
|---|---|
| Тип | мультимедийная библиотека |
| Автор | Shawn Hargreaves |
| Разработчик | сообщество |
| Написана на | C |
| Операционные системы | Microsoft Windows, Linux, macOS, iOS и Android |
| Первый выпуск | 1990 |
| Последняя версия | 5.2.8.0 (6 июня 2022)[1] |
| Репозиторий | github.com/liballeg/alle… |
| Состояние | активное |
| Лицензия | лицензия zlib |
| Сайт | liballeg.org |
История
Allegro была создана Шоном Хэргривзом в начале 1990-х для Atari ST. Изначально название библиотеки расшифровывалось как Atari Low-Level Game Routines (низкоуровневые функции для игр Atari)[6]. Однако Шон решил прекратить разработку версии для Atari, когда понял, что эта платформа уже изжила свой век, и возобновил разработку для компиляторов Borland C++ и DJGPP в 1995 году. Поддержка Borland C++ была прекращена с версией 2.0, таким образом, DJGPP остался единственным поддерживаемым компилятором. Поскольку это был компилятор на DOS, все игры, использовавшие Allegro, запускались на DOS. Примерно в 1998 библиотека разделилась на несколько параллельных версий. Были созданы порты для Windows — WinAllegro и Unix — XwinAllegro. Различные версии были соединены вместе в ходе работы над Allegro 3.9, а Allegro 4.0 стала первой стабильной версией библиотеки, поддерживающей несколько платформ.
В настоящее время усилия разработчиков сконцентрированы на ветке Allegro 5 — полной переработке API и большей части внутреннего взаимодействия. Упор был сделан на логичность интерфейса и потокобезопасность. Теперь библиотека по умолчанию использует аппаратное ускорение с помощью OpenGL или DirectX, если возможно. Множество расширений для Allegro 4, которые раньше существовали как отдельные проекты, теперь включены в базовую сборку. Allegro 5 — событийно-ориентированная.
Особенности
Allegro предоставляет следующие графические функции:
- Векторная графика:
- отдельные пиксели, линии, прямоугольники, треугольники, круги, эллипсы, дуги, кривые Безье
- заливка фигур
- полигоны: плоский, по Гуро, текстурный (3D) и полупрозрачный
- Спрайты:
- Цветовые палитры:
- Текст:
- поддержка различных кодировок и преобразований, по умолчанию используется UTF-8
- растровые шрифты (маскирование, окраска, выравнивание)
- Разное:
- рендеринг прямо на экран или в текстуру любого размера
- аппаратный скроллинг и тройная буферизация (где возможно), режим разделенного экрана
- функции анимации для FLIC_(file_format форматов
Расширения
Примечания
Ссылки
- liballeg.org (англ.) — официальный сайт Allegro
- Справочное руководство Архивная копия от 29 октября 2016 на Wayback Machine (англ.)
- Репозиторий на GitHub Архивная копия от 6 марта 2017 на Wayback Machine