/* :ts=8 bk=0 * * myiff.h: Definitions for my IFF reader. * * Leo L. Schwab 8705.11 */ /* Masking techniques */ #define mskNone 0 #define mskHasMask 1 #define mskHasTransparentColor 2 #define mskLasso 3 /* Compression techniques */ #define cmpNone 0 #define cmpByteRun1 1 /* Bitmap header (BMHD) structure */ struct BitMapHeader { UWORD w, h; /* Width, height in pixels */ WORD x, y; /* x, y position for this bitmap */ UBYTE nplanes; /* # of planes */ UBYTE Masking; UBYTE Compression; UBYTE pad1; UWORD TransparentColor; UWORD XAspect, YAspect; WORD PageWidth, PageHeight; }; /* Color register structure (not really used) */ struct ColorRegister { UBYTE red, green, blue; }; /* Makes my life easier. */ union typekludge { char type_str[4]; long type_long; }; struct ChunkHeader { union typekludge chunktype; long chunksize; }; #define TYPE chunktype.type_long #define STRTYPE chunktype.type_str /* Useful macro from EA (the only useful thing they ever made) */ #define MAKE_ID(a, b, c, d)\ ( ((long)(a)<<24) + ((long)(b)<<16) + ((long)(c)<<8) + (long)(d) ) /* IFF types we may encounter */ #define FORM MAKE_ID('F', 'O', 'R', 'M') #define ILBM MAKE_ID('I', 'L', 'B', 'M') #define BMHD MAKE_ID('B', 'M', 'H', 'D') #define CMAP MAKE_ID('C', 'M', 'A', 'P') #define BODY MAKE_ID('B', 'O', 'D', 'Y') #define GRAB MAKE_ID('G', 'R', 'A', 'B') #define DEST MAKE_ID('D', 'E', 'S', 'T') #define SPRT MAKE_ID('S', 'P', 'R', 'T') #define CAMG MAKE_ID('C', 'A', 'M', 'G') #define CRNG MAKE_ID('C', 'R', 'N', 'G') #define CCRT MAKE_ID('C', 'C', 'R', 'T') #define DPPV MAKE_ID('D', 'P', 'P', 'V') /* Other useful things. */ #define CHUNKHEADERSIZE sizeof (struct ChunkHeader) #define SUBTYPESIZE sizeof (long) /* What functions return */ extern void *OpenLibrary(), *AllocMem(), *AllocRaster(), *GetColorMap(); struct ViewPort *readform();