Font

Inherits: Resource < Reference < Object

Category: Core

Brief Description

Internationalized font and text drawing support.

Member Functions

void add_char ( int character, int texture, Rect2 rect, Vector2 align=Vector2(0,0), float advance=-1 )
void add_kerning_pair ( int char_a, int char_b, int kerning )
void add_texture ( Texture texture )
void clear ( )
int create_from_fnt ( String path )
void draw ( RID canvas_item, Vector2 pos, String string, Color modulate=Color(1,1,1,1), int clip_w=-1 ) const
float draw_char ( RID canvas_item, Vector2 pos, int char, int next=-1, Color modulate=Color(1,1,1,1) ) const
float get_ascent ( ) const
Vector2 get_char_size ( int char, int next=0 ) const
float get_descent ( ) const
Object get_fallback ( ) const
float get_height ( ) const
int get_kerning_pair ( int char_a, int char_b ) const
Vector2 get_string_size ( String string ) const
Texture get_texture ( int idx ) const
int get_texture_count ( ) const
bool is_distance_field_hint ( ) const
void set_ascent ( float px )
void set_distance_field_hint ( bool enable )
void set_fallback ( Object fallback )
void set_height ( float px )

Description

Font contains an unicode compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts. TODO check wikipedia for graph of ascent/baseline/descent/height/etc.

Member Function Description

Add a character to the font, where “character” is the unicode value, “texture” is the texture index, “rect” is the region in the texture (in pixels!), “align” is the (optional) alignment for the character and “advance” is the (optional) advance.

  • void add_kerning_pair ( int char_a, int char_b, int kerning )

Add a kerning pair to the Font as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.

  • void add_texture ( Texture texture )

Add a texture to the Font.

  • void clear ( )

Clear all the font data.

Draw “string” into a canvas item using the font at a given “pos” position, with “modulate” color, and optionally clipping the width. “pos” specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis.

Draw character “char” into a canvas item using the font at a given “pos” position, with “modulate” color, and optionally kerning if “next” is passed. clipping the width. “pos” specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character.

  • float get_ascent ( ) const

Return the font ascent (number of pixels above the baseline).

Return the size of a character, optionally taking kerning into account if the next character is provided.

  • float get_descent ( ) const

Return the font descent (number of pixels below the baseline).

  • Object get_fallback ( ) const
  • float get_height ( ) const

Return the total font height (ascent plus descent) in pixels.

  • int get_kerning_pair ( int char_a, int char_b ) const

Return a kerning pair as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.

Return the size of a string, taking kerning and advance into account.

  • int get_texture_count ( ) const
  • bool is_distance_field_hint ( ) const
  • void set_ascent ( float px )

Set the font ascent (number of pixels above the baseline).

  • void set_distance_field_hint ( bool enable )
  • void set_fallback ( Object fallback )
  • void set_height ( float px )

Set the total font height (ascent plus descent) in pixels.