# TextFont¶

class TextFont

An encapsulation of a font; i.e. a set of glyphs that may be assembled together by a TextNode to represent a string of text.

This is just an abstract interface; see StaticTextFont or DynamicTextFont for an actual implementation.

Inheritance diagram

enum RenderMode
enumerator RM_texture = 0

Each glyph is a single textured rectangle

enumerator RM_wireframe = 1

Each glyph is a lot of line segments

enumerator RM_polygon = 2

Each glyph is a lot of triangles

enumerator RM_extruded = 3

a 3-D outline, like a cookie cutter

enumerator RM_solid = 4

combination of RM_extruded and RM_polygon

enumerator RM_distance_field = 5
enumerator RM_invalid = 6

Returned by string_render_mode() for an invalid match.

static TypeHandle get_class_type(void)
ConstPointerTo<TextGlyph> get_glyph(int character)

Gets the glyph associated with the given character code, as well as an optional scaling parameter that should be applied to the glyph’s geometry and advance parameters. Returns the glyph on success. On failure, it may still return a printable glyph, or it may return NULL.

virtual PN_stdfloat get_kerning(int first, int second) const

Returns the amount by which to offset the second glyph when it directly follows the first glyph. This is an additional offset that is added on top of the advance.

PN_stdfloat get_line_height(void) const

Returns the number of units high each line of text is.

PN_stdfloat get_space_advance(void) const

Returns the number of units wide a space is.

bool is_valid(void) const

Returns true if the font is valid and ready to use, false otherwise.

virtual PointerTo<TextFont> make_copy(void) const = 0
void set_line_height(PN_stdfloat line_height)

Changes the number of units high each line of text is.

void set_space_advance(PN_stdfloat space_advance)

Changes the number of units wide a space is.

virtual void write(std::ostream &out, int indent_level) const