• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()21 sk_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()40 sk_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()59 const char* emoji_sample_text() {
60     return "\xF0\x9F\x98\x80"
61            " "
62            "\xE2\x99\xA2";  // �� ♢
63 }
create_font(const char * name,SkFontStyle style)64 static 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)69 sk_sp<SkTypeface> create_portable_typeface(const char* name, SkFontStyle style) {
70     return create_font(name, style);
71 }
72 }  // namespace ToolUtils
73