162 : (
static_cast<unsigned long>(
163 grid_n < 4 ? 4 : (grid_n > 256 ? 256 : grid_n))
164 *
static_cast<unsigned long>(
165 grid_n < 4 ? 4 : (grid_n > 256 ? 256 : grid_n))
191 num_of_rgbw_pixels = (num_of_rgbw_pixels * 4 + 2) / 3;
192 u32 extra = num_of_rgbw_pixels % 3 ? 1 : 0;
193 num_of_rgbw_pixels += extra;
194 return num_of_rgbw_pixels;
233 u8 g_scale,
u8 b_scale,
234 u8 *out_r,
u8 *out_g,
235 u8 *out_b,
u8 *out_w);
251 u8 b,
u8 r_scale,
u8 g_scale,
252 u8 b_scale,
u8 *out_r,
u8 *out_g,
265 u8 g_scale,
u8 b_scale,
u8 *out_r,
275 u8 g_scale,
u8 b_scale,
276 u8 *out_r,
u8 *out_g,
u8 *out_b,
282 u8 g_scale,
u8 b_scale,
u8 *out_r,
287 u8 g_scale,
u8 b_scale,
u8 *out_r,
298 u8 g_scale,
u8 b_scale,
u8 *out_r,
308 u8 g_scale,
u8 b_scale,
u8 *out_r,
318 u8 b,
u8 r_scale,
u8 g_scale,
u8 b_scale,
324 g_scale, b_scale, out_r, out_g, out_b,
329 b_scale, out_r, out_g, out_b, out_w);
333 b_scale, out_r, out_g, out_b, out_w);
337 g_scale, b_scale, out_r, out_g, out_b, out_w);
341 b_scale, out_r, out_g, out_b, out_w);
345 b_scale, out_r, out_g, out_b, out_w);
349 g_scale, b_scale, out_r, out_g, out_b,
354 b_scale, out_r, out_g, out_b, out_w);
358template <RGBW_MODE MODE>
361 u8 r_scale,
u8 g_scale,
u8 b_scale,
u8 *out_r,
364 rgb_2_rgbw(MODE, w_color_temperature, r, g, b, r_scale, g_scale, b_scale,
365 out_r, out_g, out_b, out_w);
#define constexpr
Declares that it is possible to evaluate a value at compile time, introduced in C++11.
void rgbw_partial_reorder(EOrderW w_placement, u8 b0, u8 b1, u8 b2, u8 w, u8 *out_b0, u8 *out_b1, u8 *out_b2, u8 *out_b3)
bool rgbw_colorimetric_lut_enabled() FL_NOEXCEPT
void rgb_2_rgbw_colorimetric_boosted(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) FL_NOEXCEPT
FASTLED_FORCE_INLINE void rgb_2_rgbw(RGBW_MODE mode, u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) FL_NOEXCEPT
Converts RGB to RGBW using one of the functions.
const DiodeProfile kRgbwDefaultProfile
void set_rgbw_colorimetric_profile(const DiodeProfile *profile) FL_NOEXCEPT
const DiodeProfile * get_rgbw_colorimetric_profile() FL_NOEXCEPT
@ kRGBWColorimetricBoosted
void(* rgb_2_rgbw_function)(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
void rgb_2_rgbw_exact(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
Converts RGB to RGBW using a color transfer method from saturated color channels to white.
void rgb_2_rgbw_null_white_pixel(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
Converts RGB to RGBW with the W channel set to black, always.
void disable_rgbw_colorimetric_lut() FL_NOEXCEPT
void rgb_2_rgbw_user_function(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
constexpr unsigned long rgbw_colorimetric_lut_memory_bytes(int grid_n, RgbwLutInterp interp) FL_NOEXCEPT
void rgb_2_rgbw_white_boosted(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
Converts RGB to RGBW with a boosted white channel.
bool enable_rgbw_colorimetric_lut(int, RgbwLutInterp) FL_NOEXCEPT
void set_rgb_2_rgbw_function(rgb_2_rgbw_function func)
void rgb_2_rgbw_colorimetric(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) FL_NOEXCEPT
void set_input_gamut(DiodeProfile *profile, InputGamut g, const float white_xy[2]) FL_NOEXCEPT
void rgb_2_rgbw_max_brightness(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w)
The minimum brigthness of the RGB channels is used to set the W channel.
Base definition for an LED controller.
#define FASTLED_FORCE_INLINE
static u32 size_as_rgb(u32 num_of_rgbw_pixels) FL_NOEXCEPT
Rgbw(u16 white_color_temp=fl::kRGBWDefaultColorTemp, fl::RGBW_MODE rgbw_mode=fl::RGBW_MODE::kRGBWExactColors, fl::EOrderW _w_placement=EOrderW::WDefault) FL_NOEXCEPT
FASTLED_FORCE_INLINE bool active() const FL_NOEXCEPT
RgbwDefault() FL_NOEXCEPT
static Rgbw value() FL_NOEXCEPT
RgbwInvalid() FL_NOEXCEPT
static Rgbw value() FL_NOEXCEPT
RgbwWhiteIsOff() FL_NOEXCEPT
static Rgbw value() FL_NOEXCEPT