ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
color.cpp
Go to the documentation of this file.
2
3namespace esphome {
4
5// C++20 constinit ensures compile-time initialization (stored in ROM)
6constinit const Color Color::BLACK(0, 0, 0, 0);
7constinit const Color Color::WHITE(255, 255, 255, 255);
8
9Color Color::gradient(const Color &to_color, uint8_t amnt) {
10 uint8_t inv = 255 - amnt;
11 Color new_color;
12 new_color.r = (uint16_t(this->r) * inv + uint16_t(to_color.r) * amnt) / 255;
13 new_color.g = (uint16_t(this->g) * inv + uint16_t(to_color.g) * amnt) / 255;
14 new_color.b = (uint16_t(this->b) * inv + uint16_t(to_color.b) * amnt) / 255;
15 new_color.w = (uint16_t(this->w) * inv + uint16_t(to_color.w) * amnt) / 255;
16 return new_color;
17}
18
19Color Color::fade_to_white(uint8_t amnt) { return this->gradient(Color::WHITE, amnt); }
20
21Color Color::fade_to_black(uint8_t amnt) { return this->gradient(Color::BLACK, amnt); }
22
23} // namespace esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
Color fade_to_white(uint8_t amnt)
Definition color.cpp:19
uint8_t w
Definition color.h:42
uint8_t g
Definition color.h:34
Color fade_to_black(uint8_t amnt)
Definition color.cpp:21
Color gradient(const Color &to_color, uint8_t amnt)
Definition color.cpp:9
uint8_t b
Definition color.h:38
static const Color WHITE
Definition color.h:185
uint8_t r
Definition color.h:30
static const Color BLACK
Definition color.h:184