624 {
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647#if FL_PLATFORM_HAS_TINY_MEMORY
648
650#endif
651 for (int i = 0; i < 8; i++) {
652 *back_ins++ = 0x00;
653 }
654
655
660 u16 r16, g16, b16;
661#if !FL_PLATFORM_HAS_TINY_MEMORY
662 if (managed) {
663
664
665
666
667
668
669
671 } else
672#endif
673 {
679 }
680 *back_ins++ = f0;
681 *back_ins++ = f1;
682 *back_ins++ =
static_cast<u8>(r16 >> 8);
683 *back_ins++ =
static_cast<u8>(r16 & 0xFF);
684 *back_ins++ =
static_cast<u8>(g16 >> 8);
685 *back_ins++ =
static_cast<u8>(g16 & 0xFF);
686 *back_ins++ =
static_cast<u8>(b16 >> 8);
687 *back_ins++ =
static_cast<u8>(b16 & 0xFF);
690 ++num_leds;
691 }
692 const fl::size latch = num_leds / 2 + 4;
693 for (
fl::size i = 0; i < latch; i++) {
694 *back_ins++ = 0xFF;
695 }
696 }
void advanceData() FL_NO_EXCEPT
void loadAndScaleRGB(u8 *r_out, u8 *g_out, u8 *b_out) FL_NO_EXCEPT
void loadAndScaleRGB16(u16 *r_out, u16 *g_out, u16 *b_out) FL_NO_EXCEPT
One pixel at the source's own precision, wire-ordered.
bool has(int n) FL_NO_EXCEPT
void stepDithering() FL_NO_EXCEPT
back_insert_iterator< Container > back_inserter(Container &c) FL_NO_EXCEPT
Helper function to create a back_insert_iterator.
void hd108BrightnessHeader(u8 brightness_8bit, u8 *f0_out, u8 *f1_out) FL_NO_EXCEPT
Generate HD108 per-channel gain header bytes.
u16 hd108GammaCorrect(u8 value) FL_NO_EXCEPT
Convert 8-bit color to HD108 16-bit gamma-corrected value (gamma 2.8)