// 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.
///
BrushCalculationMode BrushCalculationMode { get; set; }
///
/// Gets or sets the overall percentage brightness of the .
///
double Brightness { get; set; }
///
/// Gets or sets the overall percentage opacity of the .
///
double Opacity { get; set; }
///
/// Gets a list of used to correct the colors of the .
///
IList ColorCorrections { get; }
///
/// Gets the used in the last render pass.
///
Rectangle RenderedRectangle { get; }
///
/// Gets a dictionary containing all for calculated in the last render pass.
///
Dictionary RenderedTargets { get; }
///
/// 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.
void PerformRender(Rectangle rectangle, IEnumerable renderTargets);
///
/// Performs the finalize pass of the and calculates the final for all previously calculated .
///
void PerformFinalize();
}
}