Browse Source

Migrate span and fix up benchmarks project

af/merge-core
James Jackson-South 8 years ago
parent
commit
33028a942d
  1. 1
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs
  2. 55
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs
  3. 53
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs
  4. 53
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs
  5. 12
      tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj

1
src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs

@ -163,6 +163,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
LinearRgb linearOutput = this.Adapt(linearInput); LinearRgb linearOutput = this.Adapt(linearInput);
return this.ToRgb(linearOutput); return this.ToRgb(linearOutput);
} }
private void CheckChromaticAdaptation() private void CheckChromaticAdaptation()
{ {
const string NoAdapterMessage = "Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."; const string NoAdapterMessage = "Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point.";

55
src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion namespace SixLabors.ImageSharp.ColorSpaces.Conversion
@ -48,8 +49,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
{ {
Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLch sourceRef = ref source.DangerousGetPinnableReference(); ref CieLch sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLchuv sourceRef = ref source.DangerousGetPinnableReference(); ref CieLchuv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); ref Hsl sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); ref Hsv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Lms sourceRef = ref source.DangerousGetPinnableReference(); ref Lms sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); ref Rgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLab destRef = ref destination.DangerousGetPinnableReference(); ref CieLab destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); ref CieLab dp = ref Unsafe.Add(ref destRef, i);
dp = this.ToCieLab(sp); dp = this.ToCieLab(sp);
} }

53
src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion namespace SixLabors.ImageSharp.ColorSpaces.Conversion
@ -43,8 +44,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
{ {
Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLab sourceRef = ref source.DangerousGetPinnableReference(); ref CieLab sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLchuv sourceRef = ref source.DangerousGetPinnableReference(); ref CieLchuv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); ref Hsl sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); ref Hsv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Lms sourceRef = ref source.DangerousGetPinnableReference(); ref Lms sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); ref Rgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLch destRef = ref destination.DangerousGetPinnableReference(); ref CieLch destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {

53
src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion namespace SixLabors.ImageSharp.ColorSpaces.Conversion
@ -40,8 +41,8 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
{ {
Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLab sourceRef = ref source.DangerousGetPinnableReference(); ref CieLab sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLch sourceRef = ref source.DangerousGetPinnableReference(); ref CieLch sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieLuv sourceRef = ref source.DangerousGetPinnableReference(); ref CieLuv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyy sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyy sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref CieXyz sourceRef = ref source.DangerousGetPinnableReference(); ref CieXyz sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Cmyk sourceRef = ref source.DangerousGetPinnableReference(); ref Cmyk sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsl sourceRef = ref source.DangerousGetPinnableReference(); ref Hsl sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Hsv sourceRef = ref source.DangerousGetPinnableReference(); ref Hsv sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref HunterLab sourceRef = ref source.DangerousGetPinnableReference(); ref HunterLab sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref LinearRgb sourceRef = ref source.DangerousGetPinnableReference(); ref LinearRgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Lms sourceRef = ref source.DangerousGetPinnableReference(); ref Lms sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref Rgb sourceRef = ref source.DangerousGetPinnableReference(); ref Rgb sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) 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); Guard.SpansMustBeSizedAtLeast(source, nameof(source), destination, nameof(destination), count);
ref YCbCr sourceRef = ref source.DangerousGetPinnableReference(); ref YCbCr sourceRef = ref MemoryMarshal.GetReference(source);
ref CieLchuv destRef = ref destination.DangerousGetPinnableReference(); ref CieLchuv destRef = ref MemoryMarshal.GetReference(destination);
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {

12
tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj

@ -15,20 +15,12 @@
<Compile Include="..\ImageSharp.Tests\TestUtilities\TestEnvironment.cs" Link="Tests\TestEnvironment.cs" /> <Compile Include="..\ImageSharp.Tests\TestUtilities\TestEnvironment.cs" Link="Tests\TestEnvironment.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Colourful" Version="1.2.1" />
<PackageReference Include="System.Numerics.Vectors" Version="4.4.0" />
<PackageReference Include="BenchmarkDotNet" Version="0.10.12" />
<PackageReference Include="Colourful" Version="1.2.1" />
<PackageReference Include="System.Drawing.Common" Version="4.5.0-preview2-26202-05" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net461'">
<PackageReference Include="System.Numerics.Vectors" Version="4.4.0" />
<PackageReference Include="Colourful" Version="1.1.2" />
<PackageReference Include="System.Drawing.Common" Version="4.5.0-preview1-26216-02" /> <PackageReference Include="System.Drawing.Common" Version="4.5.0-preview1-26216-02" />
<PackageReference Include="System.Memory" Version="4.5.0-preview1-26216-02" /> <PackageReference Include="System.Memory" Version="4.5.0-preview1-26216-02" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0-preview1-26216-02" /> <PackageReference Include="System.Numerics.Vectors" Version="4.5.0-preview1-26216-02" />
<PackageReference Include="BenchmarkDotNet" Version="0.10.13" />
<PackageReference Include="Colourful" Version="1.2.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\ImageSharp.Drawing\ImageSharp.Drawing.csproj" /> <ProjectReference Include="..\..\src\ImageSharp.Drawing\ImageSharp.Drawing.csproj" />
<ProjectReference Include="..\..\src\ImageSharp\ImageSharp.csproj" /> <ProjectReference Include="..\..\src\ImageSharp\ImageSharp.csproj" />

Loading…
Cancel
Save