/*!
 	@file
 	@brief	ピクセルエフェクト用ファンクタクラス群
 */


#ifndef PixelEffect_h
#define PixelEffect_h

#include"../../../../Setup/CompileMode.h"
#include"../../../../Auxiliary/Macro.h"

namespace Maid
{
	/*!
	 	@brief	転送元の色をコピーする
	 */
	class COLOR_COPY_SRC 
	{
	public:
		template <class DST,class SRC>
		void operator () (DST& dst, const SRC& src) const
		{
			dst = src;
		}
	};


	/*!
	 	@brief	定色をコピーする
	 */
	template <class COLOR>
	class COLOR_COPY_CONST 
	{
	public:
		//! コンストラクタ
		/*! 
		 	@param	Col	[i ]	転送する固定色
		 */
		COLOR_COPY_CONST( const COLOR& Col ) :  m_Color(Col){}
		template <class DST>
		void operator () (DST& dst) const
		{
			dst = m_Color;
		}

	private:
		const COLOR m_Color;
	};
}


#endif
