コード例 #1
0
        public UGLinearGradientBrush(IUGContext context, Vector2 startPoint, Vector2 endPoint, IEnumerable <UGGradientStop> gradientStops, UGEdgeBehavior edgeBehavior)
        {
            StartPoint   = startPoint;
            EndPoint     = endPoint;
            EdgeBehavior = edgeBehavior;
            Stops        = gradientStops.ToArray();

            if (Stops.Length < 2)
            {
                throw new ArgumentException(nameof(gradientStops));
            }

            var colors  = gradientStops.Select(s => s.Color.ColorAsInt).ToArray();
            var offsets = gradientStops.Select(s => s.Offset).ToArray();

            _native = new LinearGradient(
                StartPoint.X, StartPoint.Y,
                EndPoint.X, EndPoint.Y,
                colors,
                offsets,
                edgeBehavior.ToAGShaderTileMode());
        }
コード例 #2
0
        public UGRadialGradientBrush(IUGContext context, Vector2 center, float radius, IEnumerable <UGGradientStop> gradientStops, UGEdgeBehavior edgeBehavior)
        {
            Center       = center;
            Radius       = radius;
            EdgeBehavior = edgeBehavior;
            Stops        = gradientStops.ToArray();

            if (Stops.Length < 2)
            {
                throw new ArgumentException(nameof(gradientStops));
            }

            var colors  = gradientStops.Select(s => s.Color.ColorAsInt).ToArray();
            var offsets = gradientStops.Select(s => s.Offset).ToArray();

            _native = new RadialGradient(
                Center.X, Center.Y,
                Radius,
                colors,
                offsets,
                edgeBehavior.ToAGShaderTileMode());
        }