20 std::span<std::byte const> file_bytes;
22 uint16_t OS2_xHeight = 0;
23 uint16_t OS2_HHeight = 0;
26 std::span<std::byte const> cmapTableBytes;
29 std::span<std::byte const> cmapBytes;
32 std::span<std::byte const> glyfTableBytes;
35 std::span<std::byte const> headTableBytes;
38 bool locaTableIsOffset32;
41 std::span<std::byte const> hheaTableBytes;
45 uint16_t numberOfHMetrics;
48 std::span<std::byte const> hmtxTableBytes;
51 std::span<std::byte const> locaTableBytes;
54 std::span<std::byte const> maxpTableBytes;
58 std::span<std::byte const> nameTableBytes;
61 std::span<std::byte const> postTableBytes;
64 std::span<std::byte const> os2TableBytes;
67 std::span<std::byte const> kernTableBytes;
84 file_bytes = this->view->bytes();
88 true_type_font(URL
const &url) :
91 file_bytes = this->view->bytes();
96 error_info(
true).set<
"url">(url);
106 ~true_type_font() =
default;
131 const noexcept override;
138 void parsefontDirectory();
143 void parseHeadTable(std::span<std::byte const> headTableBytes);
145 void parseHheaTable(std::span<std::byte const> bytes);
147 void parseNameTable(std::span<std::byte const> bytes);
149 void parseOS2Table(std::span<std::byte const> bytes);
159 void parseMaxpTable(std::span<std::byte const> bytes);
169 bool updateglyph_metrics(
175 bool loadSimpleGlyph(std::span<std::byte const> bytes, graphic_path &glyph)
const noexcept;
185 bool loadCompoundGlyph(std::span<std::byte const> bytes, graphic_path &glyph,
tt::glyph_id &metrics_glyph_id)
const noexcept;
194 bool loadCompoundglyph_metrics(std::span<std::byte const> bytes,
tt::glyph_id &metrics_glyph_id)
const noexcept;
bool loadglyph_metrics(tt::glyph_id glyph_id, glyph_metrics &metrics, tt::glyph_id lookahead_glyph_id=tt::glyph_id{}) const noexcept override
Load a glyphMetrics into a path.