Home | History | Annotate | Download | only in ports
      1 /*
      2  * Copyright 2015 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 #include "SkTypes.h"
      8 #if defined(SK_BUILD_FOR_ANDROID)
      9 
     10 #include "SkFontMgr.h"
     11 #include "SkFontMgr_android.h"
     12 
     13 // For test only.
     14 static const char* gTestFontsXml = nullptr;
     15 static const char* gTestFallbackFontsXml = nullptr;
     16 static const char* gTestBasePath = nullptr;
     17 
     18 void SkUseTestFontConfigFile(const char* fontsXml, const char* fallbackFontsXml,
     19                              const char* basePath)
     20 {
     21     gTestFontsXml = fontsXml;
     22     gTestFallbackFontsXml = fallbackFontsXml;
     23     gTestBasePath = basePath;
     24     SkASSERT(gTestFontsXml);
     25     SkASSERT(gTestFallbackFontsXml);
     26     SkASSERT(gTestBasePath);
     27     SkDEBUGF(("Test BasePath: %s Fonts: %s FallbackFonts: %s\n",
     28               gTestBasePath, gTestFontsXml, gTestFallbackFontsXml));
     29 }
     30 
     31 SkFontMgr* SkFontMgr::Factory() {
     32     // These globals exist so that Chromium can override the environment.
     33     // TODO: these globals need to be removed, and Chromium use SkFontMgr_New_Android instead.
     34     if ((gTestFontsXml || gTestFallbackFontsXml) && gTestBasePath) {
     35         SkFontMgr_Android_CustomFonts custom = {
     36             SkFontMgr_Android_CustomFonts::kOnlyCustom,
     37             gTestBasePath,
     38             gTestFontsXml,
     39             gTestFallbackFontsXml,
     40             false /* fIsolated */
     41         };
     42         return SkFontMgr_New_Android(&custom);
     43     }
     44 
     45     return SkFontMgr_New_Android(nullptr);
     46 }
     47 
     48 #endif//defined(SK_BUILD_FOR_ANDROID)
     49