Added constructor and conversion between linear space and sRGB
parent
640cde1653
commit
7664594b8e
|
@ -106,6 +106,9 @@ struct IntColor : glm::u8vec4
|
||||||
//! Constructor; default values are (0,0,0,0) = black
|
//! Constructor; default values are (0,0,0,0) = black
|
||||||
explicit IntColor(unsigned char aR = 0, unsigned char aG = 0, unsigned char aB = 0, unsigned char aA = 0)
|
explicit IntColor(unsigned char aR = 0, unsigned char aG = 0, unsigned char aB = 0, unsigned char aA = 0)
|
||||||
: glm::u8vec4(aR, aG, aB, aA) {}
|
: glm::u8vec4(aR, aG, aB, aA) {}
|
||||||
|
|
||||||
|
explicit IntColor(const glm::u8vec4& color)
|
||||||
|
: glm::u8vec4(color) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
inline Color IntColorToColor(IntColor color)
|
inline Color IntColorToColor(IntColor color)
|
||||||
|
@ -156,6 +159,29 @@ ColorHSV RGB2HSV(Color color);
|
||||||
//! Converts a HSV color to RGB color
|
//! Converts a HSV color to RGB color
|
||||||
Color HSV2RGB(ColorHSV color);
|
Color HSV2RGB(ColorHSV color);
|
||||||
|
|
||||||
|
inline Color ToSRGB(const Color& color)
|
||||||
|
{
|
||||||
|
Color result;
|
||||||
|
|
||||||
|
result.r = pow(color.r, 2.2);
|
||||||
|
result.g = pow(color.g, 2.2);
|
||||||
|
result.b = pow(color.b, 2.2);
|
||||||
|
result.a = color.a;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Color ToLinear(const Color& color)
|
||||||
|
{
|
||||||
|
Color result;
|
||||||
|
|
||||||
|
result.r = pow(color.r, 1.0 / 2.2);
|
||||||
|
result.g = pow(color.g, 1.0 / 2.2);
|
||||||
|
result.b = pow(color.b, 1.0 / 2.2);
|
||||||
|
result.a = color.a;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Gfx
|
} // namespace Gfx
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue