
/*
**  This C include file was generated automatically
**  from an assembly include file
**  using I2H written by Henning Friedl.
*/

/*  ------------------------------------------------------------ */
#define MULTIPIC_LIB_VERSION	1	/* the current version of multipic.library */
/*  ------------------------------------------------------------ */
/*  flags for MP_Open(): */

#define MPMODE_LOAD	0
#define MPMODE_SAVE	1	/* PRIVATE, do not use */
/*  ------------------------------------------------------------ */
/*  values for _pi_FileType: */
#define PFT_UNKNOWN	0	/* UNKONWN image type, unable to load */
#define PFT_ILBM	1	/* IFF ILBM */
#define PFT_DEEP	2	/* IFF DEEP */
#define PFT_BMP	3	/* BMP */
#define PFT_RGB8	4	/* IFF RGB8 */
#define PFT_RGBN	5	/* IFF RGBN */
#define PFT_YUVN	6	/* IFF YUVN */
#define PFT_VLAB	7	/* IFF VLAB, private VLab format */
#define PFT_PGM	8	/* PGM */
#define PFT_PPM	9	/* PPM */
#define PFT_QRT	10	/* QRT */
#define PFT_SUNRASTER	11	/* SUNRASTER */
#define PFT_XIPAINT	12	/* XIPAINT, private VDPaint format */

/* values for _pi_Flags: */
#define PIB_IFF	0
#define PIF_IFF	0x00000001	/* image is stored in an IFF file format */
#define PIB_PALETTE	1
#define PIF_PALETTE	0x00000002	/* if set, a palette had been stored together */
/*   with the image */
#define PIB_TRUECOLOR	2
#define PIF_TRUECOLOR	0x00000004	/* set if the image is true color */
/* if at least one of PIF_PALETTE or */
/*   PIF_TRUECOLOR is set, the image seems */
/*   to be a color image. */

struct PicInfo {
	LONG	pi_Flags;	/* see definitions above */
	APTR	pi_FileName;	/* name of the file (provided to Open() ) */
	APTR	pi_TypeName;	/* file type, ascii identifier */
	WORD	pi_Type;	/* see PFT_xxx above */
/* if this is PFT_UNKNOWN, multipic.library */
/*   can not load the image (if it is one) */
	WORD	pi_Width;	/* The width of the image. */
	WORD	pi_Height;	/* The height of the image. */
	WORD	pi_PageWidth;	/* The page width of the image. */
	WORD	pi_PageHeight;	/* The page height of the image. */

	BYTE	pi_AspectX;	/* The X aspect of the image (0, if unknown) */
	BYTE	pi_AspectY;	/* The Y aspect of the image (0, if unknown) */

	UWORD	pi_CMapEntries;	/* number of color values */
/* 2..256 with 8 bit images */
/* 0 or 256 with 24 bit true color images */
	UWORD	pi_CMapSize_RGB;	/* memory size of the PT_RGB palette */
	UWORD	pi_CMapSize_RRGGBB;	/* memory size of the PT_RRGGBB palette */
	UWORD	pi_CMapSize_RGB4;	/* memory size of the PT_RGB4 palette */
	UWORD	pi_CMapSize_RGB32;	/* memory size of the PT_RGB32 palette */
	UWORD	pi_CMapSize_Res1;	/* currently always 0 */
	UWORD	pi_CMapSize_Res2;	/* currently always 0 */

	UBYTE	pi_Depth;	/* 1..8,12,24,32 */
	UBYTE	pi_BytesPerPixel;	/* 1, 3, 4 */

	UBYTE	pi_RedBits;	/* 1..8  \ */
	UBYTE	pi_GreenBits;	/* 1..8   \ for TRUE-COLOR only */
	UBYTE	pi_BlueBits;	/* 1..8   /   otherwise 0 */
	UBYTE	pi_AlphaBits;	/* 1..8  / */
	UBYTE	pi_Reserved1Bits;	/* currently always 0 */
	UBYTE	pi_Reserved2Bits;	/* currently always 0 */

};
/*  ------------------------------------------------------------ */
struct PicHandle {
	ULONG	ph_Private;
};
/*  ------------------------------------------------------------ */
/*  Flags for BAT_Flags: */
#define BAB_MERGEPALETTE	0
#define BAF_MERGEPALETTE	0x00000001	/* recalculate 24 bit true color data */
/*   if a palette is present */
/*   currently not yet implemented */

/*  Tags for MP_SetBufferAttrs() */

#define MP_TagBase	TAG_USER+0x800	/* Begin counting tags */
#define BAT_Inc	MP_TagBase+1
#define BAT_RedInc	MP_TagBase+2
#define BAT_GreenInc	MP_TagBase+3
#define BAT_BlueInc	MP_TagBase+4
#define BAT_AlphaInc	MP_TagBase+5
#define BAT_DefaultAlphaValue	MP_TagBase+6
#define BAT_Flags	MP_TagBase+7
#define BAT_LeftEdge	MP_TagBase+8
#define BAT_TopEdge	MP_TagBase+9
#define BAT_Width	MP_TagBase+10
#define BAT_Mod	MP_TagBase+11
#define BAT_RedMod	MP_TagBase+12
#define BAT_GreenMod	MP_TagBase+13
#define BAT_BlueMod	MP_TagBase+14
#define BAT_AlphaMod	MP_TagBase+15
/* --------------------------------------------------------------------------- */
/*  PIT_xxx and PRT_xxx are PRIVATE and should  not be used! */

#define PIT_Type	MP_TagBase+51	/* see PFT_xxx above, not yet */
#define PIT_Width	MP_TagBase+52
#define PIT_Height	MP_TagBase+53
#define PIT_PageWidth	MP_TagBase+54	/* Default PIT_Width */
#define PIT_PageHeight	MP_TagBase+55	/* Default PIT_Height */
#define PIT_Depth	MP_TagBase+56
/*  ------------------------------------------------------------ */
/*  values for MP_ReadPalette */

#define PT_RGB	0
#define PT_RRGGBB	1	/* not yet */
#define PT_RGB4	2	/* not yet */
#define PT_RGB32	3	/* not yet */
/*  ------------------------------------------------------------ */
/*  possible error codes: */

#define EC_OK	0
#define EC_INTERNAL	1
#define EC_DOS	2

#define EC_OUT_OF_MEMORY	3
#define EC_COULD_NOT_GET_INFORMATION	4
#define EC_NO_IFFPARSE_LIB	5
#define EC_END_OF_FILE	6
#define EC_PLANENUMBER_NOT_SUPPORTED	7
#define EC_COMPRESSION_NOT_SUPPORTED	8
#define EC_COMPRESSIONMODE_NOT_SUPPORTED	9
#define EC_COMPRESSIONMODE_UNKNOWN	10
#define EC_ALLOCIFF_FAILED	11
#define EC_IFFERR_EOC	12
#define EC_IFFERR_NO_SCOPE	13
#define EC_IFFERR_READ	14
#define EC_IFFERR_WRITE	15
#define EC_IFFERR_SEEK	16
#define EC_BAD_DATA	17
#define EC_IFFERR_SYNTAX	18
#define EC_IFFERR_NOT_IFF	19
#define EC_IFFERR_NO_HOOK	20
#define EC_NO_VLAB_LIB	23
#define EC_BITMAPHEADER_NOT_FOUND	24
#define EC_UNKNOWN_FILETYPE	25
/*  ------------------------------------------------------------ */
/*  You may use this macro to call the functions in multipic.library. To avoid */
/*  conflicts with existing functions, they have a slightly unusual name (MP_xxx). */
/*  ------------------------------------------------------------ */

/*  ------------------------------------------------------------ */
