class SkData; class SkStream; struct SkAdvancedTypefaceMetrics;
struct SkOTUtils { /** * Calculates the OpenType checksum for data.
*/ static uint32_t CalcTableChecksum(SK_OT_ULONG *data, size_t length);
/** * Renames an sfnt font. On failure (invalid data or not an sfnt font) * returns nullptr. * * Essentially, this removes any existing 'name' table and replaces it * with a new one in which FontFamilyName, FontSubfamilyName, * UniqueFontIdentifier, FullFontName, and PostscriptName are fontName. * * The new 'name' table records will be written with the Windows, * UnicodeBMPUCS2, and English_UnitedStates settings. * * fontName and fontNameLen must be specified in terms of ASCII chars. * * Does not affect fontData's ownership.
*/ static SkData* RenameFont(SkStreamAsset* fontData, constchar* fontName, int fontNameLen);
/** An implementation of LocalizedStrings which obtains it's data from a 'name' table. */ class LocalizedStrings_NameTable : public SkTypeface::LocalizedStrings { public: /** Takes ownership of the nameTableData and will free it with SK_DELETE. */
LocalizedStrings_NameTable(std::unique_ptr<uint8_t[]> nameTableData, size_t size,
SK_OT_USHORT types[], int typesCount)
: fTypes(types), fTypesCount(typesCount), fTypesIndex(0)
, fNameTableData(std::move(nameTableData))
, fFamilyNameIter(fNameTableData.get(), size, fTypes[fTypesIndex])
{ }
/** Creates an iterator over all data in the 'name' table of a typeface. * If no valid 'name' table can be found, returns nullptr.
*/ static sk_sp<LocalizedStrings_NameTable> Make( const SkTypeface& typeface,
SK_OT_USHORT types[], int typesCount);
/** Creates an iterator over all the family names in the 'name' table of a typeface. * If no valid 'name' table can be found, returns nullptr.
*/ static sk_sp<LocalizedStrings_NameTable> MakeForFamilyNames(const SkTypeface& typeface);
SK_OT_USHORT* fTypes; int fTypesCount; int fTypesIndex;
std::unique_ptr<uint8_t[]> fNameTableData;
SkOTTableName::Iterator fFamilyNameIter;
};
/** An implementation of LocalizedStrings which has one name. */ class LocalizedStrings_SingleName : public SkTypeface::LocalizedStrings { public:
LocalizedStrings_SingleName(SkString name, SkString language)
: fName(std::move(name)), fLanguage(std::move(language)), fHasNext(true) {}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.