|
|
Introduction
Allegro is a portable library mainly aimed at video game and multimedia programming,
originally started by Shawn Hargreaves
for the DJGPP compiler in a mixture of C and assembler.
According to the Oxford Companion to Music, Allegro is the Italian for
«quick, lively, bright». It is also a recursive acronym which stands for
«Allegro Low LEvel Game ROutines».
Cross-platform support
- Dos (DJGPP, Watcom)
- Unix (Linux, FreeBSD, Solaris, Irix)
- Windows (MSVC, MinGW, Borland, Cygwin)
- BeOS
- MacOS (alpha)
- QNX
Graphic functions
- Vectorial drawing:
- pixels, lines, rectangles, circles, ellipses, arcs, Bezier splines
- shape fill, with or without pattern
- polygons: flat, Gouraud, textured 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
- Texts:
- text output in Unicode format (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
- 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
- Unix:
- X Window, DGA, fbcon
- SVGAlib
- VBE/AF
- mode-X
- VGA
- Windows:
- DirectX (windowed or full-screen)
- GDI
- BeOS:
- BWindowScreen
- BDirectWindow
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
- Dos:
- Adlib, SB, SB Pro, SB16, AWE32
- MPU-401
- ESS AudioDrive
- Ensoniq Soundscape
- Windows Sound System
- Unix:
- Windows:
- DirectSound
- WaveOut
- MIDI system drivers
Math functions
- fixed point aritmetic and trigonometric routines
- precalculated trigonometric tables
- vector/matrix/quaternions 3d manipulation (translation, rotation, scaling, projection)
Misc
- mouse, keyboard and joystick management
- high resolution interruption timers (resolution of 10, 5 or less ms depending on platform)
- vertical retrace symulation under DOS
- 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
|