private static PipelineBuilder Start(IPipelineEffect effect) { switch (effect) { case BackdropEffect backdrop when backdrop.Source == AcrylicBackgroundSource.Backdrop: return(PipelineBuilder.FromBackdrop()); case BackdropEffect backdrop when backdrop.Source == AcrylicBackgroundSource.HostBackdrop: return(PipelineBuilder.FromHostBackdrop()); case SolidColorEffect color: return(PipelineBuilder.FromColor(color.Color)); case ImageEffect image: return(PipelineBuilder.FromImage(image.Uri, image.DpiMode, image.CacheMode)); case TileEffect tile: return(PipelineBuilder.FromTiles(tile.Uri, tile.DpiMode, tile.CacheMode)); case AcrylicEffect acrylic when acrylic.Source == AcrylicBackgroundSource.Backdrop: return(PipelineBuilder.FromBackdropAcrylic(acrylic.Tint, (float)acrylic.TintMix, (float)acrylic.BlurAmount, acrylic.TextureUri)); case AcrylicEffect acrylic when acrylic.Source == AcrylicBackgroundSource.HostBackdrop: return(PipelineBuilder.FromHostBackdropAcrylic(acrylic.Tint, (float)acrylic.TintMix, acrylic.TextureUri)); default: throw new ArgumentException($"Invalid initial pipeline effect: {effect.GetType()}"); } }
/// <inheritdoc/> protected override object ProvideValue() { return(BackgroundSource switch { AcrylicBackgroundSource.Backdrop => PipelineBuilder.FromBackdrop(), AcrylicBackgroundSource.HostBackdrop => PipelineBuilder.FromHostBackdrop(), _ => throw new ArgumentException($"Invalid source for backdrop effect: {BackgroundSource}") });
public override PipelineBuilder AppendToBuilder(PipelineBuilder builder) { PipelineBuilder inputBuilder = Source ?? PipelineBuilder.FromBackdrop(); foreach (IPipelineEffect effect in Effects) { inputBuilder = effect.AppendToBuilder(inputBuilder); } return(builder.Blend(inputBuilder, (BlendEffectMode)Mode, Placement)); }
/// <inheritdoc/> protected override PipelineBuilder OnBrushRequested() { PipelineBuilder builder = Source ?? PipelineBuilder.FromBackdrop(); foreach (IPipelineEffect effect in Effects) { builder = effect.AppendToPipeline(builder); } return(builder); }
/// <inheritdoc/> protected override PipelineBuilder OnBrushRequested() { return(PipelineBuilder.FromBackdrop().Invert()); }