|
FastLED 3.10.6
|
| void fl::encodeUCS7604_16bit_RGB_wide | ( | PixelIterator & | pixels, |
| OutputIterator | out ) |
Wide RGB straight off the iterator, with no adapter (P8, #4042 / #4326).
TINY only: PixelIterator::loadAndScaleRGB16 is itself compiled out on parts with <=1KB SRAM, which carry no colour pipeline and so have nothing wider than the 8-bit pixel to load. pixels is a concrete PixelIterator&, not a dependent type, so that call is looked up when this template is defined rather than when it is instantiated – leaving the body visible on TINY is a hard compile error even though no caller ever selects it. Hence the guard here, and the matching one around the wide_source branch in encodeUCS7604.
Deliberately a plain loop over PixelIterator rather than a second makeScaledPixelRange* range. fl::Channel::showPixels keeps every writeUCS7604(...) statically reachable, so whatever this path instantiates is linked into sketches that never touch UCS7604 – routing it through ScaledPixelIteratorRGB16 cost 988 B on an ESP32-S3 Blink build that binds no profile. This does what that adapter does, in the same order, without the iterator-pair templates.
No gamma by construction: the source has already quantized its device drive once, to 16 bits, and a curve on top of that is the second shaping stage B1 and section 6 of the spec forbid after the device solve.
Definition at line 191 of file ucs7604.h.
References FL_NO_EXCEPT.
Referenced by encodeUCS7604().
Here is the caller graph for this function: