The Allegro Wiki is migrating to github at

New front page text for website

From Allegro Wiki
Revision as of 07:48, April 1, 2014 by Polybios (talk | contribs) (Clarification, changed order of features, minor editing)
Jump to: navigation, search
This article is incomplete and needs some revision or has some pending TODOs. Please help Allegro by editing and finishing it. When the article becomes complete, you may remove this tag.

Welcome to Allegro 5!

Allegro 5 is a cross-platform library designed mainly for game development and multimedia programming. It provides low level functionality to access modern graphics, audio hardware, as well as various kinds of input devices. Allegro 5 is not a game engine however, so you retain complete freedom and control over the design and structure of your program.

With Allegro 5 you can create windows, accept user input, load data, draw images, play sounds, etc. and generally abstract away the underlying platform. It accesses graphics hardware through OpenGL or Direct3D and will happily accept being used alongside them - utility functions for integration are available. Due to its modular structure, you can also leave certain jobs (e. g. audio) to other libraries, if you prefer to do so.

Allegro 5 officially supports Windows using MSVC or MinGW, Linux, Mac OS X, iOS and Android.

Written in C, Allegro5 provides a clear and consistent API with an intuitive naming scheme that can easily be used with C++ as well. Wrappers exist for Python, Lua, D, Chicken Scheme and mruby.

Allegro5 is open-source and distributed under a MIT license. You may use it freely for any kind of software.

If you need advice or support, you can ask our friendly, long-standing, active community that is always willing to help.


Allegro 5 supports the following features:

  • Managing one or more display windows in full screen or windowed mode.
  • 2D Graphics routines: bitmap drawing, memory bitmaps, sub-bitmaps, deferred drawing, blending, direct memory access through bitmap locking.
  • OpenGL and Direct3D integration, OpenGL extension management.
  • Transformation matrices.
  • Event driven input handling, custom events.
  • Support for joystick, keyboard, mouse, and touchscreen input devices.
  • Loading of configuration files.
  • Portable file I/O, file path and file system handling.
  • Portable memory management.
  • Timers and time handling.
  • Portable thread handling.
  • UTF-8 string routines.
  • Fixed point math.

Additionally, the following features are optionally available through well-integrated addons:

  • Flexible audio and audio stream system.
  • Audio codecs for .wav, .flac, .ogg, .it, .mod, .s3m and .xm. files.
  • Converting between various color formats.
  • Loading TrueType or bitmap fonts, text rendering.
  • Image loading and saving in BMP, PCX, TGA, PNG and JPEG format.
  • Using a block of memory as if it was a file through the Memfile addon.
  • Native dialogs.
  • Loading resources from archives via PhysicsFS.
  • Drawing 2D primitives.

Completely rewritten, Allegro5 is a major milestone in Allegro's long and proud history of being an easy-to-use library. If you're looking for the legacy version, you can find it here.