ZealOS/src/Doc/GRFiles.DD
2020-02-15 22:57:03 -06:00

45 lines
1.2 KiB
Text
Executable file

$WW,1$GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the standard ZenithOS$FG$ LZW compression.
$HL,1$
#define DCF_COMPRESSED 1 //This is the only saved flag.
#define DCF_PALETTE 2
#define TRANSPARENT 0xFF
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define PURPLE 5
#define BROWN 6
#define LTGRAY 7
#define DKGRAY 8
#define LTBLUE 9
#define LTGREEN 10
#define LTCYAN 11
#define LTRED 12
#define LTPURPLE 13
#define YELLOW 14
#define WHITE 15
class CBGR48
{
U16 r,g,b,pad;
};
CBGR48 gr_palette_std[16]={
0x000000000000,0x00000000AAAA,0x0000AAAA0000,0x0000AAAAAAAA,
0xAAAA00000000,0xAAAA0000AAAA,0xAAAA55550000,0xAAAAAAAAAAAA,
0x555555555555,0x55555555FFFF,0x5555FFFF5555,0x5555FFFFFFFF,
0xFFFF55555555,0xFFFF5555FFFF,0xFFFFFFFF5555,0xFFFFFFFFFFFF};
class GRFile
{
I32 width;
I32 width_internal; //Rounded-up to multiple of 8.
I32 height;
I32 flags; //DCF_COMPRESSED? See $LK,"::/Kernel/Compress.CC"$.
CBGR48 palette[16]; //Included if DCF_PALETTE.
U8 body[];
};$HL,0$
See $LK,"DCSave",A="MN:DCSave"$(), $LK,"GRWrite",A="MN:GRWrite"$(), $LK,"DCLoad",A="MN:DCLoad"$(), and $LK,"GRRead",A="MN:GRRead"$().