How joaobaptmg/pathrenderinglab works
PathRenderingLab is an experimental SVG vector renderer: it parses SVG paths, converts fills and strokes into GPU-oriented triangle primitives, and runs a MonoGame display. The README documents solid, linear-gradient, and radial-gradient paint support and distinguishes ordinary, curve, and double-curve triangles. The graph reflects the sampled entry point and compiler-related files; internal calls between unsampled compiler stages are omitted where their wiring is uncertain.
Main entry points: Program.cs Application entry · PathCompiler.cs Path compiler · AvlTree.cs AVL tree · PaintServerCreator.cs Paint conversion
Components 19
SVG input
- SVG document
- Application entry
PathRenderingLab/Program.cs - Paint conversion
PathRenderingLab/PaintServers/PaintServerCreator.cs
Path geometry
- Path model
PathRenderingLab/Path.cs - Path compiler
PathRenderingLab/PathCompiler/PathCompiler.cs - Curve geometry
PathRenderingLab/PathCompiler/Curve.cs - Planar topology
PathRenderingLab/PathCompiler/DCEL/DCEL.cs - Polygon triangulation
PathRenderingLab/PathCompiler/Triangulator/Triangulator.cs - Compiled drawing
PathRenderingLab/PathCompiler/CompiledDrawing.cs - Triangle primitives
PathRenderingLab/PathCompiler/Triangle.cs - Curve primitives
PathRenderingLab/PathCompiler/CurveTriangle.cs - Double-curve primitives
PathRenderingLab/PathCompiler/DoubleCurveTriangle.cs
Rendering
- Paint servers
PathRenderingLab/PaintServers/IPaintServer.cs - MonoGame renderer
PathRenderingLab/PathRenderingLab.cs
Geometry support
- AVL tree
Bitlush.AvlTree/AvlTree.cs - AVL nodes
Bitlush.AvlTree/AvlNode.cs - Tree enumerator
Bitlush.AvlTree/AvlNodeEnumerator.cs
Other components
- User
- Graphics device
Connections 15
- User → Application entry: starts with SVG
- Application entry → SVG document: opens file
- Application entry → Path model: collects paths
- Application entry → Path compiler: compiles fill and stroke
- Application entry → Paint conversion: converts paint
- Paint conversion → Paint servers: creates
- Path compiler → Curve geometry: processes curves
- Path compiler → Planar topology: builds topology
- Path compiler → Polygon triangulation: triangulates contours
- Path compiler → Compiled drawing: produces
- Polygon triangulation → AVL tree: uses ordered edges
- AVL tree → AVL nodes: stores nodes
- AVL tree → Tree enumerator: creates enumerator
- Application entry → MonoGame renderer: passes drawing data
- MonoGame renderer → Graphics device: renders primitives