FastLED 3.9.15
Loading...
Searching...
No Matches

◆ FL_WAVE8_SPREAD_TO_16

#define FL_WAVE8_SPREAD_TO_16 ( lane_u8_0,
lane_u8_1,
out_16 )
Value:
do { \
const u8 _a = (u8)(lane_u8_0); \
const u8 _b = (u8)(lane_u8_1); \
const u16 _even = \
(u16)((u16)::fl::detail::kTranspose4_16_LUT[_b & 0x0Fu] | \
((u16)::fl::detail::kTranspose4_16_LUT[_b >> 4] << 8)); \
const u16 _odd = \
(u16)(((u16)::fl::detail::kTranspose4_16_LUT[_a & 0x0Fu] | \
((u16)::fl::detail::kTranspose4_16_LUT[_a >> 4] << 8)) \
<< 1); \
(out_16) |= (u16)(_even | _odd); \
} while (0)
unsigned char u8
Definition stdint.h:131
constexpr u8 kTranspose4_16_LUT[16]
Definition wave8.hpp:26

Definition at line 81 of file wave8.hpp.

81#define FL_WAVE8_SPREAD_TO_16(lane_u8_0, lane_u8_1, out_16) \
82 do { \
83 const u8 _a = (u8)(lane_u8_0); \
84 const u8 _b = (u8)(lane_u8_1); \
85 const u16 _even = \
86 (u16)((u16)::fl::detail::kTranspose4_16_LUT[_b & 0x0Fu] | \
87 ((u16)::fl::detail::kTranspose4_16_LUT[_b >> 4] << 8)); \
88 const u16 _odd = \
89 (u16)(((u16)::fl::detail::kTranspose4_16_LUT[_a & 0x0Fu] | \
90 ((u16)::fl::detail::kTranspose4_16_LUT[_a >> 4] << 8)) \
91 << 1); \
92 (out_16) |= (u16)(_even | _odd); \
93 } while (0)

Referenced by fl::detail::wave8_transpose_2().