src/hb-font.cc


Log

Author Commit Date CI Message
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 72ada4f0 2016-09-10T03:57:24 [GX] Hook up feature variations Shape-plan caching is not implemented.
Behdad Esfahbod 26648ceb 2016-09-10T02:11:05 [GX] Remove (partial) support for anisotropic variations It doesn't always work, not part of FreeType, and we were not going to expose it in the API anyway. Can always be added later.
Behdad Esfahbod c22176d4 2016-09-10T01:58:27 [GX] Handle setting var coords to NULL
Behdad Esfahbod 250bcd6f 2016-09-09T23:12:14 [GX] Skip tail zero entries when setting variation coordinates
Behdad Esfahbod ad69e8f0 2016-09-09T22:23:34 [GX] Add new API hb_font_set_var_coords_normalized() Will probably change.
Behdad Esfahbod bb4d2e6e 2016-09-09T13:08:52 [GX] Free GX coordinates
Behdad Esfahbod ca286703 2016-03-01T19:29:36 [GX] Towards anisotropic interpolation Also hookup to ValueRecord and Anchors.
Behdad Esfahbod 6d9d3c55 2016-03-01T19:12:08 [GX] Add data types for encoding numerical variations
Behdad Esfahbod 33317310 2016-08-08T17:24:04 Fix sign of shift operators This one: map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); before the fix, the shift was done as an int, causing overflow if it ever got to 1 << 31. Sprinkle 'u's around. Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
Behdad Esfahbod aba4b0ca 2016-06-01T16:57:29 Add TODO
Konstantin Ritt 71248a84 2016-02-25T18:55:28 Fix build with HB_DISABLE_DEPRECATED When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h should be used, even from within HB itself.
Behdad Esfahbod c335fd79 2016-02-25T09:16:05 In trampoline implementation of get_glyph(), don't destroy user data twice!
Behdad Esfahbod 8b5bc141 2016-02-24T19:05:23 Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph() New API: - hb_font_get_nominal_glyph_func_t - hb_font_get_variation_glyph_func_t - hb_font_funcs_set_nominal_glyph_func() - hb_font_funcs_set_variation_glyph_func() - hb_font_get_nominal_glyph() - hb_font_get_variation_glyph() Deprecated API: - hb_font_get_glyph_func_t - hb_font_funcs_set_glyph_func() Clients that implement their own font-funcs are encouraged to replace their get_glyph() implementation with a get_nominal_glyph() and get_variation_glyph() pair. The variation version can assume that variation_selector argument is not zero.
Behdad Esfahbod f11c11a1 2015-12-16T17:08:36 Fix Since: tags for new API https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653
Simon Cozens 6f2e6de1 2015-10-26T16:23:22 Get font ascender and descender metrics from OS/2 table.
Behdad Esfahbod c41c145c 2015-11-26T18:43:15 Make nil glyph_h_origin() function return true Fixes https://github.com/behdad/harfbuzz/issues/187 Funcs implementations that have a non-zero horizontal origin must implement the glyph_h_origin() callback, nothing new here. Other implementations (all I know of!) can simply not set glyph_h_origin() now. I did that for hb-ot and hb-ft in 44f82750807475aa5b16099ccccd917d488df703, though that broke the fallback shaper because the default was returning false...
jfkthame f19c6db1 2015-11-20T08:43:49 Add braces for subobject initializer in _hb_font_funcs_nil To avoid triggering -Wmissing-braces; see https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8
Behdad Esfahbod 28de104f 2015-11-04T22:00:25 Move variable-sized struct member to end Hopefully makes clang build happy
Behdad Esfahbod 762770c9 2015-11-04T21:42:55 Add font->has_...() to check for individual nil font funcs Hopefully this wouldn't break any compiler. There was some magic moments to getting this to compile...
Behdad Esfahbod 88e9a9bc 2015-11-04T21:16:26 Minor reshaping of hb_font_funcs_t implementation In anticipation of further changes. No functional changes.
Behdad Esfahbod da29b437 2015-11-04T20:22:44 Separate nil font-funcs from parent-peeking font-funcs API change: all fonts created with hb_font_create() now inherit from (ie have parent) hb_font_get_empty().
Behdad Esfahbod 3e905e39 2015-10-08T12:51:02 Add hb_font_set_parent() No reason to not have it. Makes life easier later. We (hb-ft, hb-ot-font, etc) can use this API to inject new parent into a font...
Behdad Esfahbod 88da7bba 2015-10-02T14:38:20 Default font scale to face upem Makes for a better default and avoids nasty inheritance issues. See mailing list thread "Default hb_font_t scale".
Behdad Esfahbod 1866e171 2015-10-02T14:21:29 Make hb_font_create_sub_font() NOT make parent immutable We don't rely on that. However, whenever hb_font_make_immutable() is called, it makes its parenting chain immutable.
Behdad Esfahbod 5d74ff02 2015-09-03T14:55:59 Fix Since: version tags on font and face APIs A while back we marked every API as version:1.0. We should fix them all to reflect real version they were introduced. This is a start. Patch from Nikolay Sivov.
Sascha Brawer 01c3a885 2015-06-01T13:22:01 Fix "Since:" tags Based on data from http://upstream-tracker.org/versions/harfbuzz.html Resolves #103
Behdad Esfahbod eb0bf3ae 2014-08-06T15:36:41 Relax inert checks Previously, when creating an object from inert inputs (eg: "hb_font_create(hb_face_get_empty())") we returned the inert empty object. This is not helpful as there are legitimate usecases to do that. We now never return the inert object unless allocation failed. Tests are revised to reflect.
Khaled Hosny a394bb66 2015-03-22T20:29:10 [bindings] Fix *_from_string functions Without the element-type they will be getting garbage, at least with Python.
Behdad Esfahbod 3f310dc0 2014-07-22T16:26:27 Disallow changing settings on immutable face Ouch!
Behdad Esfahbod 2a8c49ad 2013-12-11T20:22:28 Remove unnecessary includes
Behdad Esfahbod a8949df4 2013-09-13T20:23:51 [introspection] Annotate Unicode / font callbacks Should move these out of the public header... We're "clean" of introspection warnings now. Remaining ones are about graphite2 / freetype types not being introspectable.
Behdad Esfahbod 085d4291 2013-09-12T17:14:33 [introspection] Disable constructors for now Since our types are not associated with their methods, marking constructors makes them inaccessible from bindings. Undo for now.
Behdad Esfahbod 70303cf2 2013-09-06T17:35:57 [docs/introspection] Some more annotations
Behdad Esfahbod 288f2899 2013-09-06T15:40:22 [docs/introspection] More annotations
Behdad Esfahbod 2e3a07ab 2013-08-26T18:49:07 Separate face source code from font Makes documentation / introspection easier.
Behdad Esfahbod e05a9994 2012-11-15T16:23:21 Add hb_face_[sg]et_glyph_count()
Behdad Esfahbod 7c8e844d 2012-08-28T17:57:49 Use namespace for OpenType tables Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
Behdad Esfahbod 4c8ac4f4 2012-08-08T17:44:19 Misc minor fixes
Behdad Esfahbod 6f3a3001 2012-08-07T22:13:25 Add hb_font_glyph_from/to_string
Behdad Esfahbod 368b4e76 2012-08-06T23:06:04 Minor
Behdad Esfahbod 66591ece 2012-08-06T17:07:19 Remove unnecessary lifecycle bits We already set recount to INVALID when destroying. This block was not necessary.
Behdad Esfahbod 8fbfda92 2012-08-01T19:03:46 Inline font getters
Behdad Esfahbod 2f87cebe 2012-07-27T04:02:38 Implement shape_plan caching Should give us some performance boost.
Behdad Esfahbod ea278d38 2012-07-27T02:12:28 Partially switch ot shaper to shape_plan
Behdad Esfahbod 027857d0 2012-07-26T17:34:25 Start adding a unified shaper access infrastructure Add global shape_plan. Unused so far.