124FL_DEPRECATED(
"Pass the profile by reference: set_input_gamut(profile, g, white_xy)")
198 : (
static_cast<unsigned long>(
199 grid_n < 4 ? 4 : (grid_n > 256 ? 256 : grid_n))
200 *
static_cast<unsigned long>(
201 grid_n < 4 ? 4 : (grid_n > 256 ? 256 : grid_n))
221 const
u8 (&premix)[3], const
u8 (&order)[3],
267 num_of_rgbw_pixels = (num_of_rgbw_pixels * 4 + 2) / 3;
268 u32 extra = num_of_rgbw_pixels % 3 ? 1 : 0;
269 num_of_rgbw_pixels += extra;
270 return num_of_rgbw_pixels;
314 u8 g_scale,
u8 b_scale,
315 u8 *out_r,
u8 *out_g,
316 u8 *out_b,
u8 *out_w);
332 u8 b,
u8 r_scale,
u8 g_scale,
333 u8 b_scale,
u8 *out_r,
u8 *out_g,
346 u8 g_scale,
u8 b_scale,
u8 *out_r,
356 u8 g_scale,
u8 b_scale,
357 u8 *out_r,
u8 *out_g,
u8 *out_b,
363 u8 g_scale,
u8 b_scale,
u8 *out_r,
368 u8 g_scale,
u8 b_scale,
u8 *out_r,
379 u8 g_scale,
u8 b_scale,
u8 *out_r,
383 u8 g_scale,
u8 b_scale,
u8 *out_r,
393 u8 g_scale,
u8 b_scale,
u8 *out_r,
397 u8 g_scale,
u8 b_scale,
u8 *out_r,
407 u8 b,
u8 r_scale,
u8 g_scale,
u8 b_scale,
409 switch (cfg.rgbw_mode) {
413 g_scale, b_scale, out_r, out_g, out_b,
418 b_scale, out_r, out_g, out_b, out_w);
422 b_scale, out_r, out_g, out_b, out_w);
426 g_scale, b_scale, out_r, out_g, out_b, out_w);
430 b_scale, out_r, out_g, out_b, out_w);
434 b_scale, out_r, out_g, out_b, out_w);
438 g_scale, b_scale, out_r, out_g, out_b,
443 b_scale, out_r, out_g, out_b, out_w);
448 u8 b,
u8 r_scale,
u8 g_scale,
u8 b_scale,
454 cfg.rgbw_mode = mode;
455 rgb_2_rgbw(cfg, r,
g, b, r_scale, g_scale, b_scale, out_r, out_g, out_b,
460template <RGBW_MODE MODE>
463 u8 r_scale,
u8 g_scale,
u8 b_scale,
u8 *out_r,
466 rgb_2_rgbw(MODE, w_color_temperature, r,
g, b, r_scale, g_scale, b_scale,
467 out_r, out_g, out_b, out_w);
#define FASTLED_FORCE_INLINE
#define FL_DEPRECATED(msg)
#define constexpr
Declares that it is possible to evaluate a value at compile time, introduced in C++11.
void(*)(const Rgbw &rgbw, const u8(&raw)[3], const u8(&premix)[3], const u8(&order)[3], u8 *b0, u8 *b1, u8 *b2, u8 *b3) RgbwConvertFn
Per-pixel RGBW conversion: raw source-order RGB + premixed scale -> 4 wire bytes.
void enable_rgbw_conversion() FL_NO_EXCEPT
Installs the RGBW pixel conversion used by PixelIterator.
RgbwConvertFn rgbw_conversion() FL_NO_EXCEPT
Null until enable_rgbw_conversion() has run.
Compile-time linker keep-alive hook for a single fl::Bus.
Tag for constructing an inactive Rgbw without linking the RGBW encoder.
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) FL_NO_EXCEPT
u8 u8 fract8 blur_amount FL_NO_EXCEPT
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) FL_NO_EXCEPT
Converts RGB to RGBW with the W channel set to black, always.
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_NO_EXCEPT
constexpr unsigned long rgbw_colorimetric_lut_memory_bytes(int grid_n, RgbwLutInterp interp) FL_NO_EXCEPT
const DiodeProfile kRgbwDefaultProfile
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) FL_NO_EXCEPT
void prepare_rgbw_colorimetric(const Rgbw &) FL_NO_EXCEPT
FASTLED_FORCE_INLINE void rgb_2_rgbw(const Rgbw &cfg, 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_NO_EXCEPT
Converts RGB to RGBW using one of the functions.
fl::shared_ptr< const DiodeProfile > make_diode_profile(const DiodeProfile &profile) FL_NO_EXCEPT
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) FL_NO_EXCEPT
Converts RGB to RGBW using a color transfer method from saturated color channels to white.
bool rgbw_colorimetric_lut_enabled() FL_NO_EXCEPT
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 disable_rgbw_colorimetric_lut() FL_NO_EXCEPT
const DiodeProfile * get_rgbw_colorimetric_profile() FL_NO_EXCEPT
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) FL_NO_EXCEPT
The minimum brigthness of the RGB channels is used to set the W channel.
void set_rgbw_colorimetric_profile(const DiodeProfile *profile) FL_NO_EXCEPT
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_NO_EXCEPT
@ kRGBWColorimetricBoosted
void set_input_gamut(DiodeProfile &profile_ref, InputGamut g, const float *white_xy) FL_NO_EXCEPT
bool enable_rgbw_colorimetric_lut(int, RgbwLutInterp) FL_NO_EXCEPT
void set_rgb_2_rgbw_function(rgb_2_rgbw_function func) FL_NO_EXCEPT
FL_DEPRECATED("Pass the profile by reference: set_input_gamut(profile, g)") void set_input_gamut(DiodeProfile *profile
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) FL_NO_EXCEPT
Converts RGB to RGBW with a boosted white channel.
Base definition for an LED controller.
Rgbw(u16 white_color_temp, fl::RGBW_MODE rgbw_mode, fl::EOrderW _w_placement, const DiodeProfile &_profile, fl::InputGamut input_gamut) FL_NO_EXCEPT
static u32 size_as_rgb(u32 num_of_rgbw_pixels) FL_NO_EXCEPT
FASTLED_FORCE_INLINE bool active() const FL_NO_EXCEPT
fl::shared_ptr< const DiodeProfile > profile
Optional override for the diode profile used by colorimetric modes.
Rgbw(detail::RgbwNoEncoder) FL_NO_EXCEPT
Inactive value that does not link the RGBW encoder (RgbwInvalid).
Rgbw(u16 white_color_temp=fl::kRGBWDefaultColorTemp, fl::RGBW_MODE rgbw_mode=fl::RGBW_MODE::kRGBWExactColors, fl::EOrderW _w_placement=EOrderW::WDefault, fl::shared_ptr< const DiodeProfile > _profile=fl::shared_ptr< const DiodeProfile >()) FL_NO_EXCEPT
static Rgbw value() FL_NO_EXCEPT
RgbwDefault() FL_NO_EXCEPT
static Rgbw value() FL_NO_EXCEPT
RgbwInvalid() FL_NO_EXCEPT
static Rgbw value() FL_NO_EXCEPT
RgbwWhiteIsOff() FL_NO_EXCEPT