FastLED 3.10.6
Loading...
Searching...
No Matches
device_solve.h File Reference
+ Include dependency graph for device_solve.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::EmitterChromaticitiesQ16
 A three-emitter profile with every field in s16.16. More...
 
struct  fl::EmitterSolveMatrixQ16
 Inverse emitter matrix in s16.16, mapping XYZ to three emitter drives. More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::detail
 Compile-time linker keep-alive hook for a single fl::Bus.
 

Functions

bool fl::buildRgbSolveMatrixFromQ16 (const EmitterChromaticitiesQ16 &profile, EmitterSolveMatrixQ16 *out) FL_NO_EXCEPT
 Build the inverse emitter matrix from a Q16 profile, without floats.
 
bool fl::buildRgbSolveMatrixQ16 (const colorimetric_response::EmitterProfile &profile, EmitterSolveMatrixQ16 *out) FL_NO_EXCEPT
 Invert the emitter matrix for a three-emitter profile.
 
i32 fl::detail::dotRowQ16 (const i32(&row)[3], const i32(&v)[3]) FL_NO_EXCEPT
 One s16.16 matrix row against a vector, rounded and saturated.
 
bool fl::invert3x3Q16 (const i32(&in)[3][3], i32(&out)[3][3]) FL_NO_EXCEPT
 Inverse of an s16.16 3x3 matrix, in s16.16, computed without floats.
 
bool fl::q16FromFloatBits (float value, i32 *out) FL_NO_EXCEPT
 s16.16 of a float, rounded to nearest, computed from its IEEE-754 bits with integer arithmetic only – no soft-float helper on a part without an FPU (FastLED#4458).
 
i64 fl::detail::roundedDivideQ16 (i64 numerator, i64 denominator) FL_NO_EXCEPT
 The s16.16 building blocks the bind-time builders share.
 
void fl::solveRgbDrivesQ16 (const EmitterSolveMatrixQ16 &matrix, const i32(&xyz)[3], i32(&drives)[3]) FL_NO_EXCEPT
 One pixel: XYZ in s16.16 to three emitter drives in s16.16.
 
bool fl::detail::xyzColumnQ16 (const i32(&xy)[2], i32 luminance, i64(&column)[3]) FL_NO_EXCEPT
 XYZ of chromaticity xy at luminance luminance, all s16.16; false for a non-positive or out-of-simplex chromaticity or a non-positive luminance.
 

Class Documentation

◆ fl::EmitterChromaticitiesQ16

struct fl::EmitterChromaticitiesQ16
Class Members
i32 lum_b
i32 lum_g
i32 lum_r Peak luminance per emitter relative to source white, s16.16.
i32 xy_b[2]
i32 xy_g[2]
i32 xy_r[2] CIE 1931 xy per emitter, s16.16, so 0.64 is 41943.

◆ fl::EmitterSolveMatrixQ16

struct fl::EmitterSolveMatrixQ16
Class Members
i32 m[3][3]