roo_display
API Documentation for roo_display
Loading...
Searching...
No Matches
roo_display::Font Class Referenceabstract

Abstract font interface. More...

#include <font.h>

Inheritance diagram for roo_display::Font:
[legend]

Public Member Functions

const FontMetricsmetrics () const
 Return font metrics.
 
const FontPropertiesproperties () const
 Return font properties.
 
virtual bool getGlyphMetrics (char32_t code, FontLayout layout, GlyphMetrics *result) const =0
 Retrieve glyph metrics for a code point and layout.
 
virtual int16_t getKerning (char32_t left, char32_t right) const
 Return kerning adjustment for a pair of code points.
 
void drawHorizontalString (const Surface &s, roo::string_view text, Color color) const
 Draw a UTF-8 string horizontally using a string view.
 
virtual void drawHorizontalString (const Surface &s, const char *utf8_data, uint32_t size, Color color) const =0
 Draw a UTF-8 string horizontally.
 
virtual void drawGlyph (const Surface &s, char32_t code, FontLayout layout, Color color) const
 Draw a single glyph.
 
GlyphMetrics getHorizontalStringMetrics (roo::string_view text) const
 Return metrics of the specified UTF-8 string as if it were a single glyph.
 
virtual GlyphMetrics getHorizontalStringMetrics (const char *utf8_data, uint32_t size) const =0
 Return metrics of the specified UTF-8 string as if it were a single glyph.
 
uint32_t getHorizontalStringGlyphMetrics (roo::string_view text, GlyphMetrics *result, uint32_t offset, uint32_t max_count) const
 Return metrics for consecutive glyphs in the UTF-8 string.
 
virtual uint32_t getHorizontalStringGlyphMetrics (const char *utf8_data, uint32_t size, GlyphMetrics *result, uint32_t offset, uint32_t max_count) const =0
 Return metrics for consecutive glyphs in the UTF-8 string.
 
virtual ~Font ()
 

Protected Member Functions

void init (FontMetrics metrics, FontProperties properties)
 

Detailed Description

Abstract font interface.

Definition at line 185 of file font.h.

Constructor & Destructor Documentation

◆ ~Font()

virtual roo_display::Font::~Font ( )
inlinevirtual

Definition at line 255 of file font.h.

Member Function Documentation

◆ drawGlyph()

void roo_display::Font::drawGlyph ( const Surface s,
char32_t  code,
FontLayout  layout,
Color  color 
) const
virtual

Draw a single glyph.

The default implementation supports horizontal layout and delegates to drawHorizontalString. Font implementations can override this for a faster path that avoids UTF-8 encoding.

Reimplemented in roo_display::FontAdafruitFixed5x7, roo_display::SmoothFont, and roo_display::SmoothFontV2.

Definition at line 8 of file font.cpp.

References color, drawHorizontalString(), and roo_display::kHorizontal.

◆ drawHorizontalString() [1/2]

virtual void roo_display::Font::drawHorizontalString ( const Surface s,
const char utf8_data,
uint32_t  size,
Color  color 
) const
pure virtual

Draw a UTF-8 string horizontally.

Implemented in roo_display::FontAdafruitFixed5x7, roo_display::SmoothFont, and roo_display::SmoothFontV2.

◆ drawHorizontalString() [2/2]

void roo_display::Font::drawHorizontalString ( const Surface s,
roo::string_view  text,
Color  color 
) const
inline

◆ getGlyphMetrics()

virtual bool roo_display::Font::getGlyphMetrics ( char32_t  code,
FontLayout  layout,
GlyphMetrics result 
) const
pure virtual

Retrieve glyph metrics for a code point and layout.

Implemented in roo_display::FontAdafruitFixed5x7, roo_display::SmoothFont, and roo_display::SmoothFontV2.

◆ getHorizontalStringGlyphMetrics() [1/2]

virtual uint32_t roo_display::Font::getHorizontalStringGlyphMetrics ( const char utf8_data,
uint32_t  size,
GlyphMetrics result,
uint32_t  offset,
uint32_t  max_count 
) const
pure virtual

Return metrics for consecutive glyphs in the UTF-8 string.

Implemented in roo_display::FontAdafruitFixed5x7, roo_display::SmoothFont, and roo_display::SmoothFontV2.

◆ getHorizontalStringGlyphMetrics() [2/2]

uint32_t roo_display::Font::getHorizontalStringGlyphMetrics ( roo::string_view  text,
GlyphMetrics result,
uint32_t  offset,
uint32_t  max_count 
) const
inline

Return metrics for consecutive glyphs in the UTF-8 string.

Glyphs may overlap due to kerning. The number of glyphs written is limited by max_count. Returns the number of glyphs measured, which may be smaller than max_count if the input string is shorter.

Definition at line 242 of file font.h.

References getHorizontalStringGlyphMetrics().

Referenced by getHorizontalStringGlyphMetrics().

◆ getHorizontalStringMetrics() [1/2]

virtual GlyphMetrics roo_display::Font::getHorizontalStringMetrics ( const char utf8_data,
uint32_t  size 
) const
pure virtual

Return metrics of the specified UTF-8 string as if it were a single glyph.

Implemented in roo_display::FontAdafruitFixed5x7, roo_display::SmoothFont, and roo_display::SmoothFontV2.

◆ getHorizontalStringMetrics() [2/2]

GlyphMetrics roo_display::Font::getHorizontalStringMetrics ( roo::string_view  text) const
inline

Return metrics of the specified UTF-8 string as if it were a single glyph.

Definition at line 228 of file font.h.

References getHorizontalStringMetrics().

Referenced by getHorizontalStringMetrics().

◆ getKerning()

virtual int16_t roo_display::Font::getKerning ( char32_t  left,
char32_t  right 
) const
inlinevirtual

Return kerning adjustment for a pair of code points.

The returned value is in pixels and should be added to the base advance of the left glyph. Fonts without kerning can keep the default implementation.

Reimplemented in roo_display::SmoothFont, and roo_display::SmoothFontV2.

Definition at line 200 of file font.h.

◆ init()

void roo_display::Font::init ( FontMetrics  metrics,
FontProperties  properties 
)
inlineprotected

◆ metrics()

◆ properties()

const FontProperties & roo_display::Font::properties ( ) const
inline

Return font properties.

Definition at line 190 of file font.h.

Referenced by init().


The documentation for this class was generated from the following files: