2021-07-02 00:53:42 +01:00
$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 ZealOS$FG$ LZW compression.
2020-02-15 20:01:48 +00:00
$HL,1$
2020-12-23 23:27:18 +00:00
#define DCF_COMPRESSED 1 //This is the only saved flag.
#define DCF_PALETTE 2
2020-02-15 20:01:48 +00:00
2020-12-23 23:27:18 +00:00
#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
2020-02-15 20:01:48 +00:00
class CBGR48
{
2020-12-23 23:27:18 +00:00
U16 r, g, b, pad;
2020-02-15 20:01:48 +00:00
};
2020-12-23 23:27:18 +00:00
CBGR48 gr_palette_std[16] = {
0x000000000000, 0x00000000AAAA, 0x0000AAAA0000, 0x0000AAAAAAAA,
0xAAAA00000000, 0xAAAA0000AAAA, 0xAAAA55550000, 0xAAAAAAAAAAAA,
0x555555555555, 0x55555555FFFF, 0x5555FFFF5555, 0x5555FFFFFFFF,
0xFFFF55555555, 0xFFFF5555FFFF, 0xFFFFFFFF5555, 0xFFFFFFFFFFFF};
2020-02-15 20:01:48 +00:00
class GRFile
{
2020-02-20 23:40:10 +00:00
I32 width;
I32 width_internal; //Rounded-up to multiple of 8.
I32 height;
2021-07-24 00:21:07 +01:00
I32 flags;
2020-12-23 23:27:18 +00:00
CBGR48 palette[16]; //Included if DCF_PALETTE.
2020-02-20 23:40:10 +00:00
U8 body[];
2020-02-15 20:01:48 +00:00
};$HL,0$
See $LK,"DCSave",A="MN:DCSave"$(), $LK,"GRWrite",A="MN:GRWrite"$(), $LK,"DCLoad",A="MN:DCLoad"$(), and $LK,"GRRead",A="MN:GRRead"$().