truelight@4300: /* $Id$ */ truelight@4300: truelight@4300: #ifndef BMP_H truelight@4300: #define BMP_H truelight@4300: truelight@4300: typedef struct { truelight@4300: uint32 offset; ///< offset of bitmap data from .bmp file begining truelight@4300: uint32 width; ///< bitmap width truelight@4300: uint32 height; ///< bitmap height truelight@4300: bool os2_bmp; ///< true if OS/2 1.x or windows 2.x bitmap truelight@4300: uint16 bpp; ///< bits per pixel truelight@4300: uint32 compression; ///< compression method (0 = none, 1 = 8-bit RLE, 2 = 4-bit RLE) truelight@4300: uint32 palette_size; ///< number of colors in palette truelight@4300: } BmpInfo; truelight@4300: truelight@4300: typedef struct { truelight@4300: Colour *palette; truelight@4300: byte *bitmap; truelight@4300: } BmpData; truelight@4300: truelight@4300: #define BMP_BUFFER_SIZE 1024 truelight@4300: truelight@4300: typedef struct { truelight@4300: byte data[BMP_BUFFER_SIZE]; truelight@4300: int pos; truelight@4300: int read; truelight@4300: FILE *file; truelight@4300: uint real_pos; truelight@4300: } BmpBuffer; truelight@4300: truelight@4300: void BmpInitializeBuffer(BmpBuffer *buffer, FILE *file); truelight@4300: bool BmpReadHeader(BmpBuffer *buffer, BmpInfo *info, BmpData *data); truelight@4300: bool BmpReadBitmap(BmpBuffer *buffer, BmpInfo *info, BmpData *data); truelight@4300: void BmpDestroyData(BmpData *data); truelight@4300: truelight@4300: #endif /* BMP_H */