Fully disconnect gamepad handler for rainbow color if configuration is set with UseRainbowLed false

Also check if its even enabled before setting the rainbow color
Fixes strobing
This commit is contained in:
Evan Husted 2025-01-24 16:52:20 -06:00
parent 1ce37ec317
commit 3541e282ea
2 changed files with 24 additions and 3 deletions

View file

@ -5,17 +5,29 @@ namespace Ryujinx.Common.Utilities
{
public class Rainbow
{
public const float Speed = 1;
public static float Speed { get; set; } = 1;
public static Color Color { get; private set; } = Color.Blue;
private static float _lastHue;
public static void Tick()
{
float currentHue = Color.GetHue();
float nextHue = currentHue;
if (currentHue >= 360)
nextHue = 0;
else
nextHue += Speed;
Color = HsbToRgb(
(Color.GetHue() + Speed) / 360,
nextHue / 360,
1,
1
);
_lastHue = currentHue;
RainbowColorUpdated?.Invoke(Color.ToArgb());
}