This is a distribution of the WIN32 Allegro library for the D programming language.


VERSION
-------

2.0 beta 1, for Allegro 4.2.1


INSTALLATION
------------
The LIB files can go in directory dmd/lib.
Put alleg42.dll and alld42.dll either in the dir where your game's executable
is, or in Windows/System32.  If you do the latter, all your games can use
the same files.  alld42.lib is the debug version.

The allegro directory in the zip should go i either dmd/import, or in the
directory of the project you plan to use it with.


USAGE
-----
Compile with: bud yourgame.d alleg.lib
yourgame.d needs to have 'import allegro.all;' somewhere in it.
Every allegro function and structure works exactly like in C, respecting of
course differences in semantics between C and D.



DIFFERENCES BETWEEN C AND D ALLEGRO
-----------------------------------
allegro_id is a char pointer, not a char array.  The same goes for
empty_string, and probably others.  The compiler will tell you if you get it
wrong.

AL_ID is a function, which means you can't use it for static inititalization.  
If you need that, you can use the template _AL_ID instead
(like 'const int XYZ = _AL_ID!('a', 'b', 'c', 'd');').  The same goes for
DAT_ID.  The macros from timer.h are also made functions, but they don't have
template alternatives.

Most macros are just made functions, which should be fine in most cases.

Globals that are declared volatile had to become properties in D, since D
doesn't have volatile as a storage class, but as a statement.  Properties
consist of a getter and/or a setter function, but you can use them with
variable syntax.  The difference is that the ++ and -- operators won't work,
and taking their address doesn't make much sense.


VERSION IDENTIFIERS (CONDITIONAL COMPILATION)
---------------------------------------------
Allegro #defines that work in the D version:

ALLEGRO_NO_ASM
    Since Allegro's assembly code has not been ported to D, this has a lot less
    impact then in C-Allegro.  It disables compiled sprites, replacing them
    with RLE sprites.  It also disables the fixed point assembly code.

These work like it says in the Allegro docs:
ALLEGRO_NO_CLEAR_BITMAP_ALIAS
ALLEGRO_NO_FIX_ALIASES

FMATHS_LIB_ASM (Specific to D-Allegro)
    Link with C-Allegros versions of some of the fixed point math functions,
    which are implemented in assembly on x86.  This is as opposed to using D
    versions which are not assembly, but might be inlined.  I don't know
    which would be faster.

Most of the other Allegro #defines are covered by D's standard version
identifiers, the ones for DMD are listed on this page:
http://www.digitalmars.com/d/version.html.  GDC probably defines some more.



LINKS
-----
Author: torhu@yahoo.com
www.allegro.cc
www.digitalmars.com
