At a high level, the render path is:
SvgSceneDocument.ShimSkiaSharp.SKPicture model.SkiaSharp.SKPicture.Svg.Custom supplies the SVG document object model. SvgService is the main entry point used across the repository to open or parse documents.
Svg.SceneGraph compiles a SvgDocument or SvgFragment into SvgSceneDocument. That retained scene graph stores:
SvgSceneNode tree,SvgSceneRuntime.TryCompile(...) is the repository's main entry point for this phase.
SvgSceneDocument.CreateModel() renders the retained scene into a ShimSkiaSharp.SKPicture command model. That model is still CPU-side data, which makes it safe to inspect, clone, or mutate before creating a native SkiaSharp picture.
Svg.Skia.SKSvg owns:
SvgDocument,SvgSceneDocument,ShimSkiaSharp model, andSkiaSharp.SKPicture.During a normal Load(...), FromSvg(...), or FromSvgDocument(...) call, SKSvg compiles the retained scene, renders a shim model from it, and refreshes the current Picture.
After that:
SourceDocument exposes the authored DOM,RetainedSceneGraph exposes the compiled scene,Model exposes the shim picture model,Picture exposes the native SkiaSharp.SKPicture.That separation is what allows the runtime to support DOM mutation, retained-scene refresh, hit testing, model editing, and export without reparsing source text on every operation.
The Avalonia packages sit on top of the same conceptual steps:
SvgSource loads and retains the source data.SvgImage exposes it as an IImage.Svg wraps it as a control.SvgResourceExtension turns it into a reusable brush.Once you have an SKPicture, the repository exposes helpers for:
SKCanvas,ToBitmap() and ToImage(),ToSvg(),ToPdf() and ToXps().For the practical loading and mutation workflows built on top of this pipeline, see Loading SVG, SvgDocument, and VectorDrawable, Retained Scene Graph Usage, and Performance and Retained-Scene Refresh.