Originally posted by rmullen3
A bitmap pointer in allegro is a pointer to a structure called BITMAP.

Code:
typedef struct BITMAP            /* a bitmap structure */
{
   int w, h;                     /* width and height in pixels */
   int clip;                     /* flag if clipping is turned on */
   int cl, cr, ct, cb;           /* clip left, right, top and bottom values */
   GFX_VTABLE *vtable;           /* drawing functions */
   void *write_bank;             /* C func on some machines, asm on i386 */
   void *read_bank;              /* C func on some machines, asm on i386 */
   void *dat;                    /* the memory we allocated for the bitmap */
   unsigned long id;             /* for identifying sub-bitmaps */
   void *extra;                  /* points to a structure with more info */
   int x_ofs;                    /* horizontal offset (for sub-bitmaps) */
   int y_ofs;                    /* vertical offset (for sub-bitmaps) */
   int seg;                      /* bitmap segment */
   unsigned char *line[ZERO_SIZE];
} BITMAP;
Using sizeof, BITMAP's size is about 60 bytes (that is if we discount the GFX_VTABLE pointer which is of an unknown size to me) and assume ZERO_SIZE is defined as 0 and not 64 as in almaccfg.h

The other version of BITMAP which contains members such as bmBits and bmHeight is 64 bytes.
about 60 bytes? ehh we could just be exact and say 64 bytes .