68#define READ_CHAR() *file_ptr++ ; \
69 if ( file_ptr >= & pool [ POOL_SIZE ] ) { \
70 file_handle.Read (pool, POOL_SIZE ); \
73#define READ_CHARx() *file_ptr++ ; \
74 if ( file_ptr >= & pool [ POOL_SIZE ] ) { \
75 file_handle.Read (pool, POOL_SIZE ); \
101 width = header.
width - header.
x + 1;
102 height = header.
height - header.
y + 1;
106 height =
MIN ((
int)(i - 1), (
int)height);
115 buffer = (
char *)pic->
Lock();
116 if (buffer !=
NULL) {
124 for ( scan_pos = j = 0 ; j < height ; j ++, scan_pos += width ) {
125 for ( i = 0 ; i < width ; ) {
130 memset ( buffer + scan_pos + i, color, rle );
133 *(buffer+scan_pos + i++ ) = (
char)rle;
143 for ( i = 0 ; i < width * height ; ) {
149 memset ( buffer + i, color, rle );
152 *(buffer + i++) = (
char)rle;
161 file_handle.
Read (palette, 256L *
sizeof (
RGB ));
virtual void * Lock(Point2D point=Point2D(0, 0)) const
virtual int Seek(int pos, int dir=SEEK_CUR)=0
virtual bool Is_Available(int forced=false)=0
virtual int Read(void *buffer, int size)=0
virtual void Close(void)=0
virtual int Open(char const *filename, int rights=READ)=0
virtual bool Unlock(void) const
Surface * Read_PCX_File(FileClass &file_handle, PaletteClass *palette, void *Buff, long Size)
unsigned short byte_per_line