You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
using Colore; |
|
using Colore.Data; |
|
using Colore.Effects.Keyboard; |
|
|
|
namespace ChromaController |
|
{ |
|
internal partial class KeyEffect |
|
{ |
|
public Key[] Keys { get; } |
|
public Color Color1 { get; } |
|
public Color Color2 { get; } |
|
public int StepCounter { get; private set; } |
|
public int DelayTime { get; } |
|
|
|
public KeyEffect(Key[] keys, Color color1, Color color2, int delayTime) |
|
{ |
|
Keys = keys; |
|
Color1 = color1; |
|
Color2 = color2; |
|
StepCounter = 0; |
|
DelayTime = delayTime; |
|
} |
|
|
|
virtual public bool Step(IChroma chroma) |
|
{ |
|
StepCounter++; |
|
return false; |
|
} |
|
|
|
protected static Color ColorMixer(Color color1, Color color2, float mix) |
|
{ |
|
int red = (int)(color1.R * (1 - mix) + color2.R * mix); |
|
int green = (int)(color1.G * (1 - mix) + color2.G * mix); |
|
int blue = (int)(color1.B * (1 - mix) + color2.B * mix); |
|
return GetColoreColor(red, green, blue); |
|
} |
|
|
|
internal static Color GetColoreColor(int red, int green, int blue) |
|
{ |
|
return Color.FromRgb((uint)((red << 16) | (green << 8) | blue)); |
|
} |
|
} |
|
} |