Chromium Code Reviews
DescriptionReland: Compile FreeType with HarfBuzz support
FreeType's autohinter uses HarfBuzz API to collect additional GSUB and
GPOS mappings to detect ligatures that should be aligned by the
autohinter. Previously we were not able to build FreeType with HarfBuzz
support because of the cyclic dependency. This CL resolves the cyclic
dependency by building a bootstrap FreeType in order to build HarfBuzz'
hb_ft_* functions as a static library called harfbuzz-ng-ft. Then we
build harfbuzz-ng separately (which does not depend on FreeType), then
we build FreeType depending on harfbuzz-ng and harfbuzz-ng-ft.
This CL also removes the previous pangoft2 link hack since the
:harfbuzz-ng target now brings all symbols required by pangoft2.
This resolves issues with fi and ffi ligatures in Roboto looking like
they were shifted to a different baseline.
I tried developing a pixel test for this, which works if I force usage
of the FreeType autohinter through SkPaint::kSlight_Hinting, however we
are currently unable to automatically test this since our Linux layout
tests do not exercise the autohinting code and do not set this hinting
mode, probably due to the special fontconfig settings that we are using
for the layout tests. Manually verifying the Roboto ligatures however
confirms that this works.
Reland after revert in https://codereview.chromium.org/2879843003/
BUG=617168
Review-Url: https://codereview.chromium.org/2880223002
Cr-Commit-Position: refs/heads/master@{#472413}
Committed: https://chromium.googlesource.com/chromium/src/+/fbec38011870753cffb3cb2ff98aa0c00c63b25c
Patch Set 1 #Patch Set 2 : Fix CrOS build, clarify FreeType dependencies #Patch Set 3 : Remove freetype bootstrap files from freetype target #Patch Set 4 : Try Fix Mac build #Patch Set 5 : Fix Android build #Patch Set 6 : Fix Android build, and update TestExpectations for linux rebaselines #
Total comments: 1
Messages
Total messages: 41 (32 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||