private void Initialize(SKRect skViewport, HashSet <Uri>?references) { if (Element is not SvgPath svgPath || Path is null) { return; } IsAntialias = SvgExtensions.IsAntialias(svgPath); GeometryBounds = Path.Bounds; Transform = SvgExtensions.ToMatrix(svgPath.Transforms); var canDrawFill = true; var canDrawStroke = true; if (SvgExtensions.IsValidFill(svgPath)) { Fill = SvgExtensions.GetFillPaint(svgPath, GeometryBounds, AssetLoader, references, IgnoreAttributes); if (Fill is null) { canDrawFill = false; } } if (SvgExtensions.IsValidStroke(svgPath, GeometryBounds)) { Stroke = SvgExtensions.GetStrokePaint(svgPath, GeometryBounds, AssetLoader, references, IgnoreAttributes); if (Stroke is null) { canDrawStroke = false; } } if (canDrawFill && !canDrawStroke) { IsDrawable = false; return; } SvgExtensions.CreateMarkers(svgPath, Path, skViewport, this, AssetLoader, references); }