FontVariation

Inherits: Font < Resource < RefCounted < Object

Variation of the Font.

Description

OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.

To use simulated bold font variant:

var fv = FontVariation.new()
fv.set_base_font(load("res://BarlowCondensed-Regular.ttf"))
fv.set_variation_embolden(1.2);
$"Label".set("custom_fonts/font", fv)
$"Label".set("custom_fonts/font_size", 64)

Properties

Font

base_font

Font[]

fallbacks

[]

Dictionary

opentype_features

{}

int

spacing_bottom

0

int

spacing_glyph

0

int

spacing_space

0

int

spacing_top

0

float

variation_embolden

0.0

int

variation_face_index

0

Dictionary

variation_opentype

{}

Transform2D

variation_transform

Transform2D(1, 0, 0, 1, 0, 0)

Methods

void

set_spacing ( SpacingType spacing, int value )


Property Descriptions

Font base_font

  • void set_base_font ( Font value )

  • Font get_base_font ( )

Base font used to create a variation. If not set, default Theme font is used.


Font[] fallbacks = []

  • void set_fallbacks ( Font[] value )

  • Font[] get_fallbacks ( )

Array of fallback Fonts. If not set base_font fallback are ussed.


Dictionary opentype_features = {}

A set of OpenType feature tags. More info: OpenType feature tags.


int spacing_bottom = 0

Extra spacing at the bottom of the line in pixels.


int spacing_glyph = 0

Extra spacing between graphical glyphs


int spacing_space = 0

Extra width of the space glyphs.


int spacing_top = 0

Extra spacing at the top of the line in pixels.


float variation_embolden = 0.0

  • void set_variation_embolden ( float value )

  • float get_variation_embolden ( )

If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.

Note: Emboldened fonts might have self-intersecting outlines, which will prevent MSDF fonts and TextMesh from working correctly.


int variation_face_index = 0

  • void set_variation_face_index ( int value )

  • int get_variation_face_index ( )

Active face index in the TrueType / OpenType collection file.


Dictionary variation_opentype = {}

Font OpenType variation coordinates. More info: OpenType variation tags.


Transform2D variation_transform = Transform2D(1, 0, 0, 1, 0, 0)

2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.

For example, to simulate italic typeface by slanting, apply the following transform Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0).


Method Descriptions

void set_spacing ( SpacingType spacing, int value )

Sets the spacing for type (see SpacingType) to value in pixels (not relative to the font size).