Albert Y 2 жил өмнө
parent
commit
2f73e65837

+ 7 - 7
quantum/rgb_matrix/animations/pixel_rain_anim.h

@@ -20,17 +20,14 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN)
 
 static bool PIXEL_RAIN(effect_params_t* params) {
     static uint32_t wait_timer = 0;
-    if (wait_timer > g_rgb_timer) {
-        return false;
-    }
 
     inline uint32_t interval(void) {
         return 500 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16);
     }
 
-    bool rain_pixel(uint8_t i, effect_params_t * params, bool off) {
+    void rain_pixel(uint8_t i, effect_params_t * params, bool off) {
         if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) {
-            return true;
+            return;
         }
         if (off) {
             rgb_matrix_set_color(i, 0, 0, 0);
@@ -40,10 +37,13 @@ static bool PIXEL_RAIN(effect_params_t* params) {
             rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
         }
         wait_timer = g_rgb_timer + interval();
-        return false;
     }
 
-    return rain_pixel(mod8(random8(), DRIVER_LED_TOTAL), params, random8() & 2);
+    RGB_MATRIX_USE_LIMITS(led_min, led_max);
+    if (g_rgb_timer > wait_timer) {
+        rain_pixel(mod8(random8(), DRIVER_LED_TOTAL), params, random8() & 2);
+    }
+    return rgb_matrix_check_finished_leds(led_max);
 }
 
 #    endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS