home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 011.lha / IFF / iff.h next >
C/C++ Source or Header  |  1986-11-10  |  2KB  |  103 lines

  1.  
  2. /*
  3.  * IFF.H
  4.  *
  5.  * Chunk:
  6.  *       char id[4]
  7.  *       long  cksize;
  8.  *       uchar ckdata[cksize];
  9.  *       [0 pad to word boundry]
  10.  *
  11.  * Property = Chunk
  12.  * FORM     = Chunk / data = formtype + N-subchunks
  13.  *
  14.  * CAT      = Chunk / data = type + list of chunks: FORM LIST or CAT
  15.  * LIST     = Chunk / data = type + N-Props + N(FORM LIST CAT)
  16.  * PROP     = Chunk / data = formtype + property
  17.  *
  18.  *
  19.  * ILBM  =  FORM(ILBM): BMHD [CMAP][GRAB][DEST][SPRT][CAMG][CRNG+][BODY]
  20.  *
  21.  */
  22.  
  23. #include <exec/types.h>
  24.  
  25.  
  26. #define MAKEID(a,b,c,d) ((a)<<24 | (b)<<16 | (c)<<8 | (d))
  27.  
  28. #define IFF_FORM     MAKEID('F','O','R','M')
  29. #define IFF_LIST     MAKEID('L','I','S','T')
  30. #define IFF_PROP     MAKEID('P','R','O','P')
  31. #define IFF_CAT      MAKEID('C','A','T',' ')
  32. #define IFF_FILLER   MAKEID(' ',' ',' ',' ')
  33.  
  34. #define TYPE_ILBM    MAKEID('I','L','B','M')
  35. #define TYPE_FTXT    MAKEID('F','T','X','T')
  36.  
  37.  
  38. #define ILBM_BMHD    MAKEID('B','M','H','D')    /* PROP                */
  39. #define ILBM_CMAP    MAKEID('C','M','A','P')    /* PROP                */
  40. #define ILBM_GRAB    MAKEID('G','R','A','B')    /* PROP                */
  41. #define ILBM_DEST    MAKEID('D','E','S','T')    /* PROP merging        */
  42. #define ILBM_SPRT    MAKEID('S','P','R','T')    /* PROP body is sprite */
  43. #define ILBM_CAMG    MAKEID('C','A','M','G')    /* PROP VP mode        */
  44. #define ILBM_CRNG    MAKEID('C','R','N','G')    /* PROP color cycling  */
  45. #define ILBM_BODY    MAKEID('B','O','D','Y')    /* bit mapped body     */
  46.  
  47.  
  48.  
  49. /* STRUCTURES */
  50.  
  51.  
  52. typedef struct {
  53.    long id;
  54.    long cksize;
  55. } CHUNK;
  56.  
  57.  
  58. #define MA_NONE          0    /* masking */
  59. #define MA_HASMASK       1
  60. #define MA_HASTRANSCOLOR 2
  61. #define MA_LASSO         3
  62.  
  63. #define CP_NONE          0    /* compression */
  64. #define CP_BYTERUN1      1
  65.  
  66. typedef struct {
  67.    UWORD w, h;
  68.    WORD  x, y;
  69.    UBYTE planes;
  70.    UBYTE masking;
  71.    UBYTE compression;
  72.    UBYTE pad1;
  73.    UWORD transparent_color;
  74.    UBYTE xaspect, yaspect;
  75.    WORD  pagewidth, pageheight;
  76. } X_BMHD;
  77.  
  78. typedef UBYTE X_CMAP[3];      /* each map entry is 3 bytes  */
  79.  
  80. typedef UWORD X_GRAB[2];      /* grab entry x, y            */
  81.  
  82. typedef struct {
  83.    UBYTE depth;
  84.    UBYTE pad1;
  85.    UWORD p_pick;
  86.    UWORD p_onoff;
  87.    UWORD p_mask;
  88. } X_DEST;
  89.  
  90. typedef UWORD X_SPRT;         /* precedence               */
  91.  
  92. typedef struct {
  93.    ULONG vpmodes;
  94. } X_CAMG;
  95.  
  96. typedef struct {
  97.    WORD  pad1;
  98.    WORD  rate;
  99.    WORD  active;
  100.    UBYTE low, high;
  101. } X_CRNG;
  102.  
  103.