Allegro - A Game Programming Library
Allegro is a free, open source, cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. By default, the library is hardware accelerated using OpenGL or DirectX rendering backends where appropriate.
The library is written in the C programming language and designed to be used with C or C++. It comes with extensive documentation and many examples.
Initially standing for "Atari Low-Level Game Routines", Allegro was originally created by Shawn Hargreaves for the Atari ST in the early 1990s. However, Shawn abandoned the Atari version as he realized the platform was dying, and reimplemented his work for the Borland C++ and DJGPP compilers in 1995. Support for Borland C++ was dropped in version 2.0, and DJGPP was the only supported compiler. As DJGPP was a DOS compiler, all games which used Allegro therefore used DOS. Around 1998, Allegro branched out into several versions. A port to Microsoft Windows, WinAllegro, was created, and also during this time, a Unix port of Allegro, XwinAllegro, was created. These various ports were brought together during the Allegro 3.9 WIP versions, with Allegro 4.0 being the first stable version to support multiple platforms, including Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows (MSVC, MinGW, Cygwin, Borland C++), Mac OS X and, up to the 4.2 version, BeOS, QNX, and DOS (DJGPP, Watcom). Shawn Hargreaves is no longer involved with Allegro.