|
|
|
@ -338,7 +338,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> NormalXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> NormalClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -883,7 +883,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> MultiplyXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> MultiplyClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -1428,7 +1428,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> AddXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> AddClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -1973,7 +1973,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> SubtractXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> SubtractClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -2518,7 +2518,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> ScreenXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> ScreenClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -3063,7 +3063,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> DarkenXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> DarkenClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -3608,7 +3608,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> LightenXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> LightenClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -4153,7 +4153,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> OverlayXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> OverlayClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
@ -4698,7 +4698,7 @@ internal static partial class PorterDuffFunctions |
|
|
|
/// <param name="opacity">The source opacity. Range 0..1</param>
|
|
|
|
/// <returns>The <see cref="Vector256{Single}"/>.</returns>
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|
|
|
public static Vector256<float> HardLightXor(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
public static Vector256<float> HardLightClear(Vector256<float> backdrop, Vector256<float> source, Vector256<float> opacity) |
|
|
|
=> Clear(backdrop, Avx.Blend(source, Avx.Multiply(source, opacity), BlendAlphaControl)); |
|
|
|
|
|
|
|
|
|
|
|
|