fontations
fontations copied to clipboard
Reading and writing font files
Hi! It's an issue very similar to https://github.com/googlefonts/fontc/issues/1359 about enabling LTO and `codegen-units = 1` optimizations for the project. Motivation is also the same: more aggressive optimizations and smaller binary...
It would be useful to be able to easily access _at least_ x-height, and ideally other things (stem width, etc) that are computed as part of autohinting. Per IM this...
I hope this is the correct place for this issue. Recently, chromium switched default flag value for fontations from 'disabled' to 'enabled', this has caused (on Ubuntu at least) many...
Some time ago I noticed that there is a branch containing a skrifa API for bitmap glyphs (https://github.com/googlefonts/fontations/blob/skrifa-bitmaps/skrifa/src/bitmap.rs). From what I saw, right now the code is duplicated in vello,...
Since variations are not applied to the extents it seems.
Doesn't work, but a start. I don't know why. I also didn't update the tests. Fixes https://github.com/googlefonts/fontations/issues/1431
Currently only format4 / format12 are hooked up: ``` pub fn map_codepoint(&self, codepoint: impl Into) -> Option { let codepoint = codepoint.into(); for record in self.encoding_records() { if let Ok(subtable)...
This is more inconsistency where FreeType truncates the fractional bits when reading `HVAR` but reads `gvar` as `Fixed` and then rounds to `F26Dot6`. https://github.com/googlefonts/fontations/blob/c32c0a6442371d0206f82a4a981b3854f313aaae/skrifa/src/outline/glyf/mod.rs#L628
Here: https://github.com/googlefonts/fontations/blob/756d45082d3832d0ec8bda6a30bc9b8bd1408424/skrifa/src/outline/glyf/mod.rs#L233 The whole point of the `hdmx` table is to provide hinted advances without having to run the TrueType interpreter. Also, some fonts have buggy hdmx tables and are...
See https://github.com/googlefonts/fontations/blob/756d45082d3832d0ec8bda6a30bc9b8bd1408424/skrifa/src/outline/cff/mod.rs#L444 where we apply a bunch of weird scale factors in discrete steps because FreeType does so. Note that FT applies these in different passes, in different locations in...