private SKSurface RasterizeSegment(SKPicture segment, RasterizeDimensions dim, float skewAngle, params SKPaint[] paints)
        {
            if (dim.SvgWidth <= 0 || dim.SvgWidth <= 0)
            {
                return(null);
            }
            var surface = SKSurface.Create(dim.SvgInfo);

            surface.Canvas.Translate(dim.Translate.X, dim.Translate.Y);
            Skew(surface.Canvas, skewAngle, 0);
            foreach (var paint in paints)
            {
                surface.Canvas.DrawPicture(segment, ref dim.SvgMatrix, paint);
            }
            return(surface);
        }
Esempio n. 2
0
 /// <summary>
 /// Recalculates the segment dimensions based on a canvas size
 /// </summary>
 /// <param name="canvasWidth">Width the of the canvas in pixels</param>
 /// <param name="canvasHeight">Height of the canvas in pixels</param>
 public void SetDimensions(int canvasWidth, int canvasHeight)
 {
     Dim   = new RasterizeDimensions(_res.GetSvgSize(SegmentType, StyleDefinition.SegmentWeight), canvasWidth, canvasHeight, NumChars, NumLines, StyleDefinition.SkewAngle);
     Style = StyleDefinition.Scale(Dim.SvgScale);
 }