diff options
author | Seigo Nonaka <nona@google.com> | 2021-01-20 22:51:05 -0800 |
---|---|---|
committer | Seigo Nonaka <nona@google.com> | 2021-01-20 22:51:05 -0800 |
commit | 51e5c0c2802e05cfb37323444c806232ff63fe5f (patch) | |
tree | f0bce46d3642948354d8efb1e9a48c64521417d1 | |
parent | bcdfce14e27f8043f29aae20bc7a06cb56e60002 (diff) | |
download | minikin-51e5c0c2802e05cfb37323444c806232ff63fe5f.tar.gz |
Add API for determining font type.
Bug: 176939176
Test: atest FontFileUtilTest
Change-Id: I6eb0c8051a934ce92786eeca7cfab7b0623688d2
-rw-r--r-- | include/minikin/FontFileParser.h | 1 | ||||
-rw-r--r-- | libs/minikin/FontFileParser.cpp | 8 |
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 |