Color module¶
This module provides utility functions for working with colors, including color conversion, color manipulation, and random color generation. It supports both float4 (linear, sRGB, and HSVA color spaces) and uint (0xAARRGGBB) color formats.
To add this module to your project, add the following line to your project file:
require engine.math.color_utils // or require engine.core
Constants¶
- BLACK_COLOR = float4(0f, 0f, 0f, 1f)¶
Black color
- WHITE_COLOR = float4(1f, 1f, 1f, 1f)¶
White color
- CLEAR_COLOR = float4(0f, 0f, 0f, 0f)¶
Clear color, alpha = 0
- RED_COLOR = float4(1f, 0f, 0f, 1f)¶
Red color
- GREEN_COLOR = float4(0f, 1f, 0f, 1f)¶
Green color
- BLUE_COLOR = float4(0f, 0f, 1f, 1f)¶
Blue color
- YELLOW_COLOR = float4(1f, 0.92f, 0.016f, 1f)¶
Yellow color
- CYAN_COLOR = float4(0f, 1f, 1f, 1f)¶
Cyan color
- MAGENTA_COLOR = float4(1f, 0f, 1f, 1f)¶
Magenta color
- GRAY_COLOR = float4(0.5f, 0.5f, 0.5f, 1f)¶
Gray color
- LIGHT_GRAY_COLOR = float4(0.75f, 0.75f, 0.75f, 1f)¶
Light gray color
- DARK_GRAY_COLOR = float4(0.25f, 0.25f, 0.25f, 1f)¶
Dark gray color
Functions¶
- add_color32(a: uint; b: uint): uint¶
Adds two color32 values together.
- Arguments:
a : uint
b : uint
- color32_to_float4(color: uint): float4¶
Converts a uint color32 to a float4.
- Arguments:
color : uint
- desaturate(color: float4): float4¶
Desaturates a color.
- Arguments:
color : float4
- desaturate(color: float4; amount: float): float4
Desaturates a color by a given amount.
- Arguments:
color : float4
amount : float
- desaturate(color: uint): uint
Desaturates a color.
- Arguments:
color : uint
- desaturate(color: uint; amount: float): uint
Desaturates a color by a given amount.
- Arguments:
color : uint
amount : float
- float4_to_color32(color: float4): uint¶
Converts a float4 ‘color’ to a uint color32.
- Arguments:
color : float4
- float4_to_color32(r: float; g: float; b: float; a: float = 1f): uint
Converts a float4 ‘color’ to a uint color32.
- Arguments:
r : float
g : float
b : float
a : float
- get_random_color(hsv_min: float3 = float3(0f, 0.2f, 0.35f); hsv_max: float3 = float3(1f, 1f, 1f)): float4¶
Returns a random color in the given HSV range.
- Arguments:
hsv_min : float3
hsv_max : float3
- get_random_color32(hsv_min: float3 = float3(0f, 0.2f, 0.35f); hsv_max: float3 = float3(1f, 1f, 1f)): uint¶
Returns a random color.
- Arguments:
hsv_min : float3
hsv_max : float3
- hsv_to_rgb(h: float; s: float; v: float; alpha: float = 1f): float4¶
Converts an HSV color to RGB color space.
- Arguments:
h : float
s : float
v : float
alpha : float
- hsv_to_rgb(hsv: float3; alpha: float = 1f): float4
Converts an HSV color to RGB color space.
- Arguments:
hsv : float3
alpha : float
- hsv_to_rgb(hsva: float4): float4
Converts an HSVA color to RGBA color space.
- Arguments:
hsva : float4
- lerp_color32(a: uint; b: uint; t: float): uint¶
Linearly interpolates between two color32 values.
- Arguments:
a : uint
b : uint
t : float
- linear_to_srgb(color: float4): float4¶
Converts a linear color to sRGB color space.
- Arguments:
color : float4
- linear_to_srgb(color: uint): uint
Converts a linear color to sRGB color space.
- Arguments:
color : uint
- make_color32(r: int; g: int; b: int; a: int): uint¶
Makes a color32 from the given arguments.
- Arguments:
r : int
g : int
b : int
a : int
- mul_color32(a: uint; b: float): uint¶
Multiplies a color32 value by a scalar.
- Arguments:
a : uint
b : float
- mul_color32(a: uint; b: uint): uint
Multiplies two color32 values together.
- Arguments:
a : uint
b : uint
- premultiply_alpha(color: float4): float4¶
Premultiplies the alpha channel of a color.
- Arguments:
color : float4
- premultiply_alpha(color: uint): uint
Premultiplies the alpha channel of a color.
- Arguments:
color : uint
- rgb_to_hsv(rgb: float4): float3¶
Converts an RGB color to HSV color space. HSV stands for Hue, Saturation, Value. In the returned value, field x represents hue, or the position in the spectrum; y - saturation, the color saturation, z - value, the color brightness.
- Arguments:
rgb : float4
- rgb_to_hsva(rgba: float4): float4¶
Converts an RGBA color to HSVA color space. Note that in the returned value field w represents the alpha channel.
- Arguments:
rgba : float4
- rgb_to_hsva(rgba: uint): float4
Converts an RGBA color to HSVA color space. Note that in the returned value field w represents the alpha channel.
- Arguments:
rgba : uint
- srgb_to_linear(color: float4): float4¶
Converts an sRGB color to linear color space.
- Arguments:
color : float4
- srgb_to_linear(color: uint): uint
Converts an sRGB color to linear color space.
- Arguments:
color : uint
- sub_color32(a: uint; b: uint): uint¶
Subtracts one color32 value from another.
- Arguments:
a : uint
b : uint