TGUI  1.6.1
Loading...
Searching...
No Matches

Wrapper around the backend-specific font. All copies of the font will share the same internal font resource. More...

#include <TGUI/Font.hpp>

Public Member Functions

 Font (std::nullptr_t=nullptr) noexcept
 Default constructor which will set the font to nullptr.
 
 Font (const String &id)
 Constructor to create the font from a string (filename by default)
 
 Font (const char *id)
 Constructor to create the font from a string (filename by default)
 
 Font (const void *data, std::size_t sizeInBytes)
 Constructor to create the font from a byte array.
 
 Font (std::shared_ptr< BackendFont > backendFont, String id)
 Constructor to create the font from an internal backend font.
 
const StringgetId () const
 Returns the id that was used to load the font.
 
 operator bool () const
 Converts the font to a boolean to check if it is a nullptr of not.
 
bool operator== (std::nullptr_t) const
 Compares the font with a nullptr.
 
bool operator!= (std::nullptr_t) const
 Compares the font with a nullptr.
 
bool operator== (const Font &right) const
 Compares the font with another one.
 
bool operator!= (const Font &right) const
 Compares the font with another one.
 
FontGlyph getGlyph (char32_t codePoint, unsigned int characterSize, bool bold, float outlineThickness=0) const
 Retrieve a glyph of the font.
 
float getKerning (char32_t first, char32_t second, unsigned int characterSize, bool bold=false) const
 Returns the kerning offset of two glyphs.
 
float getLineSpacing (unsigned int characterSize) const
 Returns the line spacing.
 
float getFontHeight (unsigned int characterSize) const
 Returns the height required to render a line of text.
 
void setSmooth (bool smooth)
 Enable or disable the smooth filter.
 
bool isSmooth () const
 Tell whether the smooth filter is enabled or not.
 
std::shared_ptr< BackendFontgetBackendFont () const
 Returns the internal font.
 

Static Public Member Functions

static void setGlobalFont (const Font &font)
 Changes the global font that is used for all new widgets.
 
static Font getGlobalFont ()
 Returns the global font that is used for all new widgets.
 

Detailed Description

Wrapper around the backend-specific font. All copies of the font will share the same internal font resource.

Constructor & Destructor Documentation

◆ Font() [1/4]

tgui::Font::Font ( const String & id)

Constructor to create the font from a string (filename by default)

Parameters
idString to pass to the Deserializer class to load the font

◆ Font() [2/4]

tgui::Font::Font ( const char * id)

Constructor to create the font from a string (filename by default)

Parameters
idString to pass to the Deserializer class to load the font

◆ Font() [3/4]

tgui::Font::Font ( const void * data,
std::size_t sizeInBytes )

Constructor to create the font from a byte array.

Parameters
dataPointer to the file data in memory
sizeInBytesSize of the data to load, in bytes

◆ Font() [4/4]

tgui::Font::Font ( std::shared_ptr< BackendFont > backendFont,
String id )

Constructor to create the font from an internal backend font.

Parameters
backendFontInternal font to use
idId of the font (usually filename)

Member Function Documentation

◆ getBackendFont()

std::shared_ptr< BackendFont > tgui::Font::getBackendFont ( ) const
nodiscard

Returns the internal font.

Returns
Backend font that is used internally

◆ getFontHeight()

float tgui::Font::getFontHeight ( unsigned int characterSize) const
nodiscard

Returns the height required to render a line of text.

Parameters
characterSizeSize of the characters
Returns
Sum of font ascent and descent

◆ getGlobalFont()

static Font tgui::Font::getGlobalFont ( )
staticnodiscard

Returns the global font that is used for all new widgets.

Returns
Global font

◆ getGlyph()

FontGlyph tgui::Font::getGlyph ( char32_t codePoint,
unsigned int characterSize,
bool bold,
float outlineThickness = 0 ) const
nodiscard

Retrieve a glyph of the font.

If the font is a bitmap font, not all character sizes might be available. If the glyph is not available at the requested size, an empty glyph is returned.

Parameters
codePointUnicode code point of the character to get
characterSizeReference character size
boldRetrieve the bold version or the regular one?
outlineThicknessThickness of outline (when != 0 the glyph will not be filled)
Returns
The glyph corresponding to codePoint and characterSize

◆ getId()

const String & tgui::Font::getId ( ) const
nodiscard

Returns the id that was used to load the font.

Returns
Id of the font or an empty string when no id was passed when this object was created

◆ getKerning()

float tgui::Font::getKerning ( char32_t first,
char32_t second,
unsigned int characterSize,
bool bold = false ) const
nodiscard

Returns the kerning offset of two glyphs.

The kerning is an extra offset (negative) to apply between two glyphs when rendering them, to make the pair look more "natural". For example, the pair "AV" have a special kerning to make them closer than other characters. Most of the glyphs pairs have a kerning offset of zero, though.

Parameters
firstUnicode code point of the first character
secondUnicode code point of the second character
characterSizeSize of the characters
boldAre the glyphs bold or regular?
Returns
Kerning value for first and second, in pixels

◆ getLineSpacing()

float tgui::Font::getLineSpacing ( unsigned int characterSize) const
nodiscard

Returns the line spacing.

Line spacing is the vertical offset to apply between two consecutive lines of text.

Parameters
characterSizeSize of the characters
Returns
Line spacing, in pixels

◆ isSmooth()

bool tgui::Font::isSmooth ( ) const
nodiscard

Tell whether the smooth filter is enabled or not.

Returns
True if smoothing is enabled, false if it is disabled
See also
setSmooth

◆ setGlobalFont()

static void tgui::Font::setGlobalFont ( const Font & font)
static

Changes the global font that is used for all new widgets.

Parameters
fontNew global font

◆ setSmooth()

void tgui::Font::setSmooth ( bool smooth)

Enable or disable the smooth filter.

When the filter is activated, the font appears smoother so that pixels are less noticeable. However if you want the font to look exactly the same as its source file then you should disable it. The smooth filter is enabled by default.

Parameters
smoothTrue to enable smoothing, false to disable it

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