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()); }
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()); }