1 /* 2 * Copyright 2014 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 8 #include "tools/ToolUtils.h" 9 10 #include "include/core/SkFontMgr.h" 11 #include "include/core/SkFontStyle.h" 12 #include "include/core/SkTypeface.h" 13 #include "include/private/SkMutex.h" 14 #include "src/core/SkOSFile.h" 15 #include "src/utils/SkUTF.h" 16 #include "tools/Resources.h" 17 #include "tools/fonts/TestFontMgr.h" 18 19 namespace ToolUtils { 20 planet_typeface()21sk_sp<SkTypeface> planet_typeface() { 22 static const sk_sp<SkTypeface> planetTypeface = []() { 23 const char* filename; 24 #if defined(SK_BUILD_FOR_WIN) 25 filename = "fonts/planetcolr.ttf"; 26 #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 27 filename = "fonts/planetsbix.ttf"; 28 #else 29 filename = "fonts/planetcbdt.ttf"; 30 #endif 31 sk_sp<SkTypeface> typeface = MakeResourceAsTypeface(filename); 32 if (typeface) { 33 return typeface; 34 } 35 return SkTypeface::MakeFromName("Planet", SkFontStyle()); 36 }(); 37 return planetTypeface; 38 } 39 emoji_typeface()40sk_sp<SkTypeface> emoji_typeface() { 41 static const sk_sp<SkTypeface> emojiTypeface = []() { 42 const char* filename; 43 #if defined(SK_BUILD_FOR_WIN) 44 filename = "fonts/colr.ttf"; 45 #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 46 filename = "fonts/sbix.ttf"; 47 #else 48 filename = "fonts/cbdt.ttf"; 49 #endif 50 sk_sp<SkTypeface> typeface = MakeResourceAsTypeface(filename); 51 if (typeface) { 52 return typeface; 53 } 54 return SkTypeface::MakeFromName("Emoji", SkFontStyle()); 55 }(); 56 return emojiTypeface; 57 } 58 emoji_sample_text()59const char* emoji_sample_text() { 60 return "\xF0\x9F\x98\x80" 61 " " 62 "\xE2\x99\xA2"; // ♢ 63 } create_font(const char * name,SkFontStyle style)64static sk_sp<SkTypeface> create_font(const char* name, SkFontStyle style) { 65 static sk_sp<SkFontMgr> portableFontMgr = MakePortableFontMgr(); 66 return portableFontMgr->legacyMakeTypeface(name, style); 67 } 68 create_portable_typeface(const char * name,SkFontStyle style)69sk_sp<SkTypeface> create_portable_typeface(const char* name, SkFontStyle style) { 70 return create_font(name, style); 71 } 72 } // namespace ToolUtils 73