How alexiusy/svglib works
SVGlib is a Swift SVG renderer for Apple platforms. Its main workflow loads SVG data or a resource into an XML-parsed element tree, resolves styles, references, and geometry into an ordered display list, then draws through SVGDocument or presents through SVGView. The graph also captures documented selection, sizing, text/image, gradients, filters, and rasterization capabilities. Some subsystem links are based on README documentation because their source was not sampled.
Main entry points: SVGElement.swift Element tree · SVGDocument.swift SVG document · SVGParser.swift XML parser · SVGView.swift SVG view
Components 20
Loading and parsing
- Resource loading
Sources/SVGlib/SVGResource.swift - XML parser
Sources/SVGlib/SVGParser.swift - Element registry
Sources/SVGlib/SVGElementRegistry.swift
SVG resolution
- Element tree
Sources/SVGlib/SVGElement.swift - Style resolution
Sources/SVGlib/SVGStyle.swift - Style sheets
Sources/SVGlib/SVGStyleSheet.swift - Paths and shapes
Sources/SVGlib/SVGPath.swift - Paint and gradients
Sources/SVGlib/SVGGradient.swift - Text layout
Sources/SVGlib/SVGText.swift - Image elements
Sources/SVGlib/SVGImage.swift
Rendering and interaction
- SVG document
Sources/SVGlib/SVGDocument.swift - Rendered shapes
Sources/SVGlib/SVGRenderedShape.swift - Filter processing
Sources/SVGlib/SVGFilterPipeline.swift - Filter rasterization
Sources/SVGlib/SVGDocument.swift - SVG view
Sources/SVGlib/SVGView.swift - Content scaling
Sources/SVGlib/SVGContentScaling.swift - Selection and hit testing
Sources/SVGlib/SVGView.swift
Platform services
- Apple graphics APIs
Other components
- App or caller
- SVG input
Connections 28
- App or caller → Resource loading: loads by name
- App or caller → XML parser: provides data
- SVG input → XML parser: parsed by
- Resource loading → XML parser: provides data
- XML parser → Element registry: creates elements
- Element registry → Element tree: instantiates
- XML parser → Element tree: builds tree
- Style sheets → Element tree: applies rules
- Element tree → Style resolution: resolves styles
- Element tree → Paths and shapes: provides geometry
- Element tree → Paint and gradients: resolves paint
- Element tree → Text layout: lays out text
- Element tree → Image elements: resolves images
- App or caller → SVG document: creates document
- SVG document → XML parser: parses input
- SVG document → Element tree: resolves elements
- SVG document → Rendered shapes: builds display list
- Rendered shapes → Filter processing: evaluates filters
- SVG document → Filter rasterization: rasterizes shapes
- App or caller → SVG view: creates view
- SVG view → SVG document: displays document
- SVG view → Content scaling: maps coordinates
- SVG view → Selection and hit testing: handles selection
- SVG document → Apple graphics APIs: draws with
- Filter processing → Apple graphics APIs: uses Core Image
- Text layout → Apple graphics APIs: uses Core Text
- Image elements → Apple graphics APIs: decodes with ImageIO
- SVG view → Apple graphics APIs: presents with UIKit