# FontPool¶

class FontPool

This is the preferred interface for loading fonts for the TextNode system. It is similar to ModelPool and TexturePool in that it unifies references to the same filename.

Inheritance diagram

void add_font(std::string const &filename, TextFont *font)

int garbage_collect(void)

Releases only those fonts in the pool that have a reference count of exactly 1; i.e. only those fonts that are not being used outside of the pool. Returns the number of fonts released.

bool has_font(std::string const &filename)

Returns true if the font has ever been loaded, false otherwise.

void list_contents(std::ostream &out)

Lists the contents of the font pool to the indicated output stream.

TextFont *load_font(std::string const &filename)

Loads the given filename up into a font, if it has not already been loaded, and returns the new font. If a font with the same filename was previously loaded, returns that one instead. If the font file cannot be found, returns NULL.

void release_all_fonts(void)

Releases all fonts in the pool and restores the pool to the empty state.

void release_font(std::string const &filename)

Removes the indicated font from the pool, indicating it will never be loaded again; the font may then be freed. If this function is never called, a reference count will be maintained on every font every loaded, and fonts will never be freed.

bool verify_font(std::string const &filename)

Loads the given filename up into a font, if it has not already been loaded, and returns true to indicate success, or false to indicate failure. If this returns true, it is guaranteed that a subsequent call to load_font() with the same font name will return a valid Font pointer.

static void write(std::ostream &out)

Lists the contents of the font pool to the indicated output stream.