Go to file
Patrick Walton 55e1502eb2 Add build instructions 2017-02-09 17:40:37 -08:00
examples Implement basic kerning via the 'kern' table 2017-02-08 17:10:49 -08:00
resources Move direction calculation from the TCS to the TES to properly handle cusps 2017-02-09 17:09:19 -08:00
src Implement basic kerning via the 'kern' table 2017-02-08 17:10:49 -08:00
Cargo.toml Allow specific fonts in collections to be selected 2017-02-08 15:34:16 -08:00
LICENSE-APACHE Add a README and a license 2017-02-08 14:10:42 -08:00
LICENSE-MIT Add a README and a license 2017-02-08 14:10:42 -08:00
README.md Add build instructions 2017-02-09 17:40:37 -08:00

README.md

Pathfinder

Pathfinder is a fast, practical GPU-based rasterizer for OpenType fonts using OpenGL 4.3. It features:

  • Very low setup time. Glyph outlines can go from the .otf file to the GPU in a form ready for rasterization in less than a microsecond. There is no expensive tessellation or preprocessing step.

  • High quality antialiasing. Unlike techniques that rely on multisample antialiasing, Pathfinder computes exact fractional trapezoidal area coverage on a per-pixel basis.

  • Fast rendering, even at small pixel sizes. On typical systems, Pathfinder should easily exceed the performance of the best CPU rasterizers.

  • Low memory consumption. The only memory overhead over the glyph and outline storage itself is that of a coverage buffer which typically consumes somewhere between 4MB-16MB and can be discarded under memory pressure. Outlines are stored on-GPU in a compressed format and usually take up only a few dozen kilobytes.

  • Portability to most GPUs manufactured in the last few years, including integrated GPUs.

Building

Check out the code and run cargo build --release.

Try the demo with cargo run --release --example lorem-ipsum -- resources/tests/nimbus-sans/NimbusSanL-Regu.ttf.

As an alternative, debug builds (without the --release) build quickly and are typically fast, since most of the code runs on GPU.

On Windows, running the demos requires GLFW, which requires CMake to be installed and in your PATH. Get it from cmake.org.

Authors

The primary author is Patrick Walton (@pcwalton), with contributions from the Servo development community.

The code is owned by the Mozilla Foundation.

License

Licensed under the same terms as Rust itself. See LICENSE-APACHE and LICENSE-MIT.