Go to the source code of this file.
|
| namespace | fl |
| | Base definition for an LED controller.
|
| |
|
| bool | fl::buildStreamingPipelineQ16 (const SourceProfile &source, const colorimetric_response::EmitterProfile &device, GamutPolicy policy, StreamingPipelineQ16 *out, const Chromaticity *target_white=nullptr) FL_NO_EXCEPT |
| | Bind a source declaration and a device profile into a pipeline.
|
| |
| i32 | fl::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 processPixel[Wide]Q16.
|
| |
| void | fl::processPixelLinearQ16 (const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&light)[3]) FL_NO_EXCEPT |
| | Pre-response linear emitter light for a power prepass.
|
| |
| void | fl::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.
|
| |
| void | fl::processPixelWideLinearQ16 (const StreamingPipelineQ16 &pipeline, u8 r, u8 g, u8 b, i32(&drives)[5]) FL_NO_EXCEPT |
| |
| void | fl::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.
|
| |
| void | fl::setPipelineFluxQ16 (StreamingPipelineQ16 *pipeline, FluxScalar flux) FL_NO_EXCEPT |
| | Set the composed brightness-and-power scalar for the frames that follow.
|
| |
◆ fl::ResponseLutsQ16
| struct fl::ResponseLutsQ16 |
◆ fl::StreamingPipelineQ16
| struct fl::StreamingPipelineQ16 |
| Class Members |
|
FluxScalar |
flux = FluxScalar::unity() |
Brightness times power limiting, as one scalar (C4). Initialized here because FluxScalar has no default constructor – there is no sensible "unset" amplitude, and unity is what a pipeline that has never been told a brightness should do.
|
|
GamutMapQ16 |
gamut |
The device hull, its solve, and the lightness bound. |
|
GamutPolicy |
gamut_policy = GamutPolicy::ChromaCompress |
What to do with a target the device cannot reproduce. ChromaCompress is the default and the one the P7 study selected; Clamp is the caller saying they would rather have the cheap answer. The study measured what that costs: clipping drives into range lands about 20 dE2000 from the reference against a budget of 0.5, because no amount of clamping substitutes for the objective. It is offered because ColorProfileBinding offers it, not because it is close.
|
|
shared_ptr< const ResponseLutsQ16 > |
response |
Absent means linear code-to-light response. With a table, the inverse is applied after flux and before the final wire quantization.
|
|
SourceMatrixQ16 |
source |
Source primaries to XYZ, with adaptation to D65 already folded in. |
|
TransferFunction |
transfer |
The source's transfer function, applied per code. |
|
shared_ptr< const WidePipelineQ16 > |
wide |
|
◆ fl::WidePipelineQ16
| struct fl::WidePipelineQ16 |