// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedMember.Global
// ReSharper disable ReturnTypeCanBeEnumerable.Global
using System.Collections.Generic;
namespace RGB.NET.Core;
///
/// Represents a basic brush.
///
public interface IBrush : IDecoratable
{
///
/// Gets or sets if the is enabled and will be drawn on an update.
///
bool IsEnabled { get; set; }
///
/// Gets or sets the calculation mode used for the rectangle/points used for color-selection in brushes.
///
RenderMode CalculationMode { get; set; }
///
/// Gets or sets the overall percentage brightness of the .
///
float Brightness { get; set; }
///
/// Gets or sets the overall percentage opacity of the .
///
float Opacity { get; set; }
///
/// Performs the render pass of the and calculates the raw for all requested .
///
/// The in which the brush should be drawn.
/// The (keys/points) of which the color should be calculated.
IEnumerable<(RenderTarget renderTarget, Color color)> Render(Rectangle rectangle, IEnumerable renderTargets);
}