diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
index 7a71a1cc4..dd352db80 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieLab Convert(in CieLch input)
{
// Conversion algorithm described here:
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
index 150f19888..81196604e 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieLch Convert(in CieLab input)
{
// Conversion algorithm described here:
@@ -27,7 +27,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
float hDegrees = MathFExtensions.RadianToDegree(hRadians);
// Wrap the angle round at 360.
- hDegrees = hDegrees % 360;
+ hDegrees %= 360;
// Make sure it's not negative.
while (hDegrees < 0)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
index 707300eda..dfbbc8f0c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyz Convert(in CieLab input)
{
// Conversion algorithm described here: http://www.brucelindbloom.com/index.html?Eqn_Lab_to_XYZ.html
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
index c3e85ba73..4f5a20bec 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieLuv Convert(in CieLchuv input)
{
// Conversion algorithm described here:
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
index b8e5d6f90..297c18c5c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieLchuv Convert(in CieLuv input)
{
// Conversion algorithm described here:
@@ -27,7 +27,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
float hDegrees = MathFExtensions.RadianToDegree(hRadians);
// Wrap the angle round at 360.
- hDegrees = hDegrees % 360;
+ hDegrees %= 360;
// Make sure it's not negative.
while (hDegrees < 0)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
index ecd26fdf6..33f3ec3d3 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
@@ -1,7 +1,6 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
-using System;
using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
@@ -16,7 +15,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in CieLuv input)
{
// Conversion algorithm described here: http://www.brucelindbloom.com/index.html?Eqn_Luv_to_XYZ.html
@@ -31,7 +29,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
float a = ((52 * l / (u + (13 * l * u0))) - 1) / 3;
float b = -5 * y;
- float c = -0.3333333F;
+ const float c = -0.3333333F;
float d = y * ((39 * l / (v + (13 * l * v0))) - 5);
float x = (d - b) / (a - c);
@@ -60,21 +58,17 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The whitepoint
/// The
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
private static float ComputeU0(in CieXyz input)
- {
- return (4 * input.X) / (input.X + (15 * input.Y) + (3 * input.Z));
- }
+ => (4 * input.X) / (input.X + (15 * input.Y) + (3 * input.Z));
///
/// Calculates the red-green chromacity based on the given whitepoint.
///
/// The whitepoint
/// The
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
private static float ComputeV0(in CieXyz input)
- {
- return (9 * input.Y) / (input.X + (15 * input.Y) + (3 * input.Z));
- }
+ => (9 * input.Y) / (input.X + (15 * input.Y) + (3 * input.Z));
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
index 32c1fe4c8..f33d1ddcc 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyy Convert(in CieXyz input)
{
float x = input.X / (input.X + input.Y + input.Z);
@@ -36,7 +36,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyz Convert(in CieXyy input)
{
if (MathF.Abs(input.Y) < Constants.Epsilon)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndHunterLabConverterBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndHunterLabConverterBase.cs
index 238a343d0..1cd511e81 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndHunterLabConverterBase.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndHunterLabConverterBase.cs
@@ -15,7 +15,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The whitepoint
/// The
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public static float ComputeKa(CieXyz whitePoint)
{
if (whitePoint.Equals(Illuminants.C))
@@ -31,7 +31,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The whitepoint
/// The
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public static float ComputeKb(CieXyz whitePoint)
{
if (whitePoint == Illuminants.C)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
index ed7ccff28..f860652b1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
@@ -23,7 +23,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Initializes a new instance of the class.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzAndLmsConverter()
: this(DefaultTransformationMatrix)
{
@@ -36,7 +35,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Definition of the cone response domain (see ),
/// if not set will be used.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzAndLmsConverter(Matrix4x4 transformationMatrix)
{
this.transformationMatrix = transformationMatrix;
@@ -48,7 +46,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Lms Convert(in CieXyz input)
{
var vector = Vector3.Transform(input.ToVector3(), this.transformationMatrix);
@@ -61,7 +59,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyz Convert(in Lms input)
{
var vector = Vector3.Transform(input.ToVector3(), this.inverseTransformationMatrix);
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
index 54d3e0fec..c155087ff 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
@@ -14,7 +14,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Initializes a new instance of the class.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzToCieLabConverter()
: this(CieLab.DefaultWhitePoint)
{
@@ -24,11 +23,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The target reference lab white point
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public CieXyzToCieLabConverter(CieXyz labWhitePoint)
- {
- this.LabWhitePoint = labWhitePoint;
- }
+ public CieXyzToCieLabConverter(CieXyz labWhitePoint) => this.LabWhitePoint = labWhitePoint;
///
/// Gets the target reference whitepoint. When not set, is used.
@@ -40,7 +35,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieLab Convert(in CieXyz input)
{
// Conversion algorithm described here: http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_Lab.html
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
index 79128e729..7f2bb0cf6 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
@@ -14,7 +14,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Initializes a new instance of the class.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzToCieLuvConverter()
: this(CieLuv.DefaultWhitePoint)
{
@@ -24,11 +23,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The target reference luv white point
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public CieXyzToCieLuvConverter(CieXyz luvWhitePoint)
- {
- this.LuvWhitePoint = luvWhitePoint;
- }
+ public CieXyzToCieLuvConverter(CieXyz luvWhitePoint) => this.LuvWhitePoint = luvWhitePoint;
///
/// Gets the target reference whitepoint. When not set, is used.
@@ -40,7 +35,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLuv Convert(in CieXyz input)
{
// Conversion algorithm described here: http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_Luv.html
@@ -80,19 +74,15 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// The
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static float ComputeUp(in CieXyz input)
- {
- return (4 * input.X) / (input.X + (15 * input.Y) + (3 * input.Z));
- }
+ => (4 * input.X) / (input.X + (15 * input.Y) + (3 * input.Z));
///
/// Calculates the red-green chromacity based on the given whitepoint.
///
/// The whitepoint
/// The
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
private static float ComputeVp(in CieXyz input)
- {
- return (9 * input.Y) / (input.X + (15 * input.Y) + (3 * input.Z));
- }
+ => (9 * input.Y) / (input.X + (15 * input.Y) + (3 * input.Z));
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
index 31d4332e4..c27c61608 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
@@ -14,7 +14,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Initializes a new instance of the class.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzToHunterLabConverter()
: this(HunterLab.DefaultWhitePoint)
{
@@ -24,11 +23,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The hunter Lab white point.
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public CieXyzToHunterLabConverter(CieXyz labWhitePoint)
- {
- this.HunterLabWhitePoint = labWhitePoint;
- }
+ public CieXyzToHunterLabConverter(CieXyz labWhitePoint) => this.HunterLabWhitePoint = labWhitePoint;
///
/// Gets the target reference white. When not set, is used.
@@ -40,7 +35,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public HunterLab Convert(in CieXyz input)
{
// Conversion algorithm described here: http://en.wikipedia.org/wiki/Lab_color_space#Hunter_Lab
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs
index cb3e7d20c..9ccea497b 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs
@@ -16,7 +16,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Initializes a new instance of the class.
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzToLinearRgbConverter()
: this(Rgb.DefaultWorkingSpace)
{
@@ -26,7 +25,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The target working space.
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyzToLinearRgbConverter(RgbWorkingSpace workingSpace)
{
this.TargetWorkingSpace = workingSpace;
@@ -43,7 +41,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public LinearRgb Convert(in CieXyz input)
{
Matrix4x4.Invert(this.conversionMatrix, out Matrix4x4 inverted);
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
index b81c70a1b..29fd32905 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Rgb Convert(in Cmyk input)
{
Vector3 rgb = (Vector3.One - new Vector3(input.C, input.M, input.Y)) * (Vector3.One - new Vector3(input.K));
@@ -29,7 +29,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Cmyk Convert(in Rgb input)
{
// To CMY
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
index 45ad0d319..92751e420 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
@@ -19,33 +19,19 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The gamma value.
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public GammaCompanding(float gamma)
- {
- this.Gamma = gamma;
- }
+ public GammaCompanding(float gamma) => this.Gamma = gamma;
///
/// Gets the gamma value
///
- public float Gamma
- {
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- get;
- }
+ public float Gamma { get; }
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public float Expand(float channel)
- {
- return MathF.Pow(channel, this.Gamma);
- }
+ [MethodImpl(InliningOptions.ShortMethod)]
+ public float Expand(float channel) => MathF.Pow(channel, this.Gamma);
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public float Compress(float channel)
- {
- return MathF.Pow(channel, 1 / this.Gamma);
- }
+ [MethodImpl(InliningOptions.ShortMethod)]
+ public float Compress(float channel) => MathF.Pow(channel, 1 / this.Gamma);
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
index eca114c7b..761313b7e 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Rgb Convert(in Hsl input)
{
float rangedH = input.H / 360F;
@@ -52,7 +52,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Hsl Convert(in Rgb input)
{
float r = input.R;
@@ -111,7 +111,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The .
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
private static float GetColorComponent(float first, float second, float third)
{
third = MoveIntoRange(third);
@@ -142,16 +142,16 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The .
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
private static float MoveIntoRange(float value)
{
if (value < 0F)
{
- value += 1F;
+ value++;
}
else if (value > 1F)
{
- value -= 1F;
+ value--;
}
return value;
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
index 79bfe7331..20ada7e7d 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Rgb Convert(in Hsv input)
{
float s = input.S;
@@ -84,7 +84,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Hsv Convert(in Rgb input)
{
float r = input.R;
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
index 7d71c48a0..783d29a55 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyz Convert(in HunterLab input)
{
// Conversion algorithm described here: http://en.wikipedia.org/wiki/Lab_color_space#Hunter_Lab
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
index 6e87769d7..085230fbd 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
@@ -17,14 +17,12 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public sealed class LCompanding : ICompanding
{
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Expand(float channel)
- {
- return channel <= 0.08 ? 100 * channel / CieConstants.Kappa : ImageMaths.Pow3((channel + 0.16F) / 1.16F);
- }
+ => channel <= 0.08 ? 100 * channel / CieConstants.Kappa : ImageMaths.Pow3((channel + 0.16F) / 1.16F);
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Compress(float channel)
{
return channel <= CieConstants.Epsilon
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs
index 18b3df0d0..bdf451cd3 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs
@@ -18,7 +18,6 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public static Matrix4x4 GetRgbToCieXyzMatrix(RgbWorkingSpace workingSpace)
{
DebugGuard.NotNull(workingSpace, nameof(workingSpace));
-
RgbPrimariesChromaticityCoordinates chromaticity = workingSpace.ChromaticityCoordinates;
float xr = chromaticity.R.X;
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs
index 1108f682f..21a96071a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs
@@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System.Numerics;
+using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
@@ -40,6 +41,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
+ [MethodImpl(InliningOptions.ShortMethod)]
public CieXyz Convert(in LinearRgb input)
{
DebugGuard.IsTrue(input.WorkingSpace.Equals(this.SourceWorkingSpace), nameof(input.WorkingSpace), "Input and source working spaces must be equal.");
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
index 1418f96d7..ad3ed88ef 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
-using System.Numerics;
+using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
@@ -15,6 +15,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
+ [MethodImpl(InliningOptions.ShortMethod)]
public Rgb Convert(in LinearRgb input)
{
var vector = input.ToVector3();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
index 452cafe79..37e4b1a1a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
@@ -3,7 +3,6 @@
using System.Numerics;
-// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
///
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
index 758f5f7dc..14c4d6d77 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
@@ -92,8 +92,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
int hashCode = this.R.GetHashCode();
hashCode = (hashCode * 397) ^ this.G.GetHashCode();
- hashCode = (hashCode * 397) ^ this.B.GetHashCode();
- return hashCode;
+ return (hashCode * 397) ^ this.B.GetHashCode();
}
}
}
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
index 8fea53c8b..d541c3d97 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
@@ -16,17 +16,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public sealed class Rec2020Companding : ICompanding
{
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Expand(float channel)
- {
- return channel < 0.08145F ? channel / 4.5F : MathF.Pow((channel + 0.0993F) / 1.0993F, 2.222222F);
- }
+ => channel < 0.08145F ? channel / 4.5F : MathF.Pow((channel + 0.0993F) / 1.0993F, 2.222222F);
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Compress(float channel)
- {
- return channel < 0.0181F ? 4500F * channel : (1.0993F * channel) - 0.0993F;
- }
+ => channel < 0.0181F ? 4500F * channel : (1.0993F * channel) - 0.0993F;
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
index c5ed1076d..77f51e495 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
@@ -15,17 +15,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public sealed class Rec709Companding : ICompanding
{
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Expand(float channel)
- {
- return channel < 0.081F ? channel / 4.5F : MathF.Pow((channel + 0.099F) / 1.099F, 2.222222F);
- }
+ => channel < 0.081F ? channel / 4.5F : MathF.Pow((channel + 0.099F) / 1.099F, 2.222222F);
///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public float Compress(float channel)
- {
- return channel < 0.018F ? 4500F * channel : (1.099F * channel) - 0.099F;
- }
+ => channel < 0.018F ? 4500F * channel : (1.099F * channel) - 0.099F;
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs
index d3399d1d5..20e2d240a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
-using System.Numerics;
+using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
@@ -15,6 +15,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
+ [MethodImpl(InliningOptions.ShortMethod)]
public LinearRgb Convert(in Rgb input)
{
var vector = input.ToVector3();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
index 2b8672f27..7e1135b2e 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
@@ -84,8 +84,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
int hash = this.WhitePoint.GetHashCode();
hash = HashHelpers.Combine(hash, this.ChromaticityCoordinates.GetHashCode());
- hash = HashHelpers.Combine(hash, this.Companding?.GetHashCode() ?? 0);
- return hash;
+ return HashHelpers.Combine(hash, this.Companding?.GetHashCode() ?? 0);
}
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
index a2484ec0b..4ac3ad3cf 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
@@ -20,7 +20,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public Rgb Convert(in YCbCr input)
{
float y = input.Y;
@@ -39,7 +39,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The input color instance.
/// The converted result
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ [MethodImpl(InliningOptions.ShortMethod)]
public YCbCr Convert(in Rgb input)
{
Vector3 rgb = input.ToVector3() * MaxBytes;
diff --git a/src/ImageSharp/Common/Helpers/InliningOptions.cs b/src/ImageSharp/Common/Helpers/InliningOptions.cs
index e1d51da8d..ad85c4fc8 100644
--- a/src/ImageSharp/Common/Helpers/InliningOptions.cs
+++ b/src/ImageSharp/Common/Helpers/InliningOptions.cs
@@ -8,12 +8,12 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp
{
///
- /// Global inlining options. Helps temporarily disable inling for better profiler output.
+ /// Global inlining options. Helps temporarily disable inlining for better profiler output.
///
internal static class InliningOptions
{
#if PROFILING
- public const MethodImplOptions ShortMethod = 0;
+ public const MethodImplOptions ShortMethod = MethodImplOptions.NoInlining;
#else
public const MethodImplOptions ShortMethod = MethodImplOptions.AggressiveInlining;
#endif
diff --git a/tests/ImageSharp.Tests/Colorspaces/Conversion/ColorConverterAdaptTest.cs b/tests/ImageSharp.Tests/Colorspaces/Conversion/ColorConverterAdaptTest.cs
index 8c1d930ff..326777f3c 100644
--- a/tests/ImageSharp.Tests/Colorspaces/Conversion/ColorConverterAdaptTest.cs
+++ b/tests/ImageSharp.Tests/Colorspaces/Conversion/ColorConverterAdaptTest.cs
@@ -158,7 +158,6 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces.Conversion
}
[Theory]
- [InlineData(0, 0, 0, 0, 0, 0)]
[InlineData(22, 33, 1, 22, 33, 0.9999999)]
public void Adapt_CieLch_D65_To_D50_XyzScaling(float l1, float c1, float h1, float l2, float c2, float h2)
{