solveToDisplayRgb static method
Solves for the display-encoded RGB color in 0..1 for the given gamut.
This is the primary method for wide gamut use. Returns (r, g, b) where
each component is in 0..1, display-encoded using the gamut's transfer
function.
Example:
final (r, g, b) = HctSolver.solveToDisplayRgb(
120.0, 50.0, 60.0,
gamut: Gamut.displayP3,
);
// r, g, b are in [0..1], suitable for color(display-p3 r g b)
Implementation
static (double, double, double) solveToDisplayRgb(
double hueDegrees,
double chroma,
double lstar, {
Gamut? gamut,
}) {
gamut ??= Gamut.srgb;
final (linR, linG, linB) = solveToLinrgb(
hueDegrees,
chroma,
lstar,
gamut: gamut,
);
return (
(gamut.trueDelinearize(linR) / 255.0).clamp(0.0, 1.0),
(gamut.trueDelinearize(linG) / 255.0).clamp(0.0, 1.0),
(gamut.trueDelinearize(linB) / 255.0).clamp(0.0, 1.0),
);
}