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); } } }