• Rework CacheBuilder to use methods to allow non-breaking additions in future. New style is Cache::builder().dimensions(512, 512).build().
  • Support multithreaded rasterization in the gpu_cache. This yields significant improvements in worst case performance when more than 1 CPU core is available. Thrashing, resizing & population benchmarks are ~3x faster on a 4-core Haswell. Multithreading is enabled by default in environments with more than a single core, but can be explicitly disabled using Cache::builder().multithread(false).
  • Remove all deprecated API.
  • Add Debug implementations for Font, Glyph, ScaledGlyph & PositionedGlyph
  • Add and improve documentation + examples.

4-core Haswell benchmark comparison

name                                    0.6.4 ns/iter    0.7 ns/iter     diff ns/iter   diff %  speedup 
cache::multi_font_population            8,239,309        2,570,034         -5,669,275  -68.81%   x 3.21 
cache_bad_cases::moving_text_thrashing  21,589,054       6,691,719        -14,897,335  -69.00%   x 3.23 
cache_bad_cases::resizing               15,162,054       4,607,499        -10,554,555  -69.61%   x 3.29