- 21 12月, 2016 1 次提交
-
-
- 17 12月, 2016 1 次提交
-
-
由 Behdad Esfahbod 提交于
Not hooked up to shaper yet.
-
- 06 5月, 2016 1 次提交
-
-
由 Behdad Esfahbod 提交于
Fixes https://github.com/behdad/harfbuzz/issues/253 Hopefully we got the logic right.
-
- 18 3月, 2016 1 次提交
-
-
由 Behdad Esfahbod 提交于
Previously we only synthesized GDEF glyph classes if the glyphClassDef array in GDEF was null. This worked well enough, and is indeed what OpenType requires: "If the font does not include a GlyphClassDef table, the client must define and maintain this information when using the GSUB and GPOS tables." That sentence does not quite make sense since one needs Unicode properties as well, but is close enough. However, looks like Arial Unicode as shipped on WinXP, does have GDEF glyph class array, but defines no classes for Hebrew. This results in Hebrew marks not getting their widths zeroed. So, with this change, we synthesize glyph class for any glyph that is not specified in the GDEF glyph class table. Since, from our point of view, a glyph not being listed in that table is a font bug, any unwanted consequence of this change is a font bug :). Note that we still don't get the same rendering as Uniscribe, since Uniscribe seems to do fallback positioning as well, even though the font does have a GPOS table (which does NOT cover Hebrew!). We are not going to try to match that though. Test string for Arial Unicode: U+05E9,U+05B8,U+05C1,U+05DC Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434] After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434] Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434] Note that our new output matches what we were generating until July 2014, because the Hebrew shaper used to zero mark advances based on Unicode, NOT GDEF. That's 9e834e29. Reported by Greg Douglas.
-
- 11 2月, 2016 1 次提交
-
-
由 Behdad Esfahbod 提交于
Right now the position_finish_advances() is empty. To be used for spacing attachments proposal later.
-
- 03 11月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
...at compile time.
-
- 10 10月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
This is a fix on top of the previous issue fixed in c917965b. This was caught by "libFuzzer" testing.
-
- 29 9月, 2015 2 次提交
-
-
由 Behdad Esfahbod 提交于
Not functional change (expected!).
-
由 Behdad Esfahbod 提交于
Fixes possible invalid read of two bytes. Reported by Behzad Najjarpour Jabbari, Secunia Research.
-
- 18 8月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 09 4月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 26 2月, 2015 12 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
Shouldn't be needed. I have a hard time imagining this breaking any legitimate use case.
-
由 Behdad Esfahbod 提交于
Needed some rework of Extension table. Hopefully I got it right, and the new template usage doesn't break any compilers...
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
No functional change right now.
-
由 Behdad Esfahbod 提交于
This makes a lot of code safer. We only try modifying the object in one place, after making sure it's safe to do so. So, do a const_cast<> in that one place...
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 13 12月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 15 10月, 2014 1 次提交
-
-
- 03 8月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Add buffer var allocation asserts to a few key places.
-
- 12 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
-
- 06 6月, 2014 4 次提交
-
-
由 Behdad Esfahbod 提交于
Normally if you want to, say, conditionally prevent a 'pref', you would use blocking contextual matching. Some designers instead form the 'pref' form, then undo it in context. To detect that we now also remember glyphs that went through MultipleSubst. In the only place that this is used, Uniscribe seems to only care about the "last" transformation between Ligature and Multiple substitions. Ie. if you ligate, expand, and ligate again, it moves the pref, but if you ligate and expand it doesn't. That's why we clear the MULTIPLIED bit when setting LIGATED. Micro-test added. Test: U+0D2F,0D4D,0D30 with font from: [1] https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 29 4月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Before we were just relying on the compiler inlining them and not leaving a trace in our public API. Try to fix. Hopefully not breaking anyone's build.
-
- 31 10月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Patch from Jonathan Kew.
-
- 18 10月, 2013 5 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
No functional change.
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 17 10月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Shouldn't change behavior at all, but is faster / more robust.
-
- 15 10月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Previously we only supported recursive sublookups with ascending indices. We were also not correctly handling non-1-to-1 recursed lookups. Fix all that! Fixes the three tests in test/shaping/tests/context-matching.tests, which were derived from NotoSansBengali and NotoSansDevanagari among others.
-