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

◆ buildGamutMapRgbwQ16()

bool fl::buildGamutMapRgbwQ16 ( const colorimetric_response::EmitterProfile & profile,
const i32(&) white_xyz[3],
WhiteAllocationPolicy policy,
GamutMapRgbwQ16 * out )

Derive the mapper for a three-primary profile plus one white emitter.

white_xyz is the white emitter's XYZ at full drive, in s16.16. policy is C3's per-profile choice of which end of the feasible white interval to take; it changes the drives, never which targets are reachable, so the hull this maps onto is the same either way.

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

618 {
620 return buildRgbSolveMatrixQ16(profile, &solve) &&
621 buildGamutMapRgbwFromSolveQ16(profile, solve, white_xyz, policy, out);
622}
bool buildGamutMapRgbwFromSolveQ16(const colorimetric_response::EmitterProfile &profile, const EmitterSolveMatrixQ16 &solve, const i32(&white_xyz)[3], WhiteAllocationPolicy policy, GamutMapRgbwQ16 *out) FL_NO_EXCEPT
Bind a four-emitter map from an effective RGB solve and a white column already adapted into the same ...
bool buildRgbSolveMatrixQ16(const colorimetric_response::EmitterProfile &profile, EmitterSolveMatrixQ16 *out) FL_NO_EXCEPT
Invert the emitter matrix for a three-emitter profile.
Inverse emitter matrix in s16.16, mapping XYZ to three emitter drives.

References buildGamutMapRgbwFromSolveQ16(), 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: