#include "include/core/SkTypes.h"
#include "include/core/SkData.h"
#include "include/core/SkFontMgr.h"
#include "include/core/SkFontStyle.h"
#include "include/core/SkPaint.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkStream.h"
#include "include/core/SkString.h"
#include "include/ports/SkFontMgr_android.h"
#include "include/private/base/SkFixed.h"
#include "include/private/base/SkTArray.h"
#include "include/private/base/SkTDArray.h"
#include "include/private/base/SkTemplates.h"
#include "src/base/SkTSearch.h"
#include "src/core/SkFontDescriptor.h"
#include "src/core/SkFontScanner.h"
#include "src/core/SkOSFile.h"
#include "src/core/SkTypefaceCache.h"
#include "src/ports/SkFontMgr_android_parser.h"
#include "src/ports/SkTypeface_FreeType.h"
#include <algorithm>
#include <limits>
usingnamespaceskia_private;
class SkData;
namespace {
class SkTypeface_Android : public SkTypeface_FreeType { … };
class SkTypeface_AndroidSystem : public SkTypeface_Android { … };
template <typename D, typename S> sk_sp<D> sk_sp_static_cast(sk_sp<S>&& s) { … }
class SkFontStyleSet_Android : public SkFontStyleSet { … };
struct NameToFamily { … };
class SkFontMgr_Android : public SkFontMgr { … };
#ifdef SK_DEBUG
static char const * const gSystemFontUseStrings[] = …;
#endif
}
sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom) { … }
sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr<SkFontScanner> scanner) { … }