// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Processing
{
///
/// Brush represents a logical configuration of a brush which can be used to source pixel colors
///
/// The pixel format.
///
/// A brush is a simple class that will return an that will perform the
/// logic for converting a pixel location to a .
///
public interface IBrush
where TPixel : struct, IPixel
{
///
/// Creates the applicator for this brush.
///
/// The source image.
/// The region the brush will be applied to.
/// The graphic options
///
/// The brush applicator for this brush
///
///
/// The when being applied to things like shapes would usually be the
/// bounding box of the shape not necessarily the bounds of the whole image
///
BrushApplicator CreateApplicator(ImageFrame source, RectangleF region, GraphicsOptions options);
}
}