From 6b6df21cb6dd7d7605b0c15dd3cfdeeae375e82f Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 18 Apr 2017 16:18:09 +1000 Subject: [PATCH] ColorVector perf improvements --- src/ImageSharp/Colors/ColorVector.Definitions.cs | 2 +- src/ImageSharp/Colors/ColorVector.Transforms.cs | 5 ++++- src/ImageSharp/Colors/ColorVector.cs | 6 +++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ImageSharp/Colors/ColorVector.Definitions.cs b/src/ImageSharp/Colors/ColorVector.Definitions.cs index 955c0b9db..150b7209c 100644 --- a/src/ImageSharp/Colors/ColorVector.Definitions.cs +++ b/src/ImageSharp/Colors/ColorVector.Definitions.cs @@ -6,7 +6,7 @@ namespace ImageSharp { /// - /// Unpacked pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. + /// Unpacked pixel type containing four 16-bit floating-point values typically ranging from 0 to 1. /// The color components are stored in red, green, blue, and alpha order. /// /// diff --git a/src/ImageSharp/Colors/ColorVector.Transforms.cs b/src/ImageSharp/Colors/ColorVector.Transforms.cs index e9666a351..a884f2618 100644 --- a/src/ImageSharp/Colors/ColorVector.Transforms.cs +++ b/src/ImageSharp/Colors/ColorVector.Transforms.cs @@ -6,9 +6,10 @@ namespace ImageSharp { using System.Numerics; + using System.Runtime.CompilerServices; /// - /// Unpacked pixel type containing four 16-bit unsigned normalized values typically ranging from 0 to 1. + /// Unpacked pixel type containing four 16-bit floating-point values typically ranging from 0 to 1. /// The color components are stored in red, green, blue, and alpha order. /// /// @@ -25,6 +26,7 @@ namespace ImageSharp /// /// The . /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ColorVector operator +(ColorVector left, ColorVector right) { return new ColorVector(left.backingVector + right.backingVector); @@ -38,6 +40,7 @@ namespace ImageSharp /// /// The . /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ColorVector operator -(ColorVector left, ColorVector right) { return new ColorVector(left.backingVector - right.backingVector); diff --git a/src/ImageSharp/Colors/ColorVector.cs b/src/ImageSharp/Colors/ColorVector.cs index 354553982..06ee5b805 100644 --- a/src/ImageSharp/Colors/ColorVector.cs +++ b/src/ImageSharp/Colors/ColorVector.cs @@ -9,7 +9,7 @@ namespace ImageSharp using System.Runtime.CompilerServices; /// - /// Unpacked pixel type containing four 16-bit unsigned normalized values typically ranging from 0 to 1. + /// Unpacked pixel type containing four 16-bit floating-point values typically ranging from 0 to 1. /// The color components are stored in red, green, blue, and alpha order. /// /// @@ -40,6 +40,7 @@ namespace ImageSharp /// The green component. /// The blue component. /// The alpha component. + [MethodImpl(MethodImplOptions.AggressiveInlining)] public ColorVector(byte r, byte g, byte b, byte a = 255) : this() { @@ -53,6 +54,7 @@ namespace ImageSharp /// The green component. /// The blue component. /// The alpha component. + [MethodImpl(MethodImplOptions.AggressiveInlining)] public ColorVector(float r, float g, float b, float a = 1) : this() { @@ -65,6 +67,7 @@ namespace ImageSharp /// /// The vector containing the components for the packed vector. /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public ColorVector(Vector3 vector) : this() { @@ -77,6 +80,7 @@ namespace ImageSharp /// /// The vector containing the components for the packed vector. /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public ColorVector(Vector4 vector) : this() {