31constexpr NATIVE_COLOR
color_to_bwyr(
Color color, NATIVE_COLOR hw_black, NATIVE_COLOR hw_white, NATIVE_COLOR hw_yellow,
32 NATIVE_COLOR hw_red) {
37 const auto [min_rgb, max_rgb] = std::minmax({color.
r, color.
g, color.
b});
39 if ((max_rgb - min_rgb) < COLORCONV_GRAY_THRESHOLD) {
42 if ((
static_cast<int>(color.
r) + color.
g + color.
b) > 382) {
51 const bool r_on = (color.
r > 128);
52 const bool g_on = (color.
g > 128);
53 const bool b_on = (color.
b > 128);
57 return g_on ? hw_yellow : hw_red;
63 return (b_on && g_on) ? hw_white : hw_black;