return static_cast<ANPTypefaceStyle>(s);
}
+static int32_t anp_getFontPath(const ANPTypeface* tf, char fileName[],
+ int32_t length, int32_t* index) {
+ size_t size = SkFontHost::GetFileName(SkTypeface::UniqueID(tf), fileName,
+ length, index);
+ return static_cast<int32_t>(size);
+}
+
static const char* gFontDir;
#define FONT_DIR_SUFFIX "/fonts/"
ASSIGN(i, ref);
ASSIGN(i, unref);
ASSIGN(i, getStyle);
+ ASSIGN(i, getFontPath);
ASSIGN(i, getFontDirectoryPath);
}
*/
ANPTypefaceStyle (*getStyle)(const ANPTypeface*);
+ /** Some fonts are stored in files. If that is true for the fontID, then
+ this returns the byte length of the full file path. If path is not null,
+ then the full path is copied into path (allocated by the caller), up to
+ length bytes. If index is not null, then it is set to the truetype
+ collection index for this font, or 0 if the font is not in a collection.
+
+ Note: getFontPath does not assume that path is a null-terminated string,
+ so when it succeeds, it only copies the bytes of the file name and
+ nothing else (i.e. it copies exactly the number of bytes returned by the
+ function. If the caller wants to treat path[] as a C string, it must be
+ sure that it is allocated at least 1 byte larger than the returned size,
+ and it must copy in the terminating 0.
+
+ If the fontID does not correspond to a file, then the function returns
+ 0, and the path and index parameters are ignored.
+
+ @param fontID The font whose file name is being queried
+ @param path Either NULL, or storage for receiving up to length bytes
+ of the font's file name. Allocated by the caller.
+ @param length The maximum space allocated in path (by the caller).
+ Ignored if path is NULL.
+ @param index Either NULL, or receives the TTC index for this font.
+ If the font is not a TTC, then will be set to 0.
+ @return The byte length of th font's file name, or 0 if the font is not
+ baked by a file.
+ */
+ int32_t (*getFontPath)(const ANPTypeface*, char path[], int32_t length,
+ int32_t* index);
+
/** Return the path name for the font directory, or NULL if not supported
*/
const char* (*getFontDirectoryPath)();