- 26 2月, 2015 14 次提交
-
-
由 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 提交于
Can be further optimized, but I think I didn't break anything. Saves another 3% off Roboto shaping.
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
Towards reducing the cost of initializing skippy_iter()
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
Currently: - Initializing skippy is very expensive, - Our lookup accelerator (using set-digests) can be very ineffecite, As such, we end up many times initializing skippy but then failing coverage check. Reordering fixes that. When, later, we fix our accelerator to have truly small false-positive rate (for example by using the frozen-sets), then we might want to reorder these checks such that we wouldn't calculate coverage number if skippy is going to fail. This shows a 5% speedup with Roboto already.
-
由 Behdad Esfahbod 提交于
-
- 20 1月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
Roboto has glyphs (like 'F') that have 200 kerning pairs. Add a handcoded bsearch instead of previous linear search. This doesn't show much speedup though, apparently we spend the bulk of the time somewhere before here.
-
- 13 12月, 2014 2 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 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.
-
- 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.
-
- 29 1月, 2014 1 次提交
-
-
由 Konstantin Ritt 提交于
-
- 31 10月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Patch from Jonathan Kew.
-
- 19 10月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 18 10月, 2013 2 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 10 9月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 05 5月, 2013 4 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 22 4月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 18 4月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Not measurable by any means, but conceptually this is faster since the mask matches more often than the digest.
-
- 09 3月, 2013 2 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 15 2月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
When matching lookups, be smart about default-ignorable characters. In particular: Do nothing specific about ZWNJ, but for the other default-ignorables: If the lookup in question uses the ignorable character in a sequence, then match it as we used to do. However, if the sequence match will fail because the default-ignorable blocked it, try skipping the ignorable character and continue. The most immediate thing it means is that if Lam-Alef forms a ligature, then Lam-ZWJ-Alef will do to. Finally! One exception: when matching for GPOS, or for backtrack/lookahead of GSUB, we ignore ZWNJ too. That's the right thing to do. It certainly is possible to build fonts that this feature will result in undesirable glyphs, but it's hard to think of a real-world case that that would happen. This *does* break Indic shaping right now, since Indic Unicode has specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking those rules. That will be fixed in upcoming commits.
-
- 14 2月, 2013 2 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 12 2月, 2013 3 次提交
-
-
由 Behdad Esfahbod 提交于
Before, we were zeroing advance width of attached marks for non-Indic scripts, and not doing it for Indic. We have now three different behaviors, which seem to better reflect what Uniscribe is doing: - For Indic, no explicit zeroing happens whatsoever, which is the same as before, - For Myanmar, zero advance width of glyphs marked as marks *in GDEF*, and do that *before* applying GPOS. This seems to be what the new Win8 Myanmar shaper does, - For everything else, zero advance width of glyphs that are from General_Category=Mn Unicode characters, and do so before applying GPOS. This seems to be what Uniscribe does for Latin at least. With these changes, positioning of all tests matches for Myanmar, except for the glitch in Uniscribe not applying 'mark'. See preivous commit.
-
由 Behdad Esfahbod 提交于
Before, when matching ligatures, we never skipping over base / liga glyphs even if that was what the LookupFlags asked for. Fixed now. We carefully reviewed all instances of this, and tested with Amiri as well as some Indic scripts, and are confident that this should NOT break anyone's fonts. It's also how Uniscribe does it, from what we can tell.
-
由 Behdad Esfahbod 提交于
In aticipation of upcoming changes.
-