src/hb-ot-shape.cc


Log

Author Commit Date CI Message
Eric Muller 30d7c40f 2019-02-09T02:55:27 Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences. Current behavior unchanged if this flag is not set (and it isn't by default).
Behdad Esfahbod fd0889f9 2019-01-24T16:12:52 Comment
Behdad Esfahbod 9f314177 2019-01-24T16:08:33 Form cluster for Emoji sub-region tag sequences Fixes https://github.com/harfbuzz/harfbuzz/issues/1556
Behdad Esfahbod 3ecda710 2019-01-24T12:08:23 Adjust mark offsets when zeroing from fallback mark positioning code Adjust tests. Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Behdad Esfahbod 000d4b12 2018-11-29T12:32:47 Make shaper's override_features() override user features as well The override_features is used to override features that are normally discretionary features, but in a specific shaper are for various reasons desired to be bolted on or off, because they've been used for inherent shaping. As such, it makes sense that they also override user features. Ie. if user turned 'liga' on, we don't want Khmer shaping to become broken... Or turn 'clig' off... Fixes https://github.com/harfbuzz/harfbuzz/issues/1310
Behdad Esfahbod 74896226 2018-11-23T11:10:17 [aat] Disable mark advance zeroing if kern table has state-machines Geeza Pro for example, relies on that for fancy mark positioning. Fixes https://github.com/harfbuzz/harfbuzz/issues/1405
Behdad Esfahbod 199a0f7b 2018-11-22T17:31:07 [ot-shape] Simplify logic
Behdad Esfahbod 014e4980 2018-11-22T16:21:49 Move
Behdad Esfahbod 62890dee 2018-11-22T16:20:29 [aat] Zero mark advances if decided so even if there's cross-kerning Cross-kerning can only take care of positioning vertically. It doesn't adjust mark advance...
Behdad Esfahbod a201fa74 2018-11-22T15:52:29 [aat] Tweak fallback positioning logic when applying morx Such that for Indic-like scripts (eg. Khmer), we don't do any fallback mark advance-zeroing / positioning, but we do for Latin, etc. Reuses preferences of our script-specific OpenType shapers for those. Fixes regression: https://github.com/harfbuzz/harfbuzz/issues/1393 Which means, fixes again: https://github.com/harfbuzz/harfbuzz/issues/1264 While not regressing: https://github.com/harfbuzz/harfbuzz/issues/1357
Behdad Esfahbod 7a97f707 2018-11-16T14:46:40 Don't apply GPOS if applying morx That's what Apple does, and it wouldn't degrade our OpenType performance. Part of https://github.com/harfbuzz/harfbuzz/issues/1348
Behdad Esfahbod eafd5156 2018-11-16T14:45:56 Prefer morx table if GSUB is empty (no scripts) Fixes https://github.com/harfbuzz/harfbuzz/issues/1348
Behdad Esfahbod ce5da0f3 2018-11-16T02:29:13 [shaper] Rewrite shaper data code to be more template-driven than macro-driven
Behdad Esfahbod c221dc0b 2018-11-14T14:49:34 [ot-shape] Move code around
Behdad Esfahbod 3c3eb5ea 2018-11-13T21:10:10 [aat] Disable fallback mark advance zeroing and positioning if morx applied Fixes https://github.com/harfbuzz/harfbuzz/issues/1357
Behdad Esfahbod cc842875 2018-11-12T18:48:10 [shape-plan] Cache shape plans with variations based on variation indices
Behdad Esfahbod 10823385 2018-11-12T18:05:02 [shape-plan] Only use shape-plan key to initialize hb_ot_shape_plan_t Such that we don't accidentally use info not in the cache key.
Behdad Esfahbod 3e284e02 2018-11-11T22:51:34 [shape-plan] Minor
Behdad Esfahbod f521a28b 2018-11-11T21:32:01 Embed hb_ot_shape_plan_t into hb_shape_plan_t No other shaper will need shape_plan_data, by definition. So, remove abstraction layer and always create hb_ot_shape_plan_t as part of hb_shape_plan_t.
Behdad Esfahbod 1beacdde 2018-11-11T16:35:28 Minor
Behdad Esfahbod 385f78b3 2018-11-07T17:19:21 [aat] Remove deleted-glyhs after applying kerx/kern Finally: Fixes https://github.com/harfbuzz/harfbuzz/issues/1356 Test case: $ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629 [u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656] The mark positioning (kern table CrossStream kerning) only works if deleted glyph (as result of ligation) is still in stream and pushed through the state machine.
Behdad Esfahbod ca23567f 2018-11-07T16:19:51 Disable fallback mark positioning if kern table has cross-stream kerning Happens even if the cross-stream kerning is for cursive attachment only. Oh well..
Behdad Esfahbod 5cf6f94d 2018-11-07T16:07:22 Don't apply both kerx and kern Ouch!
Behdad Esfahbod 41cff7af 2018-11-07T16:05:36 Minor
Behdad Esfahbod 649cc3ef 2018-11-07T14:04:04 [kerx] Don't disable crossKerning if kern feature is off
Behdad Esfahbod 0c3b061a 2018-11-07T13:58:41 [kern] Apply erlier, where GPOS/kerx are applied
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 17335a81 2018-11-04T02:25:07 Clean up buffer->swap_buffers() calls That function checks for buffer->successful already. No need to check at call site.
Behdad Esfahbod 095f5add 2018-11-02T13:23:54 [kern] Push apply loop to each subtable
Behdad Esfahbod 80d9a427 2018-10-27T04:58:32 [docs] Document remaining sections
Behdad Esfahbod 39bd07ae 2018-10-26T21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
Behdad Esfahbod f33ad6d6 2018-10-23T14:31:51 [aat] Fix up previous commit and add files
Behdad Esfahbod ffe34784 2018-10-23T14:14:03 [aat] Allow enabling/disabling features Only works at entire-buffer range, not sub-ranges. Test with: $ hb-shape Zapfino.dfont Zapfino [Z_a_p_f_i_n_o=0+2333] $ hb-shape Zapfino.dfont Zapfino --features=-dlig [Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|o=6+250] $ hb-shape Zapfino.dfont Zapfino --features=+dlig [Z_a_p_f_i_n_o=0+2333] Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
Behdad Esfahbod 76324d95 2018-10-23T13:09:30 Shift code around
Behdad Esfahbod cf92d657 2018-10-23T03:10:56 [trak] Allow disabling tracking for ranges of text Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
Ebrahim Byagowi 22ecefd8 2018-10-23T00:52:05 Make tracking optout possible using 'trak' ot feature So '--features=-trak' or 'font-feature-settings: 'trak' 0;' can prevent applying of tracking if used.
Behdad Esfahbod 0b9d60e1 2018-10-11T13:26:58 [aat] Apply kerx if GPOS kern was not applied Ned tells me this is what Apple does.
Behdad Esfahbod b59a428a 2018-10-11T13:24:17 Minor
Behdad Esfahbod d6a12dba 2018-10-11T11:10:06 [trak] Fix, and hook up Works beautifully! Test coming.
Behdad Esfahbod 34caadc5 2018-10-10T22:17:07 Ugh. Re-enable accidentally disabled GPOS
Behdad Esfahbod 504cb68f 2018-10-10T21:29:46 Disable mark advance zeroing as well as mark fallback positioning if doing kerx
Behdad Esfahbod 60f86d32 2018-10-10T18:10:05 [kerx] Don't loop over kerning subtables if kerning disabled
Behdad Esfahbod 38a7a8a8 2018-10-10T17:44:46 Allow HB_OPTIONS=aat to prefer AAT tables over OT Fixes https://github.com/harfbuzz/harfbuzz/issues/322
Behdad Esfahbod 7727e737 2018-10-10T13:24:51 [kerx] Actually hook up, and fix crash
Behdad Esfahbod a03850a3 2018-10-10T10:57:28 Fix GPOS/kern interaction Oops. Was checking for kern feature in GSUB, not GPOS.
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 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 53e55945 2018-10-09T22:35:22 [kerx] Implement Format0 apply() Not hooked up to be called yet.
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 c0d3bf1b 2018-10-08T16:32:44 Minor
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 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
Michiharu Ariza 55942ad5 2018-10-06T14:49:44 Merge branch 'master' into cff-subset
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 b710ea4f 2018-10-03T21:17:59 Clean Fitzpatrick hack
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 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
Behdad Esfahbod 0a371fee 2018-10-02T14:48:39 Minor
Behdad Esfahbod 94d15528 2018-10-02T14:45:09 Minor
Behdad Esfahbod 729f6347 2018-10-02T14:40:14 Disable joiner-skipping when looking back for base to attach mark to Fixes https://github.com/harfbuzz/harfbuzz/issues/1189
Behdad Esfahbod 48c513fe 2018-10-02T14:17:42 Minor
Behdad Esfahbod cca757ae 2018-10-02T13:27:11 Minor
Behdad Esfahbod 96eca87f 2018-10-02T13:24:40 Move things
Behdad Esfahbod 10b6c7c6 2018-10-02T13:11:18 Minor include cleanup
Behdad Esfahbod 1d1734e9 2018-10-02T13:04:05 Shuffle code around
Behdad Esfahbod d9867497 2018-09-24T18:11:59 Minor
Behdad Esfahbod f048ead8 2018-09-24T18:01:53 Some more
Behdad Esfahbod 71c9f84e 2018-09-10T22:37:19 Make --features rand=1 available to the user Use rand=255 to mean "randomize". Part of https://github.com/harfbuzz/harfbuzz/pull/803
Behdad Esfahbod 80de4bcd 2018-09-10T16:24:52 Minor clean up of 'rand' patchset
David Corbett f05df643 2018-01-26T21:36:15 Allow requesting a specific glyph for 'rand' Randomization only happens by default. If the user specifies a value for 'rand', that value is respected.
David Corbett c2a75e07 2018-01-25T14:22:03 Implement 'rand'
Behdad Esfahbod b929100f 2018-08-26T01:15:47 [ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework
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 1c6b3693 2018-08-15T20:12:25 [ot] Rename hb_ot_layout_t to hb_ot_face_data_t
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 3d22aefe 2018-08-01T18:03:32 Rename
Behdad Esfahbod 42c183f8 2018-07-27T14:55:29 Minor
prrace 2e25d8f4 2018-07-27T13:58:27 Fix unlikely leaks
Behdad Esfahbod db5d430e 2018-07-17T18:14:45 [aat] Update for blob changes Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
Behdad Esfahbod bddeb2b1 2018-07-10T14:12:37 Minor renamings of internal inline functions
Garret Rieger 57badadb 2018-06-06T16:02:51 [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
Behdad Esfahbod f9abbf83 2018-06-02T15:30:59 Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985 Ouch!
Behdad Esfahbod 7185b273 2018-05-31T20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
Behdad Esfahbod 6c222764 2018-05-25T16:21:27 Add HB_DISALLOW_COPY_AND_ASSIGN
Behdad Esfahbod f673cfbd 2018-05-07T13:58:32 Support scripts that are written both LTR and RTL Right now only Old Italic is marked as such. Fixes https://github.com/harfbuzz/harfbuzz/issues/1000
Behdad Esfahbod a60ba796 2018-05-01T19:01:25 s/finish/fini For consistency.
Behdad Esfahbod ac2ece3e 2018-03-07T15:52:42 [ot] Comment out AAT include
Ebrahim Byagowi 1ab16f45 2018-02-24T12:49:42 [aat] Implement trak logic (#816)
Behdad Esfahbod eada749e 2018-02-21T00:35:23 Use HB_SET_VALUE_INVALID consistently
Behdad Esfahbod 046690a4 2018-01-17T16:59:55 [aat] Add hb_aat_apply_context_t
Behdad Esfahbod fd034490 2018-01-17T16:46:51 Rename hb_apply_context_t to hb_ot_apply_context_t
Behdad Esfahbod ee16b9d8 2018-01-12T11:28:09 Revert accidental morx enablement