Browse Source

cleanup & docs

af/merge-core
Anton Firszov 8 years ago
parent
commit
c84cb48ba5
  1. 13
      src/ImageSharp/Common/ParallelUtils/ParallelExecutionSettings.cs
  2. 10
      src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs
  3. 3
      src/ImageSharp/Memory/RowInterval.cs

13
src/ImageSharp/Common/ParallelUtils/ParallelExecutionSettings.cs

@ -17,6 +17,9 @@ namespace SixLabors.ImageSharp.ParallelUtils
/// </summary>
public const int DefaultMinimumPixelsProcessedPerTask = 4096;
/// <summary>
/// Initializes a new instance of the <see cref="ParallelExecutionSettings"/> struct.
/// </summary>
public ParallelExecutionSettings(
int maxDegreeOfParallelism,
int minimumPixelsProcessedPerTask,
@ -27,11 +30,17 @@ namespace SixLabors.ImageSharp.ParallelUtils
this.MemoryAllocator = memoryAllocator;
}
/// <summary>
/// Initializes a new instance of the <see cref="ParallelExecutionSettings"/> struct.
/// </summary>
public ParallelExecutionSettings(int maxDegreeOfParallelism, MemoryAllocator memoryAllocator)
: this(maxDegreeOfParallelism, DefaultMinimumPixelsProcessedPerTask, memoryAllocator)
{
}
/// <summary>
/// Gets the MemoryAllocator
/// </summary>
public MemoryAllocator MemoryAllocator { get; }
/// <summary>
@ -46,6 +55,10 @@ namespace SixLabors.ImageSharp.ParallelUtils
/// </summary>
public int MinimumPixelsProcessedPerTask { get; }
/// <summary>
/// Creates a new instance of <see cref="ParallelExecutionSettings"/>
/// having <see cref="MinimumPixelsProcessedPerTask"/> multiplied by <paramref name="multiplier"/>
/// </summary>
public ParallelExecutionSettings MultiplyMinimumPixelsPerTask(int multiplier)
{
return new ParallelExecutionSettings(

10
src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs

@ -127,6 +127,10 @@ namespace SixLabors.ImageSharp.ParallelUtils
});
}
/// <summary>
/// Iterate through the rows of a rectangle in optimized batches defined by <see cref="RowInterval"/>-s
/// instantiating a temporary buffer for each <paramref name="body"/> invocation.
/// </summary>
public static void IterateRowsWithTempBuffer<T>(
Rectangle rectangle,
Configuration configuration,
@ -143,11 +147,5 @@ namespace SixLabors.ImageSharp.ParallelUtils
int result = dividend / divisor;
return dividend % divisor == 0 ? result : result + 1;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int DivideRound(int dividend, int divisor)
{
return (dividend + (divisor / 2)) / divisor;
}
}
}

3
src/ImageSharp/Memory/RowInterval.cs

@ -10,6 +10,9 @@ namespace SixLabors.ImageSharp.Memory
/// </summary>
internal readonly struct RowInterval
{
/// <summary>
/// Initializes a new instance of the <see cref="RowInterval"/> struct.
/// </summary>
public RowInterval(int min, int max)
{
DebugGuard.MustBeLessThan(min, max, nameof(min));

Loading…
Cancel
Save