Allegro (biblioteca de programación)

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 recursivo de «Allegro 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 Python, D, Lua y Pascal.

Contenido

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.

Ejemplos

Un ejemplo sencillo en Allegro 4

#include <allegro.h>
 
int main() {
   allegro_init();
   install_keyboard();
   set_color_depth(16);
   set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
 
   clear_to_color(screen, makecol(0, 128, 128));     
   while (!key[KEY_ESC])
      circlefill(screen, rand() % 640, rand() % 480, rand() % 64, makecol(rand() % 256, 0, 0));
}
END_OF_MAIN()


Un ejemplo equivalente en Allegro 5

#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>
 
ALLEGRO_DISPLAY *display = NULL;
ALLEGRO_EVENT_QUEUE *events = NULL;
 
int main() {
    al_init();
    al_install_keyboard();
    al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_REQUIRE);
    al_set_new_display_flags(ALLEGRO_WINDOWED);
    display = al_create_display(640, 480);
    al_init_primitives_addon();
 
    events = al_create_event_queue();
    al_register_event_source(events, al_get_keyboard_event_source());
 
    al_clear_to_color(al_map_rgb(0, 128, 128));
    while (al_is_event_queue_empty(events)) {
        al_draw_filled_circle(rand() % 640, rand() % 480, rand() % 64, al_map_rgb(rand() % 256, 0, 0));
        al_flip_display();
    }
}

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 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 (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 se está desarrollando también. Shawn Hargreaves no volverá a intervenir con Allegro.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Mira otros diccionarios:

  • Allegro (biblioteca de programación) — Allegro es una librería utilizada con el lenguaje C para programación de juegos para ordenadores …   Enciclopedia Universal

  • Allegro (desambiguación) — Allegro es una palabra italiana; puede referirse a: Allegro, término musical. Allegro, biblioteca de programación. Aerolínea Allegro. Véase también Alegro, compañía de telefonía. Esta página de desambiguación cataloga artículos relac …   Wikipedia Español

  • DirectX — Saltar a navegación, búsqueda DirectX Desarrollador Microsoft www.microsoft.com/windows/directx Información general …   Wikipedia Español

  • Felix Mendelssohn — «Mendelssohn» redirige aquí. Para otras acepciones, véase Mendelssohn (desambiguación). Jakob Ludwig Felix Mendelssohn Bartholdy …   Wikipedia Español

  • Liquid War — Una partida de Liquid War con 6 jugadores. A la derecha está la barra de estado de cada jugador y el tiempo restante para que acabe la partida. Desarrolladora(s) Christian Mauduit …   Wikipedia Español

  • FreeBASIC — Desarrollador(es) Equipo de desarrollo de FreeBASIC http://www.freebasic.net Información general Paradigma Procedural, orientado a objetos …   Wikipedia Español

  • La valquiria — Para otros usos de este término, véase Valquiria (desambiguación). La valquiria Die Walküre Brunilda en la roca, portada artística de la partitura vocal de Schott (1899). Forma Drama musical …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”