00001 00020 #ifndef INC_SPATMOD_IMAGESOURCEPNG_H 00021 #define INC_SPATMOD_IMAGESOURCEPNG_H 00022 00023 #ifndef INC_SPATMOD_IMAGESOURCEFILE_H 00024 #include <spatmod/imagesourcefile.h> 00025 #endif 00026 00027 namespace SPATMOD { 00028 namespace IMAGE { 00029 00030 //===================================================================================================================== 00031 00033 class SOURCE_PNG : public SOURCE_FILE { 00034 public: 00035 00037 explicit SOURCE_PNG ( 00038 const FILEPATH& FilePath 00039 ); 00040 00043 explicit SOURCE_PNG ( 00044 SIMPLE_ARRAY<UINT8>& MemBuffer 00045 ); 00046 00049 SOURCE_PNG ( 00050 UINT8*& MemBuffer, 00051 UINT32 BufferSize 00052 ); 00053 00055 virtual ~SOURCE_PNG (); 00056 00058 void SetTransparentInvalid ( 00059 bool TransparentInvalid = true 00060 ) { m_TransparentInvalid = TransparentInvalid; } 00061 00062 private: 00063 #ifndef GENERATING_DOXYGEN_OUTPUT 00064 class PNG_READER; 00065 PNG_READER *m_pReader; 00066 bool m_DoingPull; 00067 bool m_TransparentInvalid; 00068 00069 // BASE overrides. 00070 virtual float v_QueryIterator (const SECTION_ITERATOR& iterator) const; 00071 00072 // STAGE overrides. 00073 virtual ERRVALUE v_Initialize (); 00074 virtual ERRVALUE v_PullBegin (const SECTION_ITERATOR& iterator); 00075 virtual ERRVALUE v_PullEnd (); 00076 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer); 00077 00078 // Unimplemented 00079 SOURCE_PNG (const SOURCE_PNG&); 00080 SOURCE_PNG& operator= (const SOURCE_PNG&); 00081 #endif // GENERATING_DOXYGEN_OUTPUT 00082 00083 }; 00084 00085 //===================================================================================================================== 00086 00087 } // End namespace IMAGE 00088 } // End namespace SPATMOD 00089 00090 #endif // INC_SPATMOD_IMAGESOURCEPNG_H 00091
1.6.1