Index: content/renderer/renderer_main_platform_delegate_win.cc |
diff --git a/content/renderer/renderer_main_platform_delegate_win.cc b/content/renderer/renderer_main_platform_delegate_win.cc |
index 58fce15cc41f4c4400a749c489c7a34fde5de828..c4b16941314b6622fd4ce3beee4bbd619d4d8425 100644 |
--- a/content/renderer/renderer_main_platform_delegate_win.cc |
+++ b/content/renderer/renderer_main_platform_delegate_win.cc |
@@ -17,6 +17,7 @@ |
#include "skia/ext/vector_platform_device_emf_win.h" |
#include "third_party/icu/source/i18n/unicode/timezone.h" |
#include "third_party/skia/include/ports/SkTypeface_win.h" |
+#include "third_party/skia/include/ports/SkFontMgr.h" |
#ifdef ENABLE_VTUNE_JIT_INTERFACE |
#include "v8/src/third_party/vtune/v8-vtune.h" |
@@ -44,6 +45,8 @@ void SkiaPreCacheFontCharacters(const LOGFONT& logfont, |
} |
} |
+SkFontMgr* gBeforeSandboxSkFontMgr; |
+ |
} // namespace |
RendererMainPlatformDelegate::RendererMainPlatformDelegate( |
@@ -78,6 +81,24 @@ void RendererMainPlatformDelegate::PlatformInitialize() { |
SkTypeface_SetEnsureLOGFONTAccessibleProc(SkiaPreCacheFont); |
skia::SetSkiaEnsureTypefaceCharactersAccessible( |
SkiaPreCacheFontCharacters); |
+ |
+ // DirectWrite warmup. |
+ gBeforeSandboxSkFontMgr = SkFontMgr_New_DirectWrite(); // Leaked. |
scottmg
2014/03/21 23:04:06
Still working on simplifying this; we can call the
|
+ |
+ SkTypeface* typeface = gBeforeSandboxSkFontMgr->legacyCreateTypeface("Arial", 0); |
+ |
+ SkPaint paint_warmup; |
+ paint_warmup.setTextSize(12); |
+ paint_warmup.setTypeface(typeface); |
+ paint_warmup.setFakeBoldText(false); |
+ paint_warmup.setTextSkewX(0); |
+ paint_warmup.setSubpixelText(true); |
+ static const uint32_t textFlagsMask = SkPaint::kAntiAlias_Flag | |
+ SkPaint::kLCDRenderText_Flag | |
+ SkPaint::kGenA8FromLCD_Flag; |
+ paint_warmup.setFlags(textFlagsMask); |
+ wchar_t glyph = 91; |
+ paint_warmup.measureText(&glyph, 2); |
} |
} |