From 33028a942d1ef0192e28e55ffde99247449d46bf Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sat, 3 Mar 2018 22:28:46 +1100 Subject: [PATCH] Migrate span and fix up benchmarks project --- .../Conversion/ColorSpaceConverter.Adapt.cs | 1 + .../Conversion/ColorSpaceConverter.CieLab.cs | 55 ++++++++++--------- .../Conversion/ColorSpaceConverter.CieLch.cs | 53 +++++++++--------- .../ColorSpaceConverter.CieLchuv.cs | 53 +++++++++--------- .../ImageSharp.Benchmarks.csproj | 12 +--- 5 files changed, 85 insertions(+), 89 deletions(-) diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs index e35a3fd6e..76ddcbcd0 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs @@ -163,6 +163,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion LinearRgb linearOutput = this.Adapt(linearInput); return this.ToRgb(linearOutput); } + private void CheckChromaticAdaptation() { const string NoAdapterMessage = "Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."; diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs index 17cdb2ef2..174da5ad1 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion @@ -48,8 +49,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLch sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref CieLch sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -82,8 +83,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLchuv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref CieLchuv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -116,8 +117,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -150,8 +151,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -190,8 +191,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -224,8 +225,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -258,8 +259,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref Hsl sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -292,8 +293,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref Hsv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -326,8 +327,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -360,8 +361,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Lms sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref Lms sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -394,8 +395,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -428,8 +429,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref Rgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -462,12 +463,12 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLab destRef = ref destination.DangerousGetPinnableReference(); + ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLab destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { - ref Rgb sp = ref Unsafe.Add(ref sourceRef, i); + ref YCbCr sp = ref Unsafe.Add(ref sourceRef, i); ref CieLab dp = ref Unsafe.Add(ref destRef, i); dp = this.ToCieLab(sp); } diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs index 3091658e5..8ce8674a6 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion @@ -43,8 +44,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLab sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref CieLab sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -77,8 +78,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLchuv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref CieLchuv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -111,8 +112,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -145,8 +146,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -179,8 +180,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -213,8 +214,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -247,8 +248,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref Hsl sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -281,8 +282,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref Hsv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -315,8 +316,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -349,8 +350,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -383,8 +384,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Lms sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref Lms sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -417,8 +418,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref Rgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -451,8 +452,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLch destRef = ref destination.DangerousGetPinnableReference(); + ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLch destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs index 05f1a6f30..e4feddc7e 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion @@ -40,8 +41,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLab sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref CieLab sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -74,8 +75,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLch sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref CieLch sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -111,8 +112,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -145,8 +146,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -179,8 +180,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -213,8 +214,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -247,8 +248,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref Hsl sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -281,8 +282,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref Hsv sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -315,8 +316,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -349,8 +350,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -383,8 +384,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Lms sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref Lms sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -417,8 +418,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref Rgb sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { @@ -451,8 +452,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); - ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); - ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); + ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source); + ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination); for (int i = 0; i < count; i++) { diff --git a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj index 62fd11e8e..74b9601c6 100644 --- a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj +++ b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj @@ -15,20 +15,12 @@ - - - - - - - - - + + -