diff --git a/src/ImageSharp/PixelFormats/PixelAlphaCompositionMode.cs b/src/ImageSharp/PixelFormats/PixelAlphaCompositionMode.cs
index f42a264db..b003e62a4 100644
--- a/src/ImageSharp/PixelFormats/PixelAlphaCompositionMode.cs
+++ b/src/ImageSharp/PixelFormats/PixelAlphaCompositionMode.cs
@@ -66,5 +66,10 @@ public enum PixelAlphaCompositionMode
///
/// Clear where they overlap.
///
- Xor
+ Xor,
+
+ ///
+ /// Adds the source and destination, clamping the result to the supported color and alpha range.
+ ///
+ Plus,
}
diff --git a/src/ImageSharp/PixelFormats/PixelBlenders/AssociatedAlphaPixelBlenders.Generated.cs b/src/ImageSharp/PixelFormats/PixelBlenders/AssociatedAlphaPixelBlenders.Generated.cs
index acd9fba9c..b553e3412 100644
--- a/src/ImageSharp/PixelFormats/PixelBlenders/AssociatedAlphaPixelBlenders.Generated.cs
+++ b/src/ImageSharp/PixelFormats/PixelBlenders/AssociatedAlphaPixelBlenders.Generated.cs
@@ -202,2121 +202,4767 @@ internal static class AssociatedAlphaPixelBlenderOperators
}
///
- /// Applies the "NormalSrcAtop" associated-alpha composition equation.
+ /// Applies the "ColorDodgeSrc" associated-alpha composition equation.
///
- public readonly struct NormalSrcAtop : IPixelBlenderOperator
+ public readonly struct ColorDodgeSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrc(background, source, amount);
}
///
- /// Applies the "MultiplySrcAtop" associated-alpha composition equation.
+ /// Applies the "ColorBurnSrc" associated-alpha composition equation.
///
- public readonly struct MultiplySrcAtop : IPixelBlenderOperator
+ public readonly struct ColorBurnSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrc(background, source, amount);
}
///
- /// Applies the "AddSrcAtop" associated-alpha composition equation.
+ /// Applies the "SoftLightSrc" associated-alpha composition equation.
///
- public readonly struct AddSrcAtop : IPixelBlenderOperator
+ public readonly struct SoftLightSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrc(background, source, amount);
}
///
- /// Applies the "SubtractSrcAtop" associated-alpha composition equation.
+ /// Applies the "DifferenceSrc" associated-alpha composition equation.
///
- public readonly struct SubtractSrcAtop : IPixelBlenderOperator
+ public readonly struct DifferenceSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrc(background, source, amount);
}
///
- /// Applies the "ScreenSrcAtop" associated-alpha composition equation.
+ /// Applies the "ExclusionSrc" associated-alpha composition equation.
///
- public readonly struct ScreenSrcAtop : IPixelBlenderOperator
+ public readonly struct ExclusionSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrc(background, source, amount);
}
///
- /// Applies the "DarkenSrcAtop" associated-alpha composition equation.
+ /// Applies the "HueSrc" associated-alpha composition equation.
///
- public readonly struct DarkenSrcAtop : IPixelBlenderOperator
+ public readonly struct HueSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrc(background, source, amount);
}
///
- /// Applies the "LightenSrcAtop" associated-alpha composition equation.
+ /// Applies the "SaturationSrc" associated-alpha composition equation.
///
- public readonly struct LightenSrcAtop : IPixelBlenderOperator
+ public readonly struct SaturationSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrc(background, source, amount);
}
///
- /// Applies the "OverlaySrcAtop" associated-alpha composition equation.
+ /// Applies the "ColorSrc" associated-alpha composition equation.
///
- public readonly struct OverlaySrcAtop : IPixelBlenderOperator
+ public readonly struct ColorSrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrc(background, source, amount);
}
///
- /// Applies the "HardLightSrcAtop" associated-alpha composition equation.
+ /// Applies the "LuminositySrc" associated-alpha composition equation.
///
- public readonly struct HardLightSrcAtop : IPixelBlenderOperator
+ public readonly struct LuminositySrc : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrc(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrc(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrc(background, source, amount);
}
///
- /// Applies the "NormalSrcOver" associated-alpha composition equation.
+ /// Applies the "NormalSrcAtop" associated-alpha composition equation.
///
- public readonly struct NormalSrcOver : IPixelBlenderOperator
+ public readonly struct NormalSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcAtop(background, source, amount);
}
///
- /// Applies the "MultiplySrcOver" associated-alpha composition equation.
+ /// Applies the "MultiplySrcAtop" associated-alpha composition equation.
///
- public readonly struct MultiplySrcOver : IPixelBlenderOperator
+ public readonly struct MultiplySrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcAtop(background, source, amount);
}
///
- /// Applies the "AddSrcOver" associated-alpha composition equation.
+ /// Applies the "AddSrcAtop" associated-alpha composition equation.
///
- public readonly struct AddSrcOver : IPixelBlenderOperator
+ public readonly struct AddSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcAtop(background, source, amount);
}
///
- /// Applies the "SubtractSrcOver" associated-alpha composition equation.
+ /// Applies the "SubtractSrcAtop" associated-alpha composition equation.
///
- public readonly struct SubtractSrcOver : IPixelBlenderOperator
+ public readonly struct SubtractSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcAtop(background, source, amount);
}
///
- /// Applies the "ScreenSrcOver" associated-alpha composition equation.
+ /// Applies the "ScreenSrcAtop" associated-alpha composition equation.
///
- public readonly struct ScreenSrcOver : IPixelBlenderOperator
+ public readonly struct ScreenSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ScreenSrcAtop(background, source, amount);
}
///
- /// Applies the "DarkenSrcOver" associated-alpha composition equation.
+ /// Applies the "DarkenSrcAtop" associated-alpha composition equation.
///
- public readonly struct DarkenSrcOver : IPixelBlenderOperator
+ public readonly struct DarkenSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DarkenSrcAtop(background, source, amount);
}
///
- /// Applies the "LightenSrcOver" associated-alpha composition equation.
+ /// Applies the "LightenSrcAtop" associated-alpha composition equation.
///
- public readonly struct LightenSrcOver : IPixelBlenderOperator
+ public readonly struct LightenSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LightenSrcAtop(background, source, amount);
}
///
- /// Applies the "OverlaySrcOver" associated-alpha composition equation.
+ /// Applies the "OverlaySrcAtop" associated-alpha composition equation.
///
- public readonly struct OverlaySrcOver : IPixelBlenderOperator
+ public readonly struct OverlaySrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.OverlaySrcAtop(background, source, amount);
}
///
- /// Applies the "HardLightSrcOver" associated-alpha composition equation.
+ /// Applies the "HardLightSrcAtop" associated-alpha composition equation.
///
- public readonly struct HardLightSrcOver : IPixelBlenderOperator
+ public readonly struct HardLightSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcOver(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HardLightSrcAtop(background, source, amount);
}
///
- /// Applies the "NormalSrcIn" associated-alpha composition equation.
+ /// Applies the "ColorDodgeSrcAtop" associated-alpha composition equation.
///
- public readonly struct NormalSrcIn : IPixelBlenderOperator
+ public readonly struct ColorDodgeSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorDodgeSrcAtop(background, source, amount);
}
///
- /// Applies the "MultiplySrcIn" associated-alpha composition equation.
+ /// Applies the "ColorBurnSrcAtop" associated-alpha composition equation.
///
- public readonly struct MultiplySrcIn : IPixelBlenderOperator
+ public readonly struct ColorBurnSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorBurnSrcAtop(background, source, amount);
}
///
- /// Applies the "AddSrcIn" associated-alpha composition equation.
+ /// Applies the "SoftLightSrcAtop" associated-alpha composition equation.
///
- public readonly struct AddSrcIn : IPixelBlenderOperator
+ public readonly struct SoftLightSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SoftLightSrcAtop(background, source, amount);
}
///
- /// Applies the "SubtractSrcIn" associated-alpha composition equation.
+ /// Applies the "DifferenceSrcAtop" associated-alpha composition equation.
///
- public readonly struct SubtractSrcIn : IPixelBlenderOperator
+ public readonly struct DifferenceSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.DifferenceSrcAtop(background, source, amount);
}
///
- /// Applies the "ScreenSrcIn" associated-alpha composition equation.
+ /// Applies the "ExclusionSrcAtop" associated-alpha composition equation.
///
- public readonly struct ScreenSrcIn : IPixelBlenderOperator
+ public readonly struct ExclusionSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ExclusionSrcAtop(background, source, amount);
}
///
- /// Applies the "DarkenSrcIn" associated-alpha composition equation.
+ /// Applies the "HueSrcAtop" associated-alpha composition equation.
///
- public readonly struct DarkenSrcIn : IPixelBlenderOperator
+ public readonly struct HueSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.DarkenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.HueSrcAtop(background, source, amount);
}
///
- /// Applies the "LightenSrcIn" associated-alpha composition equation.
+ /// Applies the "SaturationSrcAtop" associated-alpha composition equation.
///
- public readonly struct LightenSrcIn : IPixelBlenderOperator
+ public readonly struct SaturationSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.LightenSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SaturationSrcAtop(background, source, amount);
}
///
- /// Applies the "OverlaySrcIn" associated-alpha composition equation.
+ /// Applies the "ColorSrcAtop" associated-alpha composition equation.
///
- public readonly struct OverlaySrcIn : IPixelBlenderOperator
+ public readonly struct ColorSrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.OverlaySrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ColorSrcAtop(background, source, amount);
}
///
- /// Applies the "HardLightSrcIn" associated-alpha composition equation.
+ /// Applies the "LuminositySrcAtop" associated-alpha composition equation.
///
- public readonly struct HardLightSrcIn : IPixelBlenderOperator
+ public readonly struct LuminositySrcAtop : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrcAtop(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrcAtop(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.HardLightSrcIn(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.LuminositySrcAtop(background, source, amount);
}
///
- /// Applies the "NormalSrcOut" associated-alpha composition equation.
+ /// Applies the "NormalSrcOver" associated-alpha composition equation.
///
- public readonly struct NormalSrcOut : IPixelBlenderOperator
+ public readonly struct NormalSrcOver : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.NormalSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.NormalSrcOver(background, source, amount);
}
///
- /// Applies the "MultiplySrcOut" associated-alpha composition equation.
+ /// Applies the "MultiplySrcOver" associated-alpha composition equation.
///
- public readonly struct MultiplySrcOut : IPixelBlenderOperator
+ public readonly struct MultiplySrcOver : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.MultiplySrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.MultiplySrcOver(background, source, amount);
}
///
- /// Applies the "AddSrcOut" associated-alpha composition equation.
+ /// Applies the "AddSrcOver" associated-alpha composition equation.
///
- public readonly struct AddSrcOut : IPixelBlenderOperator
+ public readonly struct AddSrcOver : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.AddSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.AddSrcOver(background, source, amount);
}
///
- /// Applies the "SubtractSrcOut" associated-alpha composition equation.
+ /// Applies the "SubtractSrcOver" associated-alpha composition equation.
///
- public readonly struct SubtractSrcOut : IPixelBlenderOperator
+ public readonly struct SubtractSrcOver : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512 source, Vector512 amount)
- => AssociatedAlphaPorterDuffFunctions.SubtractSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.SubtractSrcOver(background, source, amount);
}
///
- /// Applies the "ScreenSrcOut" associated-alpha composition equation.
+ /// Applies the "ScreenSrcOver" associated-alpha composition equation.
///
- public readonly struct ScreenSrcOut : IPixelBlenderOperator
+ public readonly struct ScreenSrcOver : IPixelBlenderOperator
{
///
public static bool IsAssociatedAlpha => true;
///
public static Vector4 Invoke(Vector4 background, Vector4 source, float amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ScreenSrcOver(background, source, amount);
///
public static Vector256 Invoke(Vector256 background, Vector256 source, Vector256 amount)
- => AssociatedAlphaPorterDuffFunctions.ScreenSrcOut(background, source, amount);
+ => AssociatedAlphaPorterDuffFunctions.ScreenSrcOver(background, source, amount);
///
public static Vector512 Invoke(Vector512 background, Vector512