[svn] / nytr / trunk / libnytrengine / FrameBuffer.inl.h Repository:
ViewVC logotype

View of /nytr/trunk/libnytrengine/FrameBuffer.inl.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 678 - (download) (as text) (annotate)
Sat Jan 12 07:18:19 2008 UTC (2 years, 7 months ago) by kouhei
File size: 1465 byte(s)
added libnytrengine. buildable
namespace nytr
{

template<typename T>
inline
FilmFilter<T>*
FilmFilter<T>::newFilmFilterImpl(FILMFILTERTYPE type)
{
	switch(type)
	{
	case FILMFILTER_NULL:
		return new NullFilmFilterImpl<T>();

	case FILMFILTER_LANCZOS:
		return new FunctionFilterImpl<T>(new LanczosSincFilterFunctionImpl((REAL)2.5, (REAL)2.5));

	default:
		FECTI_THROW(fecti::FEX_APPLICATION_ERROR, "unknown type specified");
	}
}

template<>
inline
FilmFilter<fecti::FUINT8>*
FilmFilter<fecti::FUINT8>::newFilmFilterImpl(FILMFILTERTYPE)
{
	return new NullFilmFilterImpl<fecti::FUINT8>();
}

inline
void
FrameBuffer::addSample(const fecti::FVector2& vP, const SampleValue& val, REAL fScale)
{
	for(unsigned int i = 0; i < m_nfilms; ++ i)
	{
		if(! val.isReady(i))
		{
			continue;
		}

		switch(m_arytype[i])
		{
		case FILM_UNUSED:
			continue;

		case FILM_INT:
			((Film<FUINT8>*)getpFilm(i))->addSample(vP, val.getInt(i), fScale);

		case FILM_FLOAT:
			((Film<float>*)getpFilm(i))->addSample(vP, val.getReal(i), fScale);

		case FILM_DOUBLE:
			((Film<double>*)getpFilm(i))->addSample(vP, val.getReal(i), fScale);

		case FILM_RGB:
			((Film<FRGB>*)getpFilm(i))->addSample(vP, val.getRGB(i), fScale);
			break;

		case FILM_XYZ:
			((Film<FXYZ>*)getpFilm(i))->addSample(vP, val.getXYZ(i), fScale);
			break;

		default:
			FECTI_THROW(FEX_APPLICATION_ERROR, "should not come here");
		}
	}
}

} // end of namespace nytr

admin
ViewVC Help
Powered by ViewVC 1.0.5