/// Gets the configuration instance to use when performing operations.
/// </summary>
protectedConfigurationConfiguration{get;}
/// <summary>
/// Gets the pixel blender.
/// </summary>
internalPixelBlender<TPixel>Blender{get;}
/// <summary>
/// Gets the destination
/// Gets the target image.
/// </summary>
protectedImageFrame<TPixel>Target{get;}
/// <summary>
/// Gets the blend percentage
/// Gets thegraphics options
/// </summary>
protectedGraphicsOptionsOptions{get;}
/// <summary>
/// Gets the color for a single pixel.
/// Gets the overlay pixel at the specified position.
/// </summary>
/// <param name="x">The xcoordinate.</param>
/// <param name="y">The ycoordinate.</param>
/// <returns>The a <typeparamref name="TPixel"/> that should be applied to the pixel.</returns>
/// <param name="x">The x-coordinate.</param>
/// <param name="y">The y-coordinate.</param>
/// <returns>The <see typeparam="TPixel"/> at the specified position.</returns>
internalabstractTPixelthis[intx,inty]{get;}
/// <inheritdoc/>
publicabstractvoidDispose();
publicvoidDispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Disposes the object and frees resources for the Garbage Collector.
/// </summary>
/// <param name="disposing">Whether to dispose managed and unmanaged objects.</param>
protectedvirtualvoidDispose(booldisposing)
{
}
/// <summary>
/// Applies the opacity weighting for each pixel in a scanline to the target based on the pattern contained in the brush.
/// </summary>
/// <param name="scanline">The a collection of opacity values between 0 and 1 to be merged with the brushed color value before being applied to the target.</param>
/// <param name="x">The x position in the target pixel space that the start of the scanline data corresponds to.</param>
/// <param name="y">The y position in the target pixel space that whole scanline corresponds to.</param>
/// <param name="scanline">A collection of opacity values between 0 and 1 to be merged with the brushed color value before being applied to the target.</param>
/// <param name="x">The x-position in the target pixel space that the start of the scanline data corresponds to.</param>
/// <param name="y">The y-position in the target pixel space that whole scanline corresponds to.</param>
/// <remarks>scanlineBuffer will be > scanlineWidth but provide and offset in case we want to share a larger buffer across runs.</remarks>
stringtext=Repeat("Beware the Jabberwock, my son! The jaws that bite, the claws that catch! Beware the Jubjub bird, and shun The frumious Bandersnatch!\n",