Commit Graph

13534 Commits

Author SHA1 Message Date
Behdad Esfahbod 5cca25e5d0 [glyf] Accumulate points as int
Everything is int at this stage.
Doesn't seem to matter for performance though.
2022-06-27 13:03:06 -06:00
Behdad Esfahbod d6f60b3c19 [glyf] Minor optimization 2022-06-27 13:00:08 -06:00
Behdad Esfahbod b30a3dcba3 [glyf] Another bounds check
Very unlikely that is needed but technically possible.
2022-06-27 12:56:54 -06:00
Behdad Esfahbod 2e9dbdcbbe [glyf] Protect against an unlikely overflow 2022-06-27 12:55:13 -06:00
Khaled Hosny 8537d68172 4.4.0 2022-06-27 20:51:16 +02:00
Behdad Esfahbod f1fb8c4489 [glyf] Optimize Glyph layout 2022-06-27 12:41:46 -06:00
Behdad Esfahbod 34e3f561b5 [glyf] Fix a bug I introduced recently
Pass gid to Glyph in trim_padding codepath.
2022-06-27 12:39:35 -06:00
Behdad Esfahbod 97cbc2d40a [gvar] Remove condition that font num_coords should match gvar's 2022-06-27 12:37:11 -06:00
Behdad Esfahbod 19cbfb9ce9 [glyf] Relax a condition that font num_coords be equal to gvar's
gvar itself still checks the same.
2022-06-27 12:32:18 -06:00
Behdad Esfahbod d5cfbaa068 [glyf] Optimize composite points loading 2022-06-27 12:24:20 -06:00
Behdad Esfahbod 32dc0641e1 [glyf] Remove an unnecessary condition 2022-06-27 12:22:06 -06:00
Behdad Esfahbod 95bfa0913d [gvar] Optimize translate() 2022-06-27 12:10:16 -06:00
Behdad Esfahbod 9f067582b8 [gvar] Optimize transform() 2022-06-27 12:10:16 -06:00
Behdad Esfahbod cfc57ef862 [glyf] Optimize contour_point_t layout 2022-06-27 12:10:16 -06:00
Behdad Esfahbod 75ca78a6bb [glyf] Optimize hb_contour_points_t::extend 2022-06-27 12:10:16 -06:00
Behdad Esfahbod 98fbe87a26 [benchmark-font] Disable quadratic callback
We are interested in the quadratic-to-cubic codepath benchmarking.
2022-06-27 12:10:16 -06:00
David Corbett 04c4767150 [lao] Decompose and reorder U+0EB3 around U+0EBB 2022-06-27 11:31:32 -06:00
Behdad Esfahbod d3308f4713 [font] Optimize font scaling further 2022-06-27 11:28:57 -06:00
Matthias Clasen e72506d085 Fix the annotation for hb_blob_get_data
This function will return NULL for the the
empty blob. That is important information for
bindings that treat nullability as a type trait.
2022-06-27 10:59:02 -06:00
Behdad Esfahbod 3c49a6a60a [glyf] Fix an allocation error
Try fixing assertion failure found by fuzzers:

hb-draw-fuzzer: ../../src/harfbuzz/src/OT/glyf/glyf.hh:175: bool OT::glyf_accelerator_t::get_points(hb_font_t *, hb_codepoint_t, T) const [T = OT::glyf_impl::path_builder_t]: Assertion `count >= glyf_impl::PHANTOM_COUNT' failed.
2022-06-27 10:57:51 -06:00
Behdad Esfahbod 556e7078f0 [font] Optimize glyph scaling 2022-06-26 17:48:43 -06:00
Behdad Esfahbod a1c45bbb55 [glyf] Minor simplify 2022-06-26 17:30:16 -06:00
Behdad Esfahbod a21a9bb855 [glyf] Optimize flags decoding byte range checking 2022-06-26 17:24:29 -06:00
Behdad Esfahbod 0f1fdf461c [glyf] Optimize points decoding byte range checking 2022-06-26 17:22:45 -06:00
Behdad Esfahbod 51cfcf2957 [glyf] Optimize points decoding 2022-06-26 17:04:47 -06:00
Behdad Esfahbod 86b7022503 [glyf] Optimize flag decoding 2022-06-26 17:02:32 -06:00
Behdad Esfahbod 30d58bfd0f [glyf] Don't translate/transform components if has no effect 2022-06-26 16:49:40 -06:00
Behdad Esfahbod 2bb0fa878a [glyf] Remove unneeded point init() 2022-06-26 16:43:05 -06:00
Behdad Esfahbod fc72a1d22d [glyf] Add a pre-allocation for phantom points 2022-06-26 16:42:01 -06:00
Behdad Esfahbod 8d242aaa8b [glyf] Rewrite a loop harmlessly
I hope...
2022-06-26 16:36:08 -06:00
Behdad Esfahbod cf57f04ddb [glyf/path-builder] Optimize scaling code
Scale each point once upon entry to function.

This makes our shape fetching code as fast as FreeType for all
benchmark cases now.
2022-06-26 16:26:17 -06:00
Behdad Esfahbod 36dd5d32fb [draw] Use multiplication instead of division in quadratic conversion 2022-06-26 16:16:43 -06:00
Behdad Esfahbod b095df1343 [glyf/path-builder] Use operator bool for style 2022-06-26 16:12:50 -06:00
Behdad Esfahbod abb433d0f4 [glyf] Avoid a copy of points in shape fetching for simple glyphs
Matches performance with freetype now.
2022-06-26 16:09:32 -06:00
Behdad Esfahbod 7eac779abf Revert "Revert "[glyf] Optimize shape loading""
This reverts commit 164bd288cf.
2022-06-26 16:02:27 -06:00
Behdad Esfahbod 164bd288cf Revert "[glyf] Optimize shape loading"
This reverts commit f0819301b7.

Broke tests. To be debugged and redone.
2022-06-26 16:01:15 -06:00
Behdad Esfahbod f0819301b7 [glyf] Optimize shape loading
Do away with a copy for simple glyph load.
2022-06-26 15:52:54 -06:00
Behdad Esfahbod ea5131507a [mingw] Build with directwrite if available 2022-06-26 13:30:11 -06:00
Behdad Esfahbod 65b066f18e [glyf/path-builder] Simplify initialization 2022-06-26 13:18:00 -06:00
David Corbett b2abd5c7e8 [thai] Reword to include all relevant marks 2022-06-26 13:12:12 -06:00
Behdad Esfahbod 2d4557fe04 [glyf/SimpleGlyph] Use member pointer instead of lambda 2022-06-26 13:08:37 -06:00
Behdad Esfahbod 9ce9773040 [glyf/SimpleGlyph] Minor use constructor for contour_point_t 2022-06-26 13:08:37 -06:00
Behdad Esfahbod f897978f21 [glyf] Adjust a check-range 2022-06-26 13:08:37 -06:00
Behdad Esfahbod db039d97ff [glyf/Composite] Make glyphIndex public 2022-06-26 13:08:37 -06:00
Behdad Esfahbod 1b14bf8aa8 [glyf] Rename CompositeGlyphChain to CompositeGlyphRecord 2022-06-26 13:08:37 -06:00
Behdad Esfahbod a5ac7f2ea6 [glyf/composite_iter_t] Renames 2022-06-26 13:08:37 -06:00
Behdad Esfahbod d15260ca95 [gpos] Limit recursion depth in propagate_attachment_offsets()
Fixes https://github.com/harfbuzz/harfbuzz/issues/2927
2022-06-25 19:53:11 -06:00
Behdad Esfahbod 449bdeed5f [glyf] Rename get_iterator() to iter()
That's the standard name.
2022-06-25 18:32:30 -06:00
Behdad Esfahbod 11d2670676 [glyf] Split off glyf-helpers.hh 2022-06-25 18:19:09 -06:00
Behdad Esfahbod 7c4b8c9bf4 [glyf] path-builder minor header guards fix test 2022-06-25 18:14:42 -06:00