Class FontVariation
A variation of a font with additional settings.
- Inheritance
-
FontVariation
Remarks
Provides 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.base_font = load("res://BarlowCondensed-Regular.ttf")
fv.variation_embolden = 1.2
$Label.add_theme_font_override("font", fv)
$Label.add_theme_font_size_override("font_size", 64)
To set the coordinate of multiple variation axes:
var fv = FontVariation.new();
var ts = TextServerManager.get_primary_interface()
fv.base_font = load("res://BarlowCondensed-Regular.ttf")
fv.variation_opentype = { ts.name_to_tag("wght"): 900, ts.name_to_tag("custom_hght"): 900 }
Properties
base_font
Base font used to create a variation. If not set, default Theme font is used.
var base_font : Font
Property Value
Remarks
baseline_offset
Extra baseline offset (as a fraction of font height).
var baseline_offset : float = 0.0
Property Value
Remarks
opentype_features
A set of OpenType feature tags. More info: OpenType feature tags.
var opentype_features : Dictionary = {}
Property Value
Remarks
- void set_opentype_features(Dictionary value)
- Dictionary get_opentype_features
spacing_bottom
Extra spacing at the bottom of the line in pixels.
var spacing_bottom : int = 0
Property Value
Remarks
spacing_glyph
Extra spacing between graphical glyphs.
var spacing_glyph : int = 0
Property Value
Remarks
spacing_space
Extra width of the space glyphs.
var spacing_space : int = 0
Property Value
Remarks
spacing_top
Extra spacing at the top of the line in pixels.
var spacing_top : int = 0
Property Value
Remarks
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.
var variation_embolden : float = 0.0
Property Value
Remarks
variation_face_index
Active face index in the TrueType / OpenType collection file.
var variation_face_index : int = 0
Property Value
Remarks
variation_opentype
Font OpenType variation coordinates. More info: OpenType variation tags.
Note: This Dictionary uses OpenType tags as keys. Variation axes can be identified both by tags (int, e.g. 0x77678674
) and names (String, e.g. wght
). Some axes might be accessible by multiple names. For example, wght
refers to the same axis as weight
. Tags on the other hand are unique. To convert between names and tags, use TextServer.name_to_tag and TextServer.tag_to_name.
Note: To get available variation axes of a font, use get_supported_variation_list.
var variation_opentype : Dictionary = {}
Property Value
Remarks
- void set_variation_opentype(Dictionary value)
- Dictionary get_variation_opentype
variation_transform
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)
.
var variation_transform : Transform2D = Transform2D(1, 0, 0, 1, 0, 0)
Property Value
Remarks
- void set_variation_transform(Transform2D value)
- Transform2D get_variation_transform
Methods
set_spacing(int, int)
Sets the spacing for spacing
(see SpacingType) to value
in pixels (not relative to the font size).
void set_spacing(int spacing, int value)