Animatroller.Framework.LogicalDevice.VirtualPixel1D3.SetColorRange C# (CSharp) Method

SetColorRange() public method

public SetColorRange ( Color color, double brightness = 1.0, int startPosition, int length = null, IControlToken token = null ) : void
color Color
brightness double
startPosition int
length int
token IControlToken
return void
        public void SetColorRange(
            Color color,
            double? brightness = 1.0,
            int startPosition = 0,
            int? length = null,
            IControlToken token = null)
        {
            IData data = GetFrameBuffer(token, this);

            Color injectColor;
            if (brightness.GetValueOrDefault(1.0) < 1.0)
                injectColor = GetColorFromColorAndBrightness(color, brightness.Value);
            else
                injectColor = color;

            if (!length.HasValue)
                length = this.pixelCount;
            else
            {
                if (startPosition + length.Value > this.pixelCount)
                    length = this.pixelCount - startPosition;
            }

            var bitmap = (Bitmap)data[DataElements.PixelBitmap];

            lock (this.lockObject)
            {
                using (var g = Graphics.FromImage(bitmap))
                using (var b = new SolidBrush(injectColor))
                {
                    g.FillRectangle(b, startPosition, 0, length.Value, 1);
                }
            }

            PushOutput(token);
        }