summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeigo Nonaka <nona@google.com>2021-01-21 17:58:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-01-21 17:58:54 +0000
commitbcba17031d7619fa253ec34b7b830d39378935f6 (patch)
treef406ec605183ee4e8a33c5c543985022f9b8d9fe
parent6451abb3a776a20cd828530bb8ff2f1a60c9bc8f (diff)
parent51e5c0c2802e05cfb37323444c806232ff63fe5f (diff)
downloadminikin-bcba17031d7619fa253ec34b7b830d39378935f6.tar.gz
Merge "Add API for determining font type."
-rw-r--r--include/minikin/FontFileParser.h1
-rw-r--r--libs/minikin/FontFileParser.cpp8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/minikin/FontFileParser.h b/include/minikin/FontFileParser.h
index b6d155c..34880a3 100644
--- a/include/minikin/FontFileParser.h
+++ b/include/minikin/FontFileParser.h
@@ -36,6 +36,7 @@ public:
std::optional<uint32_t> getFontRevision() const;
std::optional<std::string> getPostScriptName() const;
+ std::optional<bool> isPostScriptType1Font() const;
protected: // protected for testing purposes.
static bool analyzeFontRevision(const uint8_t* head_data, size_t head_size, uint32_t* out);
diff --git a/libs/minikin/FontFileParser.cpp b/libs/minikin/FontFileParser.cpp
index 7ca81aa..1bcb711 100644
--- a/libs/minikin/FontFileParser.cpp
+++ b/libs/minikin/FontFileParser.cpp
@@ -208,4 +208,12 @@ std::optional<std::string> FontFileParser::getPostScriptName() const {
return out;
}
+std::optional<bool> FontFileParser::isPostScriptType1Font() const {
+ if (!mFace) return std::optional<bool>();
+
+ HbBlob cffTable(mFace, MinikinFont::MakeTag('C', 'F', 'F', ' '));
+ HbBlob cff2Table(mFace, MinikinFont::MakeTag('C', 'F', 'F', '2'));
+ return cffTable || cff2Table;
+}
+
} // namespace minikin