public static GroupDrawable Create(SvgGroup svgGroup, SKRect skViewport, DrawableBase?parent, IAssetLoader assetLoader, HashSet <Uri>?references, DrawAttributes ignoreAttributes = DrawAttributes.None) { var drawable = new GroupDrawable(assetLoader, references) { Element = svgGroup, Parent = parent, IgnoreAttributes = ignoreAttributes }; drawable.IsDrawable = drawable.CanDraw(svgGroup, drawable.IgnoreAttributes) && drawable.HasFeatures(svgGroup, drawable.IgnoreAttributes); // NOTE: Call AddMarkers only once. SvgExtensions.AddMarkers(svgGroup); drawable.CreateChildren(svgGroup, skViewport, drawable, assetLoader, references, ignoreAttributes); // TODO: Check if children are explicitly set to be visible. //foreach (var child in drawable.ChildrenDrawables) //{ // if (child.IsDrawable) // { // IsDrawable = true; // break; // } //} if (!drawable.IsDrawable) { return(drawable); } drawable.Initialize(references); return(drawable); }