How cunha-renato/msdf_font works
msdf_font is a Rust MSDF/SDF glyph rasterization library with optional atlas generation. The documented workflow starts with a parsed font face, builds glyph geometry, generates a distance-field bitmap, and exposes its bytes for image output; atlas mode builds glyphs, packs them, and rasterizes them into a shared bitmap. Geometry, distance selection, and error correction are distinct internal stages. Error correction is a documented capability, but its invocation point is not established by the excerpts, so no connection to the rasterization path is asserted.
Main entry points: shape.rs Shape rasterizer · mod.rs Atlas builder · shape_distance_finder.rs Distance finder · glyph.rs Glyph builder
Components 17
Glyph workflow
- Glyph builder
src/glyph.rs - Bitmap storage
src/bitmap.rs
Shape geometry
- Shape rasterizer
src/shape.rs - Contours
src/contour.rs - Shape edges
src/edge.rs - Bounds
src/bounds.rs - Edge coloring
src/edge_color.rs - Curve solvers
src/solvers.rs
Distance fields
- Distance finder
src/shape_distance_finder.rs - Distance selectors
src/edge_selector.rs - Distance math
src/distance.rs - Error correction
src/error_correction/mod.rs - Artifact classifier
src/error_correction/artifact_classifier.rs
Atlas generation
- Atlas builder
src/atlas/mod.rs - Rectangle packer
src/atlas/packer.rs - Atlas bitmap region
src/atlas/bitmap.rs
Other components
- Font consumer
Connections 17
- Font consumer → Glyph builder: builds glyphs
README.md - Glyph builder → Shape rasterizer: uses shape
src/glyph.rs - Font consumer → Bitmap storage: reads output bytes
README.md - Shape rasterizer → Contours: uses contours
src/shape.rs - Shape rasterizer → Shape edges: uses edges
src/shape.rs - Shape rasterizer → Bounds: uses bounds
src/shape.rs - Shape rasterizer → Edge coloring: colors edges
src/shape.rs - Shape rasterizer → Distance finder: queries distances
src/shape_distance_finder.rs - Distance finder → Shape rasterizer: reads shape
src/shape_distance_finder.rs - Distance finder → Distance selectors: uses selectors
src/shape_distance_finder.rs - Shape edges → Curve solvers: solves curves
src/edge.rs - Error correction → Artifact classifier: classifies artifacts
src/error_correction/mod.rs - Font consumer → Atlas builder: builds atlas
README.md - Atlas builder → Glyph builder: builds glyphs
src/atlas/mod.rs - Atlas builder → Rectangle packer: packs glyphs
src/atlas/mod.rs - Atlas builder → Atlas bitmap region: writes regions
src/atlas/mod.rs - Atlas bitmap region → Bitmap storage: uses bitmap data
src/atlas/bitmap.rs