#ifndef COLOR_H
#define COLOR_H

////////////////////////////////
// Color Functions

MR4TH_SYMBOL_STATIC V3F32 color_rgb_from_hsv(F32 h, F32 s, F32 v);
MR4TH_SYMBOL_STATIC V3F32 color_hsv_from_rgb(F32 r, F32 g, F32 b);

MR4TH_SYMBOL_STATIC U32   color_u32_from_v3f32(V3F32 rgb);
MR4TH_SYMBOL_STATIC U32   color_u32_from_v3f32_f32(V3F32 rgb, F32 a);
MR4TH_SYMBOL_STATIC U32   color_u32_from_v4f32(V4F32 rgba);

MR4TH_SYMBOL_STATIC U32   color_u32_from_4f32(F32 x0, F32 x1, F32 x2, F32 x3);
MR4TH_SYMBOL_STATIC V4F32 color_4f32_from_u32(U32 c);

MR4TH_SYMBOL_STATIC F32   color_linear_from_srgb_single(F32 x_srgb);
MR4TH_SYMBOL_STATIC F32   color_srgb_from_linear_single(F32 x_lin);

MR4TH_SYMBOL_STATIC U32   color_linear_from_srgb_u32(U32 srgb);
MR4TH_SYMBOL_STATIC U32   color_srgb_from_linear_u32(U32 lin);

#endif //COLOR_H
