Ejemplo n.º 1
0
        public CompositionFilter(ITextureFilter lumaInput, ITextureFilter chromaInput, IChromaScaler chromaScaler, TextureSize?targetSize = null, Vector2?chromaOffset = null, ITextureFilter fallback = null)
        {
            if (lumaInput == null)
            {
                throw new ArgumentNullException("lumaInput");
            }
            if (chromaInput == null)
            {
                throw new ArgumentNullException("chromaInput");
            }

            Luma   = lumaInput;
            Chroma = chromaInput;

            ChromaScaler = chromaScaler ?? new DefaultChromaScaler();
            ChromaOffset = chromaOffset ?? Renderer.ChromaOffset;
            TargetSize   = targetSize ?? Luma.Output.Size;

            Result = ChromaScaler.CreateChromaFilter(Luma, Chroma, TargetSize, ChromaOffset) ?? fallback;
            AddTag(Result.Tag);
        }
Ejemplo n.º 2
0
 public static ITextureFilter MakeChromaFilter(this IChromaScaler chromaScaler, ITextureFilter lumaInput, ITextureFilter chromaInput, TextureSize?targetSize = null, Vector2?chromaOffset = null)
 {
     return(new CompositionFilter(lumaInput, chromaInput, chromaScaler, targetSize, chromaOffset));
 }
Ejemplo n.º 3
0
 public ICompositionFilter Rebuild(IChromaScaler chromaScaler = null, TextureSize?targetSize = null, Vector2?chromaOffset = null)
 {
     return(new CompositionFilter(Luma, Chroma, chromaScaler ?? ChromaScaler, targetSize ?? TargetSize, chromaOffset ?? ChromaOffset)
            .Tagged(Tag));
 }