diff --git a/src/ImageSharp/PixelFormats/PixelBlenders/PorterDuffFunctions.Generated.cs b/src/ImageSharp/PixelFormats/PixelBlenders/PorterDuffFunctions.Generated.cs
index 255bafc798..f0635230ca 100644
--- a/src/ImageSharp/PixelFormats/PixelBlenders/PorterDuffFunctions.Generated.cs
+++ b/src/ImageSharp/PixelFormats/PixelBlenders/PorterDuffFunctions.Generated.cs
@@ -37,7 +37,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalSrc(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ => Avx.Blend(source, source * opacity, BlendAlphaControl);
///
/// Returns the result of the "NormalSrcAtop" compositing equation.
@@ -64,7 +64,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalSrcAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(backdrop, source, Normal(backdrop, source));
}
@@ -94,7 +94,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalSrcOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(backdrop, source, Normal(backdrop, source));
}
@@ -123,7 +123,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalSrcIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => In(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "NormalSrcOut" compositing equation.
@@ -149,7 +149,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalSrcOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Out(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "NormalDest" compositing equation.
@@ -202,7 +202,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalDestAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(source, backdrop, Normal(source, backdrop));
}
@@ -232,7 +232,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalDestOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(source, backdrop, Normal(source, backdrop));
}
@@ -261,7 +261,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalDestIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => In(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "NormalDestOut" compositing equation.
@@ -287,7 +287,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalDestOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => Out(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "NormalXor" compositing equation.
@@ -313,7 +313,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalXor(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Xor(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Xor(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "NormalClear" compositing equation.
@@ -339,7 +339,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 NormalClear(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Clear(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
@@ -558,7 +558,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplySrc(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ => Avx.Blend(source, source * opacity, BlendAlphaControl);
///
/// Returns the result of the "MultiplySrcAtop" compositing equation.
@@ -585,7 +585,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplySrcAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(backdrop, source, Multiply(backdrop, source));
}
@@ -615,7 +615,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplySrcOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(backdrop, source, Multiply(backdrop, source));
}
@@ -644,7 +644,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplySrcIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => In(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "MultiplySrcOut" compositing equation.
@@ -670,7 +670,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplySrcOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Out(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "MultiplyDest" compositing equation.
@@ -723,7 +723,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyDestAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(source, backdrop, Multiply(source, backdrop));
}
@@ -753,7 +753,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyDestOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(source, backdrop, Multiply(source, backdrop));
}
@@ -782,7 +782,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyDestIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => In(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "MultiplyDestOut" compositing equation.
@@ -808,7 +808,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyDestOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => Out(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "MultiplyXor" compositing equation.
@@ -834,7 +834,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyXor(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Xor(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Xor(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "MultiplyClear" compositing equation.
@@ -860,7 +860,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 MultiplyClear(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Clear(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
@@ -1079,7 +1079,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddSrc(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ => Avx.Blend(source, source * opacity, BlendAlphaControl);
///
/// Returns the result of the "AddSrcAtop" compositing equation.
@@ -1106,7 +1106,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddSrcAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(backdrop, source, Add(backdrop, source));
}
@@ -1136,7 +1136,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddSrcOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(backdrop, source, Add(backdrop, source));
}
@@ -1165,7 +1165,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddSrcIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => In(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "AddSrcOut" compositing equation.
@@ -1191,7 +1191,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddSrcOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Out(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "AddDest" compositing equation.
@@ -1244,7 +1244,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddDestAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(source, backdrop, Add(source, backdrop));
}
@@ -1274,7 +1274,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddDestOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(source, backdrop, Add(source, backdrop));
}
@@ -1303,7 +1303,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddDestIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => In(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "AddDestOut" compositing equation.
@@ -1329,7 +1329,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddDestOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => Out(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "AddXor" compositing equation.
@@ -1355,7 +1355,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddXor(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Xor(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Xor(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "AddClear" compositing equation.
@@ -1381,7 +1381,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 AddClear(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Clear(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
@@ -1600,7 +1600,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractSrc(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ => Avx.Blend(source, source * opacity, BlendAlphaControl);
///
/// Returns the result of the "SubtractSrcAtop" compositing equation.
@@ -1627,7 +1627,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractSrcAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(backdrop, source, Subtract(backdrop, source));
}
@@ -1657,7 +1657,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractSrcOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(backdrop, source, Subtract(backdrop, source));
}
@@ -1686,7 +1686,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractSrcIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => In(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "SubtractSrcOut" compositing equation.
@@ -1712,7 +1712,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractSrcOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Out(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "SubtractDest" compositing equation.
@@ -1765,7 +1765,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractDestAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(source, backdrop, Subtract(source, backdrop));
}
@@ -1795,7 +1795,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractDestOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(source, backdrop, Subtract(source, backdrop));
}
@@ -1824,7 +1824,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractDestIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => In(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "SubtractDestOut" compositing equation.
@@ -1850,7 +1850,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractDestOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => Out(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "SubtractXor" compositing equation.
@@ -1876,7 +1876,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractXor(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Xor(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Xor(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "SubtractClear" compositing equation.
@@ -1902,7 +1902,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 SubtractClear(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Clear(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
@@ -2121,7 +2121,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenSrc(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ => Avx.Blend(source, source * opacity, BlendAlphaControl);
///
/// Returns the result of the "ScreenSrcAtop" compositing equation.
@@ -2148,7 +2148,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenSrcAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(backdrop, source, Screen(backdrop, source));
}
@@ -2178,7 +2178,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenSrcOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(backdrop, source, Screen(backdrop, source));
}
@@ -2207,7 +2207,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenSrcIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => In(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "ScreenSrcOut" compositing equation.
@@ -2233,7 +2233,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenSrcOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Out(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "ScreenDest" compositing equation.
@@ -2286,7 +2286,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenDestAtop(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Atop(source, backdrop, Screen(source, backdrop));
}
@@ -2316,7 +2316,7 @@ internal static partial class PorterDuffFunctions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenDestOver(Vector256 backdrop, Vector256 source, Vector256 opacity)
{
- source = Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl);
+ source = Avx.Blend(source, source * opacity, BlendAlphaControl);
return Over(source, backdrop, Screen(source, backdrop));
}
@@ -2345,7 +2345,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenDestIn(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => In(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => In(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "ScreenDestOut" compositing equation.
@@ -2371,7 +2371,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenDestOut(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Out(Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl), backdrop);
+ => Out(Avx.Blend(source, source * opacity, BlendAlphaControl), backdrop);
///
/// Returns the result of the "ScreenXor" compositing equation.
@@ -2397,7 +2397,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenXor(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Xor(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Xor(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///
/// Returns the result of the "ScreenClear" compositing equation.
@@ -2423,7 +2423,7 @@ internal static partial class PorterDuffFunctions
/// The .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256 ScreenClear(Vector256 backdrop, Vector256 source, Vector256 opacity)
- => Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl));
+ => Clear(backdrop, Avx.Blend(source, source * opacity, BlendAlphaControl));
///