00001
00002
00003 #define GDC_RLE_COLOUR 0x0001
00004 #define GDC_RLE_MONO 0x0002
00005 #define GDC_RLE_READONLY 0x0004
00006
00007 class GdcRleDC : public GdcDibSection {
00008 protected:
00009 int Sx;
00010 int Sy;
00011 int Bits;
00012
00013 int Flags;
00014 int Length;
00015 int Alloc;
00016 uchar *Data;
00017 uchar **ScanLine;
00018
00019 BOOL SetLength(int Len);
00020 BOOL FindScanLines();
00021 void Empty();
00022
00023 public:
00024 GdcRleDC();
00025 virtual ~GdcRleDC();
00026
00027 BOOL Create(int x, int y, int Bits, int LineLen = 0);
00028 BOOL CreateInfo(int x, int y, int Bits);
00029
00030 void Update(int Flags);
00031 void Draw(GSurface *Dest, int x, int y);
00032 BOOL Read(GFile &F);
00033 BOOL Write(GFile &F);
00034 };
00035