// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; using System.Numerics; namespace SixLabors.ImageSharp.Drawing.Processing { /// /// Adds extensions that help working with . /// public static class DrawingOptionsDefaultsExtensions { /// /// Gets the default drawing options against the source image processing context. /// /// The image processing context to retrieve defaults from. /// The globally configured default options. public static DrawingOptions GetDrawingOptions(this IImageProcessingContext context) => new(context.GetGraphicsOptions(), new ShapeOptions(), Matrix4x4.Identity); /// /// Clones the path graphic options and applies changes required to force clearing. /// /// The drawing options to clone /// A clone of shapeOptions with ColorBlendingMode, AlphaCompositionMode, and BlendPercentage set internal static DrawingOptions CloneForClearOperation(this DrawingOptions drawingOptions) { GraphicsOptions options = drawingOptions.GraphicsOptions.DeepClone(); options.ColorBlendingMode = PixelColorBlendingMode.Normal; options.AlphaCompositionMode = PixelAlphaCompositionMode.Src; options.BlendPercentage = 1F; return new DrawingOptions(options, drawingOptions.ShapeOptions, drawingOptions.Transform); } } }