public override void update(ref VideoBuffer videoBuffer)
        {
            for (int y = 0; y < videoBuffer.Height; y++)
            {
                for (int x = 0; x < videoBuffer.Width; x++)
                {
                    int r = BitConverter.GetBytes(videoBuffer.getPixel(x, y))[0];
                    int g = BitConverter.GetBytes(videoBuffer.getPixel(x, y))[1];
                    int b = BitConverter.GetBytes(videoBuffer.getPixel(x, y))[2];

                    //Color color = Color.FromArgb(r, g, b);
                    //TODO: replace all this for ControlPaint.Light/ControlPaint.Darken using System.Drawing.Color instead

                    double h = 0;
                    double l = 0;
                    double s = 0;

                    RgbToHls(r, g, b, out h, out l, out s);

                    //TODO: This is a quick way to get around transparency. Need a better way.
                    if (videoBuffer.getPixel(x, y) != 0x000000)
                    {
                        l = Brightness;
                    }

                    HlsToRgb(h, l, s, out r, out g, out b);

                    int rgb = b << 8 | g;
                    rgb = rgb << 8 | r;

                    videoBuffer.setPixel(x, y, (uint)rgb);
                }
            }
        }