diff options
author | caryclark <caryclark@google.com> | 2016-06-13 06:08:25 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-13 06:08:25 -0700 |
commit | 72708b905309af930ca76a09746be5d09204cecd (patch) | |
tree | e346d906cb337ffd62763aa90745302cab7d495f | |
parent | f49747f5fc85ea2acf0c5ff0ab589ad791bf6648 (diff) | |
download | pdfium-72708b905309af930ca76a09746be5d09204cecd.tar.xz |
fix skia + windows + gn
The Skia Windows build for PDFium differs from the
Skia Chromium build in that it uses FreeType within
PDFium and Direct Write within Chromium. This allows
Chrome to match the UI of Windows, and allows
PDFium to use FreeType to measure and draw.
When PDFium was updated to use gn, the settings
from Chrome were used as the basis for the PDFium
settings. Subsequently, PDFium built with Skia on
Windows drew text incorrectly as it used FreeType to
look up the font glyphs and Direct Write to draw them.
This fixes the gn files, and also fixes an error that
crept into the now less-used gyp files.
R=dsinclair@chromium.org
BUG=
Review-Url: https://codereview.chromium.org/2055353002
-rw-r--r-- | skia/BUILD.gn | 11 | ||||
-rw-r--r-- | skia/skia_gn_files.gypi | 2 | ||||
-rw-r--r-- | skia/skia_library.gypi | 1 | ||||
-rw-r--r-- | third_party/BUILD.gn | 9 | ||||
-rw-r--r-- | xfa.gyp | 2 |
5 files changed, 12 insertions, 13 deletions
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index d83ca3acab..e12129153f 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn @@ -112,6 +112,7 @@ config("skia_config") { "//third_party/skia/include/pipe", "//third_party/skia/include/ports", "//third_party/skia/include/utils", + # TODO(dsinclair): Right way to use //third_party/freetype? "//third_party/freetype/include", ] @@ -311,14 +312,10 @@ component("skia") { sources -= [ "//third_party/skia/src/ports/SkOSFile_posix.cpp", "//third_party/skia/src/ports/SkTLS_pthread.cpp", - "//third_party/skia/src/ports/SkFontMgr_custom.cpp", - "//third_party/skia/src/ports/SkFontMgr_custom_empty_factory.cpp", ] } else { sources -= [ "//third_party/skia/src/ports/SkFontHost_win.cpp", - "//third_party/skia/src/ports/SkFontMgr_win_dw.cpp", - "//third_party/skia/src/ports/SkFontMgr_win_dw_factory.cpp", "//third_party/skia/src/ports/SkOSFile_win.cpp", "//third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp", "//third_party/skia/src/ports/SkScalerContext_win_dw.cpp", @@ -337,7 +334,7 @@ component("skia") { sources -= [ "//third_party/skia/src/ports/SkFontHost_mac.cpp" ] } - if (!is_linux && !is_android) { + if (!is_linux && !is_android && !is_win) { sources -= [ "//third_party/skia/src/ports/SkFontHost_FreeType.cpp", "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp", @@ -365,9 +362,7 @@ component("skia") { ] if (is_linux) { - deps += [ - "//third_party/icu:icuuc", - ] + deps += [ "//third_party/icu:icuuc" ] } if (is_android) { diff --git a/skia/skia_gn_files.gypi b/skia/skia_gn_files.gypi index f54ac03ff5..062460b1c6 100644 --- a/skia/skia_gn_files.gypi +++ b/skia/skia_gn_files.gypi @@ -14,8 +14,6 @@ '<(skia_src_path)/ports/SkFontMgr_android.cpp', '<(skia_src_path)/ports/SkFontMgr_android_factory.cpp', '<(skia_src_path)/ports/SkFontMgr_android_parser.cpp', - '<(skia_src_path)/ports/SkFontMgr_win_dw.cpp', - '<(skia_src_path)/ports/SkFontMgr_win_dw_factory.cpp', '<(skia_src_path)/ports/SkGlobalInitialization_default.cpp', '<(skia_src_path)/ports/SkImageEncoder_none.cpp', '<(skia_src_path)/ports/SkOSFile_posix.cpp', diff --git a/skia/skia_library.gypi b/skia/skia_library.gypi index a4eb0abf30..5757be226c 100644 --- a/skia/skia_library.gypi +++ b/skia/skia_library.gypi @@ -260,7 +260,6 @@ ], },{ # not 'OS == "win"' 'sources!': [ - '../third_party/skia/src/ports/SkFontMgr_win_dw.cpp', '../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp', '../third_party/skia/src/ports/SkScalerContext_win_dw.cpp', '../third_party/skia/src/ports/SkTypeface_win_dw.cpp', diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index 1564a97bc5..766b6762c3 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn @@ -13,7 +13,7 @@ group("third_party") { } config("pdfium_third_party_config") { - configs = ["..:pdfium_common_config"] + configs = [ "..:pdfium_common_config" ] } source_set("bigint") { @@ -88,6 +88,13 @@ static_library("fx_freetype") { "freetype/src/truetype/truetype.c", "freetype/src/type1/type1.c", ] + if (pdf_use_skia) { + sources += [ + "freetype/src/base/ftfntfmt.c", + "freetype/src/base/ftfstype.c", + "freetype/src/base/fttype1.c", + ] + } } if (!pdf_use_skia) { @@ -40,7 +40,7 @@ "fxjse/dynprop.cpp", "fxjse/include/cfxjse_arguments.h", "fxjse/include/cfxjse_class.h", - "fxjse/include/cfxjse_value.h" + "fxjse/include/cfxjse_value.h", "fxjse/include/fxjse.h", "fxjse/runtime.cpp", "fxjse/runtime.h", |