Skip to content

Commit 877f314

Browse files
committed
replace FromScaledVector4() / ToScaledVector4() with flag usages
1 parent e217d13 commit 877f314

9 files changed

+97
-139
lines changed

src/ImageSharp/PixelFormats/PixelImplementations/Generated/Argb32.PixelOperations.Generated.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,29 +42,16 @@ internal override void ToArgb32(Configuration configuration, ReadOnlySpan<Argb32
4242
}
4343

4444
/// <inheritdoc />
45-
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Argb32> destPixels)
45+
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Argb32> destPixels, PixelConversionModifiers modifiers)
4646
{
4747
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, false);
4848
}
4949

5050
/// <inheritdoc />
51-
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Argb32> sourcePixels, Span<Vector4> destVectors)
51+
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Argb32> sourcePixels, Span<Vector4> destVectors, PixelConversionModifiers modifiers)
5252
{
5353
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, false);
5454
}
55-
56-
/// <inheritdoc />
57-
internal override void FromScaledVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Argb32> destPixels)
58-
{
59-
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, true);
60-
}
61-
62-
/// <inheritdoc />
63-
internal override void ToScaledVector4(Configuration configuration, ReadOnlySpan<Argb32> sourcePixels, Span<Vector4> destVectors)
64-
{
65-
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, true);
66-
}
67-
6855
/// <inheritdoc />
6956
internal override void ToRgba32(Configuration configuration, ReadOnlySpan<Argb32> sourcePixels, Span<Rgba32> destPixels)
7057
{

src/ImageSharp/PixelFormats/PixelImplementations/Generated/Bgr24.PixelOperations.Generated.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,30 +42,17 @@ internal override void ToBgr24(Configuration configuration, ReadOnlySpan<Bgr24>
4242
}
4343

4444
/// <inheritdoc />
45-
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgr24> destPixels)
45+
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgr24> destPixels, PixelConversionModifiers modifiers)
4646
{
4747
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, false);
4848
}
4949

5050
/// <inheritdoc />
51-
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Bgr24> sourcePixels, Span<Vector4> destVectors)
51+
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Bgr24> sourcePixels, Span<Vector4> destVectors, PixelConversionModifiers modifiers)
5252
{
5353
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, false);
5454
}
5555

56-
/// <inheritdoc />
57-
internal override void FromScaledVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgr24> destPixels)
58-
{
59-
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, true);
60-
}
61-
62-
/// <inheritdoc />
63-
internal override void ToScaledVector4(Configuration configuration, ReadOnlySpan<Bgr24> sourcePixels, Span<Vector4> destVectors)
64-
{
65-
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, true);
66-
}
67-
68-
6956
/// <inheritdoc />
7057
internal override void ToArgb32(Configuration configuration, ReadOnlySpan<Bgr24> sourcePixels, Span<Argb32> destPixels)
7158
{

src/ImageSharp/PixelFormats/PixelImplementations/Generated/Bgra32.PixelOperations.Generated.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,29 +42,16 @@ internal override void ToBgra32(Configuration configuration, ReadOnlySpan<Bgra32
4242
}
4343

4444
/// <inheritdoc />
45-
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgra32> destPixels)
45+
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgra32> destPixels, PixelConversionModifiers modifiers)
4646
{
4747
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, false);
4848
}
4949

5050
/// <inheritdoc />
51-
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Bgra32> sourcePixels, Span<Vector4> destVectors)
51+
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Bgra32> sourcePixels, Span<Vector4> destVectors, PixelConversionModifiers modifiers)
5252
{
5353
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, false);
5454
}
55-
56-
/// <inheritdoc />
57-
internal override void FromScaledVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Bgra32> destPixels)
58-
{
59-
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, true);
60-
}
61-
62-
/// <inheritdoc />
63-
internal override void ToScaledVector4(Configuration configuration, ReadOnlySpan<Bgra32> sourcePixels, Span<Vector4> destVectors)
64-
{
65-
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, true);
66-
}
67-
6855
/// <inheritdoc />
6956
internal override void ToRgba32(Configuration configuration, ReadOnlySpan<Bgra32> sourcePixels, Span<Rgba32> destPixels)
7057
{

src/ImageSharp/PixelFormats/PixelImplementations/Generated/Rgb24.PixelOperations.Generated.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,30 +42,17 @@ internal override void ToRgb24(Configuration configuration, ReadOnlySpan<Rgb24>
4242
}
4343

4444
/// <inheritdoc />
45-
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Rgb24> destPixels)
45+
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Rgb24> destPixels, PixelConversionModifiers modifiers)
4646
{
4747
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, false);
4848
}
4949

5050
/// <inheritdoc />
51-
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Rgb24> sourcePixels, Span<Vector4> destVectors)
51+
internal override void ToVector4(Configuration configuration, ReadOnlySpan<Rgb24> sourcePixels, Span<Vector4> destVectors, PixelConversionModifiers modifiers)
5252
{
5353
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, false);
5454
}
5555

56-
/// <inheritdoc />
57-
internal override void FromScaledVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<Rgb24> destPixels)
58-
{
59-
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, true);
60-
}
61-
62-
/// <inheritdoc />
63-
internal override void ToScaledVector4(Configuration configuration, ReadOnlySpan<Rgb24> sourcePixels, Span<Vector4> destVectors)
64-
{
65-
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, true);
66-
}
67-
68-
6956
/// <inheritdoc />
7057
internal override void ToArgb32(Configuration configuration, ReadOnlySpan<Rgb24> sourcePixels, Span<Argb32> destPixels)
7158
{

src/ImageSharp/PixelFormats/PixelImplementations/Generated/_Common.ttinclude

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,29 +111,16 @@ using System.Runtime.InteropServices;
111111
{
112112
#>
113113
/// <inheritdoc />
114-
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<<#=pixelType#>> destPixels)
114+
internal override void FromVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<<#=pixelType#>> destPixels, PixelConversionModifiers modifiers)
115115
{
116116
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, false);
117117
}
118118

119119
/// <inheritdoc />
120-
internal override void ToVector4(Configuration configuration, ReadOnlySpan<<#=pixelType#>> sourcePixels, Span<Vector4> destVectors)
120+
internal override void ToVector4(Configuration configuration, ReadOnlySpan<<#=pixelType#>> sourcePixels, Span<Vector4> destVectors, PixelConversionModifiers modifiers)
121121
{
122122
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, false);
123123
}
124-
125-
/// <inheritdoc />
126-
internal override void FromScaledVector4(Configuration configuration, Span<Vector4> sourceVectors, Span<<#=pixelType#>> destPixels)
127-
{
128-
Vector4Converters.RgbaCompatible.FromVector4(configuration, this, sourceVectors, destPixels, true);
129-
}
130-
131-
/// <inheritdoc />
132-
internal override void ToScaledVector4(Configuration configuration, ReadOnlySpan<<#=pixelType#>> sourcePixels, Span<Vector4> destVectors)
133-
{
134-
Vector4Converters.RgbaCompatible.ToVector4(configuration, this, sourcePixels, destVectors, true);
135-
}
136-
137124
<#+
138125
}
139126

src/ImageSharp/PixelFormats/PixelImplementations/Rgba32.PixelOperations.cs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ internal partial class PixelOperations : PixelOperations<Rgba32>
2222
internal override void ToVector4(
2323
Configuration configuration,
2424
ReadOnlySpan<Rgba32> sourcePixels,
25-
Span<Vector4> destVectors)
25+
Span<Vector4> destVectors,
26+
PixelConversionModifiers modifiers)
2627
{
2728
Guard.DestinationShouldNotBeTooShort(sourcePixels, destVectors, nameof(destVectors));
2829

@@ -37,7 +38,8 @@ internal override void ToVector4(
3738
internal override void FromVector4(
3839
Configuration configuration,
3940
Span<Vector4> sourceVectors,
40-
Span<Rgba32> destPixels)
41+
Span<Rgba32> destPixels,
42+
PixelConversionModifiers modifiers)
4143
{
4244
Guard.DestinationShouldNotBeTooShort(sourceVectors, destPixels, nameof(destPixels));
4345

@@ -47,24 +49,6 @@ internal override void FromVector4(
4749
MemoryMarshal.Cast<Vector4, float>(sourceVectors),
4850
MemoryMarshal.Cast<Rgba32, byte>(destPixels));
4951
}
50-
51-
/// <inheritdoc />
52-
internal override void ToScaledVector4(
53-
Configuration configuration,
54-
ReadOnlySpan<Rgba32> sourceColors,
55-
Span<Vector4> destinationVectors)
56-
{
57-
this.ToVector4(configuration, sourceColors, destinationVectors);
58-
}
59-
60-
/// <inheritdoc />
61-
internal override void FromScaledVector4(
62-
Configuration configuration,
63-
Span<Vector4> sourceVectors,
64-
Span<Rgba32> destinationColors)
65-
{
66-
this.FromVector4(configuration, sourceVectors, destinationColors);
67-
}
6852
}
6953
}
7054
}

src/ImageSharp/PixelFormats/PixelImplementations/RgbaVector.PixelOperations.cs

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,43 @@ public partial struct RgbaVector
1818
internal class PixelOperations : PixelOperations<RgbaVector>
1919
{
2020
/// <inheritdoc />
21-
internal override void FromScaledVector4(
21+
internal override void FromVector4(
2222
Configuration configuration,
2323
Span<Vector4> sourceVectors,
24-
Span<RgbaVector> destinationColors)
24+
Span<RgbaVector> destinationColors,
25+
PixelConversionModifiers modifiers)
2526
{
2627
Guard.DestinationShouldNotBeTooShort(sourceVectors, destinationColors, nameof(destinationColors));
2728

28-
MemoryMarshal.Cast<Vector4, RgbaVector>(sourceVectors).CopyTo(destinationColors);
29+
// TODO: Repeating previous override behavior here. Not sure if this is correct!
30+
if (modifiers.IsDefined(PixelConversionModifiers.Scale))
31+
{
32+
MemoryMarshal.Cast<Vector4, RgbaVector>(sourceVectors).CopyTo(destinationColors);
33+
}
34+
else
35+
{
36+
base.FromVector4(configuration, sourceVectors, destinationColors, modifiers);
37+
}
2938
}
3039

31-
/// <inheritdoc />
32-
internal override void ToScaledVector4(
33-
Configuration configuration,
34-
ReadOnlySpan<RgbaVector> sourceColors,
35-
Span<Vector4> destinationVectors)
36-
=> this.ToVector4(configuration, sourceColors, destinationVectors);
37-
3840
/// <inheritdoc />
3941
internal override void ToVector4(
4042
Configuration configuration,
4143
ReadOnlySpan<RgbaVector> sourcePixels,
42-
Span<Vector4> destVectors)
44+
Span<Vector4> destVectors,
45+
PixelConversionModifiers modifiers)
4346
{
4447
Guard.DestinationShouldNotBeTooShort(sourcePixels, destVectors, nameof(destVectors));
4548

46-
MemoryMarshal.Cast<RgbaVector, Vector4>(sourcePixels).CopyTo(destVectors);
49+
// TODO: Repeating previous override behavior here. Not sure if this is correct!
50+
if (modifiers.IsDefined(PixelConversionModifiers.Scale))
51+
{
52+
base.ToVector4(configuration, sourcePixels, destVectors, modifiers);
53+
}
54+
else
55+
{
56+
MemoryMarshal.Cast<RgbaVector, Vector4>(sourcePixels).CopyTo(destVectors);
57+
}
4758
}
4859
}
4960
}

0 commit comments

Comments
 (0)