public LinearGradientBrush(GradientStop[] gradientStops, Vector2 startPoint, Vector2 endPoint)
        {
            if (gradientStops.Length > MaximumGradientColorCount)
                throw new ArgumentOutOfRangeException(nameof(gradientStops));

            this.gradientStops = gradientStops;
            StartPoint = startPoint;
            EndPoint = endPoint;
        }
        public RadialGradientBrush(GradientStop[] gradientStops, Vector2 center, float radiusX, float radiusY, float angle = 0f, Vector2? focusPoint = null)
        {
            if (gradientStops.Length > MaximumGradientColorCount)
                throw new ArgumentOutOfRangeException(nameof(gradientStops));
            if (radiusX < 0) throw new ArgumentOutOfRangeException(nameof(radiusX));
            if (radiusY < 0) throw new ArgumentOutOfRangeException(nameof(radiusY));

            this.gradientStops = gradientStops;
            Center = center;
            this.radiusX = radiusX;
            this.radiusY = radiusY;
            Angle = angle;
            FocusPoint = focusPoint;
        }