History log of /external/harfbuzz_ng/src/hb-ot-map.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
da132937989acb4d8ca9bd41c79f98750e7dda30 27-Apr-2014 Jonathan Kew <jfkthame@gmail.com> Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp

https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39

API Change:

-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature

New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.

Reworked by behdad
/external/harfbuzz_ng/src/hb-ot-map.cc
fb8cc86ff99c08064ac58a559bb66cc340693b92 19-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Rename sort() to qsort()

In an effort to make the algorithm used clear.
/external/harfbuzz_ng/src/hb-ot-map.cc
176fd17d02ac183af32a0e710ec32d25c9322021 30-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Bug 70971 - Signed/unsigned compiler warnings on windows

Patch from Emil Eklund.
/external/harfbuzz_ng/src/hb-ot-map.cc
27674b4bb351e501373bd9994e4ba6546e465cf7 03-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Protect against out-of-range lookup indices

Filter them out when compiling map.
/external/harfbuzz_ng/src/hb-ot-map.cc
d2c96819de9a7428b65ef0adf794416224221f36 03-May-2013 Behdad Esfahbod <behdad@behdad.org> Move code around
/external/harfbuzz_ng/src/hb-ot-map.cc
3276c354daaff3acabecff11f8e4b5c54d53fc25 02-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor refactoring
/external/harfbuzz_ng/src/hb-ot-map.cc
2265be0a620bc76ab65f12fedde67791beb51314 02-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor
/external/harfbuzz_ng/src/hb-ot-map.cc
893f57b32f01da3411b5596d59170bc340e9fa39 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor renaming
/external/harfbuzz_ng/src/hb-ot-map.cc
8ac3c9c0b6b8e76bce282825b9bb706c0c78c2a6 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Rename "pause" to "stage"

The compile() function is starting to become illegible...
/external/harfbuzz_ng/src/hb-ot-map.cc
dd0641a432691f9b6186b081c38053858c8bc5c1 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor
/external/harfbuzz_ng/src/hb-ot-map.cc
06a44e859328f5f1e2f6034e711b474116d22e22 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Remove unneeded code

We always push a pause at the end such that each lookup falls in exactly
one pause_map_t. Now, only if I can find a better name for that...
/external/harfbuzz_ng/src/hb-ot-map.cc
a8cf7b43fa795150ae3d42d64424bb6e0373d0b2 19-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Futher adjust ZWJ handling in Indic-like shapers

After the Ngapi hackfest work, we were assuming that fonts
won't use presentation features to choose specific forms
(eg. conjuncts). As such, we were using auto-joiner behavior
for such features. It proved to be troublesome as many fonts
used presentation forms ('pres') for example to form conjuncts,
which need to be disabled when a ZWJ is inserted.

Two examples:

U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf
U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf

What we do now is to never do magic to ZWJ during GSUB's main input
match for Indic-style shapers. Note that backtrack/lookahead are still
matched liberally, as is GPOS. This seems to be an acceptable
compromise.

As to the bug that initially started this work, that one needs to
be fixed differently:

Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not
provide same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714

New numbers:

BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
/external/harfbuzz_ng/src/hb-ot-map.cc
398238a2526d322eb79e255c24634a275473920f 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Fix partial disabling of default-on features

Surprisingly, if user ever tried to turn a default feature off partially
(say, disable liga for a range), the feature was being turned off
globally! Fixed now.
/external/harfbuzz_ng/src/hb-ot-map.cc
cfc507c5432e6327e8484b07b9e091212653bc92 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic-like] Disable automatic joiner handling for basic shaping features

Not for Arabic, but for Indic-like scripts. ZWJ/ZWNJ have special
meanings in those scripts, so let font lookups take full control.

This undoes the regression caused by automatic-joiners handling
introduced two commits ago.

We only disable automatic joiner handling for the "basic shaping
features" of Indic, Myanmar, and SEAsian shapers. The "presentation
forms" and other features are still applied with automatic-joiner
handling.

This change also changes the test suite failure statistics, such that
a few scripts show more "failures". The most affected is Kannada.
However, upon inspection, we believe that in most, if not all, of the
new failures, we are producing results superior to Uniscribe. Hard to
count those!

Here's an example of what is fixed by the recent joiner-handling
changes:

https://bugs.freedesktop.org/show_bug.cgi?id=58714

New numbers, for future reference:

BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%)
DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.00819911%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
/external/harfbuzz_ng/src/hb-ot-map.cc
ec5448667b30ad662401c2b4f5fc0da524c013fd 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_map_feature_flags_t

Code cleanup. No (intended) functional change.
/external/harfbuzz_ng/src/hb-ot-map.cc
f30641038ba96e83950729b1bd9d86d2e98e46c5 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Bunch of independent changes (ouch)

API additions:

hb_segment_properties_t
HB_SEGMENT_PROPERTIES_DEFAULT
hb_segment_properties_equal()
hb_segment_properties_hash()

hb_buffer_set_segment_properties()
hb_buffer_get_segment_properties()

hb_ot_layout_glyph_class_t

hb_shape_plan_t
hb_shape_plan_create()
hb_shape_plan_create_cached()
hb_shape_plan_get_empty()
hb_shape_plan_reference()
hb_shape_plan_destroy()
hb_shape_plan_set_user_data()
hb_shape_plan_get_user_data()
hb_shape_plan_execute()

hb_ot_shape_plan_collect_lookups()

API changes:

Rename hb_ot_layout_feature_get_lookup_indexes() to
hb_ot_layout_feature_get_lookups().

New header file:

hb-shape-plan.h

And a bunch of prototyped but not implemented stuff. Coming soon.
(Tests fail because of the prototypes right now.)
/external/harfbuzz_ng/src/hb-ot-map.cc
362a990b2246f5448ecb9d600761f710aea7d42d 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup()

To match upcoming API.
/external/harfbuzz_ng/src/hb-ot-map.cc
851784f8372004e0a40b698c0cdc2d7db8629aa2 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Improve shaper selection
/external/harfbuzz_ng/src/hb-ot-map.cc
6fddf2d7397411bba8a23ac535e8b851495d3105 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Refactoring ot-map building to make chosen script available earlier
/external/harfbuzz_ng/src/hb-ot-map.cc
fabd3113a98c5f4114f48920fa7ea38bd65a8d32 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Port Arabic fallback shaping to synthetic GSUB

All of init/medi/fina/isol and rlig implemented.

Let there be dragons... ⻯
/external/harfbuzz_ng/src/hb-ot-map.cc
87b75d0a4aa03fe7a03e3bf7baf8ece131aec1bb 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Allow adding features with fallback implementation
/external/harfbuzz_ng/src/hb-ot-map.cc
d9b204d3d24cde165167714728bf380267903d6a 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Allow non-zero-context matching in would_apply()

To be used in the next patch.
/external/harfbuzz_ng/src/hb-ot-map.cc
8bb5deba9630d35878eb6edb4643ecfabf99f15f 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Pipe shape_plan down to pause_callbacks
/external/harfbuzz_ng/src/hb-ot-map.cc
3e38c0f2886c38d2f0a9d80a97a36edf2479d2c7 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> More massaging
/external/harfbuzz_ng/src/hb-ot-map.cc
5393e3a62ba09fd7bcf3767b36225c8f49badb9d 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Minor refactoring
/external/harfbuzz_ng/src/hb-ot-map.cc
afbcc24be01a64bdb5c05c63880269145fa1d3c8 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Wire the font, not just the face, down to substitute()

We need the font for glyph lookup during GSUB pauses in Indic shaper.
Could perhaps be avoided, but at this point, we don't mean to support
separate substitute()/position() entry points (anymore), so there is
no point in not providing the font to GSUB.
/external/harfbuzz_ng/src/hb-ot-map.cc
b0e6a26a10ccca70ebc88a9e158a89ccfab0add5 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Hide some API

It was impossible to meaningfully use them from the outside these days.
/external/harfbuzz_ng/src/hb-ot-map.cc
610e5e8f713bb2a68939b72cb2b801a7aaede4f9 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Streamline feature would_apply()

Comes with some 10% speedup for Devanagari even!
/external/harfbuzz_ng/src/hb-ot-map.cc
f860366456d9e59b139a940da6d89c3c4fb9e96e 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Gain back some lost speed
/external/harfbuzz_ng/src/hb-ot-map.cc
77471e037122548bfc08cacea6fbb472831c34f3 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Clear output buffer before calling GSUB pause functions
/external/harfbuzz_ng/src/hb-ot-map.cc
6a9be5bd3524dc3eb1e88d1063bde2e4d8b57011 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_glyph_map_t to hb_set_t
/external/harfbuzz_ng/src/hb-ot-map.cc
d2984a241e4819474d827b1dd5d4b6d76596b3a5 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add map->substitute_closure()
/external/harfbuzz_ng/src/hb-ot-map.cc
c605bbbb6d4b2a98b1f40ca818760088d991f7d1 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Remove C++ guards from source files

Where causing issues for people with MSVC.
/external/harfbuzz_ng/src/hb-ot-map.cc
c47a31fb4793b825f4be57e9cb1b10db352b9512 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [OT] Save chosen script tag
/external/harfbuzz_ng/src/hb-ot-map.cc
359dcaa0d33271025ca42a5f54ecbac7ae3b56d3 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Update copyright headers
/external/harfbuzz_ng/src/hb-ot-map.cc
d8d0c480c85246a74d47dd5297019c7e39391ab0 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Refactor some code common to GSUB and GPOS
/external/harfbuzz_ng/src/hb-ot-map.cc
b70c96dbe41d6512b80fe3d966a1942e1ef64a4b 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Enable applying GSUB/GPOS features in multiple segments

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.

Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause(). They can also provide a
callback to be called at the pause. Currently the Arabic shaper
uses pauses to enforce certain feature application. The Indic
shaper can use the same facility to pause and do reordering in the
callback.
/external/harfbuzz_ng/src/hb-ot-map.cc
31f18abecb149f8888a72510f2660328dd6de16d 15-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Minor compiler warning fixes
/external/harfbuzz_ng/src/hb-ot-map.cc
51881a61ca96c3328e2d92927a5a61e60997a429 28-May-2011 Behdad Esfahbod <behdad@behdad.org> Shrink code size
/external/harfbuzz_ng/src/hb-ot-map.cc
90645fb24bcbb78183576d3641a99560d87e49f2 28-May-2011 Behdad Esfahbod <behdad@behdad.org> [OT] Separate map_builder from the actual map

Respectively, separate planner from the actual plan.
/external/harfbuzz_ng/src/hb-ot-map.cc
265ac614ea6d26041c7d64739098b76a82bbc4f4 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size lookup_maps array with hb_array_t
/external/harfbuzz_ng/src/hb-ot-map.cc
6843569d2c70c1771ce964e3d1a4cf91e14e7687 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size feature_maps array with hb_array_t
/external/harfbuzz_ng/src/hb-ot-map.cc
44b0a4d2fc62689fc56ef57f412b4bb1e439a614 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size feature_infos array with hb_array_t
/external/harfbuzz_ng/src/hb-ot-map.cc
2409d5f8d7dd8b535ce5ea29e933f7db27d33793 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Update Copyright headers
/external/harfbuzz_ng/src/hb-ot-map.cc
62879eebd9965179af8602ba29ac0a64a739b757 19-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Use ISO 15924 tags for hb_script_t

This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
/external/harfbuzz_ng/src/hb-ot-map.cc
39dede9ffffe732f78cbd092ccb3b48d77ddd66d 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Make sure boolean features always use value=1

Previously boolean features turned on the entire feature mask. This is
wrong if feature is Alternate and user has provided values bigger than one.
Though, I don't think other engines support such corner cases.
/external/harfbuzz_ng/src/hb-ot-map.cc
852912fc2db06b6183a2dc87c45ec1b563063572 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix applying default-value for features

Previously if a default global feature was overrided by a non-global
user feature, we were not setting any default mask for the feature,
essentially disabling the feature by default. Fix that.
/external/harfbuzz_ng/src/hb-ot-map.cc
57ac0ecb7843533b2e6e6d6c8a12b2a44437cc1c 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Merge clearing masks and setting global masks
/external/harfbuzz_ng/src/hb-ot-map.cc
49baa1f69efb0e3c62e45bd59dd88459a84bf390 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up
/external/harfbuzz_ng/src/hb-ot-map.cc
895fb5d364e7ae5d9d2e34b9f68b8651804369ef 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Refactor, in a different direction
/external/harfbuzz_ng/src/hb-ot-map.cc
d2ba016ca1ba7489537768b619980d5159b5870c 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More refactoring
/external/harfbuzz_ng/src/hb-ot-map.cc
36925f695d349a53d52ecc3a58f18240a6977463 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename hb_mask_allocator_t to hb_ot_map_t

hb_ot_plan_t may be a better name, donno.
/external/harfbuzz_ng/src/hb-ot-map.cc
5a2b0b3878cd9c62121bb4fd6344e102a9ee1825 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-map.cc
/external/harfbuzz_ng/src/hb-ot-map.cc