16d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 26d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 36d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// found in the LICENSE file. 46d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 56d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "skia/ext/fontmgr_default_win.h" 66d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 76d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "third_party/skia/include/ports/SkFontMgr.h" 86d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "third_party/skia/include/ports/SkTypeface_win.h" 96d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)namespace { 116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 126d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)SkFontMgr* g_default_fontmgr; 136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} // namespace 156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void SetDefaultSkiaFactory(SkFontMgr* fontmgr) { 176d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) g_default_fontmgr = fontmgr; 186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 196d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 206d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)SK_API SkFontMgr* SkFontMgr::Factory() { 216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // This will be set when DirectWrite is in use, and an SkFontMgr has been 226d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // created with the pre-sandbox warmed up one. Otherwise, we fallback to a 236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // GDI SkFontMgr which is used in the browser. 246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) if (g_default_fontmgr) 256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) return SkRef(g_default_fontmgr); 266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) return SkFontMgr_New_GDI(); 276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 28