9#ifndef SkTypeface_Freetype_DEFINED
10#define SkTypeface_Freetype_DEFINED
59 int32_t adjustments[])
const override;
67 int coordinateCount)
const override;
69 int parameterCount)
const override;
80 mutable SkOnce fFTFaceOnce;
81 mutable std::unique_ptr<FaceRec> fFaceRec;
83 mutable SkSharedMutex fC2GCacheMutex;
86 mutable SkOnce fGlyphMasksMayNeedCurrentColorOnce;
87 mutable bool fGlyphMasksMayNeedCurrentColor;
101 std::unique_ptr<SkStreamAsset>
onOpenStream(
int* ttcIndex)
const override;
107 const std::unique_ptr<const SkFontData> fData;
135 mutable SkMutex fLibraryMutex;
struct FT_FaceRec_ * FT_Face
struct FT_StreamRec_ * FT_Stream
struct FT_FaceRec_ * FT_Face
struct FT_LibraryRec_ * FT_Library
static constexpr SkFourByteTag SkSetFourByteTag(char a, char b, char c, char d)
static bool GetAxes(FT_Face face, AxisDefinitions *axes)
bool scanFace(SkStreamAsset *stream, int faceIndex, int *numInstances) const override
static void computeAxisValues(AxisDefinitions axisDefinitions, const SkFontArguments::VariationPosition position, SkFixed *axisValues, const SkString &name, SkFontStyle *style, const SkFontArguments::VariationPosition::Coordinate *currentPosition=nullptr)
~SkFontScanner_FreeType() override
bool scanInstance(SkStreamAsset *stream, int faceIndex, int instanceIndex, SkString *name, SkFontStyle *style, bool *isFixedPitch, AxisDefinitions *axes) const override
bool scanFile(SkStreamAsset *stream, int *numFaces) const override
sk_sp< SkTypeface > onMakeClone(const SkFontArguments &) const override
void onGetFamilyName(SkString *familyName) const override
void onGetFontDescriptor(SkFontDescriptor *, bool *serialize) const override
~SkTypeface_FreeTypeStream() override
SkTypeface_FreeTypeStream(std::unique_ptr< SkFontData > fontData, const SkString familyName, const SkFontStyle &style, bool isFixedPitch)
std::unique_ptr< SkStreamAsset > onOpenStream(int *ttcIndex) const override
std::unique_ptr< SkFontData > onMakeFontData() const override
void getPostScriptGlyphNames(SkString *dstArray) const override
sk_sp< SkData > onCopyTableData(SkFontTableTag) const override
std::unique_ptr< SkAdvancedTypefaceMetrics > onGetAdvancedMetrics() const override
void onCharsToGlyphs(const SkUnichar uni[], int count, SkGlyphID glyphs[]) const override
std::unique_ptr< SkScalerContext > onCreateScalerContext(const SkScalerContextEffects &, const SkDescriptor *) const override
int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[], int coordinateCount) const override
bool onGetKerningPairAdjustments(const uint16_t glyphs[], int count, int32_t adjustments[]) const override
int onGetUPEM() const override
int onGetTableTags(SkFontTableTag tags[]) const override
bool onGlyphMaskNeedsCurrentColor() const override
int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[], int parameterCount) const override
std::unique_ptr< SkFontData > makeFontData() const
std::unique_ptr< SkFontData > cloneFontData(const SkFontArguments &, SkFontStyle *style) const
virtual std::unique_ptr< SkFontData > onMakeFontData() const =0
size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void *data) const override
void onFilterRec(SkScalerContextRec *) const override
int onCountGlyphs() const override
SkTypeface_FreeType(const SkFontStyle &style, bool isFixedPitch)
~SkTypeface_FreeType() override
LocalizedStrings * onCreateFamilyNameIterator() const override
FaceRec * getFaceRec() const
static sk_sp< SkTypeface > MakeFromStream(std::unique_ptr< SkStreamAsset >, const SkFontArguments &)
static void FontDataPaletteToDescriptorPalette(const SkFontData &, SkFontDescriptor *)
static int GetUnitsPerEm(FT_Face face)
void getGlyphToUnicodeMap(SkUnichar *) const override
bool onGetPostScriptName(SkString *) const override
void serialize(SkWStream *, SerializeBehavior=SerializeBehavior::kIncludeDataIfLocal) const
bool isFixedPitch() const
SkTypeface(const SkFontStyle &style, bool isFixedPitch=false)
DEF_SWITCHES_START aot vmservice shared library name
std::shared_ptr< const fml::Mapping > data