Allegro

Allegro是一个特别针对于电子游戏的开发的自由软件程式库。

该库提供基本二维图形、图像操作、音效输出、MIDI音乐、输入、计时器，以及额外的寻路矩阵计算、UNICODE、文件系统管理、有限而建基於軟件的三维图形。

其版本4.0可以运行在DOS、Microsoft Windows、BeOS、Mac OS X、多种类Unix，程序只需要嵌入其API即可使用。该库还有独立的AmigaOS 4移植版。

该库使用C语言编写，适用于C或C++，其附带很多文档和实例。

附件

Allegro社区用户贡献了多种扩展，包括轴卷图块形式的地图、输入输出各种格式（有PNG、GIF、JPEG、MPEG、Ogg、MP3、IT、S3M、XM、TTF）。其还有多个语言绑定，比如 Python、Perl、Scheme、C#、D语言等。

历史
Allegro原本的含义是"Atari Low-Level Game Routines" 。20世纪90年代初由Shawn Hargreaves为Atari ST创造，1995年Shawn因为Atari即将消失而抛弃了对其支持又引入了Borland C++ 和DJGPP编译器。Borland C++ 在2.0版本被抛弃，DJGPP是唯一被支持的编译器——Allegro因此只能用于DOS。1998年前后， Allegro发展出了很多版本，对应Microsoft Windows的WinAllegro、对应类Unix的XwinAllegro，这些融入了Allegro 3.9 WIP版本，这样Allegro 4.0成为首个多平台稳定版本，当前支持Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows (MSVC, MinGW, Cygwin, Borland C++), BeOS, QNX, Mac OS X, DOS (DJGPP, Watcom)。

硬件加速3D/2D应用于Linux、Mac OS X、DOS采用多种方式，包括AllegroGL和OpenLayer。它们是两个附件add-on库，通过OpenGL实现。结合Glide和MesaFX (3dfx)，AllegroGL是少数对应DOS的开源3D硬件加速方案。

功能

 向量绘制:
 像素、线、矩形、圆柱、贝塞尔曲线等几何图形、 
 有图案（Pattern）或者没有图案的形状填充（Shape Fill）
 各种多边形（Polygons）：单调（Flat）、内插均匀（Gouraud）、三维纹理（3D Textured）和半透明（ Translucent）
 图块：
 掩码（Masked）、压缩（Compressed）和编译（Compiled）三种精灵（Sprites）
 位块传输（Blitting）、旋转（Rotation）、拉伸（Stretching）、挤压（Reduction）、α通道混色（Alpha Blending）、内插均匀着色（Gouraud Shading）
 内建BMP、LBM、PCX、TGA文件格式支持，其他的可通过扩展库支持
 各种调色板（Color Palettes）：
 调色板的操纵（读、写、转换）
 RGB和HSV两种色彩格式（Color Formats）之间的转换
 文字:
 支持多种编码之间的转换，默认UTF-8
 点阵字体：掩码（Masking）、彩色（Colouring）、对齐（Alignment）
 其他：
 直接在屏幕或任意大小的内存位图（Memory Bitmaps）中进行绘制
 硬件轴卷（Hardware Scrolling）和三缓存（Triple Buffering）（前提是该处可用）、X模式（mode-X）的分屏（Split Screen）
 用于FLI/FLC格式的动画函数

Allegro 5

目前的开发着手在Allegro 5这条分支，4.9.14是其不稳定的版本。Allegro 5对库的API及其大量的内部操作进行了完全重新的设计，致力于使API能更稳定地适用于多核间的协同工作。其默认使用OpenGL或DirectX硬件加速渲染后端，当前的大多数插件都需要重写接口。

其他

SDL (Simple DirectMedia Layer)
DirectX
OpenGL
ClanLib
开放多媒体程序库（OpenML）
PLIB
XNA

参考资料

外部链接

 Allegro
 Allegro 5 Documentation（加拿大服务器、美国服务器）
 Allegro Wiki
 Allegro 5
 Allegro 5 Tutorials
 allegro.cc
 Shawn Hargreaves's Homepage
 Games Using Allegro

自由發展元件與函式庫
電子遊戲開發軟件
游戏引擎
自由软件
跨平台软件