#include "include/core/SkFontMgr.h"
#include "include/core/SkFontStyle.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkString.h"
#include "include/core/SkTypeface.h"
#include "include/core/SkTypes.h"
#include "modules/skottie/include/Skottie.h"
#include "modules/skottie/src/SkottieJson.h"
#include "modules/skottie/src/SkottiePriv.h"
#include "modules/skottie/src/text/Font.h"
#include "modules/skottie/src/text/TextAdapter.h"
#include "modules/skresources/include/SkResources.h"
#include "modules/sksg/include/SkSGGroup.h"
#include "modules/sksg/include/SkSGRenderNode.h"
#include "src/base/SkTSearch.h"
#include "src/core/SkTHash.h"
#include "src/utils/SkJSON.h"
#include <string.h>
#include <memory>
#include <tuple>
#include <utility>
#include <vector>
namespace skottie {
namespace internal {
namespace {
template <typename T, typename TMap>
const char* parse_map(const TMap& map, const char* str, T* result) { … }
SkFontStyle FontStyle(const AnimationBuilder* abuilder, const char* style) { … }
}
bool AnimationBuilder::FontInfo::matches(const char family[], const char style[]) const { … }
void AnimationBuilder::parseFonts(const skjson::ObjectValue* jfonts,
const skjson::ArrayValue* jchars) { … }
bool AnimationBuilder::resolveNativeTypefaces() { … }
bool AnimationBuilder::resolveEmbeddedTypefaces(const skjson::ArrayValue& jchars) { … }
sk_sp<sksg::RenderNode> AnimationBuilder::attachTextLayer(const skjson::ObjectValue& jlayer,
LayerInfo*) const { … }
const AnimationBuilder::FontInfo* AnimationBuilder::findFont(const SkString& font_name) const { … }
}
}