Browse Source

Inline controls as constants

js/color-alpha-handling
James Jackson-South 6 years ago
parent
commit
382b5bc1f1
  1. 32
      src/ImageSharp/Common/Helpers/Shuffle/IComponentShuffle.cs
  2. 8
      src/ImageSharp/Common/Helpers/Shuffle/IPad3Shuffle4.cs
  3. 8
      src/ImageSharp/Common/Helpers/Shuffle/IShuffle4Slice3.cs

32
src/ImageSharp/Common/Helpers/Shuffle/IComponentShuffle.cs

@ -82,9 +82,11 @@ namespace SixLabors.ImageSharp
internal readonly struct WXYZShuffle4 : IShuffle4 internal readonly struct WXYZShuffle4 : IShuffle4
{ {
private static readonly byte WXYZ = SimdUtils.Shuffle.MmShuffle(2, 1, 0, 3); public byte Control
{
public byte Control => WXYZ; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(2, 1, 0, 3);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)
@ -106,9 +108,11 @@ namespace SixLabors.ImageSharp
internal readonly struct WZYXShuffle4 : IShuffle4 internal readonly struct WZYXShuffle4 : IShuffle4
{ {
private static readonly byte WZYX = SimdUtils.Shuffle.MmShuffle(0, 1, 2, 3); public byte Control
{
public byte Control => WZYX; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(0, 1, 2, 3);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)
@ -130,9 +134,11 @@ namespace SixLabors.ImageSharp
internal readonly struct YZWXShuffle4 : IShuffle4 internal readonly struct YZWXShuffle4 : IShuffle4
{ {
private static readonly byte YZWX = SimdUtils.Shuffle.MmShuffle(0, 3, 2, 1); public byte Control
{
public byte Control => YZWX; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(0, 3, 2, 1);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)
@ -154,9 +160,11 @@ namespace SixLabors.ImageSharp
internal readonly struct ZYXWShuffle4 : IShuffle4 internal readonly struct ZYXWShuffle4 : IShuffle4
{ {
private static readonly byte ZYXW = SimdUtils.Shuffle.MmShuffle(3, 0, 1, 2); public byte Control
{
public byte Control => ZYXW; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(3, 0, 1, 2);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)

8
src/ImageSharp/Common/Helpers/Shuffle/IPad3Shuffle4.cs

@ -65,9 +65,11 @@ namespace SixLabors.ImageSharp
internal readonly struct XYZWPad3Shuffle4 : IPad3Shuffle4 internal readonly struct XYZWPad3Shuffle4 : IPad3Shuffle4
{ {
private static readonly byte XYZW = SimdUtils.Shuffle.MmShuffle(3, 2, 1, 0); public byte Control
{
public byte Control => XYZW; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(3, 2, 1, 0);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)

8
src/ImageSharp/Common/Helpers/Shuffle/IShuffle4Slice3.cs

@ -54,9 +54,11 @@ namespace SixLabors.ImageSharp
internal readonly struct XYZWShuffle4Slice3 : IShuffle4Slice3 internal readonly struct XYZWShuffle4Slice3 : IShuffle4Slice3
{ {
private static readonly byte XYZW = SimdUtils.Shuffle.MmShuffle(3, 2, 1, 0); public byte Control
{
public byte Control => XYZW; [MethodImpl(InliningOptions.ShortMethod)]
get => SimdUtils.Shuffle.MmShuffle(3, 2, 1, 0);
}
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest) public void RunFallbackShuffle(ReadOnlySpan<byte> source, Span<byte> dest)

Loading…
Cancel
Save