Moved DejaVue fonts to contrib. They are only needed by applications
[AROS-Contrib.git] / dopus / Program / pchg.h
blobfbfcc2cdfb114c2fefa86eac518b42930272eb31
1 #ifndef PCHG_H
2 #define PCHG_H
3 /*
4 ** $Filename: iff/pchg.h $
5 ** $Revision$
6 **
7 ** Definitions for the PCHG chunk
8 */
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
17 /* Flags */
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
27 channel info */
29 /* Structures for the PCHG chunk */
31 struct PCHGHeader {
32 UWORD Compression;
33 UWORD Flags;
34 WORD StartLine;
35 UWORD LineCount;
36 UWORD ChangedLines;
37 UWORD MinReg;
38 UWORD MaxReg;
39 UWORD MaxChanges;
40 ULONG TotalChanges;
43 struct PCHGCompHeader {
44 ULONG CompInfoSize;
45 ULONG OriginalDataSize;
48 struct SmallLineChanges {
49 UBYTE ChangeCount16;
50 UBYTE ChangeCount32;
51 /* UWORD PaletteChange[];*/
54 struct BigLineChanges {
55 UWORD ChangeCount;
56 /* struct BigPaletteChange PaletteChange[];*/
59 struct BigPaletteChange {
60 UWORD Register;
61 UBYTE Alpha, Red, Blue, Green;
64 /* Errors */
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);
75 #endif