18 typename std::enable_if<!std::is_same<U, roo::byte>::value,
30 Color color)
const override;
47 class GlyphMetadataReader;
57 bool rle()
const {
return compression_method_ > 0; }
58 int16_t kerning(
int left_glyph_index,
int right_glyph_index)
const;
59 int16_t kerningWithClassFormat(
int left_glyph_index,
60 int right_glyph_index)
const;
63 int findGlyphIndex(
char32_t code)
const;
64 const roo::byte* PROGMEM findKernPair(
char32_t left,
char32_t right)
const;
66 void drawGlyphModeVisible(DisplayOutput& output, int16_t x, int16_t y,
67 const GlyphMetrics&
metrics,
bool compressed,
68 const roo::byte* PROGMEM data,
const Box& clip_box,
72 void drawGlyphModeFill(DisplayOutput& output, int16_t x, int16_t y,
73 int16_t bgwidth,
const GlyphMetrics& glyph_metrics,
74 bool compressed,
const roo::byte* PROGMEM data,
75 int16_t offset,
const Box& clip_box, Color color,
78 void drawKernedGlyphsModeFill(
79 DisplayOutput& output, int16_t x, int16_t y, int16_t bgwidth,
80 const GlyphMetrics& left_metrics,
bool left_compressed,
81 const roo::byte* PROGMEM left_data, int16_t left_offset,
82 const GlyphMetrics& right_metrics,
bool right_compressed,
83 const roo::byte* PROGMEM right_data, int16_t right_offset,
84 const Box& clip_box, Color color, Color bgColor,
87 void drawBordered(DisplayOutput& output, int16_t x, int16_t y,
88 int16_t bgwidth,
const Drawable& glyph,
const Box& clip_box,
92 int glyph_metadata_size_;
95 int font_metric_bytes_;
97 int glyph_index_bytes_;
98 int compression_method_;
99 int kerning_pairs_count_;
100 int glyph_kerning_size_;
101 uint8_t kerning_format_;
102 uint16_t kerning_class_count_;
103 uint16_t kerning_source_count_;
104 int kerning_source_index_bytes_;
105 int kerning_class_entries_count_;
106 char32_t default_glyph_;
107 int default_space_width_;
108 const roo::byte* font_begin_ PROGMEM;
109 const roo::byte* cmap_entries_begin_
PROGMEM;
110 const roo::byte* glyph_metadata_begin_
PROGMEM;
111 const roo::byte* glyph_kerning_begin_
PROGMEM;
112 const roo::byte* kerning_source_table_begin_
PROGMEM;
113 const roo::byte* kerning_class_table_begin_
PROGMEM;
114 const roo::byte* kerning_class_entries_begin_
PROGMEM;
115 const roo::byte* glyph_data_begin_
PROGMEM;
117 int cmap_entries_count_;
118 std::unique_ptr<CmapEntry[]> cmap_entries_;
uint32_t getHorizontalStringGlyphMetrics(const char *utf8_data, uint32_t size, GlyphMetrics *result, uint32_t offset, uint32_t max_count) const override
Return metrics for consecutive glyphs in the UTF-8 string.