Attention: Here be dragons (unstable version)
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Redot.
Checking the stable version of the documentation...
FontVariation
Inherits: Font < Resource < RefCounted < Object
A variation of a font with additional settings.
Description
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)
var fv = new FontVariation();
fv.SetBaseFont(ResourceLoader.Load<FontFile>("res://BarlowCondensed-Regular.ttf"));
fv.SetVariationEmbolden(1.2);
GetNode("Label").AddThemeFontOverride("font", fv);
GetNode("Label").AddThemeFontSizeOverride("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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Methods
void |
set_spacing(spacing: SpacingType, value: int) |
Property Descriptions
Base font used to create a variation. If not set, default Theme font is used.
Extra baseline offset (as a fraction of font height).
Dictionary opentype_features = {}
🔗
void set_opentype_features(value: Dictionary)
Dictionary get_opentype_features()
A set of OpenType feature tags. More info: OpenType feature tags.
void set_spacing(spacing: SpacingType, value: int)
int get_spacing()
Extra spacing at the bottom of the line in pixels.
void set_spacing(spacing: SpacingType, value: int)
int get_spacing()
Extra spacing between graphical glyphs.
void set_spacing(spacing: SpacingType, value: int)
int get_spacing()
Extra width of the space glyphs.
void set_spacing(spacing: SpacingType, value: int)
int get_spacing()
Extra spacing at the top of the line in pixels.
float variation_embolden = 0.0
🔗
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
🔗
Active face index in the TrueType / OpenType collection file.
Dictionary variation_opentype = {}
🔗
void set_variation_opentype(value: Dictionary)
Dictionary get_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 Font.get_supported_variation_list.
Transform2D variation_transform = Transform2D(1, 0, 0, 1, 0, 0)
🔗
void set_variation_transform(value: Transform2D)
Transform2D get_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)
.
Method Descriptions
void set_spacing(spacing: SpacingType, value: int) 🔗
Sets the spacing for spacing
(see SpacingType) to value
in pixels (not relative to the font size).