// 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
///
///
/// A brush is a simple class that will return an that will perform the
/// logic for retrieving pixel values for specific locations.
///
public interface IBrush
{
///
/// Creates the applicator for this brush.
///
/// The pixel type.
/// 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)
where TPixel : struct, IPixel;
}
}