diff --git a/src/ImageSharp/Advanced/ParallelRowIterator.cs b/src/ImageSharp/Advanced/ParallelRowIterator.cs
index 8bfda431a..d57e673c0 100644
--- a/src/ImageSharp/Advanced/ParallelRowIterator.cs
+++ b/src/ImageSharp/Advanced/ParallelRowIterator.cs
@@ -88,7 +88,7 @@ namespace SixLabors.ImageSharp.Advanced
/// 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, in T body)
- where T : struct, IRowIntervalAction
+ where T : struct, IRowAction
where TBuffer : unmanaged
{
var parallelSettings = ParallelExecutionSettings.FromConfiguration(configuration);
@@ -100,69 +100,6 @@ namespace SixLabors.ImageSharp.Advanced
/// instantiating a temporary buffer for each invocation.
///
internal static void IterateRows(
- Rectangle rectangle,
- in ParallelExecutionSettings parallelSettings,
- in T body)
- where T : struct, IRowIntervalAction
- where TBuffer : unmanaged
- {
- ValidateRectangle(rectangle);
-
- int top = rectangle.Top;
- int bottom = rectangle.Bottom;
- int width = rectangle.Width;
- int height = rectangle.Height;
-
- int maxSteps = DivideCeil(width * height, parallelSettings.MinimumPixelsProcessedPerTask);
- int numOfSteps = Math.Min(parallelSettings.MaxDegreeOfParallelism, maxSteps);
- MemoryAllocator allocator = parallelSettings.MemoryAllocator;
-
- // Avoid TPL overhead in this trivial case:
- if (numOfSteps == 1)
- {
- var rows = new RowInterval(top, bottom);
- using (IMemoryOwner buffer = allocator.Allocate(width))
- {
- Unsafe.AsRef(body).Invoke(rows, buffer.Memory);
- }
-
- return;
- }
-
- int verticalStep = DivideCeil(height, numOfSteps);
- var parallelOptions = new ParallelOptions { MaxDegreeOfParallelism = numOfSteps };
- var rowInfo = new WrappingRowIntervalInfo(top, bottom, verticalStep, width);
- var rowAction = new WrappingRowIntervalBufferAction(in rowInfo, allocator, in body);
-
- Parallel.For(
- 0,
- numOfSteps,
- parallelOptions,
- rowAction.Invoke);
- }
-
- ///
- /// Iterate through the rows of a rectangle in optimized batches defined by -s
- /// instantiating a temporary buffer for each invocation.
- ///
- /// The type of row action to perform.
- /// The type of buffer elements.
- /// The .
- /// The to get the parallel settings from.
- /// The method body defining the iteration logic on a single .
- public static void IterateRows2(Rectangle rectangle, Configuration configuration, in T body)
- where T : struct, IRowAction
- where TBuffer : unmanaged
- {
- var parallelSettings = ParallelExecutionSettings.FromConfiguration(configuration);
- IterateRows2(rectangle, in parallelSettings, in body);
- }
-
- ///
- /// Iterate through the rows of a rectangle in optimized batches defined by -s
- /// instantiating a temporary buffer for each invocation.
- ///
- internal static void IterateRows2(
Rectangle rectangle,
in ParallelExecutionSettings parallelSettings,
in T body)
diff --git a/src/ImageSharp/Processing/Processors/Convolution/BokehBlurProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/BokehBlurProcessor{TPixel}.cs
index 7eb91b68d..05508c90f 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/BokehBlurProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/BokehBlurProcessor{TPixel}.cs
@@ -268,7 +268,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
protected override void OnFrameApply(ImageFrame source)
{
// Preliminary gamma highlight pass
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
this.SourceRectangle,
this.Configuration,
new ApplyGammaExposureRowAction(this.SourceRectangle, source.PixelBuffer, this.Configuration, this.gamma));
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Convolution2DProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/Convolution2DProcessor{TPixel}.cs
index c169ef38d..a6d47fa58 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Convolution2DProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Convolution2DProcessor{TPixel}.cs
@@ -66,7 +66,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
var interest = Rectangle.Intersect(this.SourceRectangle, source.Bounds());
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest, targetPixels, source.PixelBuffer, this.KernelY, this.KernelX, this.Configuration, this.PreserveAlpha));
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Convolution2PassProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/Convolution2PassProcessor{TPixel}.cs
index 156c20d38..1c6ca8b92 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Convolution2PassProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Convolution2PassProcessor{TPixel}.cs
@@ -64,13 +64,13 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
var interest = Rectangle.Intersect(this.SourceRectangle, source.Bounds());
// Horizontal convolution
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest, firstPassPixels, source.PixelBuffer, this.KernelX, this.Configuration, this.PreserveAlpha));
// Vertical convolution
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest, source.PixelBuffer, firstPassPixels, this.KernelY, this.Configuration, this.PreserveAlpha));
diff --git a/src/ImageSharp/Processing/Processors/Convolution/ConvolutionProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/ConvolutionProcessor{TPixel}.cs
index 6c56af6bb..6a2acf770 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/ConvolutionProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/ConvolutionProcessor{TPixel}.cs
@@ -57,7 +57,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
var interest = Rectangle.Intersect(this.SourceRectangle, source.Bounds());
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest, targetPixels, source.PixelBuffer, this.KernelXY, this.Configuration, this.PreserveAlpha));
diff --git a/src/ImageSharp/Processing/Processors/Effects/PixelRowDelegateProcessor{TPixel,TDelegate}.cs b/src/ImageSharp/Processing/Processors/Effects/PixelRowDelegateProcessor{TPixel,TDelegate}.cs
index 99e0341b4..c0f479756 100644
--- a/src/ImageSharp/Processing/Processors/Effects/PixelRowDelegateProcessor{TPixel,TDelegate}.cs
+++ b/src/ImageSharp/Processing/Processors/Effects/PixelRowDelegateProcessor{TPixel,TDelegate}.cs
@@ -50,7 +50,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Effects
{
var interest = Rectangle.Intersect(this.SourceRectangle, source.Bounds());
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest.X, source, this.Configuration, this.modifiers, this.rowDelegate));
diff --git a/src/ImageSharp/Processing/Processors/Filters/FilterProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Filters/FilterProcessor{TPixel}.cs
index 2426765f8..c797c1358 100644
--- a/src/ImageSharp/Processing/Processors/Filters/FilterProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Filters/FilterProcessor{TPixel}.cs
@@ -36,7 +36,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Filters
{
var interest = Rectangle.Intersect(this.SourceRectangle, source.Bounds());
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
this.Configuration,
new RowAction(interest.X, source, this.definition.Matrix, this.Configuration));
diff --git a/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor{TPixel}.cs
index 1b321310d..6777e3234 100644
--- a/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor{TPixel}.cs
@@ -55,7 +55,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Overlays
using IMemoryOwner rowColors = allocator.Allocate(interest.Width);
rowColors.GetSpan().Fill(glowColor);
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
configuration,
new RowAction(configuration, interest, rowColors, this.blender, center, maxDistance, blendPercent, source));
diff --git a/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor{TPixel}.cs
index 1ca83190c..6e2c3c442 100644
--- a/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor{TPixel}.cs
@@ -63,7 +63,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Overlays
using IMemoryOwner rowColors = allocator.Allocate(interest.Width);
rowColors.GetSpan().Fill(vignetteColor);
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
interest,
configuration,
new RowAction(configuration, interest, rowColors, this.blender, center, maxDistance, blendPercent, source));
diff --git a/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
index e7f6f429c..447a99eec 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
@@ -67,7 +67,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
using var kernelMap = new TransformKernelMap(configuration, source.Size(), destination.Size(), this.resampler);
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
targetBounds,
configuration,
new RowAction(configuration, kernelMap, ref matrix, width, source, destination));
diff --git a/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
index 8e219f7cc..5989f2389 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
@@ -69,7 +69,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
using var kernelMap = new TransformKernelMap(configuration, source.Size(), destination.Size(), this.resampler);
- ParallelRowIterator.IterateRows2(
+ ParallelRowIterator.IterateRows(
targetBounds,
configuration,
new RowAction(configuration, kernelMap, ref matrix, width, source, destination));