Allegro — это библиотека программного обеспечения для разработки видеоигр . [3] [4] [5] Функциональность библиотеки включает поддержку базовой 2D-графики, манипуляций с изображениями, вывода текста, вывода звука, MIDI- музыки, ввода и таймеров, а также дополнительных процедур для операций с фиксированной и плавающей запятой. матричная арифметика, строки Unicode , доступ к файловой системе, манипуляции с файлами, файлы данных и трехмерная графика. Библиотека написана на языке программирования C и предназначена для использования с C, C++ или Objective-C , с доступными привязками для Python , Lua , Scheme , D , Go и других языков. [6] Allegro поставляется с обширной документацией и множеством примеров.
Allegro поддерживает Windows , macOS , Unix-подобные системы , Android и iOS , абстрагируя их интерфейсы программирования приложений (API) в один портативный интерфейс. Он также может работать поверх Simple DirectMedia Layer , который используется для запуска программ Allegro в веб-браузере с использованием Emscripten . [7]
Выпущенная на условиях лицензии zlib , Allegro является бесплатным программным обеспечением с открытым исходным кодом .
Первоначально расшифровывавшееся как Atari Low-Level Game Routines , [8] Allegro было первоначально создано Шоном Харгривзом для Atari ST в начале 1990-х годов. Однако Харгривс отказался от версии для Atari, поскольку понял, что платформа умирает, и в 1995 году заново реализовал свою работу для компиляторов Borland C++ и DJGPP. Поддержка Borland C++ была прекращена в версии 2.0, и DJGPP был единственным поддерживаемым компилятором. Поскольку DJGPP был компилятором DOS , все игры, в которых использовалась Allegro, использовали DOS, что привлекло внимание энтузиастов к этой устаревшей системе. [9] Примерно в 1998 году Allegro разделилась на несколько версий. Был создан порт WinAllegro для Windows , а также в это же время был создан порт Allegro для Unix, XwinAllegro. Эти различные порты были объединены в версиях WIP Allegro 3.9, причем Allegro 4.0 стала первой стабильной версией Allegro, поддерживающей несколько платформ.
Текущая разработка сосредоточена на ветке Allegro 5, полной переработке как API, так и большей части внутренних операций библиотеки. Были предприняты усилия, чтобы сделать API более последовательным и многопоточным. По умолчанию библиотека теперь имеет аппаратное ускорение с использованием серверов рендеринга OpenGL или DirectX, где это необходимо. Многие из дополнений, которые существовали как отдельные проекты для Allegro 4, теперь легко взаимодействуют с самим Allegro и входят в комплект установки по умолчанию. Allegro 5 управляется событиями .
Allegro 5 поддерживает следующие функции в своем Core API: [10]
Сообщество пользователей Allegro предоставило несколько расширений библиотеки для таких задач, как прокрутка тайловых карт, а также импорт и экспорт файлов различных форматов. Кроме того, некоторые части того, что раньше было частью Allegro, теперь выделены в виде дополнений в Allegro 5. Эти дополнения распространяются вместе с основной библиотекой: [11]
Хотя проект и по сей день получает постоянную поддержку со стороны ветки Allegro 5, на протяжении большей части своей истории Allegro был тесно связан со сценой бесплатного программного обеспечения MS-DOS, которая все еще развивалась вплоть до начала 2000-х годов.