public virtual void Render(ISvgRenderer renderer) { if (!(this is ISharpDoNotPaint) || (this is SvgSymbolElement && this.ParentNode is SvgUseElement)) { if (renderingNode == null) { renderingNode = renderer.GetRenderingNode(this); } if (renderingNode != null) { if (!renderingNode.NeedRender(renderer)) { return; } renderingNode.BeforeRender(renderer); renderingNode.Render(renderer); RenderChildren(renderer); renderingNode.AfterRender(renderer); } } }
public virtual void CacheRenderingRegion(ISvgRenderer renderer) { if (renderingNode == null) { renderingNode = renderer.GetRenderingNode(this); } // Check if it has already been calculated if (renderingNode != null && renderingNode.ScreenRegion != RectangleF.Empty) { return; } // Invalidate the children foreach (XmlNode node in ChildNodes) { SvgElement element = node as SvgElement; if (element != null) { element.CacheRenderingRegion(renderer); } } }