MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / FromHex

Method FromHex

Source/Engine/Core/Math/Color.cpp:35–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33}
34
35Color Color::FromHex(const String& hex, bool& isValid)
36{
37 int32 r, g, b, a = 255;
38 isValid = true;
39 int32 startIndex = !hex.IsEmpty() && hex[0] == Char('#') ? 1 : 0;
40 if (hex.Length() == 3 + startIndex)
41 {
42 r = StringUtils::HexDigit(hex[startIndex++]);
43 g = StringUtils::HexDigit(hex[startIndex++]);
44 b = StringUtils::HexDigit(hex[startIndex]);
45
46 r = (r << 4) + r;
47 g = (g << 4) + g;
48 b = (b << 4) + b;
49 }
50 else if (hex.Length() == 6 + startIndex)
51 {
52 r = (StringUtils::HexDigit(hex[startIndex + 0]) << 4) + StringUtils::HexDigit(hex[startIndex + 1]);
53 g = (StringUtils::HexDigit(hex[startIndex + 2]) << 4) + StringUtils::HexDigit(hex[startIndex + 3]);
54 b = (StringUtils::HexDigit(hex[startIndex + 4]) << 4) + StringUtils::HexDigit(hex[startIndex + 5]);
55 }
56 else if (hex.Length() == 8 + startIndex)
57 {
58 r = (StringUtils::HexDigit(hex[startIndex + 0]) << 4) + StringUtils::HexDigit(hex[startIndex + 1]);
59 g = (StringUtils::HexDigit(hex[startIndex + 2]) << 4) + StringUtils::HexDigit(hex[startIndex + 3]);
60 b = (StringUtils::HexDigit(hex[startIndex + 4]) << 4) + StringUtils::HexDigit(hex[startIndex + 5]);
61 a = (StringUtils::HexDigit(hex[startIndex + 6]) << 4) + StringUtils::HexDigit(hex[startIndex + 7]);
62 }
63 else
64 {
65 r = g = b = 0;
66 isValid = false;
67 }
68 return FromBytes(r, g, b, a);
69}
70
71Color Color::FromHSV(float hue, float saturation, float value, float alpha)
72{

Callers 1

TestHexConversionMethod · 0.45

Calls 2

IsEmptyMethod · 0.45
LengthMethod · 0.45

Tested by 1

TestHexConversionMethod · 0.36