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