The Allegro 5 API is documented here: http://docs.liballeg.org.
The design goal of the new API was a clean and orthogonal replacement for the old Allegro 4 interface which allows easy implementation on top of (or together with) DirectX and OpenGL (Allegro 4 was designed to work on top of a pixel buffer instead).
A parallel aim was modularity, conceptually revolving around a core library and a list of addons. Functionality for which it makes sense to be in an addon should live there (e.g. audio). This makes it easy to use something else (e.g. FMod or BASS or OpenAL) but most importantly keeps the code more maintainable. Our distributions still contain everything so for the typical end user this modularity may not be visible at all (they can just use the allegro-monolith.dll).
General code conventions
- General notes -- on naming conventions and data types