00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef INCL_PLBMPDEC
00012 #define INCL_PLBMPDEC
00013
00014 #ifndef INCL_PLPICDEC
00015 #include "plpicdec.h"
00016 #endif
00017
00018 #ifndef INCL_PLWINDEFS
00019 #include "plwindefs.h"
00020 #endif
00021
00025 class PLBmpDecoder : public PLPicDecoder
00026 {
00027
00028 public:
00030 PLBmpDecoder
00031 ();
00032
00034 virtual ~PLBmpDecoder
00035 ();
00036
00037 protected:
00039 virtual void DoDecode
00040 ( PLBmp * pBmp,
00041 PLDataSource * pDataSrc
00042 );
00043
00044 private:
00045
00046
00047 WINBITMAPINFOHEADER * getInfoHeader
00048 ( PLDataSource * pDataSrc,
00049 PLPixel32* Pal
00050 );
00051
00052
00053
00054 void decode1bpp
00055 ( PLDataSource * pDataSrc,
00056 PLBmp * pBmp
00057 );
00058
00059
00060 void decode4bpp
00061 ( PLDataSource * pDataSrc,
00062 PLBmp * pBmp
00063 );
00064
00065
00066 void decode8bpp
00067 ( PLDataSource * pDataSrc,
00068 PLBmp * pBmp
00069 );
00070
00071
00072 void decodeRLE4
00073 ( PLDataSource * pDataSrc,
00074 PLBmp * pBmp
00075 );
00076
00077
00078 void decodeRLE8
00079 ( PLDataSource * pDataSrc,
00080 PLBmp * pBmp
00081 );
00082
00083 void decodeHiColor
00084 ( PLDataSource * pDataSrc,
00085 PLBmp * pBmp,
00086 WINBITMAPINFOHEADER * pBMI
00087 );
00088
00089
00090 void decodeTrueColor
00091 ( PLDataSource * pDataSrc,
00092 PLBmp * pBmp,
00093 int SrcBPP
00094 );
00095
00096 void decode15bppLine
00097 ( PLDataSource * pDataSrc,
00098 PLBmp * pBmp,
00099 PLBYTE * pDest
00100 );
00101
00102 void decode16bppLine
00103 ( PLDataSource * pDataSrc,
00104 PLBmp * pBmp,
00105 PLBYTE * pDest
00106 );
00107
00108 void decode24bppLine
00109 ( PLDataSource * pDataSrc,
00110 PLBmp * pBmp,
00111 PLBYTE * pDest
00112 );
00113
00114 void decode32bppLine
00115 ( PLDataSource * pDataSrc,
00116 PLBmp * pBmp,
00117 PLBYTE * pDest
00118 );
00119
00120
00121
00122
00123 void decode2Nibbles
00124 ( PLBYTE * pDest,
00125 PLBYTE SrcByte
00126 );
00127
00128
00129
00130 int readPalette
00131 ( WINBITMAPINFOHEADER * pBMI,
00132 PLDataSource * pDataSrc,
00133 PLPixel32 * pPal,
00134 int RGBSize
00135 );
00136
00137 };
00138
00139 #endif
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167