#ifndef LIBRARIES_RGFX_H
#define LIBRARIES_RGFX_H
#ifndef LIBARIES_IFFPARSE_H
#include <libraries/iffparse.h>
#endif

#define ID_RGFX  MAKE_ID('R','G','F','X')
#define ID_RGHD  MAKE_ID('R','G','H','D')
#define ID_RSCM  MAKE_ID('R','S','C','M')
#define ID_RCOL  MAKE_ID('R','C','O','L')
#ifndef ID_RBOD
#define ID_RBOD  MAKE_ID('R','B','O','D')
#endif

struct RGHD
{
ULONG rgfx_LeftEdge;
ULONG rgfx_TopEdge;
ULONG rgfx_Width;
ULONG rgfx_Height;
ULONG rgfx_PageWidth;
ULONG rgfx_PageHeight;
ULONG rgfx_Depth; /* 1-8 for RMBT_BYTEPLANAR8, 1-8 for RMBT_BYTECHUNKY8, 24 for RMBT_3BYTERGB24 */
ULONG rgfx_PixelBits; /* 1-8 for RMBT_BYTEPLANAR8, 8 for RMBT_BYTECHUNKY8, 24 for RMBT_3BYTERGB24 */
ULONG rgfx_BytesPerLine; /* (width+7)/8 for RMBT_BYTEPLANAR8, width for RMBT_BYTECHUNKY8, width*3 for RMBT_3BYTERGB24 */
ULONG rgfx_Compression; /* RCMT_ type flag */
ULONG rgfx_XAspect;
ULONG rgfx_YAspect;
ULONG rgfx_BitMapType; /* RBMT_ type flag */
};

#define RCMT_NOCOMPRESSION (0L)
#define RCMT_XPK (1L)

#define RMBT_BYTEPLANAR8 (0L) /* unaligned planar 8 bit bitmap */
#define RMBT_BYTECHUNKY8 (1L) /* unaligned chunky 8 bit bitmap */
#define RMBT_3BYTERGB24 (2L) /* 3-byte 24 bit RGB triples */

struct RSCM
{
ULONG rscm_AGA;
ULONG rscm_CGfx;
ULONG rscm_P96;
};

struct RCOL
{
ULONG rcol_TransColor;
ULONG rcol_TransColorNum;
UBYTE rcol_Colors[256][3];
};

/*
struct RBOD
{
UBYTE rbod_XPK[3];     ** containing 'XPK'
UBYTE rbod_BitMap[];
};

Or simply:

struct RBOD
{
UBYTE rbod_BitMap[];
};
*/

/*
RGFX - Other chunks
-------------------

- NAME, AUTH, ANNO and (C) chunks are allowed

*/

#endif
