4 ** $Filename: iff/pchg.h $
7 ** Definitions for the PCHG chunk
10 #define ID_PCHG MAKE_ID('P','C','H','G')
12 /* Compression modes */
14 #define PCHG_COMP_NONE 0
15 #define PCHG_COMP_HUFFMANN 1
19 #define PCHGB_12BIT (0)
20 #define PCHGB_32BIT (1)
21 #define PCHGB_USE_ALPHA (2)
24 #define PCHGF_12BIT (1<<0) /* Use SmallLineChanges */
25 #define PCHGF_32BIT (1<<1) /* Use BigLineChanges */
26 #define PCHGF_USE_ALPHA (1<<2) /* Meaningful only of PCHGB_32BIT is on: use the Alpha
29 /* Structures for the PCHG chunk */
43 struct PCHGCompHeader
{
45 ULONG OriginalDataSize
;
48 struct SmallLineChanges
{
51 /* UWORD PaletteChange[];*/
54 struct BigLineChanges
{
56 /* struct BigPaletteChange PaletteChange[];*/
59 struct BigPaletteChange
{
61 UBYTE Alpha
, Red
, Blue
, Green
;
66 #define PCHGERR_NOMEM (-1)
67 #define PCHGERR_UNKNOWNCOMP (-2)
69 VOID __regargs
PCHG_CFastDecomp(APTR Source
, APTR Dest
, WORD
*TreeCode
, ULONG OriginalSize
);
70 UBYTE
*__regargs
PCHG_CompHuffmann(APTR Source
, ULONG SourceSize
, ULONG
*DataSize
, ULONG
*TreeSize
);
71 VOID __regargs
PCHG_SetUserCopList(WORD Offset
, UWORD Length
, struct ViewPort
*ViewPort
, struct PCHGHeader
*PCHG
, APTR LineMask
, APTR LineData
);
72 LONG __regargs
PCHG_ParsePCHG(struct PCHGHeader
*PCHG
, struct ViewPort
*ViewPort
);
73 struct PCHGHeader
*__regargs
PCHG_SHAM2PCHG(UWORD
*SHAMChunk
, ULONG SHAMSize
, WORD Increment
);