DirectOuput Framework R2
DirectOutput framework R2 for virtual pinball cabinets
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
RGBAMatrixFlickerEffect.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using DirectOutput.General.Color;
6 using DirectOutput.Cab.Toys.Layer;
7 
8 namespace DirectOutput.FX.MatrixFX
9 {
13  public class RGBAMatrixFlickerEffect : MatrixFlickerEffectBase<RGBAColor>
14  {
15  private const int RefreshIntervalMs = 30;
16 
17  private RGBAColor _ActiveColor = new RGBAColor(0xff, 0xff, 0xff, 0xff);
18 
26  public RGBAColor ActiveColor
27  {
28  get { return _ActiveColor; }
29  set { _ActiveColor = value; }
30  }
31 
32  private RGBAColor _InactiveColor = new RGBAColor(0, 0, 0, 0);
33 
41  public RGBAColor InactiveColor
42  {
43  get { return _InactiveColor; }
44  set { _InactiveColor = value; }
45  }
46 
47 
53  protected override RGBAColor GetEffectValue(int TriggerValue)
54  {
55  RGBAColor D = new RGBAColor();
56 
57  int V = TriggerValue.Limit(0, 255);
58  D.Red = InactiveColor.Red + (int)((float)(ActiveColor.Red - InactiveColor.Red) * V / 255).Limit(0, 255);
59  D.Green = InactiveColor.Green + (int)((float)(ActiveColor.Green - InactiveColor.Green) * V / 255).Limit(0, 255);
60  D.Blue = InactiveColor.Blue + (int)((float)(ActiveColor.Blue - InactiveColor.Blue) * V / 255).Limit(0, 255);
61  D.Alpha = InactiveColor.Alpha + (int)((float)(ActiveColor.Alpha - InactiveColor.Alpha) * V / 255).Limit(0, 255);
62  return D;
63  }
64 
65  }
66 }