Font

Inherits: Resource < RefCounted < Object

Inherited By: FontFile, FontVariation, SystemFont

Base class for fonts and font variations.

Description

Font is the abstract base class for font, so it shouldn't be used directly. Other types of fonts inherit from it.

Methods

float

draw_char ( RID canvas_item, Vector2 pos, int char, int font_size, Color modulate=Color(1, 1, 1, 1) ) const

float

draw_char_outline ( RID canvas_item, Vector2 pos, int char, int font_size, int size=-1, Color modulate=Color(1, 1, 1, 1) ) const

void

draw_multiline_string ( RID canvas_item, Vector2 pos, String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, int max_lines=-1, Color modulate=Color(1, 1, 1, 1), LineBreakFlag brk_flags=3, JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

void

draw_multiline_string_outline ( RID canvas_item, Vector2 pos, String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, int max_lines=-1, int size=1, Color modulate=Color(1, 1, 1, 1), LineBreakFlag brk_flags=3, JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

void

draw_string ( RID canvas_item, Vector2 pos, String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, Color modulate=Color(1, 1, 1, 1), JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

void

draw_string_outline ( RID canvas_item, Vector2 pos, String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, int size=1, Color modulate=Color(1, 1, 1, 1), JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

RID

find_variation ( Dictionary variation_coordinates, int face_index=0, float strength=0.0, Transform2D transform=Transform2D(1, 0, 0, 1, 0, 0) ) const

float

get_ascent ( int font_size=16 ) const

Vector2

get_char_size ( int char, int font_size ) const

float

get_descent ( int font_size=16 ) const

int

get_face_count ( ) const

Font[]

get_fallbacks ( ) const

String

get_font_name ( ) const

FontStyle

get_font_style ( ) const

String

get_font_style_name ( ) const

float

get_height ( int font_size=16 ) const

Vector2

get_multiline_string_size ( String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, int max_lines=-1, LineBreakFlag brk_flags=3, JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

Dictionary

get_opentype_features ( ) const

RID[]

get_rids ( ) const

int

get_spacing ( SpacingType spacing ) const

Vector2

get_string_size ( String text, HorizontalAlignment alignment=0, float width=-1, int font_size=16, JustificationFlag jst_flags=3, Direction direction=0, Orientation orientation=0 ) const

String

get_supported_chars ( ) const

Dictionary

get_supported_feature_list ( ) const

Dictionary

get_supported_variation_list ( ) const

float

get_underline_position ( int font_size=16 ) const

float

get_underline_thickness ( int font_size=16 ) const

bool

has_char ( int char ) const

bool

is_language_supported ( String language ) const

bool

is_script_supported ( String script ) const

void

set_cache_capacity ( int single_line, int multi_line )

void

set_fallbacks ( Font[] fallbacks )

Method Descriptions

Draw a single Unicode character char into a canvas item using the font, at a given position, with modulate color. pos specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis.

Note: Do not use this function to draw strings character by character, use draw_string or TextLine instead.


Draw a single Unicode character char outline into a canvas item using the font, at a given position, with modulate color and size outline size. pos specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis.

Note: Do not use this function to draw strings character by character, use draw_string or TextLine instead.


Breaks text into lines using rules specified by brk_flags and draws it into a canvas item using the font, at a given position, with modulate color, optionally clipping the width and aligning horizontally. pos specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis.

See also CanvasItem.draw_multiline_string.


Breaks text to the lines using rules specified by brk_flags and draws text outline into a canvas item using the font, at a given position, with modulate color and size outline size, optionally clipping the width and aligning horizontally. pos specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis.

See also CanvasItem.draw_multiline_string_outline.


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

See also CanvasItem.draw_string.


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

See also CanvasItem.draw_string_outline.


Returns TextServer RID of the font cache for specific variation.


  • float get_ascent ( int font_size=16 ) const

Returns the average font ascent (number of pixels above the baseline).

Note: Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line).


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

Note: Do not use this function to calculate width of the string character by character, use get_string_size or TextLine instead. The height returned is the font height (see also get_height) and has no relation to the glyph height.


  • float get_descent ( int font_size=16 ) const

Returns the average font descent (number of pixels below the baseline).

Note: Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line).


  • int get_face_count ( ) const

Returns number of faces in the TrueType / OpenType collection.


  • Font[] get_fallbacks ( ) const

Returns array of fallback Fonts.


  • String get_font_name ( ) const

Returns font family name.


Returns font style flags, see FontStyle.


  • String get_font_style_name ( ) const

Returns font style name.


  • float get_height ( int font_size=16 ) const

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

Note: Real height of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the height of empty line).


Returns the size of a bounding box of a string broken into the lines, taking kerning and advance into account.

See also draw_multiline_string.


Returns a set of OpenType feature tags. More info: OpenType feature tags.


  • RID[] get_rids ( ) const

Returns Array of valid Font RIDs, which can be passed to the TextServer methods.


Returns the spacing for the given type (see SpacingType).


Returns the size of a bounding box of a single-line string, taking kerning and advance into account. See also get_multiline_string_size and draw_string.

For example, to get the string size as displayed by a single-line Label, use:

var string_size = $Label.get_theme_font("font").get_string_size($Label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label.get_theme_font_size("font_size"))

Note: Real height of the string is context-dependent and can be significantly different from the value returned by get_height.


  • String get_supported_chars ( ) const

Returns a string containing all the characters available in the font.

If a given character is included in more than one font data source, it appears only once in the returned string.


Returns list of OpenType features supported by font.


  • Dictionary get_supported_variation_list ( ) const

Returns list of supported variation coordinates, each coordinate is returned as tag: Vector3i(min_value,max_value,default_value).

Font variations allow for continuous change of glyph characteristics along some given design axis, such as weight, width or slant.


  • float get_underline_position ( int font_size=16 ) const

Returns average pixel offset of the underline below the baseline.

Note: Real underline position of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate.


  • float get_underline_thickness ( int font_size=16 ) const

Returns average thickness of the underline.

Note: Real underline thickness of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate.


Returns true if a Unicode char is available in the font.


  • bool is_language_supported ( String language ) const

Returns true, if font supports given language (ISO 639 code).


  • bool is_script_supported ( String script ) const

Returns true, if font supports given script (ISO 15924 code).


  • void set_cache_capacity ( int single_line, int multi_line )

Sets LRU cache capacity for draw_* methods.


  • void set_fallbacks ( Font[] fallbacks )

Sets array of fallback Fonts.