/// <summary>using( GradientFillScope ){ /*code*/ } temporarily enables and overrides gradient fill within that scope, automatically restoring the previous state once you leave the scope</summary> public static GradientFillStack GradientFillScope(GradientFill fill) { GradientFillStack stack = new GradientFillStack(Draw.UseGradientFill, Draw.GradientFill); // pushes Draw.UseGradientFill = true; Draw.GradientFill = fill; return(stack); }
internal static void ApplyColorOrFill <T>(T fillable, Color baseColor) where T : MetaMpb, IFillableMpb { if (Draw.style.useGradients) { GradientFill fill = Draw.style.gradientFill; fillable.color.Add(fill.colorStart.ColorSpaceAdjusted()); fillable.fillType.Add((int)fill.type); fillable.fillSpace.Add((float)fill.space); fillable.fillStart.Add(fill.GetShaderStartVector()); fillable.fillColorEnd.Add(fill.colorEnd.ColorSpaceAdjusted()); fillable.fillEnd.Add(fill.linearEnd); } else { fillable.color.Add(baseColor.ColorSpaceAdjusted()); fillable.fillType.Add(GradientFill.FILL_NONE); fillable.fillSpace.Add(default);