diff --git a/src/ImageSharp.Drawing/Processing/Processors/Drawing/FillProcessor{TPixel}.cs b/src/ImageSharp.Drawing/Processing/Processors/Drawing/FillProcessor{TPixel}.cs
index a7c22f6d7b..012bda4e8e 100644
--- a/src/ImageSharp.Drawing/Processing/Processors/Drawing/FillProcessor{TPixel}.cs
+++ b/src/ImageSharp.Drawing/Processing/Processors/Drawing/FillProcessor{TPixel}.cs
@@ -45,7 +45,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Drawing
int width = maxX - minX;
- var workingRect = Rectangle.FromLTRB(minX, minY, maxX, maxY);
+ Rectangle workingRect = Rectangle.FromLTRB(minX, minY, maxX, maxY);
IBrush brush = this.definition.Brush;
GraphicsOptions options = this.definition.Options;
diff --git a/src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs b/src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs
index 1e7299720d..170489c7a5 100644
--- a/src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs
+++ b/src/ImageSharp/Common/ParallelUtils/ParallelHelper.cs
@@ -17,19 +17,14 @@ namespace SixLabors.ImageSharp.ParallelUtils
/// Parallel execution is optimized for image processing.
/// Use this instead of direct calls!
///
- internal static class ParallelHelper
+ public static class ParallelHelper
{
- ///
- /// Get the default for a
- ///
- public static ParallelExecutionSettings GetParallelSettings(this Configuration configuration)
- {
- return new ParallelExecutionSettings(configuration.MaxDegreeOfParallelism, configuration.MemoryAllocator);
- }
-
///
/// Iterate through the rows of a rectangle in optimized batches defined by -s.
///
+ /// The .
+ /// The to get the parallel settings from.
+ /// The method body defining the iteration logic on a single .
public static void IterateRows(Rectangle rectangle, Configuration configuration, Action body)
{
ParallelExecutionSettings parallelSettings = configuration.GetParallelSettings();
@@ -40,7 +35,7 @@ namespace SixLabors.ImageSharp.ParallelUtils
///
/// Iterate through the rows of a rectangle in optimized batches defined by -s.
///
- public static void IterateRows(
+ internal static void IterateRows(
Rectangle rectangle,
in ParallelExecutionSettings parallelSettings,
Action body)
@@ -77,11 +72,19 @@ namespace SixLabors.ImageSharp.ParallelUtils
});
}
+ ///
+ /// Get the default for a
+ ///
+ internal static ParallelExecutionSettings GetParallelSettings(this Configuration configuration)
+ {
+ return new ParallelExecutionSettings(configuration.MaxDegreeOfParallelism, configuration.MemoryAllocator);
+ }
+
///
/// Iterate through the rows of a rectangle in optimized batches defined by -s
/// instantiating a temporary buffer for each invocation.
///
- public static void IterateRowsWithTempBuffer(
+ internal static void IterateRowsWithTempBuffer(
Rectangle rectangle,
in ParallelExecutionSettings parallelSettings,
Action> body)
@@ -133,7 +136,7 @@ namespace SixLabors.ImageSharp.ParallelUtils
/// Iterate through the rows of a rectangle in optimized batches defined by -s
/// instantiating a temporary buffer for each invocation.
///
- public static void IterateRowsWithTempBuffer(
+ internal static void IterateRowsWithTempBuffer(
Rectangle rectangle,
Configuration configuration,
Action> body)
diff --git a/src/ImageSharp/Memory/Buffer2D{T}.cs b/src/ImageSharp/Memory/Buffer2D{T}.cs
index 58c07bda59..ac7de1445f 100644
--- a/src/ImageSharp/Memory/Buffer2D{T}.cs
+++ b/src/ImageSharp/Memory/Buffer2D{T}.cs
@@ -12,7 +12,11 @@ namespace SixLabors.ImageSharp.Memory
/// Represents a buffer of value type objects
/// interpreted as a 2D region of x elements.
///
+ ///
+ /// Before RC1, this class might be target of API changes, use it on your own risk!
+ ///
/// The value type.
+ // TODO: Consider moving this type to the SixLabors.Memory namespace (SixLabors.Core).
public sealed class Buffer2D : IDisposable
where T : struct
{
@@ -38,7 +42,7 @@ namespace SixLabors.ImageSharp.Memory
///
/// Gets the height.
- ///
+ /// Bu
public int Height { get; private set; }
///
diff --git a/src/ImageSharp/Memory/RowInterval.cs b/src/ImageSharp/Memory/RowInterval.cs
index 815918754a..13037c889f 100644
--- a/src/ImageSharp/Memory/RowInterval.cs
+++ b/src/ImageSharp/Memory/RowInterval.cs
@@ -10,26 +10,32 @@ namespace SixLabors.ImageSharp.Memory
///
/// Represents an interval of rows in a and/or
///
- internal readonly struct RowInterval : IEquatable
+ ///
+ /// Before RC1, this class might be target of API changes, use it on your own risk!
+ ///
+ // TODO: Consider moving this type to the SixLabors.Memory namespace (SixLabors.Core).
+ public readonly struct RowInterval : IEquatable
{
///
/// Initializes a new instance of the struct.
///
+ /// The inclusive minimum row.
+ /// The exclusive maximum row.
public RowInterval(int min, int max)
{
- DebugGuard.MustBeLessThan(min, max, nameof(min));
+ Guard.MustBeLessThan(min, max, nameof(min));
this.Min = min;
this.Max = max;
}
///
- /// Gets the INCLUSIVE minimum.
+ /// Gets the inclusive minimum row.
///
public int Min { get; }
///
- /// Gets the EXCLUSIVE maximum.
+ /// Gets the exclusive maximum row.
///
public int Max { get; }
@@ -38,33 +44,48 @@ namespace SixLabors.ImageSharp.Memory
///
public int Height => this.Max - this.Min;
+ ///
+ /// Returns a boolean indicating whether the given two -s are equal.
+ ///
+ /// The first to compare.
+ /// The second to compare.
+ /// True if the given -s are equal; False otherwise.
public static bool operator ==(RowInterval left, RowInterval right)
{
return left.Equals(right);
}
+ ///
+ /// Returns a boolean indicating whether the given two -s are not equal.
+ ///
+ /// The first to compare.
+ /// The second to compare.
+ /// True if the given -s are not equal; False otherwise.
public static bool operator !=(RowInterval left, RowInterval right)
{
return !left.Equals(right);
}
///
- public override string ToString() => $"RowInterval [{this.Min}->{this.Max}]";
-
- public RowInterval Slice(int start) => new RowInterval(this.Min + start, this.Max);
-
- public RowInterval Slice(int start, int length) => new RowInterval(this.Min + start, this.Min + start + length);
-
public bool Equals(RowInterval other)
{
return this.Min == other.Min && this.Max == other.Max;
}
+ ///
public override bool Equals(object obj)
{
return !ReferenceEquals(null, obj) && obj is RowInterval other && this.Equals(other);
}
+ ///
public override int GetHashCode() => HashCode.Combine(this.Min, this.Max);
+
+ ///
+ public override string ToString() => $"RowInterval [{this.Min}->{this.Max}]";
+
+ internal RowInterval Slice(int start) => new RowInterval(this.Min + start, this.Max);
+
+ internal RowInterval Slice(int start, int length) => new RowInterval(this.Min + start, this.Min + start + length);
}
-}
\ No newline at end of file
+}