src/hb-ot-font.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 6dfd4a16 2022-11-16T22:44:22 [ot-font] Remove stale TODO
Khaled Hosny d2966d39 2022-09-22T23:30:50 [ot-font] Try CBDT extents before outline tables Like we do for sbix table. Fixes https://github.com/harfbuzz/harfbuzz/issues/3827
Behdad Esfahbod c02a1a4a 2022-09-10T10:44:16 [ot-font] Remove unused include
Behdad Esfahbod d7adc55e 2022-08-03T13:22:51 [ot-font] Allow 24bit glyphs in advance cache
Behdad Esfahbod ec90d1e1 2022-08-03T13:00:48 [cache] Add a non-threadsafe version Use in hb-ft, since already mutex'ed.
Behdad Esfahbod 86d1e22d 2022-08-03T12:43:28 [atomic-ptr] Rename get
Behdad Esfahbod d3f2287e 2022-08-03T12:37:41 [atomic-int] Rename get/set
Behdad Esfahbod a5d9012e 2022-07-29T19:51:00 Revert "[ot-font] Minor simplification" This reverts commit 28c02b37684b41bf584ed81d910a448bdf9f706a. Old code was used in case of memory allocation failure (as shown by fuzzers...)
Behdad Esfahbod 28c02b37 2022-07-29T15:55:16 [ot-font] Minor simplification
Behdad Esfahbod b0cb9a1a 2022-07-03T15:32:32 Make get_leading_bearing return bool Fixes https://github.com/harfbuzz/harfbuzz/issues/3496 Part of supporting >64k glyphs correctly.
Behdad Esfahbod f46ddeba 2022-07-03T13:12:49 [hmtx/glyf] Rename side-bearing functions for clarity
Behdad Esfahbod ab5ce643 2022-07-03T13:00:22 [VVAR] Rename vorg function for clarity
Behdad Esfahbod b2d60cbd 2022-07-03T12:56:48 [glyf] Rename advance functions for clarity
Behdad Esfahbod 35c00c12 2022-07-03T12:54:17 [hmtx] Rename advance functions for clarity
Behdad Esfahbod b07fa2bb 2022-07-02T13:43:23 [ot-font] Respect VORG even if it has no variations
Behdad Esfahbod aba4a495 2022-06-30T14:13:44 [ot-font] Disable VORG variation code in HB_NO_VAR
Behdad Esfahbod d5921b37 2022-06-30T14:08:29 [tt-font] Apply VVAR.vOrg variation to VORG origin Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/1694
Behdad Esfahbod eee29f73 2022-06-30T14:03:07 [hmtx] Specialize var_table
Behdad Esfahbod a719e678 2022-05-24T17:51:24 [ot-font] Use atomic ops for cache serial number This guarantees the cache is coherent.
Behdad Esfahbod 5248b256 2022-05-24T13:55:17 [ot-font/h-advance] Adjust varStore cache condition This gives best performance for short strings, now that we have a h-advance cache as well. The en-words benchmark in particular, now ot-font is faster than ft. Second to last line is of interest: Before: ----------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ----------------------------------------------------------------------------------------------------- BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 29.8 ms 29.8 ms 23 BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.4 ms 30.4 ms 23 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.5 ms 16.5 ms 42 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 18.0 ms 18.0 ms 39 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39 After: behdad@Behdads-MacBook-Pro harfbuzz % ninja -Cbuild && build/perf/benchmark-shape --benchmark_filter=en-words ----------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ----------------------------------------------------------------------------------------------------- BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 30.0 ms 30.0 ms 23 BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.3 ms 30.3 ms 23 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.4 ms 16.4 ms 43 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 17.6 ms 17.6 ms 40 BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39
Behdad Esfahbod 12fff976 2022-05-24T13:42:25 [ot-var] Use atomic int for cached-serial
Behdad Esfahbod 0919eaa6 2022-05-24T13:07:24 [ot-font] Remove lock around cache Not needed.
Behdad Esfahbod 3548b602 2022-05-23T19:39:52 [ot-font] Cache h-advances for variable fonts
Behdad Esfahbod 39a07bf3 2022-05-23T19:13:05 [ot-font] Rename cache to varStore_cache
Behdad Esfahbod 970e03ec 2022-05-23T19:02:36 [ot-font] Add a hb_ot_font_t struct
Behdad Esfahbod 3eb7eff4 2022-05-21T15:25:53 Remove varstore cache use if HB_NO_VAR
Behdad Esfahbod 099482a3 2022-05-21T15:20:23 [ot-font] Cache v_advance varstore as well
Behdad Esfahbod 5336ba70 2022-05-20T17:03:18 [HVAR] Cache VarStore region scalars
Behdad Esfahbod 1449498e 2022-03-21T21:40:07 [ot-font] Vertically center glyph in vertical writing fallback Fixes https://github.com/harfbuzz/harfbuzz/issues/537
Behdad Esfahbod bf03d7e9 2022-03-21T21:27:31 [ot-font] Use ascent+descent for fallback vertical advance This matches what FreeType does. Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
Behdad Esfahbod 6d0e67de 2022-03-21T21:07:11 [ot-font] Only use vmtx side-bearing if table exists Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
Behdad Esfahbod 59067db9 2022-02-07T17:55:01 [font/draw] Slant drawings Need to update hb_font_set_synthetic_slant() docs now that we do this.
Behdad Esfahbod 370bec93 2022-02-04T18:40:44 [draw] Rename internal draw_session_t to hb_draw_session_t
Behdad Esfahbod c681331c 2022-02-03T14:36:12 [draw] Rename internal draw_helper_t to draw_session_t
Behdad Esfahbod 8b4f4290 2022-02-03T01:14:47 [draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape() To be implemented in hb-ft.
Behdad Esfahbod 53eebc7c 2021-12-08T08:32:41 [CONFIG] Add HB_NO_VERTICAL
Behdad Esfahbod 9bc5d290 2021-12-08T08:16:17 [TINY] Don't disable VORG table in any config profile Is needed for vertical layout of CFF fonts. Fixes https://github.com/harfbuzz/harfbuzz/discussions/3294#discussioncomment-1770313
Behdad Esfahbod ed116320 2021-09-14T07:09:54 Call atexit() via hb_atexit() Part of https://github.com/harfbuzz/harfbuzz/issues/3197
Nathan Willis eb10ef46 2019-04-22T19:22:24 [Docs] Add GTK-Doc comments for hb-ot-font and hb-ot-shape.
blueshade7 82545c5e 2019-11-26T10:24:32 more coding style fixes
blueshade7 2e7c1239 2019-11-26T09:57:53 minor: coding style
blueshade7 ff87465b 2019-11-19T16:18:33 add get_glyph_from_name & test. use hb_string_array
blueshade7 7b49042e 2019-11-16T18:20:16 add cff1::get_glyph_name
Ebrahim Byagowi b068e25f 2019-10-08T16:29:15 [glyf] Address Behdad's reviews Addresses https://github.com/harfbuzz/harfbuzz/pull/1999#issuecomment-539298559 * Don't check against Null pool * Remove cryptic _tt suffix
Ebrahim Byagowi d73cdcf3 2019-10-06T18:09:14 [ot-font] Apply font scaling before turning to int
Ebrahim Byagowi 74a2dbbc 2019-10-06T17:06:40 minor
Ebrahim Byagowi 100dbcca 2019-10-06T09:18:22 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi 57528636 2019-10-05T23:51:50 [glyf][gvar] Make HB_NO_VAR buildable
Ebrahim Byagowi ee761018 2019-10-03T15:59:45 [hmtx] Use more conventional internal API style
Michiharu Ariza b9ff43c1 2019-10-01T16:13:40 Implement gvar table and variable glyf Split from Ariza's "[subset] TrueType/CFF2 variable font" work on #1594
Ebrahim Byagowi 79ec65ae 2019-10-03T14:27:51 [ot-font] Use var vmtx side bearing in calculating v-origin
Ebrahim Byagowi 9ff32b79 2019-08-29T19:53:18 Merge remote-tracking branch 'upstream/master' into glyf-rebase
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
Michiharu Ariza 6b3e0939 2019-07-31T16:04:48 Merge branch 'master' into var-subset
Ebrahim Byagowi 20072a2e 2019-07-30T03:43:15 [metrics] Make values match their enum type naming
blueshade7 5988ab8a 2019-07-22T14:36:16 Merge branch 'master' into var-subset
Behdad Esfahbod 77141dff 2019-07-22T07:48:32 [metrics] _-prefix internal symbol
Ebrahim Byagowi 772e6268 2019-07-20T14:50:31 Make HB_TINY builds work again by separating the always needed part
Ebrahim Byagowi 29444d7e 2019-07-20T13:52:21 Don't cache ascender/descender metrics
blueshade7 8bf989ea 2019-07-08T17:13:29 update from master
Behdad Esfahbod 230adf2c 2019-06-19T18:49:52 [config] Add HB_NO_OT_FONT_GLYPH_NAMES Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 1432df10 2019-06-19T18:32:40 [config] Disable hb-ot-font code if HB_NO_OT_FONT Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod d7e27cd6 2019-06-18T14:38:05 [config] Don't use VORG table if HB_NO_OT_FONT_CFF Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod eb2825c7 2019-06-17T13:42:53 Minor
Michiharu Ariza 8f8e8a84 2019-06-05T12:59:09 fix build
Michiharu Ariza 4ddab6fa 2019-06-05T11:21:27 Merge branch 'master' into var-subset
Behdad Esfahbod a6048e4c 2019-05-11T12:11:22 Fix build
Behdad Esfahbod 32d3c06b 2019-05-11T11:59:18 Disable sbix if no-color or no-ot-font-bitmap Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 227d85e1 2019-05-10T23:15:58 Minor
Michiharu Ariza 6cde814a 2019-04-16T11:35:07 Merge branch 'master' into var-subset
Behdad Esfahbod 60a58aa6 2019-04-12T14:58:53 Add HB_NO_OT_FONT_BITMAP Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 160c4d8b 2019-04-12T14:57:49 Add HB_NO_OT_FONT_CFF Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Michiharu Ariza e8140832 2019-04-11T09:59:13 undo hb_ot_ge_glyph_v_origin to fix test failures
Michiharu Ariza ab9d3096 2019-04-10T17:21:37 Add tt var metrics test cases & bug fixes
Michiharu Ariza c302ec6d 2019-03-17T15:36:26 moved most of var code from gvar to glyf initialize phantom points from metrics from htmx/vmtx & glyf bbox before execution added source file hb-ot-hmtx-table.cc to call glyf from hmtx/vmtx indirectly & temporarily, workaround a cyclic reference between the two
Michiharu Ariza 628d457c 2019-03-12T11:03:53 add gvar::get_extents
Michiharu Ariza 8a7998fd 2019-03-17T15:36:26 moved most of var code from gvar to glyf initialize phantom points from metrics from htmx/vmtx & glyf bbox before execution added source file hb-ot-hmtx-table.cc to call glyf from hmtx/vmtx indirectly & temporarily, workaround a cyclic reference between the two
Michiharu Ariza d23c201f 2019-03-12T11:03:53 add gvar::get_extents
Michiharu Ariza 99502b32 2019-03-12T11:03:53 add gvar::get_extents
Evgeniy Reizner d29c8424 2019-02-19T18:35:00 Typo (#1588) Fixed a small typo. [skip ci]
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
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Michiharu Ariza 32d291ae 2018-11-28T16:27:45 Merge branch 'master' into cff-subset
Behdad Esfahbod b89c7fd3 2018-11-21T12:32:48 Allow defining HB_USE_ATEXIT to 0 That's better use of that value than requiring extra macro HB_NO_ATEXIT
Michiharu Ariza 892ab37e 2018-11-14T13:54:07 Merge branch 'master' into cff-subset
Ebrahim Byagowi 7867c2ba 2018-11-14T22:13:50 [STAT] Add table parsing (#1384)
Michiharu Ariza 43ee0e4d 2018-11-06T09:57:17 Merge branch 'master' into cff-subset
Behdad Esfahbod 9198de7b 2018-11-05T23:10:37 [ot-font] Remove ensure
Behdad Esfahbod 0fe7a745 2018-11-05T23:08:33 [ot-face] Simplify more table access
Behdad Esfahbod 914b595f 2018-11-05T22:39:50 [ot-face] Include hb-ot-face directly in hb_face_t Simplifying access coming next.
Behdad Esfahbod 56ba998c 2018-11-05T19:49:54 [cmap] Push get_nominal_glyphs down into cmap accelerator
Behdad Esfahbod 03348ce0 2018-11-05T12:59:32 Minor
Michiharu Ariza e600e544 2018-11-01T16:13:56 Merge branch 'master' into cff-subset
Ebrahim Byagowi c929ccfc 2018-10-29T08:41:13 [ot-color/png] Consider strike ppem on scaling
Behdad Esfahbod 01c7d53f 2018-10-28T14:51:18 [sbix] Select best strike based on ppem
Behdad Esfahbod f9f26bff 2018-10-28T14:20:50 [sbix] Move code around. Add get_extents()