See readme.txt for a general introduction, copyright details, and information about how to compile Allegro.
All the Allegro functions, variables, and data structures are defined in allegro.h. You should include this in your programs, and link with liballeg.a. To do this you should:
- Put the following line at the beginning of all C or C++ files that use Allegro:
#include <allegro.h>
- If you compile from the command line or with a makefile, add '-lalleg' to the end of the gcc command, eg:
gcc foo.c -o foo.exe -lalleg
- If you are using Rhide, go to the Options/Libraries menu, type 'alleg' into the first empty space, and make sure the box next to it is checked.
- If you aren't using some parts of Allegro's functionality, you can slightly reduce your compilation times by defining any of the following preprocessor symbols before including allegro.h:
alleg_mouse_unused
alleg_timer_unused
alleg_keyboard_unused
alleg_joystick_unused
alleg_gfx_driver_unused
alleg_palette_unused
alleg_graphics_unused
alleg_vidmem_unused
alleg_flic_unused
alleg_sound_unused
alleg_file_unused
alleg_datafile_unused
alleg_math_unused
alleg_gui_unused
Please note that these defines will not affect your executable size, though! See towards the end of this file for information about how to remove unused code at the linking stage.
int allegro_init();
Initialises the Allegro library. It doesn't actually do very much except
setting up some global variables, locking some memory, and installing
allegro_exit() as an atexit() routine, but you must call it before doing
anything else. Returns zero for success (at the moment it can't fail, so
there is not much point checking the return value).
void allegro_exit();
Closes down the Allegro system. This includes returning the system to
text mode and removing whatever mouse, keyboard, and timer routines have
been installed. You don't normally need to bother making an explicit call
to this function, because allegro_init() installs it as an atexit()
routine so it will be called automatically when your program exits.
extern char allegro_id[];
Text string containing a date and version number for the library, in case
you want to display these somewhere.
extern char allegro_error[];
Text string used by set_gfx_mode() and install_sound() to report error
messages. If they fail and you want to tell the user why, this is the
place to look for a description of the problem.
extern int os_type;
Set by allegro_init() to one of the values:
OSTYPE_UNKNOWN - unknown, or regular MSDOS OSTYPE_WIN3 - Windows 3.1 or earlier OSTYPE_WIN95 - Windows 95 OSTYPE_WIN98 - Windows 98 OSTYPE_WINNT - Windows NT OSTYPE_OS2 - OS/2 OSTYPE_WARP - OS/2 Warp 3 OSTYPE_DOSEMU - Linux DOSEMU OSTYPE_OPENDOS - Caldera OpenDOSextern int windows_version, windows_sub_version;
void check_cpu();
Detects the CPU type, setting the following global variables:
extern char cpu_vendor[];
Set by check_cpu() to the CPU vendor name, if known.
extern int cpu_family;
Set by check_cpu() to the CPU type: 3=386, 4=486, 5=Pentium, 6=PPro, etc.
extern int cpu_model;
Set by check_cpu() to the CPU submodel. On a 386 (cpu_family=3), zero
indicates a DX chip, 2 an SX, 4 an SL, and 15 is unknown. On a 486
(cpu_family=4), zero or one indicates a DX chip, 2 an SX, 3 a 487 (SX) or
486 DX, 4 an SL, 5 an SX2, 7 a DX2 write-back enhanced, 8 a DX4 or DX4
overdrive, 14 a Cyrix, and 15 is unknown. On a Pentium chip
(cpu_family=5), 1 indicates a Pentium (510\66, 567\66), 2 is a Pentium
P54C, 3 is a Pentium overdrive processor, 5 is a Pentium overdrive for
IntelDX4, 14 is a Cyrix, and 15 is unknown.
extern int cpu_fpu;
Set by check_cpu() to TRUE or FALSE, depending on whether a floating
point processor is available.
extern int cpu_mmx;
Set by check_cpu() to TRUE or FALSE, depending on whether the MMX
instruction set is available.
extern int cpu_3dnow;
Set by check_cpu() to TRUE or FALSE, depending on whether the 3DNow!
instruction set is available.
extern int cpu_cpuid;
Set by check_cpu() to TRUE or FALSE, depending on whether the "cpuid"
instruction was available (if this is set, the other CPU variables are
100% reliable, otherwise there may be some mistakes).