Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Guyer <sam.guyer@gmail.com>2021-04-29 17:44:07 +0300
committerSam Guyer <sam.guyer@gmail.com>2021-04-29 17:44:07 +0300
commit4b2d3339f8a1acd33621070e82d9685d506b177e (patch)
treec98e9ebb3ab086169c69673d75789355586d3c5d /src/hsv2rgb.cpp
parent65a76c512e51a2c000c60005552ce7cd5347c88b (diff)
parent2785f3d81dc360f021613268b2bc6ca69f578326 (diff)
Merge branch 'master' of https://github.com/FastLED/FastLED
Diffstat (limited to 'src/hsv2rgb.cpp')
-rw-r--r--src/hsv2rgb.cpp38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/hsv2rgb.cpp b/src/hsv2rgb.cpp
index 1fb8d56b..4585a544 100644
--- a/src/hsv2rgb.cpp
+++ b/src/hsv2rgb.cpp
@@ -440,21 +440,23 @@ void hsv2rgb_rainbow( const CHSV& hsv, CRGB& rgb)
if( sat == 0) {
r = 255; b = 255; g = 255;
} else {
+ uint8_t desat = 255 - sat;
+ desat = scale8_video( desat, desat);
+
+ uint8_t satscale = 255 - desat;
+ //satscale = sat; // uncomment to revert to pre-2021 saturation behavior
+
//nscale8x3_video( r, g, b, sat);
#if (FASTLED_SCALE8_FIXED==1)
- if( r ) r = scale8_LEAVING_R1_DIRTY( r, sat);
- if( g ) g = scale8_LEAVING_R1_DIRTY( g, sat);
- if( b ) b = scale8_LEAVING_R1_DIRTY( b, sat);
+ r = scale8_LEAVING_R1_DIRTY( r, satscale);
+ g = scale8_LEAVING_R1_DIRTY( g, satscale);
+ b = scale8_LEAVING_R1_DIRTY( b, satscale);
+ cleanup_R1();
#else
- if( r ) r = scale8_LEAVING_R1_DIRTY( r, sat) + 1;
- if( g ) g = scale8_LEAVING_R1_DIRTY( g, sat) + 1;
- if( b ) b = scale8_LEAVING_R1_DIRTY( b, sat) + 1;
+ if( r ) r = scale8( r, satscale) + 1;
+ if( g ) g = scale8( g, satscale) + 1;
+ if( b ) b = scale8( b, satscale) + 1;
#endif
- cleanup_R1();
-
- uint8_t desat = 255 - sat;
- desat = scale8( desat, desat);
-
uint8_t brightness_floor = desat;
r += brightness_floor;
g += brightness_floor;
@@ -471,15 +473,15 @@ void hsv2rgb_rainbow( const CHSV& hsv, CRGB& rgb)
} else {
// nscale8x3_video( r, g, b, val);
#if (FASTLED_SCALE8_FIXED==1)
- if( r ) r = scale8_LEAVING_R1_DIRTY( r, val);
- if( g ) g = scale8_LEAVING_R1_DIRTY( g, val);
- if( b ) b = scale8_LEAVING_R1_DIRTY( b, val);
+ r = scale8_LEAVING_R1_DIRTY( r, val);
+ g = scale8_LEAVING_R1_DIRTY( g, val);
+ b = scale8_LEAVING_R1_DIRTY( b, val);
+ cleanup_R1();
#else
- if( r ) r = scale8_LEAVING_R1_DIRTY( r, val) + 1;
- if( g ) g = scale8_LEAVING_R1_DIRTY( g, val) + 1;
- if( b ) b = scale8_LEAVING_R1_DIRTY( b, val) + 1;
+ if( r ) r = scale8( r, val) + 1;
+ if( g ) g = scale8( g, val) + 1;
+ if( b ) b = scale8( b, val) + 1;
#endif
- cleanup_R1();
}
}