diff options
| author | art-was-here | 2025-05-12 00:50:36 +0200 |
|---|---|---|
| committer | GitHub | 2025-05-12 00:50:36 +0200 |
| commit | 7f42a5bc03a3f80d65314c69adb0b1176cf13167 (patch) | |
| tree | 0d059d7a2f0c3f5a62500f3de8c923108e9f1ecd /quantum/rgb_matrix | |
| parent | 3e7ce54902aeff14cf9242d0d5a73d9d655a9de7 (diff) | |
[New Feature/Core] New RGB Matrix Animation "Starlight Smooth" (#25203)
Diffstat (limited to 'quantum/rgb_matrix')
| -rw-r--r-- | quantum/rgb_matrix/animations/rgb_matrix_effects.inc | 1 | ||||
| -rw-r--r-- | quantum/rgb_matrix/animations/starlight_smooth_anim.h | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc index e8b7a2bcde..abc2adf2cc 100644 --- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc +++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc @@ -39,6 +39,7 @@ #include "solid_reactive_nexus.h" #include "splash_anim.h" #include "solid_splash_anim.h" +#include "starlight_smooth_anim.h" #include "starlight_anim.h" #include "starlight_dual_sat_anim.h" #include "starlight_dual_hue_anim.h" diff --git a/quantum/rgb_matrix/animations/starlight_smooth_anim.h b/quantum/rgb_matrix/animations/starlight_smooth_anim.h new file mode 100644 index 0000000000..a87c06f9df --- /dev/null +++ b/quantum/rgb_matrix/animations/starlight_smooth_anim.h @@ -0,0 +1,26 @@ +// Copyright 2022 @art-was-here +// SPDX-License-Identifier: GPL-2.0+ + +#ifdef ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH +RGB_MATRIX_EFFECT(STARLIGHT_SMOOTH) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +static uint8_t phase_offsets[RGB_MATRIX_LED_COUNT]; + +hsv_t STARLIGHT_SMOOTH_math(hsv_t hsv, uint8_t i, uint8_t time) { + if (phase_offsets[i] == 0) { + phase_offsets[i] = rand() % 255; + } + hsv.v = scale8(abs8(sin8((time + phase_offsets[i]) / 2) - 128) * 2, hsv.v); + return hsv; +} + +bool STARLIGHT_SMOOTH(effect_params_t* params) { + if (params->init) { + memset(phase_offsets, 0, sizeof(phase_offsets)); + } + return effect_runner_i(params, &STARLIGHT_SMOOTH_math); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH |