1161 {
1162 if (blendType == LINEARBLEND_NOWRAP) {
1163 index =
map8(index, 0, 247);
1164
1165 }
1166
1168#if defined(FL_IS_AVR)
1169 hi5 /= 2;
1170 hi5 /= 2;
1171 hi5 /= 2;
1172#else
1173 hi5 >>= 3;
1174#endif
1175 fl::u8 lo3 = index & 0x07;
1176
1178 const CHSV *entry = (
CHSV *)((
fl::u8 *)(&(pal[0])) + hi5XsizeofCHSV);
1179
1180 fl::u8 hue1 = entry->hue;
1181 fl::u8 sat1 = entry->sat;
1182 fl::u8 val1 = entry->val;
1183
1185
1187
1188 if (hi5 == 31) {
1189 entry = &(pal[0]);
1190 } else {
1191 ++entry;
1192 }
1193
1196
1197 fl::u8 hue2 = entry->hue;
1198 fl::u8 sat2 = entry->sat;
1199 fl::u8 val2 = entry->val;
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212 if (sat1 == 0 || val1 == 0) {
1213 hue1 = hue2;
1214 }
1215
1216
1217
1218 if (sat2 == 0 || val2 == 0) {
1219 hue2 = hue1;
1220 }
1221
1222 sat1 = scale8_LEAVING_R1_DIRTY(sat1, f1);
1223 val1 = scale8_LEAVING_R1_DIRTY(val1, f1);
1224
1225 sat2 = scale8_LEAVING_R1_DIRTY(sat2, f2);
1226 val2 = scale8_LEAVING_R1_DIRTY(val2, f2);
1227
1228
1229
1230
1231 sat1 += sat2;
1232 val1 += val2;
1233
1235 if (deltaHue & 0x80) {
1236
1237 hue1 -= scale8(256 - deltaHue, f2);
1238 } else {
1239
1240 hue1 += scale8(deltaHue, f2);
1241 }
1242
1243 cleanup_R1();
1244 }
1245
1248 }
1249
1250 return CHSV(hue1, sat1, val1);
1251}
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
CRGB blend(const CRGB &p1, const CRGB &p2, fract8 amountOfP2) FL_NO_EXCEPT
LIB8STATIC fl::u8 map8(fl::u8 in, fl::u8 rangeStart, fl::u8 rangeEnd) FL_NO_EXCEPT
Map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of hues.