[New Feature/Core] New RGB Matrix Animation "Starlight Smooth" (#25203)
This commit is contained in:
		
							parent
							
								
									3e7ce54902
								
							
						
					
					
						commit
						7f42a5bc03
					
				| @ -150,6 +150,7 @@ enum rgb_matrix_effects { | |||||||
|     RGB_MATRIX_SOLID_SPLASH,        // Hue & value pulse away from a single key hit then fades value out |     RGB_MATRIX_SOLID_SPLASH,        // Hue & value pulse away from a single key hit then fades value out | ||||||
|     RGB_MATRIX_SOLID_MULTISPLASH,   // Hue & value pulse away from multiple key hits then fades value out |     RGB_MATRIX_SOLID_MULTISPLASH,   // Hue & value pulse away from multiple key hits then fades value out | ||||||
|     RGB_MATRIX_STARLIGHT,           // LEDs turn on and off at random at varying brightness, maintaining user set color |     RGB_MATRIX_STARLIGHT,           // LEDs turn on and off at random at varying brightness, maintaining user set color | ||||||
|  |     RGB_MATRIX_STARLIGHT_SMOOTH,    // LEDs slowly increase and decrease in brightness randomly | ||||||
|     RGB_MATRIX_STARLIGHT_DUAL_HUE,  // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30 |     RGB_MATRIX_STARLIGHT_DUAL_HUE,  // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30 | ||||||
|     RGB_MATRIX_STARLIGHT_DUAL_SAT,  // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30 |     RGB_MATRIX_STARLIGHT_DUAL_SAT,  // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30 | ||||||
|     RGB_MATRIX_RIVERFLOW,           // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing |     RGB_MATRIX_RIVERFLOW,           // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing | ||||||
| @ -193,6 +194,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi | |||||||
| |`#define ENABLE_RGB_MATRIX_PIXEL_FLOW`                |Enables `RGB_MATRIX_PIXEL_FLOW`               | | |`#define ENABLE_RGB_MATRIX_PIXEL_FLOW`                |Enables `RGB_MATRIX_PIXEL_FLOW`               | | ||||||
| |`#define ENABLE_RGB_MATRIX_PIXEL_RAIN`                |Enables `RGB_MATRIX_PIXEL_RAIN`               | | |`#define ENABLE_RGB_MATRIX_PIXEL_RAIN`                |Enables `RGB_MATRIX_PIXEL_RAIN`               | | ||||||
| |`#define ENABLE_RGB_MATRIX_STARLIGHT`                 |Enables `RGB_MATRIX_STARLIGHT`                | | |`#define ENABLE_RGB_MATRIX_STARLIGHT`                 |Enables `RGB_MATRIX_STARLIGHT`                | | ||||||
|  | |`#define ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH`          |Enables `RGB_MATRIX_STARLIGHT_SMOOTH`         | | ||||||
| |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE`        |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE`       | | |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE`        |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE`       | | ||||||
| |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT`        |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT`       | | |`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT`        |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT`       | | ||||||
| |`#define ENABLE_RGB_MATRIX_RIVERFLOW`                 |Enables `RGB_MATRIX_RIVERFLOW`                | | |`#define ENABLE_RGB_MATRIX_RIVERFLOW`                 |Enables `RGB_MATRIX_RIVERFLOW`                | | ||||||
|  | |||||||
| @ -39,6 +39,7 @@ | |||||||
| #include "solid_reactive_nexus.h"
 | #include "solid_reactive_nexus.h"
 | ||||||
| #include "splash_anim.h"
 | #include "splash_anim.h"
 | ||||||
| #include "solid_splash_anim.h"
 | #include "solid_splash_anim.h"
 | ||||||
|  | #include "starlight_smooth_anim.h"
 | ||||||
| #include "starlight_anim.h"
 | #include "starlight_anim.h"
 | ||||||
| #include "starlight_dual_sat_anim.h"
 | #include "starlight_dual_sat_anim.h"
 | ||||||
| #include "starlight_dual_hue_anim.h"
 | #include "starlight_dual_hue_anim.h"
 | ||||||
|  | |||||||
							
								
								
									
										26
									
								
								quantum/rgb_matrix/animations/starlight_smooth_anim.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								quantum/rgb_matrix/animations/starlight_smooth_anim.h
									
									
									
									
									
										Normal file
									
								
							| @ -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
 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user