         ______   ___    ___
        /\  _  \ /\_ \  /\_ \
        \ \ \L\ \\//\ \ \//\ \      __     __   _ __   ___
         \ \  __ \ \ \ \  \ \ \   /'__`\ /'_ `\/\`'__\/ __`\
          \ \ \/\ \ \_\ \_ \_\ \_/\  __//\ \L\ \ \ \//\ \L\ \
           \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
            \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
                                           /\____/
                                           \_/__/     Version 4.2.2

                    A game programming library.

                 By Shawn Hargreaves, Jul 22, 2007.

                    See the AUTHORS file for a
                   complete list of contributors.

#include <std_disclaimer.h>

> "I do not accept responsibility for any effects, adverse or otherwise, that this code may have on you, your computer, your sanity, your dog, and anything else that you can think of. Use it at your own risk."

# Contents

- A general introduction to Allegro

API

- Using Allegro
- Structures and types defined by Allegro
- Unicode routines
- Configuration routines
- Mouse routines
- Timer routines
- Keyboard routines
- Joystick routines
- Graphics modes
- Bitmap objects
- Loading image files
- Palette routines
- Truecolor pixel formats
- Drawing primitives
- Blitting and sprites
- RLE sprites
- Compiled sprites
- Fonts
- Text output
- Polygon rendering
- Transparency and patterned drawing
- Converting between color formats
- Direct access to video memory
- FLIC routines
- Sound init routines
- Mixer routines
- Digital sample routines
- Music routines (MIDI)
- Audio stream routines
- Recording routines
- File and compression routines
- Datafile routines
- Fixed point math routines
- 3D math routines
- Quaternion math routines
- GUI routines

Platform specifics

- DOS specifics
- Windows specifics
- Unix specifics
- BeOS specifics
- QNX specifics
- MacOS X specifics
- Differences between platforms

Miscellaneous

- Reducing your executable size
- Debugging
- Makefile targets
- Available Allegro examples
- Changes since previous versions
- Contributors: The Hall of Fame
- Frequently asked questions (FAQ)
- Common mistakes
- Help: what to do when your Allegro program doesn't work
- API compatibility information
- ABI compatibility information
- The Allegro hacker's guide
- Allegro ``const'`-correctness
- Packfile format information
- Datafile format information
- License and Disclaimer

Tools

- makedoc - Generate documentation in various formats
- grabber - Create datafiles
- dat - Manipulate datafiles from the command line
- dat2s - Compile datafiles into assembler code
- dat2c - Compile datafiles into C code

- Community
- Conclusion
- Index