1 // Copyright (c) 2023 Takashi Sawanaka
2 // SPDX-License-Identifier: BSL-1.0
10 CEColor() : m_value(0) {}
11 CEColor(uint32_t value) : m_value(value) {}
12 CEColor(uint8_t r, uint8_t g, uint8_t b) : m_value((b << 16) | (g << 8) | r) {}
13 inline uint8_t GetBVal() const { return (m_value >> 16 & 0xff); }
14 inline uint8_t GetGVal() const { return (m_value >> 8) & 0xff; }
15 inline uint8_t GetRVal() const { return (m_value) & 0xff; }
16 inline operator uint32_t() const { return m_value; }
17 static CEColor GetDarkenColor(CEColor a, float l)
19 const uint8_t R = static_cast<uint8_t>(a.GetRVal() * l);
20 const uint8_t G = static_cast<uint8_t>(a.GetGVal() * l);
21 const uint8_t B = static_cast<uint8_t>(a.GetBVal() * l);
24 static CEColor GetIntermediateColor(CEColor a, CEColor b, float ratio)
26 const uint8_t R = static_cast<uint8_t>((a.GetRVal() - b.GetRVal()) * ratio) + b.GetRVal();
27 const uint8_t G = static_cast<uint8_t>((a.GetGVal() - b.GetGVal()) * ratio) + b.GetGVal();
28 const uint8_t B = static_cast<uint8_t>((a.GetBVal() - b.GetBVal()) * ratio) + b.GetBVal();