/*!
 	@file
 	@brief	PNGファイル操作クラス
 */

#ifndef CPNGLoader_h
#define CPNGLoader_h

#include"../../../Setup/CompileMode.h"
#include"../../../auxiliary/mstring.h"

#include"../../../Graphic/Color.h"
#include"../../../Graphic/Core/Driver/CTextureBufferMemory.h"

namespace Maid
{
	namespace CPNGLoader
	{
		void   Load( const mstring& FileName, CTextureBufferMemory& dst );
		void   Save( const mstring& FileName, CTextureBufferMemory& src );
	};

/*
	class CImageFilePNG : public IImageFile
	{
	public:
		using IImageFile::Load;
		CImageFilePNG();
		virtual ~CImageFilePNG();

		virtual MRESULT   Load( const MySTL::vector<uint08>& FileName );
		virtual MRESULT   Save( const MySTL::wstring& FileName );

		virtual uint32		GetWidth() const;
		virtual uint32		GetHeight() const;
		virtual PIXELFORMAT GetPixelFormat() const;

		virtual MRESULT   CreateBuffer( uint32 Width, uint32 Height, PIXELFORMAT eFormat );
		virtual void		Destory();

		virtual MRESULT   Lock( SPSURFACEBUFFERINFO& info );
		virtual MRESULT   Unlock();

		virtual MRESULT  Test( const MySTL::vector<uint08>& FileImage )const;
		virtual IImageFile* Clone() const { return new CImageFilePNG; }	//!<	クローンの作成

	private:
		boost::shared_array<uint08>			m_pMemory;		//!<	DGFファイルを展開したデータ

		void*			m_pImage;	//!<	イメージの先頭アドレス
		void*			m_pPalette;	//!<	パレットの先頭アドレス

		uint32			m_Width;	//!<	イメージの横幅
		uint32			m_Height;	//!<	イメージの縦幅
		PIXELFORMAT		m_Format;	//!<	イメージのピクセルフォーマット

	};
*/
}

#endif
