public PipelineBuilder TemperatureAndTint( float temperature, out EffectSetter <float> temperatureSetter, float tint, out EffectSetter <float> tintSetter) { string id = Guid.NewGuid().ToUppercaseAsciiLetters(); async ValueTask <IGraphicsEffectSource> Factory() => new CanvasTemperatureAndTintEffect { Temperature = temperature, Tint = tint, Source = await this.sourceProducer(), Name = id }; temperatureSetter = (brush, value) => brush.Properties.InsertScalar($"{id}.{nameof(CanvasTemperatureAndTintEffect.Temperature)}", value); tintSetter = (brush, value) => brush.Properties.InsertScalar($"{id}.{nameof(CanvasTemperatureAndTintEffect.Tint)}", value); return(new PipelineBuilder(this, Factory, new[] { $"{id}.{nameof(CanvasTemperatureAndTintEffect.Temperature)}", $"{id}.{nameof(CanvasTemperatureAndTintEffect.Tint)}" })); }