00001 00032 #ifndef LL_LLIMAGEBMP_H 00033 #define LL_LLIMAGEBMP_H 00034 00035 #include "llimage.h" 00036 00037 // This class compresses and decompressed BMP files 00038 00039 class LLImageBMP : public LLImageFormatted 00040 { 00041 protected: 00042 virtual ~LLImageBMP(); 00043 00044 public: 00045 LLImageBMP(); 00046 00047 /*virtual*/ BOOL updateData(); 00048 /*virtual*/ BOOL decode(LLImageRaw* raw_image, F32 time=0.0); 00049 /*virtual*/ BOOL encode(const LLImageRaw* raw_image, F32 time=0.0); 00050 00051 protected: 00052 BOOL decodeColorTable8( U8* dst, U8* src ); 00053 BOOL decodeColorMask16( U8* dst, U8* src ); 00054 BOOL decodeTruecolor24( U8* dst, U8* src ); 00055 BOOL decodeColorMask32( U8* dst, U8* src ); 00056 00057 U32 countTrailingZeros( U32 m ); 00058 00059 protected: 00060 S32 mColorPaletteColors; 00061 U8* mColorPalette; 00062 S32 mBitmapOffset; 00063 S32 mBitsPerPixel; 00064 U32 mBitfieldMask[4]; // rgba 00065 BOOL mOriginAtTop; 00066 }; 00067 00068 #endif