SVGViewer: C11 renderer
A dependency-free SVG renderer in C11 with its own XML parser and multithreaded analytic rasterizer.
SVGViewer is a tiny, very fast Windows SVG viewer written in pure C with nothing beyond the Win32 API.

SVGViewer is a tiny, very fast Windows SVG viewer written in pure C with nothing beyond the Win32 API.
It contains an in-place XML parser, an SVG compiler covering paths, gradients, clip paths, CSS selectors, transforms and text (glyph outlines pulled from system fonts via GDI and rendered as paths), and a multithreaded exact-area signed-coverage rasterizer with analytically exact anti-aliasing.
A 20,000-path / 1.9 M-edge stress file renders at 1600x1600 in about 60 ms; it also renders headlessly to PNG and ships as an Inno Setup installer with file associations.
What it does
- Broad SVG support: all path commands, linear/radial gradients with spread and transforms, clipPath/mask, use/symbol, CSS style blocks, 148 named colours, viewBox/preserveAspectRatio
- Text via tspan, font families, weights, anchors and letter-spacing, using GDI glyph outlines so text is filled/stroked like any shape
- Multithreaded prepare (flatten/stroke/dash) and row-band rasterization on a persistent thread pool
- Zoom/pan around cursor, fit, background cycling, drag-and-drop, auto-reload on file change, headless PNG export with timing report
- Installer with per-user or all-users modes, default .svg handler and context-menu entry; app icon generated by the viewer itself
A complete 2D vector graphics stack from XML parsing to anti-aliased rasterization written by hand in ~4k lines of C, with measured performance numbers; no third-party code at all.
Want something like this?
I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.