src/hb-font.cc


Log

Author Commit Date CI Message
Behdad Esfahbod a9a607d3 2021-07-22T16:49:56 [variations] Support multiple axes with same tag, aka HOI The axes in fvar are in arbitrary order, NOT sorted. Hence have to lsearch all entries. Fixes https://github.com/harfbuzz/harfbuzz/issues/1673 Fixes https://github.com/harfbuzz/harfbuzz/issues/2743 Test from https://github.com/ctrlcctrlv/FontForge-Higher-Order-Interpolation
Behdad Esfahbod 233c29b3 2021-07-22T12:00:24 [font] Call fvar.find_axis_index instead of find_axis_info in set_variations()
Behdad Esfahbod 0b2280af 2021-07-22T11:53:32 [font] Call fvar table directly, instead of calling public get_axis_info To lighten it up in next commit.
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 Internally use hb_malloc/.../hb_free instead of malloc/.../free Redefining those stock names as macros was conflicting with gcc 10 headers. Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
Khaled Hosny 051a3c7b 2021-01-20T22:35:34 [docs] Fix typo
Khaled Hosny a44dd339 2021-01-01T01:36:57 [docs] Missing param docs
Khaled Hosny a64d56a3 2020-12-31T00:27:49 [introspection] nullable is for pointers
Khaled Hosny 9936490c 2020-12-31T00:19:29 [docs] Invalid use of "optional" annotation It is valid only for out and inout parameters. Fixes https://github.com/harfbuzz/harfbuzz/issues/1787
Khaled Hosny aa107e65 2020-12-30T23:34:17 [docs] Complete hb-font docs a bit
Khaled Hosny a8e72ee7 2020-12-30T23:08:40 [docs] Use %true and %false consistently
Khaled Hosny 35c4a15a 2020-12-24T22:34:02 [docs] Update hb-font documentation
Khaled Hosny f88e845f 2020-12-24T21:28:37 [docs] Minor fixes
Nathan Willis 82092d40 2019-04-22T15:31:24 [docs] Update gtk-doc comments in hb-font
Nathan Willis ec98730f 2019-04-17T14:44:25 [docs] regularize whitespace in function params
Ebrahim Byagowi 2dda6dd7 2020-04-20T14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
Ebrahim Byagowi 9b7fb5c2 2020-04-17T20:12:24 Move hb_font_get_var_coords_design behind HB_EXPERIMENTAL_API
Ebrahim Byagowi 352ac63e 2020-02-11T03:03:03 Fix an unlikely UAF on the deprecated _set_glyph_func API Fixes https://github.com/harfbuzz/harfbuzz/issues/2168
Ebrahim Byagowi 40166eb0 2020-02-08T13:17:06 [var] Fix the just introduced hb_font_set_var_coords_design storing bug The memcpy call was using the current coords count which is zero initially so no copy at all. Sad that no test has caught it, should see why, will however with the upcoming style API tests.
Ebrahim Byagowi 0b76e813 2019-08-20T15:15:22 Don't use _normalize_variations to avoid twice axis fetch
Ebrahim Byagowi ab2d3ec5 2019-08-14T18:42:51 [var] Implement hb_font_get_var_coords_design Hold design coords and simulate when normalized coords are set directly.
Behdad Esfahbod ce11df1b 2019-10-28T14:45:31 2.6.3
Behdad Esfahbod 5a59de2b 2019-10-28T14:02:47 Actually add +hb_font_get_nominal_glyphs() New API: +hb_font_get_nominal_glyphs()
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Behdad Esfahbod aaa85931 2019-08-20T13:06:10 [font] Update multipliers when creating sub_font Fixes https://github.com/harfbuzz/harfbuzz/issues/1910
Behdad Esfahbod dcb4cd40 2019-08-19T11:35:37 Minor
Ebrahim Byagowi bc27f86f 2019-08-14T22:37:00 Move HB_NO_VAR to a better place in hb-font.cc Needed for other works
Ebrahim Byagowi 6a194b68 2019-08-14T18:49:57 Minor, remove trailing spaces in hb-font.{cc,h} as .editorconfig
Behdad Esfahbod 6461143b 2019-08-13T22:20:54 2.6.0
Ebrahim Byagowi 40a4b6dd 2019-07-27T13:33:46 [var] Add a new API, hb_font_set_var_named_instance
Behdad Esfahbod b8477692 2019-07-05T13:52:09 [font] Keep font-space to user-space multiplier Part of https://github.com/harfbuzz/harfbuzz/issues/1801
Behdad Esfahbod df6edcd4 2019-07-05T13:45:15 Make face immutable in hb_font_set_face()
Behdad Esfahbod a8498731 2019-06-19T19:26:22 [config] Add HB_NO_VAR to disable variations support, enabled by HB_TINY Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 0819f3ca 2019-06-17T14:02:47 Deprecate v_kerning callback again Part of https://github.com/harfbuzz/harfbuzz/issues/1682
Behdad Esfahbod 2682efb0 2019-06-17T13:38:08 Revert "Deprecate font kern API" This reverts commit d219f899f4b2fb4b39ebc1dff9fb648fc5d6d112. API change: Un-deprecate font kern API. Part of https://github.com/harfbuzz/harfbuzz/issues/1682 We should document that this API is only necessary to hook up non-OpenType kerning. hb-ot-font will continue to NOT implement them.
Behdad Esfahbod fca27860 2019-05-11T00:37:01 [config] Make HB_DISABLE_DEPRECATED actually compile Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 227d85e1 2019-05-10T23:15:58 Minor
Behdad Esfahbod 4d31662b 2019-04-10T15:40:03 Don't install ot-font funcs on new fonts if HB_NO_OT_FONT defined Currently linker cannot GC hb-ot-font completely because we install it on fonts by default. Don't do that if HB_NO_OT_FONT defined. Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 447323b8 2019-01-22T12:45:40 Better fix for -Wcast-align errors
Behdad Esfahbod 81ec543d 2019-01-22T12:43:12 More -Wcast-error fixes
Behdad Esfahbod 8d05bf7d 2019-01-22T12:34:05 Fix cast-align error If compiler doesn't inline StructAtOffset, this was an error since we only disable cast-align at call-site. So, move the cast out. ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:146:85: required from here ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast<const Type*> ((const char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:147:79: required from here ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast<Type*> ((char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Behdad Esfahbod b900f780 2019-01-18T10:08:23 [pragma] More cast-align whitelist
Behdad Esfahbod 0d8b931b 2019-01-18T10:03:43 [pragma] Allow cast-align in hb-font.cc ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:144:85: required from here ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast<const Type*> ((const char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:145:79: required from here ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast<Type*> ((char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = int]':
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Behdad Esfahbod ce5da0f3 2018-11-16T02:29:13 [shaper] Rewrite shaper data code to be more template-driven than macro-driven
Behdad Esfahbod 925b7a21 2018-11-11T00:17:30 Comment
Behdad Esfahbod 93ef20a8 2018-11-03T15:03:06 Replace most uses of is_inert with is_immutable
Behdad Esfahbod 5570c87f 2018-11-03T14:51:38 Port objects to use header.writable instead of immutable Saves 4 or 8 bytes per object on 64bit archs.
Behdad Esfahbod b9db610a 2018-10-31T14:22:31 Minor
Behdad Esfahbod cf5fa57f 2018-10-27T04:50:38 [docs] Change section titles again I think I like the uniform "hb-*" more.
Behdad Esfahbod 5dd86aa3 2018-10-27T04:28:40 [docs] Rename section titles to object names More useful.
Behdad Esfahbod 00cf4e5e 2018-10-27T04:07:33 [docs] Fill in some sections
Behdad Esfahbod 39bd07ae 2018-10-26T21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
Behdad Esfahbod 08b71729 2018-10-19T19:12:33 [font] Fix parallel funcs passing to eachover in infinite-loop Fixes test just added.
Behdad Esfahbod 3d9a0306 2018-10-18T05:58:17 2.0.0
Behdad Esfahbod 68c86af1 2018-10-11T21:18:20 Always compile deprecated symbols We haven't been keeping this updated. So, while we don't expose the symbols in the headers if HB_DISABLE_DEPRECATED is defined, we still always build them.
Behdad Esfahbod 07899435 2018-10-09T15:39:51 Install ot-funcs on newly created funcs **Finally**! Casual users can stop caring about font-funcs completely now, like they haven't been needing to care re unicode-funcs for a few years.
Behdad Esfahbod b314c4e9 2018-10-09T09:23:51 [font] Add get_nominal_glyphs() callback (note the plural) Unused as of now. To be wired up to normalizer, which would remove overhead and allow hb-ot-font initialization to become a no-op, so we can enable it by default.
Behdad Esfahbod ca6a3170 2018-10-09T09:06:07 Minor
Behdad Esfahbod bee93e26 2018-10-09T08:01:49 Add const to get_*_advances API Ouch!
Behdad Esfahbod d219f899 2018-10-09T00:01:09 Deprecate font kern API
HinTak f9ea3dc4 2018-10-02T06:43:06 Missing "out" indicator (#1209) Missing "out" indicator. Affect gobject introspection.
Behdad Esfahbod 8a31e406 2018-09-30T05:27:39 [font] Make *_advance() fallback to *_advances And remove redundant implementations.
Behdad Esfahbod 90a0f9fa 2018-09-26T15:03:07 Make TSan happy with make_immutable()
Behdad Esfahbod 55bae682 2018-09-24T10:43:06 [docs] A few improvements If we wrote just this much every day...
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod 1f738094 2018-08-09T00:22:37 [atomic] Add hb_atomic_ptr_t<> and port all uses Found and fixed a couple bugs. Found a couple multithreading issues. Marked them with "XXX-MT-bug".
Behdad Esfahbod e49a38b2 2018-08-07T09:55:42 1.8.6
Behdad Esfahbod b0ff79ac 2018-08-07T09:52:06 Add +hb_font_get_glyph_advances_for_direction New API: +hb_font_get_glyph_advances_for_direction
Behdad Esfahbod 28e2f467 2018-08-07T09:47:00 Actually add hb_font_get_glyph_[hv]_advances New API: +hb_font_get_glyph_h_advances +hb_font_get_glyph_v_advances
Behdad Esfahbod 3d7c555a 2018-08-07T09:37:52 Remove get_advances_nil and alias it to get_advances_default
Behdad Esfahbod 79e21984 2018-08-06T09:45:17 Add batch advance width callback function New API: +hb_font_funcs_set_glyph_h_advances_func +hb_font_funcs_set_glyph_v_advances_func +hb_font_get_glyph_h_advances +hb_font_get_glyph_h_advances_func_t +hb_font_get_glyph_v_advances +hb_font_get_glyph_v_advances_func_t
Koji Ishii 9533364c 2018-08-01T13:01:08 batchwidth
Behdad Esfahbod 3506672c 2018-08-06T06:17:48 Port _nil objects to Null() machinery Finally, unified!
Ebrahim Byagowi 24b8b9b2 2018-04-23T19:03:57 Resolve clang's used-but-marked-unused warnings
Behdad Esfahbod 7e3015a3 2017-10-15T12:13:19 Fix warnings
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod 374bb48d 2017-10-11T15:37:50 Change ptem API to make 0 mean unset
Behdad Esfahbod 269cf1ca 2017-10-11T15:24:22 Correctly initialize ptem
Behdad Esfahbod c0c2dbc8 2017-10-11T12:23:35 Remove dirty tracking Turns out I don't need this to resolve CoreText optical sizing issue after all. https://github.com/behdad/harfbuzz/issues/360
Behdad Esfahbod b57f18da 2017-10-11T11:47:47 Add hb_font_[sg]et_ptem() to set/get point size on font New API: hb_font_set_ptem() hb_font_get_ptem() Needed for hb-coretext optical sizing: https://github.com/behdad/harfbuzz/issues/360
Behdad Esfahbod 3f9370d9 2017-10-11T11:34:53 Fix TODO item
Behdad Esfahbod 587f15ec 2017-08-14T15:23:10 Minor
Philip Withnall ffde3c9f 2017-02-08T21:56:57 hb-font: Fix a potentially undefined use of memcmp() (#413) While it’s fine to call memcmp(x, 0, 0) in practice, the C99 standard explicitly says that this is not allowed: even if the length is zero, the pointer arguments must be valid. http://stackoverflow.com/a/16363034 Coverity ID: 141178 Signed-off-by: Philip Withnall <withnall@endlessm.com>
Behdad Esfahbod d3d36918 2017-02-03T15:42:03 Add dirty-state tracking to hb_face_t
Behdad Esfahbod 2171f48b 2017-02-03T10:58:09 Add dirty-state tracking to hb_font_t
Behdad Esfahbod 95808bad 2017-02-03T10:39:40 Add new API hb_font_set_face() For completeness.
Behdad Esfahbod 22af28a3 2017-01-23T23:42:53 [var] Implement MVAR table Unhooked. Untested.
Behdad Esfahbod 5ec96d30 2017-01-22T18:52:00 [var] Adjust API in prep for 'avar' implementation The 'avar' table does not allow random access to axis maps, so change API to avoid quadratic-time implementation. Removed -hb_ot_var_normalize_axis_value(), added +hb_ot_var_normalize_variations() and +hb_ot_var_normalize_coords() instead.
Behdad Esfahbod 7647a05a 2017-01-22T17:47:49 Minor
Behdad Esfahbod d2f249e7 2017-01-22T17:42:33 Stub out doc comments for new symbols
Behdad Esfahbod bb1e1926 2017-01-21T17:41:37 [var] Rename var_coord to variation Looks much better.
Behdad Esfahbod 64fe92bf 2017-01-21T15:36:35 [var] Remove use of variable-length arrays
Behdad Esfahbod 2491134b 2017-01-21T15:21:50 [var] Add hb_font_set_var_coords()
Behdad Esfahbod 113393ef 2017-01-21T15:12:03 Remove a few unused includes
Behdad Esfahbod 8b2a5804 2017-01-21T15:05:00 [var] Add hb_font_set_var_coords_design()
Behdad Esfahbod 0dcc7b49 2017-01-21T14:50:22 [var] Minor lifecycle adjustment
Behdad Esfahbod bf0d3a66 2017-01-21T14:48:46 [var] Add hb_font_get_var_coords_normalized()
Behdad Esfahbod f2e73d37 2017-01-20T17:42:18 [var] Remove over-optimization
Behdad Esfahbod ca286703 2016-03-01T19:29:36 [GX] Towards anisotropic interpolation Also hookup to ValueRecord and Anchors.
Behdad Esfahbod 72ada4f0 2016-09-10T03:57:24 [GX] Hook up feature variations Shape-plan caching is not implemented.