3 static f32 hue_to_rgb(f32 p, f32 q, f32 t)
12 return p + (q - p) * 6.0f * t;
18 return p + (q - p) * (2.0f / 3.0f - t) * 6.0f;
23 v3f32 hsl_to_rgb(v3f32 hsl)
28 rgb = (v3f32) {hsl.z, hsl.z, hsl.z};
30 f32 q = hsl.z < 0.5f ? hsl.z * (1.0f + hsl.y) : hsl.z + hsl.y - hsl.z * hsl.y;
31 f32 p = 2.0f * hsl.z - q;
33 rgb.x = hue_to_rgb(p, q, hsl.x + 1.0f / 3.0f);
34 rgb.y = hue_to_rgb(p, q, hsl.x);
35 rgb.z = hue_to_rgb(p, q, hsl.x - 1.0f / 3.0f);