sf::Font Class Reference

Class for loading and manipulating character fonts. More...

#include <Font.hpp>

Inheritance diagram for sf::Font:
sf::Resource< Font >

List of all members.

Classes

struct  GlyphInfo
 Structure storing a glyph together with its rectangle in the texture.
struct  Page
 Structure defining a page if glyphs.
struct  Row
 Structure defining a row of glyphs.

Public Member Functions

 Font ()
 Default constructor.
 Font (const Font &copy)
 Copy constructor.
 ~Font ()
 Destructor.
bool LoadFromFile (const std::string &filename)
 Load the font from a file.
bool LoadFromMemory (const void *data, std::size_t sizeInBytes)
 Load the font from a file.
const GlyphGetGlyph (Uint32 codePoint, unsigned int characterSize, bool bold) const
 Retrieve a glyph of the font.
int GetKerning (Uint32 first, Uint32 second, unsigned int characterSize) const
 Get the kerning offset of two glyphs.
int GetLineSpacing (unsigned int characterSize) const
 Get the line spacing.
const ImageGetImage (unsigned int characterSize) const
 Retrieve the image containing the loaded glyphs of a certain size.
Fontoperator= (const Font &right)
 Overload of assignment operator.

Static Public Member Functions

static const FontGetDefaultFont ()
 Return the default built-in font.

Detailed Description

Class for loading and manipulating character fonts.

Fonts can be loaded from a file or from memory, from the most common types of fonts.

See the LoadFromFile() function for the complete list of supported formats.

Once it is loaded, a sf::Font instance provides three types of informations about the font:

Fonts alone are not very useful: they hold the font data but cannot make anything useful of it. To do so you need to use the sf::Text class, which is able to properly output text with several options such as character size, style, color, position, rotation, etc. This separation allows more flexibility and better performances: indeed a sf::Font is a heavy resource, and any operation on it is slow (often too slow for real-time applications). On the other side, a sf::Text is a lightweight object which can combine the glyphs data and metrics of a sf::Font to display any text on a render target. Note that it is also possible to bind several sf::Text instances to the same sf::Font.

It is important to note that the sf::Text instance doesn't copy the font that it uses, it only keeps a reference to it. Thus, a sf::Font must not be destructed while it is used by a sf::Text (i.e. never write a function that uses a local sf::Font instance for creating a text).

Usage example:

 // Declare a new font
 sf::Font font;
 
 // Load it from a file
 if (!font.LoadFromFile("arial.ttf"))
 {
     // error...
 }
 
 // Create a text which uses our font
 sf::Text text1;
 text1.SetFont(font);
 text1.SetCharacterSize(30);
 text1.SetStyle(sf::Text::Regular);
 
 // Create another text using the same font, but with different parameters
 sf::Text text2;
 text2.SetFont(font);
 text2.SetCharacterSize(50);
 text1.SetStyle(sf::Text::Italic);

Apart from loading font files, and passing them to instances of sf::Text, you should normally not have to deal directly with this class. However, it may be useful to access the font metrics or rasterized glyphs for advanced usage.

See also:
sf::Text

Definition at line 48 of file Font.hpp.


Constructor & Destructor Documentation

sf::Font::Font (  ) 

Default constructor.

This constructor defines an empty font

Definition at line 40 of file Font.cpp.

sf::Font::Font ( const Font copy  ) 

Copy constructor.

Parameters:
copy Instance to copy

Definition at line 51 of file Font.cpp.

sf::Font::~Font (  ) 

Destructor.

Cleans up all the internal resources used by the font

Definition at line 68 of file Font.cpp.


Member Function Documentation

const Font & sf::Font::GetDefaultFont (  )  [static]

Return the default built-in font.

This font is provided for convenience, it is used by sf::Text instances by default. It is provided so that users don't have to provide and load a font file in order to display text on screen. The font used is Arial.

Returns:
Reference to the built-in default font

Definition at line 249 of file Font.cpp.

const Glyph & sf::Font::GetGlyph ( Uint32  codePoint,
unsigned int  characterSize,
bool  bold 
) const

Retrieve a glyph of the font.

Parameters:
codePoint Unicode code point of the character to get
characterSize Reference character size
bold Retrieve the bold version or the regular one?
Returns:
The glyph corresponding to codePoint and characterSize

Definition at line 155 of file Font.cpp.

const Image & sf::Font::GetImage ( unsigned int  characterSize  )  const

Retrieve the image containing the loaded glyphs of a certain size.

The contents of the returned image changes as more glyphs are requested, thus it is not very relevant. It is mainly used internally by sf::Text.

Parameters:
characterSize Reference character size
Returns:
Image containing the glyphs of the requested size

Definition at line 226 of file Font.cpp.

int sf::Font::GetKerning ( Uint32  first,
Uint32  second,
unsigned int  characterSize 
) const

Get 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:
first Unicode code point of the first character
second Unicode code point of the second character
characterSize Reference character size
Returns:
Kerning value for first and second, in pixels

Definition at line 180 of file Font.cpp.

int sf::Font::GetLineSpacing ( unsigned int  characterSize  )  const

Get the line spacing.

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

Parameters:
characterSize Reference character size
Returns:
Line spacing, in pixels

Definition at line 210 of file Font.cpp.

bool sf::Font::LoadFromFile ( const std::string &  filename  ) 

Load the font from a file.

The supported font formats are: TrueType, Type 1, CFF, OpenType, SFNT, X11 PCF, Windows FNT, BDF, PFR and Type 42. Note that this function know nothing about the standard fonts installed on the user's system, thus you can't load them directly.

Parameters:
filename Path of the font file to load
Returns:
True if loading succeeded, false if it failed
See also:
LoadFromMemory

Definition at line 75 of file Font.cpp.

bool sf::Font::LoadFromMemory ( const void *  data,
std::size_t  sizeInBytes 
)

Load the font from a file.

The supported font formats are: TrueType, Type 1, CFF, OpenType, SFNT, X11 PCF, Windows FNT, BDF, PFR and Type 42. Note that this function know nothing about the standard fonts installed on the user's system, thus you can't load them directly.

Parameters:
data Pointer to the file data in memory
sizeInBytes Size of the data to load, in bytes
Returns:
True if loading succeeded, false if it failed
See also:
LoadFromFile

Definition at line 115 of file Font.cpp.

Font & sf::Font::operator= ( const Font right  ) 

Overload of assignment operator.

Parameters:
right Instance to assign
Returns:
Reference to self

Definition at line 233 of file Font.cpp.


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