|
FastLED 3.10.6
|
| bool fl::anonymous_namespace{gamut_map.cpp.hpp}::feasibleChromaInterval | ( | const i32(&) | lab[3], |
| i32 | lightness, | ||
| Feasible | feasible, | ||
| i32 * | out_low, | ||
| i32 * | out_high ) |
The feasible chroma interval at the target's own lightness, as factors of the target's chroma.
Above the brightest neutral the interval is still one run – that much is measured, on this device and on the wide ones – but it no longer contains zero (#4245). largestFeasibleChroma cannot find it: its bracket assumes a feasible low end, and starting infeasible it walks down to zero, which is the clamp this exists to avoid.
So the seed comes first, by a linear scan, and only then are the two edges bisected. Returns false when no probe lands inside, which is the caller's signal to keep the shipped clamp-then-bisect path – the reason this is never worse than what it replaces.
Definition at line 187 of file gamut_map.cpp.hpp.
References chromaCandidateXyz(), feasibleChromaInterval(), fl::FL_NO_EXCEPT, fl::kGamutMapHalvings, kGamutMapProbes, kGamutProbeCeilingQ16, and fl::step().
Referenced by feasibleChromaInterval(), and highestReachableLightness().
Here is the call graph for this function:
Here is the caller graph for this function: