ColorOp

Description

[SemanticEnum]
enum Tinman.Core.Util.ColorOp

Enumeration of color operations.

Public / Constants

Add

public constant Add → (0:int32)

Adds the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := min(first + second, 1);
See also

Colors.Add

Blend

public constant Blend → (1:int32)

Blends the color values according to their alpha channel values (second over first).

The following computations are performed, assuming color channel values in the range [0..1]:

temp       := first.a * (1 - second.a)
result.a   := second.a + temp
result.rgb := (first.rgb * temp + second.rgb * second.a) / result.a;

When the first color is opaque, the computation reduces to this:

result.a   := 1
result.rgb := first.rgb * (1 - second.a) + second.rgb * second.a;
See also

Colors.Blend

Mul

public constant Mul → (2:int32)

Multiplies the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := first * second;
See also

Colors.Mul2

Sub

public constant Sub → (3:int32)

Subtracts the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := max(first - second, 0);
See also

Colors.Sub