protected internal void ClipRoundRect(SKRoundRect roundRect, IGradientMask mask, DrawContext context) { using var canvasLock = new CanvasLock(context.Canvas); LayoutBounds(mask, roundRect.Rect, context, false); context.Canvas.ClipRoundRect(roundRect, mask.ClipMode.ToSkOperation(), true); }
public void Clip(IPathMask mask, DrawContext context) { if (!mask.IsActive || string.IsNullOrEmpty(mask.Data)) { return; } using var path = SKPath.ParseSvgPathData(mask.Data); path.GetTightBounds(out var bounds); using var canvasLock = new CanvasLock(context.Canvas); LayoutBounds(mask, bounds, context, true); context.Canvas.ClipPath(path, mask.ClipMode.ToSkOperation()); }
public void Clip(ITextMask mask, DrawContext context) { if (!mask.IsActive || string.IsNullOrEmpty(mask.Text)) { return; } using var textPaint = GetTextPaint(mask, context); using var textPath = textPaint.GetTextPath(mask.Text, 0, 0); textPath.GetTightBounds(out var bounds); using var canvasLock = new CanvasLock(context.Canvas); LayoutBounds(mask, bounds, context, true); context.Canvas.ClipPath(textPath, mask.ClipMode.ToSkOperation()); }