// 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);
}
}
}