src/hb-font.cc


Log

Author Commit Date CI Message
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.
Behdad Esfahbod 1bc1cb36 2012-06-16T15:21:55 Make source more digestable for gobject-introspection
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod f06ab8a4 2012-06-05T12:31:51 Better hide nil objects and make them const
Behdad Esfahbod bce09552 2012-05-27T11:29:21 Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name()
Behdad Esfahbod 20fdb0f4 2012-05-17T22:04:45 Add a lock-free cache type for int->int functions To be used for cmap and advance caching if desired.
Behdad Esfahbod d993e723 2012-05-13T16:04:36 Fix hb_face_set_index()
Behdad Esfahbod 0cd33592 2011-09-21T16:49:33 Fix possible leaks
Behdad Esfahbod b9415e76 2011-08-17T19:21:44 [API] Add hb_font_set_funcs_data()
Behdad Esfahbod 7a750ac3 2011-08-17T14:19:59 Rename table files from eg maxp-private.hh to maxp-table.hh
Behdad Esfahbod 33ccc779 2011-08-09T00:43:24 [API] Make set_user_data() functions take a replace parameter We need this to set data on objects safely without worrying that some other thread unsets it by setting it at the same time.
Behdad Esfahbod 3897335c 2011-08-08T23:37:41 [API] Sort out get_blob API hb_face_get_blob() renamed to hb_face_reference_blob(), returns a reference now. hb_face_[sg]et_index() added. hb_face_set_upem() added.
Behdad Esfahbod e715784b 2011-08-08T21:42:02 Rename get_table to reference_table in all API
Behdad Esfahbod c605bbbb 2011-08-04T20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
Behdad Esfahbod bf8c57ba 2011-08-03T17:38:04 [API] Add hb_face_get_blob() Need to think more about it.
Behdad Esfahbod 4b6317c4 2011-07-07T23:14:42 More code shuffling
Behdad Esfahbod 2d8ebcb9 2011-05-25T11:27:33 [API] One last font-funcs API change Now that vertical text works correctly, I'm doing a last round modification of the font-funcs API to simplify. Expect no more changes around here.
Behdad Esfahbod 67d51ff9 2011-05-19T19:08:57 [Vertical] Do fallback origin calculation
Behdad Esfahbod 60fbb360 2011-05-19T18:46:15 [Vertical] GPOS is always done with horizontal origin