Browse Source

Add Rgba64 methods to IPixel. Touch #610

TODO: Tests
af/merge-core
James Jackson-South 8 years ago
parent
commit
3300063f82
  1. 8
      src/ImageSharp/PixelFormats/Alpha8.cs
  2. 8
      src/ImageSharp/PixelFormats/Argb32.cs
  3. 8
      src/ImageSharp/PixelFormats/Bgr24.cs
  4. 8
      src/ImageSharp/PixelFormats/Bgr565.cs
  5. 11
      src/ImageSharp/PixelFormats/Bgra32.cs
  6. 8
      src/ImageSharp/PixelFormats/Bgra4444.cs
  7. 8
      src/ImageSharp/PixelFormats/Bgra5551.cs
  8. 8
      src/ImageSharp/PixelFormats/Byte4.cs
  9. 8
      src/ImageSharp/PixelFormats/HalfSingle.cs
  10. 8
      src/ImageSharp/PixelFormats/HalfVector2.cs
  11. 8
      src/ImageSharp/PixelFormats/HalfVector4.cs
  12. 12
      src/ImageSharp/PixelFormats/IPixel.cs
  13. 8
      src/ImageSharp/PixelFormats/NormalizedByte2.cs
  14. 8
      src/ImageSharp/PixelFormats/NormalizedByte4.cs
  15. 8
      src/ImageSharp/PixelFormats/NormalizedShort2.cs
  16. 8
      src/ImageSharp/PixelFormats/NormalizedShort4.cs
  17. 8
      src/ImageSharp/PixelFormats/Rg32.cs
  18. 8
      src/ImageSharp/PixelFormats/Rgb24.cs
  19. 8
      src/ImageSharp/PixelFormats/Rgba1010102.cs
  20. 8
      src/ImageSharp/PixelFormats/Rgba32.cs
  21. 14
      src/ImageSharp/PixelFormats/Rgba64.cs
  22. 8
      src/ImageSharp/PixelFormats/RgbaVector.cs
  23. 8
      src/ImageSharp/PixelFormats/Short2.cs
  24. 8
      src/ImageSharp/PixelFormats/Short4.cs

8
src/ImageSharp/PixelFormats/Alpha8.cs

@ -155,6 +155,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = this.PackedValue;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <summary>
/// Compares an object with the packed vector.
/// </summary>

8
src/ImageSharp/PixelFormats/Argb32.cs

@ -310,6 +310,14 @@ namespace SixLabors.ImageSharp.PixelFormats
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Argb32 ToArgb32() => this;
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc/>
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Bgr24.cs

@ -176,5 +176,13 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.B = this.B;
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
}
}

8
src/ImageSharp/PixelFormats/Bgr565.cs

@ -187,6 +187,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

11
src/ImageSharp/PixelFormats/Bgra32.cs

@ -252,12 +252,21 @@ namespace SixLabors.ImageSharp.PixelFormats
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Bgra32 ToBgra32() => this;
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <summary>
/// Packs a <see cref="Vector4"/> into a color.
/// </summary>
/// <param name="vector">The vector containing the values to pack.</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void Pack(ref Vector4 vector) {
private void Pack(ref Vector4 vector)
{
vector *= MaxBytes;
vector += Half;
vector = Vector4.Clamp(vector, Vector4.Zero, MaxBytes);

8
src/ImageSharp/PixelFormats/Bgra4444.cs

@ -178,6 +178,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Bgra5551.cs

@ -178,6 +178,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Byte4.cs

@ -179,6 +179,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/HalfSingle.cs

@ -192,6 +192,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/HalfVector2.cs

@ -207,6 +207,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override string ToString()
{

8
src/ImageSharp/PixelFormats/HalfVector4.cs

@ -200,6 +200,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override string ToString()
{

12
src/ImageSharp/PixelFormats/IPixel.cs

@ -61,6 +61,12 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <param name="source">The <see cref="Rgba32"/> value.</param>
void PackFromRgba32(Rgba32 source);
/// <summary>
/// Packs the pixel from an <see cref="Rgba64"/> value.
/// </summary>
/// <param name="source">The <see cref="Rgba64"/> value.</param>
void PackFromRgba64(Rgba64 source);
/// <summary>
/// Packs the pixel from an <see cref="Argb32"/> value.
/// </summary>
@ -85,6 +91,12 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <param name="dest">The destination pixel to write to</param>
void ToRgba32(ref Rgba32 dest);
/// <summary>
/// Converts the pixel to <see cref="Rgba64"/> format.
/// </summary>
/// <param name="dest">The destination pixel to write to</param>
void ToRgba64(ref Rgba64 dest);
/// <summary>
/// Converts the pixel to <see cref="Argb32"/> format.
/// </summary>

8
src/ImageSharp/PixelFormats/NormalizedByte2.cs

@ -226,6 +226,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/NormalizedByte4.cs

@ -219,6 +219,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/NormalizedShort2.cs

@ -213,6 +213,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <summary>
/// Expands the packed representation into a <see cref="Vector2"/>.
/// The vector components are typically expanded in least to greatest significance order.

8
src/ImageSharp/PixelFormats/NormalizedShort4.cs

@ -221,6 +221,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Rg32.cs

@ -191,6 +191,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)vector.W;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Rgb24.cs

@ -174,6 +174,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc/>
public override string ToString()
{

8
src/ImageSharp/PixelFormats/Rgba1010102.cs

@ -185,6 +185,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

8
src/ImageSharp/PixelFormats/Rgba32.cs

@ -384,6 +384,14 @@ namespace SixLabors.ImageSharp.PixelFormats
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Rgba32 ToRgba32() => this;
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc/>
public override bool Equals(object obj)
{

14
src/ImageSharp/PixelFormats/Rgba64.cs

@ -202,6 +202,13 @@ namespace SixLabors.ImageSharp.PixelFormats
this.PackFromVector4(source.ToVector4());
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source)
{
this = source;
}
/// <inheritdoc />
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgb24(ref Rgb24 dest)
@ -223,6 +230,13 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest)
{
dest = this;
}
/// <inheritdoc />
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToArgb32(ref Argb32 dest)

8
src/ImageSharp/PixelFormats/RgbaVector.cs

@ -298,6 +298,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromScaledVector4(Vector4 vector)

8
src/ImageSharp/PixelFormats/Short2.cs

@ -207,6 +207,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = 255;
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <summary>
/// Expands the packed representation into a <see cref="Vector2"/>.
/// The vector components are typically expanded in least to greatest significance order.

8
src/ImageSharp/PixelFormats/Short4.cs

@ -213,6 +213,14 @@ namespace SixLabors.ImageSharp.PixelFormats
dest.A = (byte)MathF.Round(vector.W);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void PackFromRgba64(Rgba64 source) => this.PackFromVector4(source.ToScaledVector4());
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ToRgba64(ref Rgba64 dest) => dest.PackFromVector4(this.ToScaledVector4());
/// <inheritdoc />
public override bool Equals(object obj)
{

Loading…
Cancel
Save