public override void SetTextureUnitFiltering( int unit, FilterType ftype, FilterOptions fo )
{
if ( !this.ActivateGLTextureUnit( unit ) )
return;
switch ( ftype )
{
case FilterType.Min:
if ( this._textureMipmapCount == 0 )
{
_minFilter = FilterOptions.None;
}
else
{
_minFilter = fo;
}
// Combine with existing mip filter
GL.TexParameter( All.Texture2D, All.TextureMinFilter, CombinedMinMipFilter );
GLESConfig.GlCheckError( this );
break;
case FilterType.Mag:
switch ( fo )
{
case FilterOptions.Anisotropic: // GL treats linear and aniso the same
case FilterOptions.Linear:
GL.TexParameter( All.Texture2D, All.TextureMagFilter, (int)All.Linear );
GLESConfig.GlCheckError( this );
break;
case FilterOptions.Point:
case FilterOptions.None:
GL.TexParameter( All.Texture2D, All.TextureMagFilter, (int)All.Nearest );
GLESConfig.GlCheckError( this );
break;
}
break;
case FilterType.Mip:
if ( _textureMipmapCount == 0 )
{
_mipFilter = FilterOptions.None;
}
else
{
_mipFilter = fo;
}
// Combine with existing min filter
GL.TexParameter( All.Texture2D, All.TextureMinFilter, CombinedMinMipFilter );
GLESConfig.GlCheckError( this );
break;
}
ActivateGLTextureUnit( 0 );
}