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));
            }
        }
Ejemplo n.º 2
0
        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>();
            }
        }