Allegro is an easy to use, simple game programming library made available for C and C++ developers.
Allegro comes with various other functions like graphics, sounds, or timers, as well as floating or fixed mathematical functions.
The library is also portable and targets multimedia programming, as well as game development.
Here are some key features of "Allegro":
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
Graphic drivers:
Unix:
· X Window, DGA, fbcon
· SVGAlib
· VBE/AF
· mode-X
· VGA
Windows:
· DirectX (windowed or full-screen)
· GDI
MacOS X:
· Quartz (windowed or full-screen)
BeOS:
· BWindowScreen
· BDirectWindow
Dos:
· 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
OpenGL:
· The AllegroGL addon allows to use OpenGL graphics with Allegro.
Sound functions:
Midi:
· native MIDI music format support (with 64 simultaneous effects)
· dynamic control/response to music note on, note off, main volume, pan, pitch bend, and program change
· uses General MIDI patches
· you can read in wavetable patches for MIDI files (SF2 and GUS patches)
Wave:
· native support of WAV and VOC file formats (playing looped forward, backwards or bidirectional)
· streaming audio
· modify volume, pan, pitch, etc during play
Sound drivers:
Unix:
· OSS
· ALSA (0.5/0.9/1.0)
· ESD
· aRts
· JACK
· SGI AL
Windows:
· DirectSound
· WaveOut
· MIDI system drivers
MacOS X:
· Core Audio
· Sound Manager
· Core Audio MIDI
· QuickTime MIDI
Dos:
· Adlib, SB, SB Pro, SB16, AWE32
· MPU-401
· ESS AudioDrive
· Ensoniq Soundscape
· Windows Sound System
Math functions:
· fixed point arithmetic and trigonometric routines
· precalculated trigonometric tables
· vector/matrix/quaternions 3d manipulation (translation, rotation, scaling, projection)
Misc:
· mouse, keyboard and joystick management
· high resolution interrupt timers (resolution of 10, 5 or less ms depending on platform)
· vertical retrace simulation
· manipulate configuration files
· manipulate compressed files in LZSS format
· manipulate multi-object resource-like compressed datafiles
· tool for creating datafiles (grabber)
· simple GUI for dialogs and file selector
What's New in This Release: [ read full changelog ]
Core:
· Fix use of clobbered return value from setlocale() on X11.
· Register system interface even if no display driver available on Windows.
· Fix use of double math functions for float arguments (Nick Trout).
Shaders:
· Revamped shader API. The shader API is now part of the core library, and the shader addon removed.
· Shaders are now a per-bitmap property, set with al_use_shader. A bitmap without a set shader uses a default shader internally, that allows Allegro drawing functions to work as in non-programmable pipeline mode.
· Shader variable setters operate on the shader of the target bitmap.
· Rename ALLEGRO_USE_PROGRAMMABLE_PIPELINE to ALLEGRO_PROGRAMMABLE_PIPELINE.
· Rename al_link_shader to al_build_shader.
· Remove al_set_shader.
· Remove the al_set_shader_*_array functions. These functions cannot be easily (or at all) implemented with the D3D backend.
· Add al_get_shader_platform and al_get_default_shader_source.
· Remove al_get_opengl_program_object, al_set_opengl_program_object, al_get_direct3...