Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
PreshapeTool.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2024 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
9#include "include/core/SkFontMgr.h" // IWYU pragma: keep
19
20#if defined(SK_BUILD_FOR_MAC) && defined(SK_FONTMGR_CORETEXT_AVAILABLE)
22#elif defined(SK_BUILD_FOR_ANDROID) && defined(SK_FONTMGR_ANDROID_AVAILABLE)
25#elif defined(SK_BUILD_FOR_UNIX) && defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
27#else
29#endif
30
31static DEFINE_string2(input , i, nullptr, "Input .json file.");
32static DEFINE_string2(output, o, nullptr, "Output .json file.");
33
34 int main(int argc, char** argv) {
37
38 if (FLAGS_input.isEmpty() || FLAGS_output.isEmpty()) {
39 SkDebugf("Missing required 'input' and 'output' args.\n");
40 return 1;
41 }
42
43 const auto data = SkData::MakeFromFileName(FLAGS_input[0]);
44 if (!data) {
45 SkDebugf("Could not read file: %s\n", FLAGS_input[0]);
46 return 1;
47 }
48
49 SkFILEWStream out(FLAGS_output[0]);
50 if (!out.isValid()) {
51 SkDebugf("Could not write file: %s\n", FLAGS_output[0]);
52 return 1;
53 }
54
55#if defined(SK_BUILD_FOR_MAC) && defined(SK_FONTMGR_CORETEXT_AVAILABLE)
57#elif defined(SK_BUILD_FOR_ANDROID) && defined(SK_FONTMGR_ANDROID_AVAILABLE)
58 sk_sp<SkFontMgr> fontMgr = SkFontMgr_New_Android(nullptr, std::make_unique<SkFontScanner_FreeType>());
59#elif defined(SK_BUILD_FOR_UNIX) && defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
61#else
63#endif
64
65 if (!skottie_utils::Preshape(data, &out, fontMgr, SkShapers::BestAvailable(), nullptr)) {
66 SkDebugf("Could not preshape: %s\n", FLAGS_input[0]);
67 return -1;
68 }
69
70 return 0;
71 }
#define DEFINE_string2(name, shortName, defaultValue, helpString)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
SK_API sk_sp< SkFontMgr > SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts *custom)
SK_API sk_sp< SkFontMgr > SkFontMgr_New_Custom_Empty()
SK_API sk_sp< SkFontMgr > SkFontMgr_New_FontConfig(FcConfig *fc)
SK_API sk_sp< SkFontMgr > SkFontMgr_New_CoreText(CTFontCollectionRef)
static void Parse(int argc, const char *const *argv)
static sk_sp< SkData > MakeFromFileName(const char path[])
Definition SkData.cpp:148
static void Init()
sk_sp< SkFontMgr > fontMgr
Definition examples.cpp:32
char ** argv
Definition library.h:9
sk_sp< Factory > BestAvailable()
Definition main.py:1