Hey all,

I just released daegun 1.2.0. It's a text engine written in Rust: it parses fonts, shapes complex scripts, lays out lines, hints and subsets, no_std with zero dependencies and a C ABI.

The big change in this release is that daegun doesn't rasterize anymore. I took out both of its built-in rasterizers and replaced them with an API built around handing your rasterizer what it needs, so technically it's not an all-in-one anymore:

  • prepared_outline: outlines in pixels onto any OutlinePen, with hinting, transforms, stroking and synthetic bold and oblique
  • glyph_quads: quadratic curves for GPU shaders
  • flatten and resolve_overlaps: polygons for scanline rasterizers
  • colr_scene: color glyphs as fills, clips and layers, with gradient sampling and compositing

As a test, the demo images in the README are now drawn by wgpu straight from glyph_quads, with an 89-line shader.

It also passes 731 of 753 cases in Unicode's text-rendering-tests.

Heads-up: this release removes public API, and Cargo treats 1.1 → 1.2 as a compatible update, so pin =1.1.7 if you rely on the old rasterizers.

Feedback is very welcome!

1 post - 1 participant

Read full topic