FastLED 3.9.15
Loading...
Searching...
No Matches
fl::colorimetric_detail Namespace Reference

Classes

struct  LutTable
 
struct  ProfileCache
 
struct  RgbcctProfile
 

Enumerations

enum class  LutInterp : u8 { Bilinear = 0 , Hermite = 1 }
 

Functions

bool barycentric_xy (const float t[2], const float A[2], const float B[2], const float C[2], float bary[3]) FL_NOEXCEPT
 
LutTable build_lut (const ProfileCache &cache, int grid_n) FL_NOEXCEPT
 
LutTable build_lut (const ProfileCache &cache, int grid_n, LutInterp interp) FL_NOEXCEPT
 
void build_profile_cache (const DiodeProfile *p, int cct_override, ProfileCache *cache) FL_NOEXCEPT
 
void build_profile_cache (const DiodeProfile *p, ProfileCache *cache) FL_NOEXCEPT
 
bool build_source_matrix (const float xy_r[2], const float xy_g[2], const float xy_b[2], const float xy_w[2], float M_out[3][3]) FL_NOEXCEPT
 
void cct_to_xy (int cct, float out[2]) FL_NOEXCEPT
 
int count_active_channels (float s_r, float s_g, float s_b) FL_NOEXCEPT
 
void hermite_basis (float t, float out[4]) FL_NOEXCEPT
 
bool invert3x3 (const float in[3][3], float out[3][3]) FL_NOEXCEPT
 
bool is_native_input_gamut (const DiodeProfile &p) FL_NOEXCEPT
 
void lookup_lut (const LutTable &lut, const float xy_t[2], float Y_t, float out_rgbw[4]) FL_NOEXCEPT
 
void matvec3 (const float M[3][3], const float v[3], float out[3]) FL_NOEXCEPT
 
void nnls3 (const float M[3][3], const float b[3], float t_out[3], float *residual_out) FL_NOEXCEPT
 
i16 quantize_lut_cell (float v) FL_NOEXCEPT
 
u8 quantize_u8 (float v) FL_NOEXCEPT
 
float rgbcct_eta_for_cct (int target_cct, int warm_cct, int cool_cct) FL_NOEXCEPT
 
void solve_rgbcct (const RgbcctProfile &profile, float s_r, float s_g, float s_b, float eta, float out[5]) FL_NOEXCEPT
 
bool solve_strict_subgamut (const ProfileCache &cache, float s_r, float s_g, float s_b, float out_rgbw[4]) FL_NOEXCEPT
 
bool solve_strict_subgamut_xy (const ProfileCache &cache, const float xy_t[2], float Y_t, float out_rgbw[4]) FL_NOEXCEPT
 
bool solve_wx_lp_legacy (const ProfileCache &cache, float s_r, float s_g, float s_b, float out_rgbw[4]) FL_NOEXCEPT
 
void solve_wx_overdrive (const ProfileCache &cache, float s_r, float s_g, float s_b, float overdrive_ratio, float out_rgbw[4]) FL_NOEXCEPT
 
void xyY_to_XYZ (float x, float y, float Y, float out[3]) FL_NOEXCEPT
 

Variables

constexpr float kDefaultOverdriveRatio = 0.5f
 
constexpr i16 kLutQ = 4096
 
constexpr int kLutStrideBilinear = 4
 
constexpr int kLutStrideHermite = 12