// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedMember.Global
// ReSharper disable ReturnTypeCanBeEnumerable.Global
using System.Collections.Generic;
using System.Drawing;
using CUE.NET.ColorCorrection;
using CUE.NET.Devices.Generic;
using CUE.NET.Devices.Keyboard.Enums;
using CUE.NET.Effects;
namespace CUE.NET.Brushes
{
///
/// Represents a basic brush.
///
public interface IBrush : IEffectTarget
{
///
/// 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 brush.
///
float Brightness { get; set; }
///
/// Gets or sets the overall percentage opacity of the brush.
///
float Opacity { get; set; }
///
/// Gets a list of color-corrections used to correct the colors of the brush.
///
IList ColorCorrections { get; }
///
/// Gets the Rectangle used in the last render pass.
///
RectangleF RenderedRectangle { get; }
///
/// Gets a dictionary containing all colors for points calculated in the last render pass.
///
Dictionary RenderedTargets { get; }
///
/// Performas the render pass of the brush and calculates the raw colors for all requested points.
///
/// The rectangle in which the brush should be drawn.
/// The targets (keys/points) of which the color should be calculated.
void PerformRender(RectangleF rectangle, IEnumerable renderTargets);
///
/// Performs the finalize pass of the brush and calculates the final colors for all previously calculated points.
///
void PerformFinalize();
}
}