FastLED 3.10.6
Loading...
Searching...
No Matches

◆ buildGamutMapRgbwwQ16()

bool fl::buildGamutMapRgbwwQ16 ( const colorimetric_response::EmitterProfile & profile,
const i32(&) white1_xyz[3],
const i32(&) white2_xyz[3],
WhiteAllocationPolicy policy,
GamutMapRgbwwQ16 * out )

Derive the mapper for a three-primary profile plus two white emitters.

white1_xyz / white2_xyz are each white's XYZ at full drive, in s16.16. policy is C3's per-profile choice of which end of the feasible total to take; as with one white it changes the drives, never which targets are reachable.

Definition at line 735 of file gamut_map.cpp.hpp.

739 {
741 return buildRgbSolveMatrixQ16(profile, &solve) &&
742 buildGamutMapRgbwwFromSolveQ16(profile, solve, white1_xyz, white2_xyz,
743 policy, out);
744}
bool buildRgbSolveMatrixQ16(const colorimetric_response::EmitterProfile &profile, EmitterSolveMatrixQ16 *out) FL_NO_EXCEPT
Invert the emitter matrix for a three-emitter profile.
bool buildGamutMapRgbwwFromSolveQ16(const colorimetric_response::EmitterProfile &profile, const EmitterSolveMatrixQ16 &solve, const i32(&white1_xyz)[3], const i32(&white2_xyz)[3], WhiteAllocationPolicy policy, GamutMapRgbwwQ16 *out) FL_NO_EXCEPT
Bind a five-emitter map from one effective RGB solve and two white columns, all in the same D65 worki...
Inverse emitter matrix in s16.16, mapping XYZ to three emitter drives.

References buildGamutMapRgbwwFromSolveQ16(), buildRgbSolveMatrixQ16(), and FL_NO_EXCEPT.

Referenced by fl::anonymous_namespace{pipeline.cpp.hpp}::buildWidePipelineQ16().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: