35 lines
		
	
	
		
			664 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			664 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <glm/gtx/wrap.hpp>
 | 
						|
 | 
						|
namespace gli{
 | 
						|
namespace detail
 | 
						|
{
 | 
						|
	template <typename T>
 | 
						|
	inline T passThrought(T const & SampleCoord)
 | 
						|
	{
 | 
						|
		return SampleCoord;
 | 
						|
	}
 | 
						|
}//namespace detail
 | 
						|
 | 
						|
	inline sampler::sampler(wrap Wrap, filter Mip, filter Min)
 | 
						|
		: Wrap(get_func(Wrap))
 | 
						|
		, Mip(Mip)
 | 
						|
		, Min(Min)
 | 
						|
	{}
 | 
						|
 | 
						|
	inline sampler::wrap_type sampler::get_func(wrap WrapMode) const
 | 
						|
	{
 | 
						|
		static wrap_type Table[] =
 | 
						|
		{
 | 
						|
			glm::clamp,
 | 
						|
			detail::passThrought,
 | 
						|
			glm::repeat,
 | 
						|
			glm::mirrorRepeat,
 | 
						|
			glm::mirrorClamp,
 | 
						|
			glm::mirrorClamp
 | 
						|
		};
 | 
						|
		static_assert(sizeof(Table) / sizeof(Table[0]) == WRAP_COUNT, "Table needs to be updated");
 | 
						|
 | 
						|
		return Table[WrapMode];
 | 
						|
	}
 | 
						|
}//namespace gli
 |