/*!
 	@file
 	@brief	テクスチャバッファベースクラス
 */

#ifndef CTextureBuffer_h
#define CTextureBuffer_h

#include"../../../Setup/CompileMode.h"
#include"../../CSurfaceInfo.h"
#include"CSurfaceBuffer.h"


#include<boost/smart_ptr.hpp>

namespace Maid
{
	/*!
	 	@class	ITextureBuffer CTextureBuffer.h
	 	@brief	テクスチャバッファの基本クラス
	 */
	class ITextureBuffer
	{
	public:
		virtual ~ITextureBuffer(){}	//!<	デストラクタ

		virtual SIZE2DI GetSize() const=0;
		virtual PIXELFORMAT GetPixelFormat() const=0;
		virtual int GetSurfaceLevel() const=0;
		virtual ISurfaceBuffer& GetSurface( int Level ) = 0;
	};

	typedef boost::shared_ptr<ITextureBuffer> SPTEXTUREBUFFER;
}

#endif

