static FluxScalar unity() FL_NO_EXCEPT
Identity. Drives pass through unchanged.
A linear flux scalar in s16.16.
Shared colorimetric primitives reusable by the RGBW and (future) RGB colorimetric paths (issue #3255)...
void setPipelineFluxQ16(StreamingPipelineQ16 *pipeline, FluxScalar flux) FL_NO_EXCEPT
Set the composed brightness-and-power scalar for the frames that follow.
void processPixelLinearQ16(const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&drives)[3]) FL_NO_EXCEPT
Pre-response linear emitter light for a power prepass.
void processPixelWideLinearQ16(const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&drives)[5]) FL_NO_EXCEPT
InputGamut g FL_NO_EXCEPT
bool buildStreamingPipelineQ16(const SourceProfile &source, const colorimetric_response::EmitterProfile &device, GamutPolicy policy, StreamingPipelineQ16 *out, const Chromaticity *target_white) FL_NO_EXCEPT
Bind a source declaration and a device profile into a pipeline.
void processPixelWideQ16(const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&drives)[5]) FL_NO_EXCEPT
Like processPixelQ16, but solves the physical 4/5-emitter hull.
i32 encodeLinearEmitterQ16(const StreamingPipelineQ16 &pipeline, u8 emitter, i32 light, FluxScalar flux) FL_NO_EXCEPT
Scale one linear emitter and invert its physical response, using the identical final stage as process...
void processPixelQ16(const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&drives)[3]) FL_NO_EXCEPT
One pixel: an RGB8 code triple to three physical emitter drives in s16.16.
Base definition for an LED controller.
TransferFunction transfer
The source's transfer function, applied per code.
GamutPolicy gamut_policy
What to do with a target the device cannot reproduce.
shared_ptr< const ResponseLutsQ16 > response
Absent means linear code-to-light response.
GamutMapQ16 gamut
The device hull, its solve, and the lightness bound.
vector< u16 > white1_response
FluxScalar flux
Brightness times power limiting, as one scalar (C4).
colorimetric_response::EmitterTopology topology
vector< u16 > white2_response
shared_ptr< const WidePipelineQ16 > wide
SourceMatrixQ16 source
Source primaries to XYZ, with adaptation to D65 already folded in.
The same mapper for a device with a white emitter.
Everything the per-pixel mapper needs, derived once when a profile binds.
The same mapper for a device with two white emitters.
Source-primaries matrix in s16.16, rows ordered X, Y, Z.
Owned code-to-light samples for the three physical emitters.
Everything the per-pixel path needs, derived once when a profile binds.
Allocated only for a bound four- or five-emitter profile.
CIE 1931 xy chromaticity, independent of encoded storage and chipset.
A source declaration, not a container or an output-device selection.