@ -19,7 +19,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -28,7 +29,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Normal ( backdrop , source ) ) ;
return Atop ( backdrop , source , Normal ( backdrop , source ) ) ;
@ -37,7 +39,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Normal ( backdrop , source ) ) ;
return Over ( backdrop , source , Normal ( backdrop , source ) ) ;
@ -46,7 +49,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Normal ( backdrop , source ) ) ;
return In ( backdrop , source , Normal ( backdrop , source ) ) ;
@ -55,7 +59,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -70,7 +75,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Normal ( source , backdrop ) ) ;
return Atop ( source , backdrop , Normal ( source , backdrop ) ) ;
@ -79,7 +85,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Normal ( source , backdrop ) ) ;
return Over ( source , backdrop , Normal ( source , backdrop ) ) ;
@ -88,7 +95,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Normal ( source , backdrop ) ) ;
return In ( source , backdrop , Normal ( source , backdrop ) ) ;
@ -97,7 +105,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -106,7 +115,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -115,7 +125,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 NormalClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 NormalClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -256,7 +267,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplySrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplySrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -265,7 +277,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplySrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplySrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Multiply ( backdrop , source ) ) ;
return Atop ( backdrop , source , Multiply ( backdrop , source ) ) ;
@ -274,7 +287,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplySrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplySrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Multiply ( backdrop , source ) ) ;
return Over ( backdrop , source , Multiply ( backdrop , source ) ) ;
@ -283,7 +297,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplySrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplySrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Multiply ( backdrop , source ) ) ;
return In ( backdrop , source , Multiply ( backdrop , source ) ) ;
@ -292,7 +307,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplySrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplySrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -307,7 +323,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Multiply ( source , backdrop ) ) ;
return Atop ( source , backdrop , Multiply ( source , backdrop ) ) ;
@ -316,7 +333,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Multiply ( source , backdrop ) ) ;
return Over ( source , backdrop , Multiply ( source , backdrop ) ) ;
@ -325,7 +343,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Multiply ( source , backdrop ) ) ;
return In ( source , backdrop , Multiply ( source , backdrop ) ) ;
@ -334,7 +353,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -343,7 +363,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -352,7 +373,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 MultiplyClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 MultiplyClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -493,7 +515,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -502,7 +525,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Add ( backdrop , source ) ) ;
return Atop ( backdrop , source , Add ( backdrop , source ) ) ;
@ -511,7 +535,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Add ( backdrop , source ) ) ;
return Over ( backdrop , source , Add ( backdrop , source ) ) ;
@ -520,7 +545,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Add ( backdrop , source ) ) ;
return In ( backdrop , source , Add ( backdrop , source ) ) ;
@ -529,7 +555,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -544,7 +571,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Add ( source , backdrop ) ) ;
return Atop ( source , backdrop , Add ( source , backdrop ) ) ;
@ -553,7 +581,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Add ( source , backdrop ) ) ;
return Over ( source , backdrop , Add ( source , backdrop ) ) ;
@ -562,7 +591,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Add ( source , backdrop ) ) ;
return In ( source , backdrop , Add ( source , backdrop ) ) ;
@ -571,7 +601,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -580,7 +611,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -589,7 +621,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 AddClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 AddClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -730,7 +763,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -739,7 +773,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Subtract ( backdrop , source ) ) ;
return Atop ( backdrop , source , Subtract ( backdrop , source ) ) ;
@ -748,7 +783,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Subtract ( backdrop , source ) ) ;
return Over ( backdrop , source , Subtract ( backdrop , source ) ) ;
@ -757,7 +793,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Subtract ( backdrop , source ) ) ;
return In ( backdrop , source , Subtract ( backdrop , source ) ) ;
@ -766,7 +803,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -781,7 +819,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Subtract ( source , backdrop ) ) ;
return Atop ( source , backdrop , Subtract ( source , backdrop ) ) ;
@ -790,7 +829,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Subtract ( source , backdrop ) ) ;
return Over ( source , backdrop , Subtract ( source , backdrop ) ) ;
@ -799,7 +839,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Subtract ( source , backdrop ) ) ;
return In ( source , backdrop , Subtract ( source , backdrop ) ) ;
@ -808,7 +849,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -817,7 +859,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -826,7 +869,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 SubtractClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 SubtractClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -967,7 +1011,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -976,7 +1021,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Screen ( backdrop , source ) ) ;
return Atop ( backdrop , source , Screen ( backdrop , source ) ) ;
@ -985,7 +1031,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Screen ( backdrop , source ) ) ;
return Over ( backdrop , source , Screen ( backdrop , source ) ) ;
@ -994,7 +1041,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Screen ( backdrop , source ) ) ;
return In ( backdrop , source , Screen ( backdrop , source ) ) ;
@ -1003,7 +1051,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -1018,7 +1067,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Screen ( source , backdrop ) ) ;
return Atop ( source , backdrop , Screen ( source , backdrop ) ) ;
@ -1027,7 +1077,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Screen ( source , backdrop ) ) ;
return Over ( source , backdrop , Screen ( source , backdrop ) ) ;
@ -1036,7 +1087,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Screen ( source , backdrop ) ) ;
return In ( source , backdrop , Screen ( source , backdrop ) ) ;
@ -1045,7 +1097,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -1054,7 +1107,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -1063,7 +1117,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 ScreenClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 ScreenClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -1204,7 +1259,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -1213,7 +1269,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Darken ( backdrop , source ) ) ;
return Atop ( backdrop , source , Darken ( backdrop , source ) ) ;
@ -1222,7 +1279,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Darken ( backdrop , source ) ) ;
return Over ( backdrop , source , Darken ( backdrop , source ) ) ;
@ -1231,7 +1289,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Darken ( backdrop , source ) ) ;
return In ( backdrop , source , Darken ( backdrop , source ) ) ;
@ -1240,7 +1299,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -1255,7 +1315,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Darken ( source , backdrop ) ) ;
return Atop ( source , backdrop , Darken ( source , backdrop ) ) ;
@ -1264,7 +1325,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Darken ( source , backdrop ) ) ;
return Over ( source , backdrop , Darken ( source , backdrop ) ) ;
@ -1273,7 +1335,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Darken ( source , backdrop ) ) ;
return In ( source , backdrop , Darken ( source , backdrop ) ) ;
@ -1282,7 +1345,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -1291,7 +1355,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -1300,7 +1365,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 DarkenClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 DarkenClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -1441,7 +1507,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -1450,7 +1517,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Lighten ( backdrop , source ) ) ;
return Atop ( backdrop , source , Lighten ( backdrop , source ) ) ;
@ -1459,7 +1527,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Lighten ( backdrop , source ) ) ;
return Over ( backdrop , source , Lighten ( backdrop , source ) ) ;
@ -1468,7 +1537,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Lighten ( backdrop , source ) ) ;
return In ( backdrop , source , Lighten ( backdrop , source ) ) ;
@ -1477,7 +1547,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -1492,7 +1563,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Lighten ( source , backdrop ) ) ;
return Atop ( source , backdrop , Lighten ( source , backdrop ) ) ;
@ -1501,7 +1573,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Lighten ( source , backdrop ) ) ;
return Over ( source , backdrop , Lighten ( source , backdrop ) ) ;
@ -1510,7 +1583,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Lighten ( source , backdrop ) ) ;
return In ( source , backdrop , Lighten ( source , backdrop ) ) ;
@ -1519,7 +1593,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -1528,7 +1603,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -1537,7 +1613,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 LightenClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 LightenClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -1678,7 +1755,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlaySrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlaySrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -1687,7 +1765,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlaySrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlaySrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , Overlay ( backdrop , source ) ) ;
return Atop ( backdrop , source , Overlay ( backdrop , source ) ) ;
@ -1696,7 +1775,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlaySrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlaySrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , Overlay ( backdrop , source ) ) ;
return Over ( backdrop , source , Overlay ( backdrop , source ) ) ;
@ -1705,7 +1785,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlaySrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlaySrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , Overlay ( backdrop , source ) ) ;
return In ( backdrop , source , Overlay ( backdrop , source ) ) ;
@ -1714,7 +1795,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlaySrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlaySrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -1729,7 +1811,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , Overlay ( source , backdrop ) ) ;
return Atop ( source , backdrop , Overlay ( source , backdrop ) ) ;
@ -1738,7 +1821,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , Overlay ( source , backdrop ) ) ;
return Over ( source , backdrop , Overlay ( source , backdrop ) ) ;
@ -1747,7 +1831,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , Overlay ( source , backdrop ) ) ;
return In ( source , backdrop , Overlay ( source , backdrop ) ) ;
@ -1756,7 +1841,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -1765,7 +1851,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -1774,7 +1861,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 OverlayClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 OverlayClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;
@ -1915,7 +2003,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightSrc ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightSrc ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return source ;
return source ;
@ -1924,7 +2013,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightSrcAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( backdrop , source , HardLight ( backdrop , source ) ) ;
return Atop ( backdrop , source , HardLight ( backdrop , source ) ) ;
@ -1933,7 +2023,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightSrcOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( backdrop , source , HardLight ( backdrop , source ) ) ;
return Over ( backdrop , source , HardLight ( backdrop , source ) ) ;
@ -1942,7 +2033,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightSrcIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( backdrop , source , HardLight ( backdrop , source ) ) ;
return In ( backdrop , source , HardLight ( backdrop , source ) ) ;
@ -1951,7 +2043,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightSrcOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( backdrop , source ) ;
return Out ( backdrop , source ) ;
@ -1966,7 +2059,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightDestAtop ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Atop ( source , backdrop , HardLight ( source , backdrop ) ) ;
return Atop ( source , backdrop , HardLight ( source , backdrop ) ) ;
@ -1975,7 +2069,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightDestOver ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightDestOver ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Over ( source , backdrop , HardLight ( source , backdrop ) ) ;
return Over ( source , backdrop , HardLight ( source , backdrop ) ) ;
@ -1984,7 +2079,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightDestIn ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightDestIn ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return In ( source , backdrop , HardLight ( source , backdrop ) ) ;
return In ( source , backdrop , HardLight ( source , backdrop ) ) ;
@ -1993,7 +2089,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightDestOut ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightDestOut ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Out ( source , backdrop ) ;
return Out ( source , backdrop ) ;
@ -2002,7 +2099,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightXor ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightXor ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Xor ( backdrop , source ) ;
return Xor ( backdrop , source ) ;
@ -2011,7 +2109,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector4 HardLightClear ( Vector4 backdrop , Vector4 source , float opacity )
public static Vector4 HardLightClear ( Vector4 backdrop , Vector4 source , float opacity )
{
{
opacity = opacity . Clamp ( 0 , 1 ) ;
DebugGuard . MustBeBetweenOrEqualTo ( opacity , 0 , 1 , nameof ( opacity ) ) ;
source . W * = opacity ;
source . W * = opacity ;
return Clear ( backdrop , source ) ;
return Clear ( backdrop , source ) ;