src/OT/glyf


Log

Author Commit Date CI Message
Behdad Esfahbod 7f5380fe 2023-07-02T12:19:22 [Composite] Don't apply transformation if phantom_only
Behdad Esfahbod 0cf759b0 2023-07-02T12:15:43 [Glyph] Don't shift anchored Composite if phantom_only Fixes https://oss-fuzz.com/testcase-detail/5114131137822720
Behdad Esfahbod 645bde47 2023-07-02T12:07:22 [Glyph] Pass phantom-only to gvar only for SIMPLE glyphs For Composites we need to get the translation offset deltas.
Behdad Esfahbod 794fac32 2023-06-29T20:55:52 [glyf] Minor another range for loop
Behdad Esfahbod 0ae16766 2023-06-29T20:38:42 [CompositeGlyph] Minor use a range for loop
Behdad Esfahbod 05c01ad5 2023-06-29T16:49:20 [SimpleGlyph] Minor use a range for loop
Behdad Esfahbod 4123e0c7 2023-06-29T16:27:35 [path-builder] Speed up mid-point calculation
Behdad Esfahbod ca44c38c 2023-06-29T14:41:21 Add HB_ALWAYS_INLINE With MSVC implementation as well.
Behdad Esfahbod c49ca371 2023-06-29T12:38:45 [Glyph] Minor micro-optimize away a function call For when coords are not set.
Behdad Esfahbod 5fb7b02a 2023-06-29T12:28:43 [CompositeGlyph] Minor use range loop
Behdad Esfahbod 20b32b04 2023-06-29T12:08:11 [SimpleGlyph] Micro-optimize phantom_only
Behdad Esfahbod 04809ede 2023-06-29T11:58:53 [CompositeGlyph] Micro-optimize translate()
Behdad Esfahbod 229db973 2023-06-29T11:54:10 [CompositeGlyph] Minor use vector::push()
Behdad Esfahbod 75101802 2023-06-29T10:54:49 [CompositeGlyph] Micro-optimize
Behdad Esfahbod e9d74d6b 2023-06-29T10:53:52 [SimpleGlyph] Minor add an unlikely to error condition
Behdad Esfahbod 6abca413 2023-06-29T10:39:49 [path-builder] Micro-optimize No need to initialize these when has_data=false.
Behdad Esfahbod 5703c1c4 2023-06-29T10:35:23 [path-builder] Add a couple of unlikely's
Behdad Esfahbod f5eead04 2023-06-28T15:07:15 [glyf/gvar] Optimize getting variable phantom points Used when there's no HVAR table and get_h_advance(). I see some 10% speedup with a SourceSerifVariable-Roman with the HVAR table removed.
Behdad Esfahbod e42d6df5 2023-06-28T14:25:11 [glyf] Minor refactor a couple of lines and micro-optimize
Behdad Esfahbod c31471d1 2023-06-28T13:51:54 [glyf] Micro-optimize
Behdad Esfahbod 83d75d5e 2023-06-28T13:35:24 [glyf] always_inline consume_point 7% speedup in: BM_Font/draw_glyph/Roboto-Regular.ttf/hb
Behdad Esfahbod 8795cced 2023-06-28T13:29:29 Revert "[SimpleGlyph] Avoid branches in read_points" This reverts commit ba062c713e469f91f57f3c85990f721789ec7c2a.
Behdad Esfahbod ba062c71 2023-06-28T13:24:37 [SimpleGlyph] Avoid branches in read_points Calculate total bytes in read_flags and bounds-check once. This slows things down apparently, so going to revert.
Behdad Esfahbod 452557cd 2023-06-26T18:40:54 Replace a free with hb_free Ouch.
Behdad Esfahbod 1fc128f6 2023-06-26T18:34:27 Replace a few memset/memcpy's with hb_ equivalents
Behdad Esfahbod 15048e50 2023-06-04T10:07:04 [serialize] Add more function attributes
Behdad Esfahbod 82741304 2023-06-04T09:41:41 [subset] start_embed never returns nullptr Remove checks.
Behdad Esfahbod af3fdf1f 2023-06-04T09:22:42 [subset/glyf] Simplify error handling
Behdad Esfahbod 3dd1de46 2023-06-04T09:15:14 [subset/glyf] Fix a few return_trace's
Behdad Esfahbod 73f2f935 2023-06-04T09:12:18 [subset/glyf] Fix another leak
Behdad Esfahbod 3d08a2f1 2023-06-03T23:38:38 [subset/glyf] Fix leak
Behdad Esfahbod fc33200d 2023-06-03T23:29:39 [subset/glyf] Avoid a vector copy Oops!
Behdad Esfahbod 3bfcbd61 2023-06-03T23:17:56 [subset/glyf] Minor use range lopp
Behdad Esfahbod 917c8d0a 2023-06-03T23:15:56 [subset/glyf] Minor change of value
Behdad Esfahbod 87cf09bd 2023-06-03T21:00:56 [subset/loca] Fix up for retaingid null glyphs at the end We currently don't have those, but in case we add.
Behdad Esfahbod 38fa0323 2023-06-03T18:51:09 Revert "[subset/loca] Build in the serializer memory" This reverts commit 546b51818666ca1ddb01824f752eccbd6a751b4b.
Behdad Esfahbod 546b5181 2023-06-03T18:50:35 [subset/loca] Build in the serializer memory Because it's hot. Doesn't seem to speed up though. Slight slowdown. Going to revert.
Behdad Esfahbod 3cb2b49e 2023-06-03T18:44:56 [subset/loca] Shuffle code around
Behdad Esfahbod b0d0babb 2023-06-03T17:14:55 [subset/loca] Rewrite loop faster
Behdad Esfahbod ca27925d 2023-06-03T16:18:15 Use hb_codepoint_pair_t in more places
Behdad Esfahbod c7493efe 2023-06-03T15:39:27 [subset/loca] Micro-optimize
Behdad Esfahbod efefec13 2023-06-02T20:33:52 [subset/glyf] Remove unneeded codepath
Behdad Esfahbod ac1f5ca0 2023-06-02T17:07:44 [subset/loca] Micro-optimize
Behdad Esfahbod 6eae9325 2023-06-02T17:05:27 [subset/loca] Reduce a vector allocation
Behdad Esfahbod ec8965e4 2023-06-02T16:10:25 [subset/glyf] Don't clear loca allocation
Behdad Esfahbod b67e464b 2023-06-02T15:11:06 [subset/retaingid] Regain perf lost In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
Behdad Esfahbod 0f12fd5a 2023-06-02T13:58:55 [subset/glyf] Fix for non-monotonic glyphmap Slows things down again, but is correct. Still a good win combined with the previous changes.
Behdad Esfahbod 66ce902c 2023-06-02T13:53:21 [glyf] Reduce allocation again
Behdad Esfahbod 0e0110e7 2023-06-02T13:34:58 [glyf] Avoid a SubsetGlyph copy Unfortunately hb_second() always does a copy...
Behdad Esfahbod 33ea8b5e 2023-06-02T13:10:52 [subset/glyf] Don't allocate empty SubsetGlyf's Shows 33% speedup on Mplus/retaingid/10 benchmark: Comparing before to after Benchmark Time CPU Time Old Time New CPU Old CPU New -------------------------------------------------------------------------------------------------------------------------------------------------------- BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.3296 -0.3294 0 0 0 0
Behdad Esfahbod b04ca1c1 2023-06-01T20:43:07 Revert "[subset/glyf] Exact allocation" This reverts commit a830f085c849846f8441f5d92d4db36130ef71f8. Weirdly enough in a benchmark I'm running I see this show some slowdown. Makes zero sense.
Behdad Esfahbod a830f085 2023-06-01T20:37:29 [subset/glyf] Exact allocation
Behdad Esfahbod ff0b85cf 2023-06-01T20:30:56 [subset/glyf] Empty .notdef only if old-gid was also 0 Otherwise it wasn't a .notdef, even if new-gid is 0.
Behdad Esfahbod 65a7d8c6 2023-06-01T20:20:00 [glyf] Empty glyphs need no padding
Behdad Esfahbod 73c18d1d 2023-06-01T20:06:42 [glyf] Micro-optimize padded_offsets
Behdad Esfahbod 4d853b8b 2023-06-01T18:47:58 [subset/regaingid/glyf] Add a fastpath for empty glyphs Mplus benchmark: Comparing before to after Benchmark Time CPU Time Old Time New CPU Old CPU New ----------------------------------------------------------------------------------------------------------------------------------------------------------- BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.1764 -0.1771 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64 -0.1394 -0.1394 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512 -0.0644 -0.0645 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096 +0.0132 +0.0131 1 1 1 1 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000 -0.0029 -0.0034 3 3 3 3 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10 +0.0364 +0.0362 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/64 +0.0346 +0.0343 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/512 +0.0271 +0.0268 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/4096 +0.0193 +0.0193 1 1 1 1 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10000 -0.0240 -0.0243 2 2 2 2 OVERALL_GEOMEAN -0.0305 -0.0307 0 0 0 0
Behdad Esfahbod 6ec7629f 2023-06-01T18:18:30 [subset/glyf] Add a const
Behdad Esfahbod 208c9490 2023-05-26T12:02:03 [VarComposite] Limit number of axes that are copied Bandaid for https://oss-fuzz.com/testcase-detail/4591122882887680
Behdad Esfahbod 5872bdf6 2023-05-26T11:41:54 [vector] Add copy-constructor for array_t's
Behdad Esfahbod 5543d058 2023-05-17T17:29:44 [subset] Use vector instead of map for glyph bounds (#4232) * [subset] Use vector instead of map for glyph bounds Is faster. Part of https://github.com/harfbuzz/harfbuzz/issues/4231 * [subset] initialize bounds_vec value to 0xFFFFFFFF Some non-EMPTY glyph might have 0 bounds width/height --------- Co-authored-by: Qunxin Liu <qxliu@google.com>
Qunxin Liu bf298e50 2023-05-01T13:40:19 [instancer ]update OS_2/post/glyf tables to accept Triple for axes positions
Behdad Esfahbod 33ef96b6 2023-05-09T11:13:51 [glyf] Micro-optimize a few hash operations
Behdad Esfahbod 2f9945ca 2023-05-02T11:33:31 [Glyph] Only treat numContours=-1 as Composite Leave the other negative numbers as empty glyph.
Garret Rieger db23be64 2023-05-02T00:06:08 [subset] clamp head *Min/*Max values to fit within 16 bit signed int. Fixes fuzzer https://oss-fuzz.com/testcase-detail/4549472192692224.
Behdad Esfahbod 19d8328b 2023-05-01T15:54:06 [VarComposite] Minor use pad instead of StructAfter
Behdad Esfahbod 1cbb85dc 2023-04-30T11:31:46 [Glyph] Protect against an underflow
Behdad Esfahbod c7721f7d 2023-04-30T11:28:40 [Glyph] Reuse variables
Behdad Esfahbod fbffd4e6 2023-04-30T10:45:19 [SimpleGlyph] Handle cubic curves when instancing
Behdad Esfahbod 85a0a123 2023-04-30T10:40:50 [SimpleGlyph] Relax types
Behdad Esfahbod 2e5e5665 2023-04-30T10:23:58 [SimpleGlyph] Micro-optimize
Behdad Esfahbod 700975f7 2023-04-29T11:23:56 [gvar/glyf] Minor save a variable
Behdad Esfahbod 07be0b68 2023-04-29T11:09:28 [VarComposite] Minor micro-optimize
Behdad Esfahbod ecd0f859 2023-04-29T10:51:59 [Composite] Minor micro-optimize
Behdad Esfahbod afd432da 2023-04-28T14:55:37 [VarComposite] Fix an #ifdef check
Behdad Esfahbod b53f8c25 2023-04-28T14:49:22 [path-builder] Simplify initialization
Behdad Esfahbod 6a4b87d0 2023-04-28T14:48:46 [path-builder] Remove double-initialization
Behdad Esfahbod 5b0d8181 2023-04-28T11:40:42 [Glyph] Add missing break
Behdad Esfahbod e5dfb6a4 2023-04-28T11:38:12 [SimpleGlyph] Use hb_memset instead of memset
Behdad Esfahbod 1b0c5a3e 2023-04-28T11:16:11 [VarComposite] Comment
Behdad Esfahbod b0e763f5 2023-04-28T10:45:23 [VarComposite] Micro-optimize get_num_points
Behdad Esfahbod 29d57658 2023-04-28T10:33:50 [VarComposite] Micro-optimize
Behdad Esfahbod bf97f880 2023-04-28T10:28:17 [VarComposite] Minor notation
Behdad Esfahbod e9738563 2023-04-28T10:22:40 [VarComposite] Speedup get_size()
Behdad Esfahbod c800c0cf 2023-04-27T15:12:02 [Glyph] Load composite glyphs in-place
Behdad Esfahbod f90e3fc3 2023-04-27T14:39:33 [Composites] Pre-alloc phantom-points space
Behdad Esfahbod 0c7cb575 2023-04-27T14:21:44 [VarComposite] Micro-optimization for advance-only
Behdad Esfahbod bdce23a0 2023-04-27T14:07:57 [Glyph] Don't load component glyphs is phantom_only Drastically speeds up variable advance calculation when HVAR is missing. Let's see what I broke...
Behdad Esfahbod e2be7865 2023-04-27T13:54:06 [VarComposite] Minor rewrite
Behdad Esfahbod 58f79063 2023-04-27T13:35:32 [VarComposite] Set min_size to 5
Behdad Esfahbod 28b5a47d 2023-04-27T13:31:53 [VarComposite] Reuse a variable
Behdad Esfahbod 977c2f9c 2023-04-27T13:25:30 [glyf] Micro-optimize
Behdad Esfahbod a4b4536a 2023-04-27T13:14:52 Revert "[glyf] Micro-optimize" This reverts commit 2bbb605d08298047164a20a242f4cfcfbe68c309. In case of phantoms_only we were leaving array uninitialized. This is why the fedora-valgrind bot broke.
Behdad Esfahbod 1c4e7e4f 2023-04-27T13:05:54 [VarComposite] Rewrite code with ?
Behdad Esfahbod 9491a3dd 2023-04-27T13:01:27 [VarComposite] Minor notation
Behdad Esfahbod 644e0551 2023-04-27T13:00:24 [VarComposite] Minor move code
Behdad Esfahbod 79aa9e93 2023-04-27T12:57:25 [VarComposite] Optimize translate, second try
Behdad Esfahbod 83bbeaca 2023-04-27T12:49:56 [VarComposite] Minor move code
Behdad Esfahbod 7cb95c8a 2023-04-27T12:28:00 Revert "[VarComposite] Optimize translate()" This reverts commit 6a55e73d6aa9a378789d4101849f1508ac6fff3d. This was wrong.
Behdad Esfahbod b79a49f1 2023-04-27T12:21:32 [VarComposite] Optimize get_points()
Behdad Esfahbod 51891e8f 2023-04-27T12:16:12 [VarComposite] Micro-optimize