Browse Source

Update RGB matrix reactive gradient timer scale (#19415)

Albert Y 3 years ago
parent
commit
77092675aa

+ 1 - 1
quantum/rgb_matrix/animations/solid_reactive_anim.h

@@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE)
 
 static HSV SOLID_REACTIVE_math(HSV hsv, uint16_t offset) {
 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
-    hsv.h = scale16by8(g_rgb_timer, add8(rgb_matrix_config.speed, 1) >> 6);
+    hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4);
 #            endif
     hsv.h += qsub8(130, offset);
     return hsv;

+ 1 - 1
quantum/rgb_matrix/animations/solid_reactive_cross.h

@@ -20,7 +20,7 @@ static HSV SOLID_REACTIVE_CROSS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t di
     effect += dx > dy ? dy : dx;
     if (effect > 255) effect = 255;
 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
-    hsv.h = scale16by8(g_rgb_timer, add8(rgb_matrix_config.speed, 1) >> 6);
+    hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4);
 #            endif
     hsv.v = qadd8(hsv.v, 255 - effect);
     return hsv;

+ 3 - 2
quantum/rgb_matrix/animations/solid_reactive_nexus.h

@@ -17,10 +17,11 @@ static HSV SOLID_REACTIVE_NEXUS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t di
     if (dist > 72) effect = 255;
     if ((dx > 8 || dx < -8) && (dy > 8 || dy < -8)) effect = 255;
 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
-    hsv.h = scale16by8(g_rgb_timer, add8(rgb_matrix_config.speed, 1) >> 6);
+    hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4) + dy / 4;
+#            else
+    hsv.h = rgb_matrix_config.hsv.h + dy / 4;
 #            endif
     hsv.v = qadd8(hsv.v, 255 - effect);
-    hsv.h = rgb_matrix_config.hsv.h + dy / 4;
     return hsv;
 }
 

+ 1 - 1
quantum/rgb_matrix/animations/solid_reactive_simple_anim.h

@@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(SOLID_REACTIVE_SIMPLE)
 
 static HSV SOLID_REACTIVE_SIMPLE_math(HSV hsv, uint16_t offset) {
 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
-    hsv.h = scale16by8(g_rgb_timer, add8(rgb_matrix_config.speed, 1) >> 6);
+    hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4);
 #            endif
     hsv.v = scale8(255 - offset, hsv.v);
     return hsv;

+ 1 - 1
quantum/rgb_matrix/animations/solid_reactive_wide.h

@@ -15,7 +15,7 @@ static HSV SOLID_REACTIVE_WIDE_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dis
     uint16_t effect = tick + dist * 5;
     if (effect > 255) effect = 255;
 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
-    hsv.h = scale16by8(g_rgb_timer, add8(rgb_matrix_config.speed, 1) >> 6);
+    hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4);
 #            endif
     hsv.v = qadd8(hsv.v, 255 - effect);
     return hsv;