Allegro 4.2.1 review

by on

Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux,

License: Freely Distributable
File size: 0K
Developer: Shawn Hargreaves
0 stars award from

Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. Allegro project provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers.

It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI.

Here are some key features of "Allegro":
Vector drawing:
- pixels, lines, rectangles, circles, ellipses, arcs, Bezier splines
- shape fill, with or without pattern
- polygons: flat, Gouraud, textured (3D) and translucent
- 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
- support for different encodings and conversion, default is UTF-8
- bitmap fonts (masking, colouring, alignment)
- 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
- X Window, DGA, fbcon
- SVGAlib
- mode-X
- DirectX (windowed or full-screen)
MacOS X:
- Quartz (windowed or full-screen)
- BWindowScreen
- BDirectWindow
- VGA 13h mode
- mode-X (23 VGA resolution plus unchained 640x400 extended mode)
- SVGA modes in 8, 15, 16, 24 and 32 bits per pixel
- linear VBE 2.0 framebuffer access
- hardware acceleration through VBE/AF API if supported
- additional graphic drivers through FreeBE/AF project
- The AllegroGL addon allows to use OpenGL graphics with Allegro.

What's New in 4.3.0 Development Release:
Basically we're just wrapping up what we have in version control up to now. See the commit logs if you want details.

This release introduces a few new subsystems. We have an event system, a new keyboard API, a new joystick API, a new timer API, and the start of a new graphics API. All of these are subject to change, as is usual for a WIP.

We are maintaining a certain level of source compatibility with the 4.2 API. If it's easy to maintain compatibility then we do it, otherwise compatibility is dropped. Obscure features are more likely to be dropped.

This release has had minimal testing on Linux/x86, Windows/x86 (MinGW) and Windows/x86 (MSVC). It seems to work on some Linux/x86-64 machines also. Other ports are broken or untested.

The new functions are as follows (in no particular order). No real documentation exists at the moment but interesting header files are: altime.h, display.h, draw.h, events.h, joystick.h, keyboard.h, timer.h.

What's New in 4.2.1 Stable Release:
New functions were added: get_volume, get_hardware_volume, list_config_sections, list_config_entries, create_datafile_index, and load_datafile_object_indexed.
Problems with draw_sprite, sub-bitmaps, and 24-bit bitmaps were fixed.
Bugs were fixed with the DirectSound, qtmidi, Mac OS X, ALSA, Jack, and DIGMID sound drivers. Many fixes were made for Intel Macs, including support for universal binaries.
stretch_blit can now be hardware accelerated with the DirectX driver.
Many fixes and improvements were made in the X11 driver and Linux console and svgalib drivers.
Some fixes were made for BSD systems.
A new translucent font type was added.

Allegro 4.2.1 keywords