src


Log

Author Commit Date CI Message
Behdad Esfahbod d1be805e 2018-10-10T10:49:45 More rewriting plan compile Hopefully more clear.
Behdad Esfahbod 961ab46b 2018-10-10T10:42:10 More reshuffle plan compile
Behdad Esfahbod 2091b509 2018-10-10T10:41:08 [kerx] Hook up to shaper
Behdad Esfahbod 8d00c39b 2018-10-10T10:18:39 [kern] Minor
Behdad Esfahbod e655fd38 2018-10-10T10:16:09 Apply TT or fallback kerning when GPOS does not have kern feature Previously we only did if there was no GPOS whatsoever. This applies to Arial, Times New Roman, etc in Win7. Was not kerning before. It is now.
Behdad Esfahbod 754cf440 2018-10-10T10:04:05 Minor
Behdad Esfahbod 0537a401 2018-10-09T23:35:07 [kerx] Comment
Behdad Esfahbod 362d3241 2018-10-09T23:27:00 [aat] Rename
Behdad Esfahbod 54c9ecb9 2018-10-09T23:18:19 [morx] Use subtable range for embedded sanitizer here as well
Behdad Esfahbod d35315cc 2018-10-09T23:17:32 [aat] Fixup recent commit For 329f2401082011007d9ce12b15ce0225cd267c57 max_ops is signed.
Behdad Esfahbod 948f59a1 2018-10-09T23:07:47 [kerx] Use subtable range for runtime checks
Behdad Esfahbod 329f2401 2018-10-09T23:02:53 [aat] Set embedded sanitizer max ops really high Since we consume it legitimately during shaping.
Behdad Esfahbod ad763074 2018-10-09T22:57:00 [kerx] Comment
Behdad Esfahbod db9600bb 2018-10-09T22:55:47 [kerx] Remove junk
Behdad Esfahbod 27db8594 2018-10-09T22:52:41 [kern/kerx] Adjust bounds check
Behdad Esfahbod c66f7f8c 2018-10-09T22:49:33 [kerx] Implement Format2 apply() Still, not hooked.
Behdad Esfahbod 4b461785 2018-10-09T22:46:30 Fix check
Behdad Esfahbod 4df8eb20 2018-10-09T22:46:12 [kern] Use kern subtable length for sanitizing in the accelerator
Behdad Esfahbod 8bff1d29 2018-10-09T22:39:31 [kern] Minor
Behdad Esfahbod 53e55945 2018-10-09T22:35:22 [kerx] Implement Format0 apply() Not hooked up to be called yet.
Behdad Esfahbod 60318f87 2018-10-09T22:25:53 Minor
Behdad Esfahbod 210f899a 2018-10-09T21:56:37 [kern] Sanitize 4 bytes, not 2
Behdad Esfahbod be2f148d 2018-10-09T16:24:50 [ft] Use mutex to lock access to FT_Face Makes our FT-backed hb_font_t safe to use from multiple threads. Still, the underlying FT_Face should NOT be used from other threads by client or other libraries. Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft. Maybe not.
Behdad Esfahbod d18c3c58 2018-10-09T16:07:55 [ft] Remove (probably) stale comment
Behdad Esfahbod 7003b601 2018-10-09T15:55:26 Minor
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 55153553 2018-10-09T15:12:09 [ot-font] Don't pre-load cmap table Now that we have get_h_advances() and get_nominal_glyphs() implemented, the overhead of doing a proper atomic load would be once per run, NOT once per glyph. So, no need to pre-load the tables to avoid that overhead. As such, hb_ot_font_set_funcs() has become really cheap. Can *finally* make it be default font functions on all newly created fonts!
Behdad Esfahbod ec84460e 2018-10-09T15:07:04 [ot/ft] Implement get_nominal_glyphs() callback Some more measurable speedup. The recent commits' speedups are as follows: Testing with Roboto, ****when disabling kern and liga****: Before: FT --features=-kern,-liga user↦ 0m0.521s OT --features=-liga,-kern user↦ 0m0.568s After: FT --features=-liga,-kern user↦ 0m0.428s OT --features=-liga,-kern user↦ 0m0.470s So, 17% speedup. Note that FT callbacks are faster than OT these days since we added an advance cache to FT. I don't think the difference is enough to justify adding a cache to OT. When not disabling kern, the thing is three times slower, so the speedups are three times less impressive... Still, 5% not bad for a codebase that I otherwise thought is optimized out. Note that, because of this and other optimiztions in our main shaper, disabling kern and liga, the OT shaper is now *faster* than the fallback shaper. So, that's my recommendation to clients that need the absolute fastest...
Behdad Esfahbod e883f527 2018-10-09T14:50:57 Call get_nominal_glyphs() for runs of simple clusters at a time Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable speedup.
Behdad Esfahbod 8008bca8 2018-10-09T14:38:23 Whitespace
Behdad Esfahbod 30c114ff 2018-10-09T14:37:08 Avoid sort and recompose stages if all clusters simple Even has measurable speedup...
Behdad Esfahbod 24382deb 2018-10-09T14:33:24 Rewrite main normalizer loop to isolate runs of simple clusters
Behdad Esfahbod b5371f18 2018-10-09T14:12:59 Inline decompose_cluster Towards separating the common case into its own loop.
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
Chun-wei Fan 8e4ad1d7 2018-07-25T18:12:34 builds: Fix and clean up MSVC DLL builds Instead of passing a CFLAG/CXXFLAG to define HB_EXTERN, define it directly in src/hb.hh as __declspec(dllexport) extern when we are building HarfBuzz as DLLs on Visual Studio. Define HB_INTERNAL as nothing without defining HB_NO_VISIBILITY when building HarfBuzz as DLLs to avoid linker errors on Visual Studio builds. Also "install" harfbuzz-subset.dll into $(PREFIX)\bin as the hb-subset utility will depend on that DLL at runtime, when HarfBuzz is built as DLLs. Since it consists of private APIs that are subject to change, we do not install its headers nor .lib file.
Behdad Esfahbod e640f3a6 2018-10-09T08:28:07 Another old bot fix
Behdad Esfahbod e4f27f36 2018-10-09T08:20:10 Try fixing older bots
Behdad Esfahbod bee93e26 2018-10-09T08:01:49 Add const to get_*_advances API Ouch!
Behdad Esfahbod cc126f28 2018-10-09T01:10:15 Minor
Behdad Esfahbod b2fbe55b 2018-10-09T01:07:36 [icu] Unbreak
Behdad Esfahbod a52bc039 2018-10-09T00:56:33 Properly remove deprecated stuff
Behdad Esfahbod fc509165 2018-10-09T00:39:42 Remove deprecated decompose_compatibility stuff
Behdad Esfahbod eed737f6 2018-10-09T00:33:30 Remove deprecated eastasian_width
Behdad Esfahbod 47030b18 2018-10-09T00:30:45 [ft/ot] Remove implementation of deprecated kerning funcs
Behdad Esfahbod 977c8a8e 2018-10-09T00:22:08 [kern] Minor
Behdad Esfahbod ed5cfa42 2018-10-09T00:20:35 [kern] Minor
Behdad Esfahbod d219f899 2018-10-09T00:01:09 Deprecate font kern API
Behdad Esfahbod a5195881 2018-10-08T23:57:45 Apply TrueType/OpenType kern table when GPOS kern feature is not available Fixes https://github.com/harfbuzz/harfbuzz/issues/250
Behdad Esfahbod 09ad2613 2018-10-08T23:30:24 Separate fallback kern vs mark positioning
Behdad Esfahbod 3c23ff9b 2018-10-08T23:26:26 [kern] Add kerning driver to TT kern table
Behdad Esfahbod 683c3a95 2018-10-08T23:09:48 [kern] Abstract away kerning machine
Behdad Esfahbod fb4f4383 2018-10-08T22:44:16 Add HB_DEPRECATED Fixes https://github.com/harfbuzz/harfbuzz/issues/1232
Behdad Esfahbod 80e3102b 2018-10-08T22:41:08 [kerx] Process coverage flags
Behdad Esfahbod 26d7305d 2018-10-08T22:31:35 Deprecate decompose_compatibility stuff
Behdad Esfahbod 42b51eee 2018-10-08T22:26:39 Deprecate eastasian_width stuff
Behdad Esfahbod 286a4564 2018-10-08T16:41:08 Minor
Behdad Esfahbod c0d3bf1b 2018-10-08T16:32:44 Minor
Behdad Esfahbod 1a5a3325 2018-10-07T23:08:39 [kerx] Minor
Behdad Esfahbod d62b4011 2018-10-07T22:58:06 [kern] Shout less
Behdad Esfahbod c6bb3a58 2018-10-07T22:52:53 [kerx] Clean up Format2
Behdad Esfahbod 8aa83d97 2018-10-07T22:43:59 [kern/kerx] Fix Format2 offsetting "The values in the right class table are stored pre-multiplied by the number of bytes in a single kerning value, and the values in the left class table are stored pre-multiplied by the number of bytes in one row. This eliminates needing to multiply the row and column values together to determine the location of the kerning value. The array can be indexed by doing the right- and left-hand class mappings, adding the class values to the address of the array, and fetching the kerning value to which the new address points."
Behdad Esfahbod ed2a4042 2018-10-07T22:33:41 [kerx] Clean up Format0
Behdad Esfahbod 4c3b19d5 2018-10-07T22:30:42 Support HBUINT32 BinSearchArrayOf
Behdad Esfahbod 456a68c5 2018-10-07T22:28:45 Move code
Behdad Esfahbod 3515c8b1 2018-10-07T22:27:00 [aat] Rename
Behdad Esfahbod e42cd58c 2018-10-07T20:46:11 Rename invisible_codepoint to invisible_glyph in API Deleted recently added API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() hb-shape / hb-view --invisible-codepoint New API: hb_buffer_set_invisible_glyph() hb_buffer_get_invisible_glyph() hb-shape / hb-view --invisible-glyph Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
Behdad Esfahbod 2a5cb37f 2018-10-07T20:36:46 Revert "[morx] Fix MORX-35" This reverts commit f62f6e90ad1f1a83f77771ad65ee1ffb79470a8a.
Behdad Esfahbod 14ebf8af 2018-10-07T20:35:06 [buffer] Improve shift_forward() "Improve" is a strong word in this case though, I understand.
Behdad Esfahbod f62f6e90 2018-10-07T18:06:53 [morx] Fix MORX-35 Fixes https://github.com/harfbuzz/harfbuzz/issues/1224
Behdad Esfahbod 94368855 2018-10-07T18:52:12 Remove some code We use scratch-flags to short-circuit this function. No need for previous early loop.
Behdad Esfahbod fdce1e15 2018-10-07T14:01:33 [kerx] Clean up kerx and KerxTable structures
Behdad Esfahbod 71b65eb2 2018-10-07T18:41:52 Add API for setting invisible-codepoint Fixes https://github.com/harfbuzz/harfbuzz/issues/1216 New API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() hb-shape / hb-view --invisible-codepoint
Behdad Esfahbod 13da3be0 2018-10-07T18:23:45 [ot-font] Load hmtx/vmtx lazily Since we have get_*_advanes() API now, the overhead is once per shape, not once per glyph. Only cmap is warmed-up at set_funcs() time now.
Behdad Esfahbod 856db4c9 2018-10-07T18:21:15 Minor
Behdad Esfahbod b2e398c0 2018-10-07T16:31:33 [coretext] Fix OS X check Fixes https://github.com/harfbuzz/harfbuzz/issues/1230
Behdad Esfahbod 7ee50af8 2018-10-06T21:31:44 [morx] Fix memory access issues with unsafe_to_break
Behdad Esfahbod 0816a549 2018-10-06T02:40:57 [uniscribe/coretext] Fix for previous change
Behdad Esfahbod 341206eb 2018-10-05T18:39:48 [vector] Make hb_vector_t relocatable / nestable Ugly, but... Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
Behdad Esfahbod 5469d807 2018-10-05T18:21:08 Add hb_vector_t::fini_deep ()
Behdad Esfahbod 4831e615 2018-10-05T18:14:13 [morx] Fix memory access issue If buffer was enlarged, info was being outdated. Fixes https://github.com/harfbuzz/harfbuzz/issues/1225
Behdad Esfahbod a62f37d6 2018-10-05T02:49:29 Change vendor features from Harf/Buzz to HARF/BUZZ https://github.com/harfbuzz/harfbuzz/commit/a01194aaf4c15160330b4042066263b2c963b658#commitcomment-30772041 "The tag space of tags consisting of four uppercase letters (A-Z) with no punctuation, spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to identify private features."
Behdad Esfahbod a01194aa 2018-10-04T13:00:37 Enable two OpenType features, 'Harf' and 'Buzz' One early, before script-specific features, one late, after. Allows font developers to detect us and behave differently if needed.
Behdad Esfahbod 14ff3cbe 2018-10-04T11:34:21 Apply morx if there's no GSUB!
Behdad Esfahbod 3417037e 2018-10-04T11:08:15 [aat] Add +hb_aat_layout_has_substitution
Sascha Brawer 7810bb1a 2018-10-04T09:24:08 [morx] Only insert glyphs at mark when a mark has been set before This reverts commit f4072e8cb81072cd6d51a2607efedb76c02e7db1. https://github.com/harfbuzz/harfbuzz/issues/1195
Ebrahim Byagowi 5de2d9cd 2018-10-04T02:14:18 Minor, fix double-promotion warnings (#1221)
mhosken e4e74c27 2018-10-04T02:33:26 Update Graphite API to latest (#1215)
Behdad Esfahbod b710ea4f 2018-10-03T21:17:59 Clean Fitzpatrick hack
Behdad Esfahbod 95e5f1ae 2018-10-03T21:11:13 Unbreak Fitzpatrick Fixes https://github.com/harfbuzz/harfbuzz/issues/1159
Behdad Esfahbod 03fb6dd4 2018-10-03T21:02:16 Rewrite grapheme-formation in terms of new work Also, don't attach ZWNJ to previous cluster. Closer to Unicode graphemes.
Behdad Esfahbod 68106b1d 2018-10-03T20:50:12 Minor
Behdad Esfahbod 06922acb 2018-10-03T20:19:17 Fix distcheck
Behdad Esfahbod 4eea2e27 2018-10-03T20:16:03 [thai] Set continuation on decomposed nikhahit
Behdad Esfahbod 8edc9102 2018-10-03T20:13:20 [indic] Reset continuation on inserted dottedcircle
Behdad Esfahbod 2a6f1521 2018-10-03T20:09:14 [buffer] Inline some more
Behdad Esfahbod 6f39c220 2018-10-03T20:06:32 Add code
Behdad Esfahbod 19d50aa2 2018-10-03T20:05:28 [indic] Simplify dottedcircle
Behdad Esfahbod 3b783185 2018-10-03T19:44:15 [emoji] Mark emoji contination sequences as continuation This adds a new grapheme bit. Not used yet. Part of https://github.com/harfbuzz/harfbuzz/issues/1159
Behdad Esfahbod 123326e2 2018-10-03T19:19:51 Dotted-circle all marks, not just non-spacing, at text beginning