FastLED 3.9.15
Loading...
Searching...
No Matches
rgbw.h File Reference

Detailed Description

Functions for red, green, blue, white (RGBW) output.

Definition in file rgbw.h.

#include "fl/stl/stdint.h"
#include "eorder.h"
#include "fl/stl/compiler_control.h"
#include "fl/stl/noexcept.h"
+ Include dependency graph for rgbw.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::DiodeProfile
 
struct  fl::Rgbw
 
struct  fl::RgbwDefault
 
struct  fl::RgbwInvalid
 
struct  fl::RgbwWhiteIsOff
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Typedefs

typedef void(* fl::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)
 

Enumerations

enum  { fl::kRGBWDefaultColorTemp = 6000 }
 
enum class  fl::InputGamut : u8 {
  fl::Native = 0 , fl::Rec709 , fl::Rec2020 , fl::DciP3D65 ,
  fl::DciP3D60
}
 
enum class  fl::RGBW_MODE {
  fl::kRGBWInvalid , fl::kRGBWNullWhitePixel , fl::kRGBWExactColors , fl::kRGBWBoostedWhite ,
  fl::kRGBWMaxBrightness , fl::kRGBWColorimetric , fl::kRGBWColorimetricBoosted , fl::kRGBWUserFunction
}
 
enum class  fl::RgbwLutInterp : u8 { fl::Bilinear = 0 , fl::Hermite = 1 }
 

Functions

void fl::disable_rgbw_colorimetric_lut () FL_NOEXCEPT
 
bool fl::enable_rgbw_colorimetric_lut (int) FL_NOEXCEPT
 
bool fl::enable_rgbw_colorimetric_lut (int, RgbwLutInterp) FL_NOEXCEPT
 
const DiodeProfilefl::get_rgbw_colorimetric_profile () FL_NOEXCEPT
 
FASTLED_FORCE_INLINE void fl::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.
 
template<RGBW_MODE MODE>
FASTLED_FORCE_INLINE void fl::rgb_2_rgbw (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 fl::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 fl::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
 
void fl::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_NOEXCEPT
 Converts RGB to RGBW using a color transfer method from saturated color channels to white.
 
void fl::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_NOEXCEPT
 The minimum brigthness of the RGB channels is used to set the W channel.
 
void fl::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_NOEXCEPT
 Converts RGB to RGBW with the W channel set to black, always.
 
void fl::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)
 
void fl::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_NOEXCEPT
 Converts RGB to RGBW with a boosted white channel.
 
bool fl::rgbw_colorimetric_lut_enabled () FL_NOEXCEPT
 
constexpr unsigned long fl::rgbw_colorimetric_lut_memory_bytes (int grid_n, RgbwLutInterp interp) FL_NOEXCEPT
 
void fl::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)
 
void fl::set_input_gamut (DiodeProfile *profile, InputGamut g) FL_NOEXCEPT
 
void fl::set_input_gamut (DiodeProfile *profile, InputGamut g, const float white_xy[2]) FL_NOEXCEPT
 
void fl::set_rgb_2_rgbw_function (rgb_2_rgbw_function func)
 
void fl::set_rgbw_colorimetric_profile (const DiodeProfile *profile) FL_NOEXCEPT
 

Class Documentation

◆ fl::DiodeProfile

struct fl::DiodeProfile
Class Members
float input_xy_b[2]
float input_xy_g[2]
float input_xy_r[2]
float input_xy_w[2]
float lum_b
float lum_g
float lum_r
float lum_w
int nominal_cct
float xy_b[2]
float xy_g[2]
float xy_r[2]
float xy_w[2]