src/hb-font.cc


Log

Author Commit Date CI Message
Khaled Hosny 30e7af11 2025-07-20T21:40:37 11.3.0
Khaled Hosny 639adcf2 2025-07-20T21:08:56 Fix missing REPLACEME version numbers from 11.2.0 release
Behdad Esfahbod 4fd6345a 2025-07-19T14:42:40 [ot-font] Clean up cache invalidation Also, cache is_synthetic on font.
Behdad Esfahbod 8d87e3af 2025-07-19T14:16:03 [font] Typo in glyph_v_origins impl
Behdad Esfahbod da18bc05 2025-07-19T04:25:37 [docs] Fix build
Behdad Esfahbod 6eeb012e 2025-07-19T02:54:09 [font] Don't set origin values if returning false
Behdad Esfahbod 1835c088 2025-07-19T02:25:43 [font] Add get_glyph_[hv]_origins callbacks (plural) Unused so far, and unimplemented in backends.
Caolán McNamara 1a804b0f 2025-07-13T20:40:53 const up modifier_combining_marks and supported_face_loaders, etc. move these symbols out of the .data section
Behdad Esfahbod 47089fe7 2025-05-28T17:10:22 Big misc changes - Make geometry types into templates taking float or double. - Changes to paint() transform elimination. - Add font->has_nonzero_coords and use it across. - Extensions to avar processing for otherwise invalid mappings.
Behdad Esfahbod 16c71077 2025-05-28T16:58:37 Merge branch 'main' into HVF
Behdad Esfahbod 9f5d8038 2025-05-26T16:07:51 [font] Refuse immutable fonts in set_funcs_using() Return early.
Behdad Esfahbod d92106df 2025-04-24T21:42:20 Merge branch 'main' into HVF
Behdad Esfahbod 38db1fac 2025-04-23T18:02:06 [paint] Change back return type of paint_glyph() to void Add new "_or_fail" variants of draw_glyph and paint_glyph New API: +hb_font_draw_glyph_or_fail_func_t +hb_font_paint_glyph_or_fail_func_t +hb_font_funcs_set_draw_glyph_or_fail_func() +hb_font_funcs_set_paint_glyph_or_fail_func() +hb_font_draw_glyph_or_fail() +hb_font_paint_glyph_or_fail() Deprecated API: -hb_font_draw_glyph_func_t -hb_font_paint_glyph_func_t -hb_font_funcs_set_draw_glyph_func() -hb_font_funcs_set_paint_glyph_func()
Behdad Esfahbod e78310bf 2025-04-23T00:58:08 [paint] Change return type to bool, and return false for outline glyphs It was impossible to get synthetic bold/slant correctly with the previous API. This is a minor API break, but one I'm willing to take.
Behdad Esfahbod 5d9cff80 2025-04-22T23:01:28 [font] Move is_synthetic() to .hh
Behdad Esfahbod 853720ea 2025-04-22T22:51:40 [font] Add hb_font_is_synthetic() New API: +hb_font_is_synthetic()
Behdad Esfahbod 395bc276 2025-04-22T21:05:53 [font] Fix draw_glyph default implementation to new scheme
Behdad Esfahbod 9dbb84e6 2025-04-22T20:25:44 [font] Don't apply synthetic bold/slant to parent Fixes https://github.com/harfbuzz/harfbuzz/issues/5274
Behdad Esfahbod 18ab0f55 2025-04-03T04:04:40 [font] Fix serial_coords
Behdad Esfahbod 6c06bdb3 2025-04-03T03:20:45 Merge branch 'main' into HVF
Behdad Esfahbod bbf0c6e7 2025-04-02T02:11:25 [font] Bump coords serial if face changed Such that ot-font clears its advance cache
Behdad Esfahbod f614a628 2025-03-24T17:28:10 Merge branch 'main' into HVF
Khaled Hosny ea6a172f 2025-03-24T00:33:53 11.0.0
Behdad Esfahbod e7cd818e 2025-03-22T15:31:00 Merge branch 'main' into HVF
Behdad Esfahbod 977e4f94 2025-03-22T14:09:26 [font] Simplify changed mechanism
Behdad Esfahbod b1258cdd 2025-03-16T16:22:52 Merge branch 'main' into HVF
Behdad Esfahbod 8d8fe190 2025-03-15T19:58:57 [dwrite] Add font-funcs sketch Small steps. Fixes https://github.com/harfbuzz/harfbuzz/issues/5144
Behdad Esfahbod 5402fe24 2025-03-12T23:06:11 Merge branch 'main' into HVF
Behdad Esfahbod 4807a021 2025-03-12T18:27:27 [atomic] Kill hb_atomic_ptr_t<T> Use hb_atomic_t<T *> instead.
Behdad Esfahbod 09014bef 2025-03-12T15:41:39 Merge branch 'main' into HVF
Behdad Esfahbod cbc205c2 2025-03-10T21:41:54 [font/face] Refactor some code
Behdad Esfahbod d067f2b2 2025-03-09T06:17:27 [font] get_acquire() the serial
Behdad Esfahbod cf5c654e 2025-03-09T06:17:27 [font] get_acquire() the serial
Behdad Esfahbod a0419a89 2025-03-09T05:36:00 Merge branch 'main' into HVF
Behdad Esfahbod 9e639e67 2025-03-09T05:10:50 [face] Review
Behdad Esfahbod aa268fc8 2025-03-09T03:31:01 [font/ft] See if tsan is happy with atomic_int_t serials
Behdad Esfahbod 9d05b03f 2025-03-09T01:34:37 [font] Add HB_FONT_FUNCS work into hb_font_set_funcs_using()
Behdad Esfahbod 39ade99d 2025-03-09T01:25:52 [face] Two new APIs: + hb_face_create_from_file_or_fail_using() + hb_face_list_loaders()
Behdad Esfahbod 68b07475 2025-03-08T12:41:50 [font-funcs] Support HB_FONT_FUNCS env var
Behdad Esfahbod 5a12bf41 2025-03-08T12:31:07 [font-funcs-using] Treat empty string like nullptr
Behdad Esfahbod 712a403b 2025-03-08T12:23:41 [font-funcs-using] Apply review feedback
Behdad Esfahbod 2a878b1b 2025-03-07T17:23:17 [font-funcs] Add two new API + hb_font_set_funcs_using() + hb_font_list_funcs() Part of https://github.com/harfbuzz/harfbuzz/issues/5117
Behdad Esfahbod d4bf8a77 2025-03-02T17:03:15 [glyf] Regain speed if variations are all zero We always have coords array populated now... Check for non-zero.
Behdad Esfahbod cf7f5ad0 2025-02-09T05:53:20 [font] Remove avar->is_biased() short-circuit That was not considering avar2 fonts. Let the has_nonzero_coords magic take care of optimizing for default instance. A couple extra allocations during hb_font_create(), but no big deal.
Behdad Esfahbod 9ccb7142 2025-02-08T20:26:46 [font] Return NAN for design coords, if normalized coords were set
Behdad Esfahbod 117b79fd 2025-02-08T20:15:36 [font] Change docs to match recent behavior change We always allocate coords vectors full-sized.
Behdad Esfahbod 9b6da299 2025-03-02T17:00:14 [font/var] Try to regain performance of all-normalized-coords=0
Behdad Esfahbod 1f0aae52 2025-02-08T01:57:06 [font/var] Try to allow "biased" avar's That map 0 to non-0!
Behdad Esfahbod 04be8088 2025-02-08T01:29:14 [font/var] Always allocate coords vector the length of fvar axes In prep for black magic.
Behdad Esfahbod 1a4bdd69 2024-10-10T14:16:14 [font] Change fallback y_advance sign Ouch.
Bruce Mitchener f380a328 2023-08-25T14:01:01 Fix some typos.
Khaled Hosny afe09102 2023-07-09T02:45:52 [font] Actually deprecate get_glyph_shape() We previously marked it as deprecated in the documentation but didn’t actually deprecate it in code. Now the only known users have migrated to draw_glyph(), lets deprecate o=it for good.
Behdad Esfahbod 4056315c 2023-05-22T14:17:12 [font] Remove redundant avar mapping line The avar mapping happens in hb_ot_var_normalize_coords() call.
Behdad Esfahbod 48f8ed7e 2023-04-22T10:11:22 Docs
Khaled Hosny bfab56d3 2023-03-03T13:14:05 [font] Typo
Khaled Hosny 60841e26 2023-03-03T01:01:49 7.1.0
Matthias Clasen 01d34763 2023-02-28T20:16:39 Typo fix
Behdad Esfahbod 5226d697 2023-02-28T14:49:44 [font] Make set_variation() respect currently-set variations Fixes https://github.com/harfbuzz/harfbuzz/issues/4143
Behdad Esfahbod bbb9d6d4 2023-02-28T12:07:48 [font] Add hb_font_set_variation()
Behdad Esfahbod 946477fa 2023-02-16T15:03:50 [font] Fix a MSVC "error" Oh well. Fixes https://github.com/harfbuzz/harfbuzz/issues/4122
Khaled Hosny 8bdaeddf 2023-02-11T23:44:58 7.0.0
Khaled Hosny 0ea8bbd9 2023-02-11T20:01:06 [doc] Use XSince for REPLACEME/EXPERIMENTAL To hide them from gtk-doc so that we can finally enable gtkdoc-check.
Khaled Hosny 13741e68 2023-02-11T19:17:37 [doc] Minor
Behdad Esfahbod 737b15c5 2023-02-08T17:45:59 [embolden] Docs
Behdad Esfahbod aef002e0 2023-02-07T11:29:49 [embolden] Add in-place option Adds --font-grade to hb-view and hb-shape.
Matthias Clasen 061f9958 2023-02-02T08:15:02 [font] Document synthetic boldness APIs
Behdad Esfahbod e39104ba 2023-02-01T16:56:56 [font/util] Add emboldening API, --font-bold Needs documentation.
Behdad Esfahbod e7a71ea1 2023-01-30T11:21:08 [font] Docs
Behdad Esfahbod 1b143b0f 2023-01-24T18:34:04 [font] Docs
Matthias Clasen c89aebc4 2023-01-24T20:24:27 hb-font: Document length limit for glyph names This is useful information for users of the hb_font_get_glyph_name() API.
Behdad Esfahbod 638e0ed4 2023-01-20T13:01:22 [paint] Overlay custom-palette on top of chosen palette Got to agree this is more ergonomic.
Behdad Esfahbod 53bd9039 2023-01-18T20:44:05 [paint] Doc
Behdad Esfahbod 8afd3ccb 2023-01-18T20:43:10 [paint] Add HB_PAINT_PALETTE_INDEX_CUSTOM
Behdad Esfahbod 9a2f2b59 2023-01-18T20:39:36 [font] Rename palette to palette_index
Behdad Esfahbod d769e8ae 2023-01-15T10:58:15 [hb-shape/view] Add --named-instance
Behdad Esfahbod 99838770 2023-01-15T10:54:01 [font] Add hb_font_get_var_named_instance() Two new API: +HB_FONT_NO_VAR_NAMED_INSTANCE +hb_font_get_var_named_instance
Behdad Esfahbod d195e077 2023-01-15T10:44:04 [font] Remember named_instance index Specially, in hb_font_set_variations() default to the named_instance for unspecified axes. Fixes https://github.com/harfbuzz/harfbuzz/issues/1883
Behdad Esfahbod 4fd03540 2023-01-10T14:32:08 [font] Docs
Behdad Esfahbod ccffce58 2023-01-10T13:09:30 [scale] More docs
Behdad Esfahbod c4580d86 2023-01-10T12:56:02 [scale] More docs
Behdad Esfahbod f0e695a3 2023-01-10T12:55:17 [scale] Comment
Behdad Esfahbod 8c47580a 2023-01-10T12:53:54 [scale] Document
Matthias Clasen b6e98cf7 2022-12-23T00:18:40 [colr] Add more docs State explicitly that palette entries are unpremultipled, and link to the spec.
Matthias Clasen 6387004c 2022-12-21T16:43:19 [paint] Simplify api Drop the hb_paint_context_t struct from the API, and only pass the font where we need it.
Matthias Clasen 9be01b6b 2022-12-21T14:04:32 [paint] Pass hb_paint_context_t along Replace the font argument with a hb_paint_context_t that carries the font, the palette index and the foreground color. The hb_font_paint_glyph() api now takes the palette index and the foreground color as extra arguments. Update all callers and regenerate test results.
Matthias Clasen 97224f3b 2022-12-21T02:11:36 [paint] Pass font to all callbacks This will lead to easier implementations. At the same time, we change the push_clip_glyph callback to use the font as-is, no unscaling needed. Update all callers and expected test results.
Matthias Clasen a20999b9 2022-12-21T00:20:37 [font] Fix a few documentation mistakes
Matthias Clasen 14b026ff 2022-12-19T13:53:49 [draw] Add hb_font_draw_glyph hb_font_draw_glyph(), hb_font_draw_glyph_func_t and hb_font_funcs_set_draw_glyph_func() are just alternative names for hb_font_get_glyph_shape and friends, to better align with hb_font_paint_glyph.
Matthias Clasen 0f287e75 2022-12-19T13:45:45 [paint] Rename hb_font_get_glyph_paint_func_t The 'get' was just there due to implementation choices. Work around that and call the vfunc what it should be: hb_font_paint_glyph_func_t.
Matthias Clasen 0ef2dc9b 2022-12-19T10:02:17 Drop a TODO This was addressed in 61bd602791d801
Behdad Esfahbod 9a7422c5 2022-12-18T13:46:32 [font] Minor doc fix
Behdad Esfahbod 815544a1 2022-12-18T13:33:54 [font] Adapt paint_glyph to parent transform
Matthias Clasen f1f8d1e8 2022-12-18T02:43:25 Small documentation addition
Matthias Clasen 378bbeea 2022-12-17T10:02:30 Add more docs
Matthias Clasen 684df8a8 2022-12-15T00:32:48 add some todos
Matthias Clasen 71efa0dc 2022-12-14T06:22:00 wip: hb_font_paint_glyph
Matthias Clasen 193e0e3e 2022-12-15T00:32:11 Cosmetic: typo fix
Behdad Esfahbod 5f3a7806 2022-11-23T16:45:46 [font] Protect against div-by-zero
Behdad Esfahbod 060ecac9 2022-11-23T16:31:37 [font] Respect subfont slant setting in hb-draw Fixes https://github.com/harfbuzz/harfbuzz/issues/3890
Behdad Esfahbod 59c45f6d 2022-11-22T12:54:50 Use hb_memcpy instead of memcpy consistently