Miscellaneous routines

These functions are declared in the main Allegro header file:

 #include <allegro5/allegro.h>

ALLEGRO_PI

#define ALLEGRO_PI        3.14159265358979323846

Source Code

C99 compilers have no predefined value like M_PI for the constant π, but you can use this one instead.

Examples:

al_run_main

int al_run_main(int argc, char **argv, int (*user_main)(int, char **))

Source Code

This function is useful in cases where you don’t have a main() function but want to run Allegro (mostly useful in a wrapper library). Under Windows and Linux this is no problem because you simply can call al_install_system. But some other system (like OSX) don’t allow calling al_install_system in the main thread. al_run_main will know what to do in that case.

If you’re calling this outside a library, define ALLEGRO_NO_MAGIC_MAIN before including <allegro5/allegro.h> to disable the automatic name mangling.

The passed argc and argv are passed on to user_main and the return value of user_main will be returned. In certain cases, Allegro may change argv[0] to point to a different directory (e.g. when inside a MacOS App bundle).

Allegro version 5.2.12 (GIT) - Last updated: 2026-02-13 04:34:08 UTC