googlefonts / googlefonts/fontc
Store variable axes, advance widths in separate IR files for more granual incremental build
- Dominant language
- Rust
- Stars
- 193
- Forks
- 21
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 60
Description
When building HVAR in #490, we run the fontbe task any of StaticMetadata, or the glyph order or the glyphs themselves have changed:
```rust
workload.change_detector.static_metadata_ir_change()
|| workload.change_detector.glyph_order_ir_change()
|| !glyphs_changed.is_empty(),
```
The static metadata contains the variable axes defintions and the global VariationModel, if those change all variable tables, including HVAR need to be rebuilt.
The glyph order determines the order of the variation indices in the HVAR VarStore and DeltaSetIndexMap.
Finally, the glyph IRs store the actual advance widths which of course are required to build HVAR.
The static metadata also contain other things that are unrelated to glyph advance width variations, similarly the glyphs contain outlines definitions or even unicode mappings that have nothing to do with advances. Any changes there will trigger a needless rebuild.
If the variation axes and/or the glyph advances were stored in separate IR files we could be more granual and only rebuild HVAR when these specific pieces of data change.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.