53 inline static _u::Color32
Convert(_u::Color p_Src)
56 (uint8_t)(p_Src.r * 255.0f),
57 (uint8_t)(p_Src.g * 255.0f),
58 (uint8_t)(p_Src.b * 255.0f),
59 (uint8_t)(p_Src.a * 255.0f)
69 *p_Color = _u::Color(0.0f, 0.0f, 0.0f, 1.0f);
73 auto l_Length = strlen(p_Src);
77 auto l_Offset = p_Src[0] ==
'#' ? 1 : 0;
78 auto l_R = (ConvertSingleByte(p_Src, l_Length, l_Offset + 0) << 4) | ConvertSingleByte(p_Src, l_Length, l_Offset + 1);
79 auto l_G = (ConvertSingleByte(p_Src, l_Length, l_Offset + 2) << 4) | ConvertSingleByte(p_Src, l_Length, l_Offset + 3);
80 auto l_B = (ConvertSingleByte(p_Src, l_Length, l_Offset + 4) << 4) | ConvertSingleByte(p_Src, l_Length, l_Offset + 5);
83 if ((l_Length - l_Offset) > 6)
84 l_A = (ConvertSingleByte(p_Src, l_Length, l_Offset + 6) << 4) | ConvertSingleByte(p_Src, l_Length, l_Offset + 7);
86 *p_Color =
Convert(_u::Color32((uint8_t)l_R, (uint8_t)l_G, (uint8_t)l_B, (uint8_t)l_A));
102 inline static std::u16string
ToHexRGB(_u::Color p_Color)
104 static const char16_t s_IntToHex[16] = { u
'0', u
'1', u
'2', u
'3', u
'4', u
'5', u
'6', u
'7', u
'8', u
'9', u
'A', u
'B', u
'C', u
'D', u
'E', u
'F' };
106 auto l_Color32 =
Convert(p_Color);
107 return std::u16string(
110 s_IntToHex[(l_Color32.r >> 4) & 0xF],
111 s_IntToHex[(l_Color32.r >> 0) & 0xF],
112 s_IntToHex[(l_Color32.g >> 4) & 0xF],
113 s_IntToHex[(l_Color32.g >> 0) & 0xF],
114 s_IntToHex[(l_Color32.b >> 4) & 0xF],
115 s_IntToHex[(l_Color32.b >> 0) & 0xF]
120 inline static std::u16string
ToHexRGBA(_u::Color p_Color)
122 static const char16_t s_IntToHex[16] = { u
'0', u
'1', u
'2', u
'3', u
'4', u
'5', u
'6', u
'7', u
'8', u
'9', u
'A', u
'B', u
'C', u
'D', u
'E', u
'F' };
124 auto l_Color32 =
Convert(p_Color);
125 return std::u16string(
128 s_IntToHex[(l_Color32.r >> 4) & 0xF],
129 s_IntToHex[(l_Color32.r >> 0) & 0xF],
130 s_IntToHex[(l_Color32.g >> 4) & 0xF],
131 s_IntToHex[(l_Color32.g >> 0) & 0xF],
132 s_IntToHex[(l_Color32.b >> 4) & 0xF],
133 s_IntToHex[(l_Color32.b >> 0) & 0xF],
134 s_IntToHex[(l_Color32.a >> 4) & 0xF],
135 s_IntToHex[(l_Color32.a >> 0) & 0xF]