public static void ToMTLSamplerFilters( this SamplerFilter filter, out MTLSamplerMinMagFilter minFilter, out MTLSamplerMinMagFilter magFilter, out MTLSamplerMipFilter mipFilter) { switch (filter) { case SamplerFilter.MinMagMipPoint: minFilter = magFilter = MTLSamplerMinMagFilter.Nearest; mipFilter = MTLSamplerMipFilter.Nearest; break; case SamplerFilter.MinMagMipLinear: minFilter = magFilter = MTLSamplerMinMagFilter.Linear; mipFilter = MTLSamplerMipFilter.Linear; break; case SamplerFilter.Anisotropic: minFilter = magFilter = MTLSamplerMinMagFilter.Linear; mipFilter = MTLSamplerMipFilter.Linear; break; default: throw new ArgumentOutOfRangeException(nameof(filter)); } }
internal static void GetMinMagMipFilter( SamplerFilter filter, out MTLSamplerMinMagFilter min, out MTLSamplerMinMagFilter mag, out MTLSamplerMipFilter mip) { switch (filter) { case SamplerFilter.Anisotropic: min = mag = MTLSamplerMinMagFilter.Linear; mip = MTLSamplerMipFilter.Linear; break; case SamplerFilter.MinLinear_MagLinear_MipLinear: min = MTLSamplerMinMagFilter.Linear; mag = MTLSamplerMinMagFilter.Linear; mip = MTLSamplerMipFilter.Linear; break; case SamplerFilter.MinLinear_MagLinear_MipPoint: min = MTLSamplerMinMagFilter.Linear; mag = MTLSamplerMinMagFilter.Linear; mip = MTLSamplerMipFilter.Nearest; break; case SamplerFilter.MinLinear_MagPoint_MipLinear: min = MTLSamplerMinMagFilter.Linear; mag = MTLSamplerMinMagFilter.Nearest; mip = MTLSamplerMipFilter.Linear; break; case SamplerFilter.MinLinear_MagPoint_MipPoint: min = MTLSamplerMinMagFilter.Linear; mag = MTLSamplerMinMagFilter.Nearest; mip = MTLSamplerMipFilter.Nearest; break; case SamplerFilter.MinPoint_MagLinear_MipLinear: min = MTLSamplerMinMagFilter.Nearest; mag = MTLSamplerMinMagFilter.Linear; mip = MTLSamplerMipFilter.Linear; break; case SamplerFilter.MinPoint_MagLinear_MipPoint: min = MTLSamplerMinMagFilter.Nearest; mag = MTLSamplerMinMagFilter.Linear; mip = MTLSamplerMipFilter.Nearest; break; case SamplerFilter.MinPoint_MagPoint_MipLinear: min = MTLSamplerMinMagFilter.Nearest; mag = MTLSamplerMinMagFilter.Nearest; mip = MTLSamplerMipFilter.Nearest; break; case SamplerFilter.MinPoint_MagPoint_MipPoint: min = MTLSamplerMinMagFilter.Nearest; mag = MTLSamplerMinMagFilter.Nearest; mip = MTLSamplerMipFilter.Nearest; break; default: throw Illegal.Value <SamplerFilter>(); } }