Commit cc5447e
committed
harfbuzz: update to 13.0.1.
Overview of changes leading to 13.0.1
Saturday, March 7, 2026
=====================================
- Bug fixes in rendering `COLR` v1 fonts.
- Various build fixes.
Overview of changes leading to 13.0.0
Wednesday, March 4, 2026
=====================================
- New experimental drawing and rendering libraries:
* New public `hb-vector` API for vector output of glyph outlines. The only
supported output format currently is SVG.
The new API is available in a separate `harfbuzz-vector` library.
* New public `hb-raster` API for rasterizing glyphs to A8 / BGRA32 images.
The new API is available in a separate `harfbuzz-raster` library.
* Both APIs are still experimental and subject to change.
* Both libraries support monochrome as well as vector color glyph formats
(`COLR` v0, v1, and `SVG`).
* Additionally, `hb-vector` supports also bitmap color glyph formats (`CBDT`
and `sbix`).
* New command line utilities to accompany the new APIs: `hb-vector` and
`hb-raster`. They share many of the same options as `hb-view`.
- New subset flag `HB_SUBSET_FLAGS_DOWNGRADE_CFF2` to convert instantiated
`CFF2` table to `CFF `. This options will desubroutinize `CFF2` table and
convert it to CID-keyed `CFF` table. This is useful for compatibility with
older renderers that do not support `CFF2` table, including embedding
instantiated fonts in PDF documents.
- The `hb-view` command-line utility got a few bells and whistles as well,
including support for logical / ink extents (with the default being the union
of both), stroke, and an option to rotate glyph foreground colors
(rainbow coloring).
- New API to inspect color-glyph documents in `SVG` table.
- New API to signal that the buffer content was changed by the client in
message callbacks.
- Improve `VARC` drawing accuracy with multiple transform / rounding fixes.
- Don’t reject malformed `cmap` subtables, a regression from 12.3.0 when we
stopped sanitizing malformed tables.
- Disallow calling `hb_buffer_set_message_func()` from within the message
callback.
- Various performance optimizations, fuzzing fixes, and documentation
improvements.
- New API:
* harfbuzz:
+hb_buffer_changed()
+hb_ot_color_get_svg_document_count()
+hb_ot_color_get_svg_document_glyph_range()
+hb_ot_color_glyph_get_svg_document_index()
* harfbuzz-subset:
+HB_SUBSET_FLAGS_DOWNGRADE_CFF2
* harfbuzz-raster:
+hb_raster_draw_t
+hb_raster_extents_t
+hb_raster_format_t
+hb_raster_image_t
+hb_raster_paint_t
+hb_raster_draw_create_or_fail()
+hb_raster_draw_destroy()
+hb_raster_draw_get_extents()
+hb_raster_draw_get_funcs()
+hb_raster_draw_get_scale_factor()
+hb_raster_draw_get_transform()
+hb_raster_draw_get_user_data()
+hb_raster_draw_glyph()
+hb_raster_draw_recycle_image()
+hb_raster_draw_reference()
+hb_raster_draw_render()
+hb_raster_draw_reset()
+hb_raster_draw_set_extents()
+hb_raster_draw_set_glyph_extents()
+hb_raster_draw_set_scale_factor()
+hb_raster_draw_set_transform()
+hb_raster_draw_set_user_data()
+hb_raster_image_clear()
+hb_raster_image_configure()
+hb_raster_image_create_or_fail()
+hb_raster_image_destroy()
+hb_raster_image_get_buffer()
+hb_raster_image_get_extents()
+hb_raster_image_get_format()
+hb_raster_image_get_user_data()
+hb_raster_image_reference()
+hb_raster_image_set_user_data()
+hb_raster_paint_clear_custom_palette_colors()
+hb_raster_paint_create_or_fail()
+hb_raster_paint_destroy()
+hb_raster_paint_get_extents()
+hb_raster_paint_get_funcs()
+hb_raster_paint_get_scale_factor()
+hb_raster_paint_get_transform()
+hb_raster_paint_get_user_data()
+hb_raster_paint_glyph()
+hb_raster_paint_recycle_image()
+hb_raster_paint_reference()
+hb_raster_paint_render()
+hb_raster_paint_reset()
+hb_raster_paint_set_custom_palette_color()
+hb_raster_paint_set_extents()
+hb_raster_paint_set_foreground()
+hb_raster_paint_set_glyph_extents()
+hb_raster_paint_set_scale_factor()
+hb_raster_paint_set_transform()
+hb_raster_paint_set_user_data()
* harfbuzz-vector:
+hb_vector_draw_t
+hb_vector_extents_mode_t
+hb_vector_extents_t
+hb_vector_format_t
+hb_vector_paint_t
+hb_vector_draw_create_or_fail()
+hb_vector_draw_destroy()
+hb_vector_draw_get_extents()
+hb_vector_draw_get_funcs()
+hb_vector_draw_get_scale_factor()
+hb_vector_draw_get_transform()
+hb_vector_draw_get_user_data()
+hb_vector_draw_glyph()
+hb_vector_draw_recycle_blob()
+hb_vector_draw_reference()
+hb_vector_draw_render()
+hb_vector_draw_reset()
+hb_vector_draw_set_extents()
+hb_vector_draw_set_glyph_extents()
+hb_vector_draw_set_scale_factor()
+hb_vector_draw_set_transform()
+hb_vector_draw_set_user_data()
+hb_vector_paint_clear_custom_palette_colors()
+hb_vector_paint_create_or_fail()
+hb_vector_paint_destroy()
+hb_vector_paint_get_extents()
+hb_vector_paint_get_funcs()
+hb_vector_paint_get_scale_factor()
+hb_vector_paint_get_transform()
+hb_vector_paint_get_user_data()
+hb_vector_paint_glyph()
+hb_vector_paint_recycle_blob()
+hb_vector_paint_reference()
+hb_vector_paint_render()
+hb_vector_paint_reset()
+hb_vector_paint_set_custom_palette_color()
+hb_vector_paint_set_extents()
+hb_vector_paint_set_foreground()
+hb_vector_paint_set_glyph_extents()
+hb_vector_paint_set_palette()
+hb_vector_paint_set_scale_factor()
+hb_vector_paint_set_transform()
+hb_vector_paint_set_user_data()
+hb_vector_svg_paint_set_flat()
+hb_vector_svg_paint_set_precision()
+hb_vector_svg_set_flat()
+hb_vector_svg_set_precision()1 parent aa7b707 commit cc5447e
10 files changed
Lines changed: 139 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | 5 | | |
8 | 6 | | |
9 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| 46 | + | |
44 | 47 | | |
45 | 48 | | |
46 | 49 | | |
47 | 50 | | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
51 | 57 | | |
52 | 58 | | |
53 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
54 | 63 | | |
55 | 64 | | |
56 | 65 | | |
57 | 66 | | |
| 67 | + | |
58 | 68 | | |
| 69 | + | |
59 | 70 | | |
60 | 71 | | |
61 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
6 | 12 | | |
7 | 13 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
0 commit comments