Введение

Allegro — это библиотека программного обеспечения для разработки видеоигр. Функциональность библиотеки включает поддержку базовой 2D-графики, обработку изображений, вывод текста, вывод звука, MIDI-музыку, ввод данных и таймеры, а также дополнительные функции для работы с матрицами фиксированной и плавающей точечной арифметики, строками Unicode, доступом к файловой системе, манипулированием файлами, файлами данных и 3D-графикой. Библиотека написана на языке программирования C и предназначена для использования с C, C++ или Objective C, с доступными привязками для Python, Lua, Scheme, D, Go и других языков. Allegro поставляется с обширной документацией и множеством примеров. Allegro поддерживает Windows, macOS, Unix-подобные системы, Android и iOS, абстрагируя их интерфейсы прикладного программирования (API) в единый переносимый интерфейс. Она также может работать поверх Simple DirectMedia Layer, который используется для запуска программ Allegro в веб-браузере с помощью Emscripten. Распространяемая под лицензией zlib, Allegro является бесплатным и открытым программным обеспечением.

История

Изначально расшифровываясь как Atari Low Level Game Routines, Allegro был первоначально создан pl для Atari ST в начале 1990-х годов. Однако Харгривз отказался от разработки версии для Atari, осознав, что платформа устаревает, и переписал свою работу для компиляторов Borland C++ и DJGPP в 1995 году. Поддержка Borland C++ была прекращена в версии 2.0, и DJGPP остался единственным поддерживаемым компилятором. Поскольку DJGPP был DOS-компилятором, все игры, использующие Allegro, работали под DOS, привлекая энтузиастов этой старой системы. Около 1998 года Allegro разделился на несколько ветвей разработки. Был создан порт для Windows, WinAllegro, а также в это время появился Unix-порт Allegro, XwinAllegro. Эти различные порты были объединены в процессе разработки версий Allegro 3.9 WIP, а Allegro 4.0 стал первой стабильной версией Allegro, поддерживающей несколько платформ.

Аллегро 5

Текущая разработка сосредоточена на ветке Allegro 5, представляющей собой полную переработку как API, так и значительной части внутренней реализации библиотеки. Прилагались усилия для обеспечения большей согласованности API и его безопасности при многопоточном использовании. По умолчанию библиотека теперь использует аппаратное ускорение с применением OpenGL или DirectX в качестве бэкэндов рендеринга, где это возможно. Многие дополнения, существовавшие как отдельные проекты для Allegro 4, теперь беспрепятственно интегрируются с основной библиотекой Allegro и поставляются вместе с установкой по умолчанию. Allegro 5 работает на основе событий.