diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
index f15acd39a..bfd7ff1e6 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
@@ -78,8 +78,8 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
processor.Apply(pass);
}
- var operation = new RowIntervalOperation(source.PixelBuffer, pass.PixelBuffer, interest);
- ParallelRowIterator.IterateRowIntervals(
+ var operation = new RowOperation(source.PixelBuffer, pass.PixelBuffer, interest);
+ ParallelRowIterator.IterateRows(
this.Configuration,
interest,
in operation);
@@ -89,7 +89,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
///
/// A implementing the convolution logic for .
///
- private readonly struct RowIntervalOperation : IRowIntervalOperation
+ private readonly struct RowOperation : IRowOperation
{
private readonly Buffer2D targetPixels;
private readonly Buffer2D passPixels;
@@ -97,7 +97,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
private readonly int maxX;
[MethodImpl(InliningOptions.ShortMethod)]
- public RowIntervalOperation(
+ public RowOperation(
Buffer2D targetPixels,
Buffer2D passPixels,
Rectangle bounds)
@@ -110,23 +110,20 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
///
[MethodImpl(InliningOptions.ShortMethod)]
- public void Invoke(in RowInterval rows)
+ public void Invoke(int y)
{
- for (int y = rows.Min; y < rows.Max; y++)
- {
- ref TPixel passPixelsBase = ref MemoryMarshal.GetReference(this.passPixels.GetRowSpan(y));
- ref TPixel targetPixelsBase = ref MemoryMarshal.GetReference(this.targetPixels.GetRowSpan(y));
+ ref TPixel passPixelsBase = ref MemoryMarshal.GetReference(this.passPixels.GetRowSpan(y));
+ ref TPixel targetPixelsBase = ref MemoryMarshal.GetReference(this.targetPixels.GetRowSpan(y));
- for (int x = this.minX; x < this.maxX; x++)
- {
- // Grab the max components of the two pixels
- ref TPixel currentPassPixel = ref Unsafe.Add(ref passPixelsBase, x);
- ref TPixel currentTargetPixel = ref Unsafe.Add(ref targetPixelsBase, x);
+ for (int x = this.minX; x < this.maxX; x++)
+ {
+ // Grab the max components of the two pixels
+ ref TPixel currentPassPixel = ref Unsafe.Add(ref passPixelsBase, x);
+ ref TPixel currentTargetPixel = ref Unsafe.Add(ref targetPixelsBase, x);
- var pixelValue = Vector4.Max(currentPassPixel.ToVector4(), currentTargetPixel.ToVector4());
+ var pixelValue = Vector4.Max(currentPassPixel.ToVector4(), currentTargetPixel.ToVector4());
- currentTargetPixel.FromVector4(pixelValue);
- }
+ currentTargetPixel.FromVector4(pixelValue);
}
}
}