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

Classes

struct  EmitterProfile
 
struct  LutTable
 
struct  ProfileCache
 
struct  RgbcctProfile
 
struct  RgbColorimetricCache
 

Typedefs

using RgbColorimetricProfile
 

Enumerations

enum class  LutInterp
 

Functions

bool barycentric_xy (const float t[2], const float A[2], const float B[2], const float C[2], float bary[3]) FL_NO_EXCEPT
 
LutTable build_lut (const ProfileCache &cache, int grid_n) FL_NO_EXCEPT
 
LutTable build_lut (const ProfileCache &cache, int grid_n, LutInterp interp) FL_NO_EXCEPT
 
void build_profile_cache (const DiodeProfile *p, int cct_override, ProfileCache *cache) FL_NO_EXCEPT
 
void build_profile_cache (const DiodeProfile *p, ProfileCache *cache) FL_NO_EXCEPT
 
bool build_rgb_colorimetric_cache (const EmitterProfile &p, RgbColorimetricCache *cache) FL_NO_EXCEPT
 
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_NO_EXCEPT
 
void cct_to_xy (int cct, float out[2]) FL_NO_EXCEPT
 
int count_active_channels (float s_r, float s_g, float s_b) FL_NO_EXCEPT
 
void hermite_basis (float t, float out[4]) FL_NO_EXCEPT
 
bool invert3x3 (const float in[3][3], float out[3][3]) FL_NO_EXCEPT
 
bool is_native_input_gamut (const DiodeProfile &p) FL_NO_EXCEPT
 
void lookup_lut (const LutTable &lut, const float xy_t[2], float source_value, float out_rgbw[4]) FL_NO_EXCEPT
 
void matvec3 (const float M[3][3], const float v[3], float out[3]) FL_NO_EXCEPT
 
void nnls3 (const float M[3][3], const float b[3], float t_out[3], float *residual_out) FL_NO_EXCEPT
 
i16 quantize_lut_cell (float v) FL_NO_EXCEPT
 
u8 quantize_u8 (float v) FL_NO_EXCEPT
 
void rgb_source_to_XYZ (const RgbColorimetricCache &cache, float s_r, float s_g, float s_b, float X_t[3]) FL_NO_EXCEPT
 
float rgbcct_eta_for_cct (int target_cct, int warm_cct, int cool_cct) FL_NO_EXCEPT
 
bool solve_rgb_colorimetric (const RgbColorimetricCache &cache, float s_r, float s_g, float s_b, float out_rgb[3]) FL_NO_EXCEPT
 
void solve_rgbcct (const RgbcctProfile &profile, float s_r, float s_g, float s_b, float eta, float out[5]) FL_NO_EXCEPT
 
bool solve_strict_subgamut (const ProfileCache &cache, float s_r, float s_g, float s_b, float out_rgbw[4]) FL_NO_EXCEPT
 
bool solve_strict_subgamut_xy (const ProfileCache &cache, const float xy_t[2], float source_value, float out_rgbw[4]) FL_NO_EXCEPT
 
bool solve_wx_lp_legacy (const ProfileCache &cache, float s_r, float s_g, float s_b, float out_rgbw[4]) FL_NO_EXCEPT
 
void solve_wx_overdrive (const ProfileCache &cache, float s_r, float s_g, float s_b, float overdrive_ratio, float out_rgbw[4]) FL_NO_EXCEPT
 
void xyY_to_XYZ (float x, float y, float Y, float out[3]) FL_NO_EXCEPT
 

Variables

constexpr float kDefaultOverdriveRatio = 0.5f
 
constexpr i16 kLutQ = colorimetric_response::kLutQ
 
constexpr int kLutStrideBilinear = colorimetric_response::kLutStrideBilinear
 
constexpr int kLutStrideHermite = colorimetric_response::kLutStrideHermite