Allegro library

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search
Developer(s) Allegro developers
Stable release / December 30, 2009; 130350039 ago
Preview release 4.9.16 / November 29, 2009; 133028439 ago
Operating system Cross-platform
Type Multimedia and Games SDK
License Allegro 4: Giftware Allegro 5: zlib

Allegro is a free and open source software library for video game development. [1] [2] [3]

The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output, midi music, input and timers, as well as additional routines for fixed-point and floating-point matrix arithmetic, unicode strings, file system access, file manipulation, data files, and (limited, software-only) 3D graphics.

As of version 4.0, programs that use the library work on DOS, Microsoft Windows, BeOS, Mac OS X, and various Unix-like systems with (or without) X Window System, abstracting their application programming interfaces (APIs) into one portable interface. There is also an independent port of Allegro on AmigaOS 4.

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.



The community of Allegro users have contributed several library extensions to handle things like scrolling tile maps and import and export of various file formats (e.g. PNG, GIF, JPEG images, MPEG video, Ogg, MP3, IT, S3M, XM music, TTF fonts, and more). There are also bindings for several programming languages available, such as Python, Perl, Scheme, C#, D and others.

Allegro can be used in conjunction with OpenGL by using the library AllegroGL which extends Allegro's functionality into OpenGL and therefore the hardware.


Initially standing for "Atari Low-Level Game Routines",[4] 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 of Allegro to support multiple platforms. The current version of Allegro supports 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). An iPhone port is being developed too[5]. Shawn Hargreaves is no longer involved with Allegro.

For hardware accelerated 3D and 2D acceleration on Linux, Mac OS X and DOS, AllegroGL and OpenLayer are available. They are two add-on libraries that use OpenGL for accelerated graphics routines and use Allegro for all other gaming needs. Note that, combined with Glide and MesaFX (using 3dfx hardware), AllegroGL is one of the few available opensource solutions for hardware accelerated 3D under DOS.[6]

Graphic functions

  • Vector drawing:
    • pixels, lines, rectangles, circles, ellipses, arcs, Bezier splines
    • shape fill, with or without pattern
    • polygons: flat, Gouraud, textured (3D) and translucent
  • Sprites:
    • masked, compressed and compiled sprites
    • blitting, rotation, stretching, reduction, alpha blending, Gouraud shading
    • native support for BMP, LBM, PCX and TGA files (others supported with library extensions)
  • Color palettes:
    • color palette manipulation (reading, writing, conversion)
    • conversion of color formats RGB <-> HSV
  • Text:
    • support for different encodings and conversion, default is UTF-8
    • bitmap fonts (masking, colouring, alignment)
  • Misc:
    • draw directly on the screen or on any-size memory bitmaps
    • hardware scrolling and triple buffering (where available), mode-X split screen
    • animation functions for FLI/FLC format[7]

Allegro 5

Current development is focused on the Allegro 5 branch, with the current version 4.9.16 unstable. Allegro 5 is a complete redesign of the API and much of the internal operation of the library. An effort was made to make the API more consistent, and multi-thread safe. By default, the library will now be hardware accelerated using OpenGL or DirectX rendering backends where appropriate. Many of the addons that existed as separate projects for Allegro 4 will be rewritten to interface more seamlessly with Allegro proper and will be bundled with the default installation.

See also


  1. Harbour, Jonathan (2004). Game Programming All in One, Second Edition. Course Technology PTR. ISBN 1592003834. 
  2. Steinke, Lennart (2003). Spielprogrammierung. BHV Verlag. ISBN 3826680758. 
  3. P. J. Deitel, P. J. (2006). C How to Program. How to Program. Prentice Hall. ISBN 0-13-240416-8. 
  4. Forum posting by Shawn Hargreaves
  5. the iPhone directory in the svn repository
  6. Daniel Borca. "Mesa 3-D graphics library". Archived from the original on 2009-10-25. 
  7. Allegro Introduction

External links

cs:Allegro (knihovna) de:Allegro-Bibliothek es:Allegro (biblioteca de programación) fr:Allegro (bibliothèque) it:Allegro (libreria software) pl:Allegro (informatyka) pt:Allegro (biblioteca) sk:Allegro (softvér) fi:Allegro (ohjelmointi) zh:Allegro

Personal tools

Served in 0.379 secs.