skia2/tools/fonts/ToolUtilsFont.cpp
Mike Klein c6142d855c de-common the rest of the flags
Turns out lots of tools had two copies of many of these flags.

Some GN and .cpp file refactoring to make sure when flags are
present in a binary, they do something in that binary.

I think this finally finishes the flag refrag.

Change-Id: I01488e37ab73a5c4361786863ddb137a7f1095b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/203420
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-03-25 17:39:58 +00:00

73 lines
2.0 KiB
C++

/*
* Copyright 2014 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "ToolUtils.h"
#include "Resources.h"
#include "SkFontMgr.h"
#include "SkFontStyle.h"
#include "SkMutex.h"
#include "SkOSFile.h"
#include "SkTypeface.h"
#include "SkUTF.h"
#include "TestFontMgr.h"
namespace ToolUtils {
sk_sp<SkTypeface> planet_typeface() {
static const sk_sp<SkTypeface> planetTypeface = []() {
const char* filename;
#if defined(SK_BUILD_FOR_WIN)
filename = "fonts/planetcolr.ttf";
#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
filename = "fonts/planetsbix.ttf";
#else
filename = "fonts/planetcbdt.ttf";
#endif
sk_sp<SkTypeface> typeface = MakeResourceAsTypeface(filename);
if (typeface) {
return typeface;
}
return SkTypeface::MakeFromName("Planet", SkFontStyle());
}();
return planetTypeface;
}
sk_sp<SkTypeface> emoji_typeface() {
static const sk_sp<SkTypeface> emojiTypeface = []() {
const char* filename;
#if defined(SK_BUILD_FOR_WIN)
filename = "fonts/colr.ttf";
#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
filename = "fonts/sbix.ttf";
#else
filename = "fonts/cbdt.ttf";
#endif
sk_sp<SkTypeface> typeface = MakeResourceAsTypeface(filename);
if (typeface) {
return typeface;
}
return SkTypeface::MakeFromName("Emoji", SkFontStyle());
}();
return emojiTypeface;
}
const char* emoji_sample_text() {
return "\xF0\x9F\x98\x80"
" "
"\xE2\x99\xA2"; // 😀 ♢
}
static sk_sp<SkTypeface> create_font(const char* name, SkFontStyle style) {
static sk_sp<SkFontMgr> portableFontMgr = MakePortableFontMgr();
return portableFontMgr->legacyMakeTypeface(name, style);
}
sk_sp<SkTypeface> create_portable_typeface(const char* name, SkFontStyle style) {
return create_font(name, style);
}
} // namespace ToolUtils