dobrovolskiy.com
RU
← all workdesktop · 2026

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: C11 renderer

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.

$50 / hourBook an hour

More projects

Ultralight IP CAM ViewerUltra-light multi-camera RTSP viewer and recorder: dozens of cameras on one slow PC or serverIntercom door appSingle-file Windows desktop app: live RTSP stream, one-click door release over the intercom's HTTP API, YuNet face detection chimeCSV Viewer (Win32 C)A single-file Win32 CSV/TSV viewer in C that opens huge files instantly.