ab_glyph 0.2.29

API for loading, scaling, positioning and rasterizing OpenType font glyphs.
Documentation
# 0.2.29
* Update _ttf-parser_ to `0.25`.

# 0.2.28
* Update _ttf-parser_ to `0.24`.
* Clarify `OutlinedGlyph::px_bounds`, `Font::glyph_bounds` documentation, 
  describe how they relate to drawing and each other.

# 0.2.27
* Add `Font` glyph layout concept documentation demonstrating "ascent", "descent", "h_side_bearing", 
  "h_advance", "height", "line_gap", "baseline".

# 0.2.26
* Update _ttf-parser_ to `0.21`.

# 0.2.25
* Add `Font::glyph_svg_image` for accessing glyph svg data.

# 0.2.24
* Add `Font::font_data` for accessing underlying raw font data.

# 0.2.23
* Update _ttf-parser_ to `0.20`.

# 0.2.22
* Add `v2::GlyphImage` and `Font::glyph_raster_image2` to expose width and height info.
* Deprecate `Font::glyph_raster_image` & `GlyphImage`.
* Improve `OutlinedGlyph::draw` documentation.

# 0.2.21
* Update _ttf-parser_ to `0.19`.
* Add `GlyphImageFormat` variants `BitmapMono`, `BitmapMonoPacked`, `BitmapGray2`, `BitmapGray2Packed`,
  `BitmapGray4`, `BitmapGray4Packed`, `BitmapGray8`, `BitmapPremulBgra32`.
* `Font::h_advance_unscaled`, `h_side_bearing_unscaled`, `v_advance_unscaled`, `v_side_bearing_unscaled`
  and related `ScaleFont` methods now return `0.0` if the font does not define that value.
  Previously calls would panic when fonts lacked support.
* Use edition 2021.

# 0.2.20
* Add `FontVec::as_slice`, `FontVec::into_vec`.

# 0.2.19
* Update _ttf-parser_ to `0.18`.

# 0.2.18
* Update _ttf-parser_ to `0.17`.

# 0.2.17
* Add `VariableFont` trait implemented by `FontRef` & `FontVec`.
  Provides `variations` & `set_variation` functions.
* Add default enabled feature `variable-fonts`.

# 0.2.16
* Add `Font::pt_to_px_scale` to ease converting point size to `PxScale`.
* Add `PxScale::round`.

# 0.2.15
* Fix some font outlines by always trying to "close" them at the end. Fixes _Cantarell-VF.otf_ outlining.

# 0.2.14
* Update _ttf-parser_ to `0.15`.

# 0.2.13
* Update _ttf-parser_ to `0.14`.

# 0.2.12
* Update _owned-ttf-parser_ to `0.13.2`.
* Pre-parse cmap & kern subtables on all `Font` variants at initialization. This provides
  much faster `glyph_id` & `kern` method performance, results in 25-30% faster layout
  benchmark performance.

# 0.2.11
* `Font::outline` will return `None` for rare invalid/empty glyph bounds instead of panicking.
* Add `Font::glyph_raster_image` for color emoji fonts.

# 0.2.10
* Update _ttf-parser_ to `0.12`.

# 0.2.9
* Update _ttf-parser_ to `0.11`.

# 0.2.8
* Add fallback bounding box calculation for malformed font glyphs with zero sized boxes.
* Update _ttf-parser_ to `0.10`.

# 0.2.7
* Update _ttf-parser_ to `0.9`.

# 0.2.6
* Add `Font::codepoint_ids` method for iterating over `(GlyphId, char)` pairs.
* Clarify documentation.

# 0.2.5
* Add `Font::units_per_em` + documentation on unscaled font units.
* Update _ttf-parser_ to `0.8`.

# 0.2.4
* Update _ttf-parser_ to `0.7` adding CID font support.

# 0.2.3
* Add `v_advance` & `v_side_bearing` methods to `ScaleFont` + `_unscaled` variants to `Font`.

# 0.2.2
* Add `Font::glyph_bounds` method, similar to glyph_brush's `glyph_bounds` but for a single glyph.
* Rename `OutlinedGlyph::bounds` to `OutlinedGlyph::px_bounds` for clarity.

# 0.2.1
* Update _ttf-parser_ to `0.6`.

# 0.2
* Add `_unscaled` suffix to  `Font` trait methods that deal with unscaled metrics.
  This helps distinguish `ScaleFont`'s scaled metrics and can avoid unintended behaviour.
* Rename "libm-math" -> "libm" for consistency with _ab_glyph_rasterizer_.

# 0.1
* Implement fast glyph layout, outline & drawing primitives.