00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef INCL_PLTGADEC
00012 #define INCL_PLTGADEC
00013
00014 #ifndef INCL_PLPICDEC
00015 #include "plpicdec.h"
00016 #endif
00017
00018 #ifndef INCL_PLTGA
00019 #include "pltga.h"
00020 #endif
00021
00025 class PLTGADecoder : public PLPicDecoder
00026 {
00027
00028
00029 public:
00031 PLTGADecoder
00032 ();
00033
00035 virtual ~PLTGADecoder
00036 ();
00037
00038 protected:
00041 virtual void DoDecode
00042 ( PLBmp * pBmp,
00043 PLDataSource * pDataSrc
00044 );
00045
00046 private:
00047
00048
00049 void readTgaHeader
00050 ( TGAHEADER * pTgaHead,
00051 PLDataSource * pDataSrc
00052 );
00053
00054
00055 void readPalette
00056 ( int StartIndex,
00057 int Length,
00058 int EntrySize,
00059 PLBmp * pBmp,
00060 PLDataSource * pDataSrc
00061 );
00062
00063
00064
00065 void readImage
00066 ( TGAHEADER * pTgaHead,
00067 PLBmp * pBmp,
00068 PLDataSource * pDataSrc
00069 );
00070
00071
00072 void readData
00073 ( TGAHEADER * pTgaHead,
00074 bool bCompressed,
00075 PLBmp * pBmp,
00076 PLDataSource * pDataSrc
00077 );
00078
00079
00080 void expandUncompressedLine
00081 ( PLBYTE * pDest,
00082 int Width,
00083 bool bReversed,
00084 int bpp,
00085 PLDataSource * pDataSrc
00086 );
00087
00088
00089 void expandCompressedLine
00090 ( PLBYTE * pDest,
00091 int Width,
00092 bool bReversed,
00093 int bpp,
00094 PLDataSource * pDataSrc
00095 );
00096
00097
00098 PLPixel32 readPixel32
00099 ( int bpp,
00100 PLDataSource * pDataSrc
00101 );
00102
00103
00104 PLBYTE readPixel8
00105 ( int bpp,
00106 PLDataSource * pDataSrc
00107 );
00108 };
00109
00110 #endif
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132