# Allegro (biblioteca de programación)

Allegro (pronunciado alegro) es una biblioteca libre y de código abierto para la programación de videojuegos desarrollada en lenguaje C. Allegro es un acrónimo de «Atari Low Level Game Routines» (rutinas de bajo nivel para videojuegos).
La biblioteca cuenta con funciones para gráficos, manipulación de imágenes, texto, sonidos, dispositivos de entrada (teclado, ratón y mandos de juego) y temporizadores, así como rutinas para aritmética de punto fijo y acceso al sistema de archivos. Hasta agosto de 2011, hay 2 versiones de Allegro que cuentan con soporte oficial por parte de los desarrolladores, la versión clásica (Allegro 4) y la nueva versión (Allegro 5). La versión más reciente de Allegro 4 incluye soporte para el manejo de archivos de datos y una implementación por software de funciones para gráficos en 3D. La versión 5 de Allegro cuenta con una nueva API y cambia la implementación por software de las rutinas gráficas por una implementación basada en OpenGL o Direct3D.
Aunque Allegro ofrece una API en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarlo en otros lenguajes como C++, Java, C#, Visual Basic.NET, Python, D, Lua, Pascal, Perl, Ruby, Go, Scheme, Common Lisp, OCaml, Forth y Mercury.

## Addons

La versión 4 de Allegro cuenta con varias bibliotecas adicionales creadas por la comunidad de usuarios; entre ellas se encuentran las que agregan soporte para varios formatos de archivo multimedia (por ejemplo PNG, GIF, JPEG, MPEG, Ogg, MP3 y más).
Bibliotecas adicionales como AllegroGL y OpenLayer utilizan OpenGL para agregar aceleración por hardware a los programas de Allegro. Tenga en cuenta que, en combinación con Glide y MesaFX (utilizando el hardware 3dfx), AllegroGL es una de las pocas soluciones de código abierto disponibles para hardware de aceleración 3D bajo DOS.
La versión 5 de Allegro cuenta con un sistema de Addons para facilitar la creación de complementos para la biblioteca. La distribución oficial incluye complementos para manipulación de imágenes BMP, PCX, PNG y JPEG, codecs de sonido Ogg y FLAC, fuentes FreeType y acceso al sistema de archivos mediante PhysFS, entre otros.

## Historia

Allegro inicialmente significaba "Rutinas para Juegos de Bajo Nivel para Atari" (Atari Low-Level Game Routines). Fue originalmente creado por Shawn Hargreaves para el Atari ST a principios de 1990. Sin embargo, Shawn abandonó la versión de Atari al darse cuenta de que la plataforma estaba muriendo y reimplementaría su trabajo para los compiladores Borland C++ y DJGPP. En 1995 se abandonó el soporte para Borland C++ en la versión 2.0, y DJGPP sería el único compilador soportado. Como DJGPP era un compilador DOS, todos los juegos que utilizaban Allegro corrían en ese sistema operativo. Alrededor de 1998, Allegro se ramificó en varias versiones. Se creó una distribución para Microsoft Windows (WinAllegro) y también una para Unix (XwinAllegro). Estas distribuciones se reunieron durante las versiones WIP de Allegro 3.9. Allegro 4.0 sería la primera versión estable de Allegro para múltiples plataformas. La versión actual de Allegro es compatible con Unix (Android, Linux, FreeBSD, Irix, Solaris, Darwin), Windows (MSVC, MinGW, Cygwin, Borland C++), Mac OS X y, hasta la versión 4.2, BeOS, QNX, y DOS (DJGPP, Watcom). Una versión de iPhone Ya se encuentra disponible en el repositorio oficial de GitHub. Shawn Hargreaves no volverá a intervenir con Allegro.