2022-05-09 17:47:10 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-03-01 08:44:37 +08:00
<class name= "FontVariation" inherits= "Font" version= "4.1" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2022-05-09 17:47:10 +08:00
<brief_description >
2023-04-30 22:26:09 +08:00
A variation of a font with additional settings.
2022-05-09 17:47:10 +08:00
</brief_description>
<description >
2023-04-30 22:26:09 +08:00
Provides OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.
2022-05-09 17:47:10 +08:00
To use simulated bold font variant:
[codeblocks]
[gdscript]
var fv = FontVariation.new()
fv.set_base_font(load("res://BarlowCondensed-Regular.ttf"))
2023-02-06 21:07:35 +08:00
fv.set_variation_embolden(1.2)
$Label.add_theme_font_override("font", fv)
$Label.add_theme_font_size_override("font_size", 64)
2022-05-09 17:47:10 +08:00
[/gdscript]
[csharp]
var fv = new FontVariation();
fv.SetBaseFont(ResourceLoader.Load< FontFile> ("res://BarlowCondensed-Regular.ttf"));
fv.SetVariationEmbolden(1.2);
2023-02-06 21:07:35 +08:00
GetNode("Label").AddThemeFontOverride("font", fv);
GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
2022-05-09 17:47:10 +08:00
[/csharp]
[/codeblocks]
2023-03-01 22:11:45 +08:00
To set the coordinate of multiple variation axes:
[codeblock]
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 }
[/codeblock]
2022-05-09 17:47:10 +08:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "set_spacing" >
<return type= "void" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "spacing" type= "int" enum= "TextServer.SpacingType" />
<param index= "1" name= "value" type= "int" />
2022-05-09 17:47:10 +08:00
<description >
2022-08-13 00:07:53 +08:00
Sets the spacing for [code]type[/code] (see [enum TextServer.SpacingType]) to [param value] in pixels (not relative to the font size).
2022-05-09 17:47:10 +08:00
</description>
</method>
</methods>
<members >
<member name= "base_font" type= "Font" setter= "set_base_font" getter= "get_base_font" >
Base font used to create a variation. If not set, default [Theme] font is used.
</member>
<member name= "fallbacks" type= "Font[]" setter= "set_fallbacks" getter= "get_fallbacks" default= "[]" >
2023-03-01 22:11:45 +08:00
Array of fallback [Font]s to use as a substitute if a glyph is not found in this [FontVariation]. If not set, [member base_font]'s fallbacks are used instead.
2022-05-09 17:47:10 +08:00
</member>
<member name= "opentype_features" type= "Dictionary" setter= "set_opentype_features" getter= "get_opentype_features" default= "{}" >
A set of OpenType feature tags. More info: [url=https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags]OpenType feature tags[/url].
</member>
<member name= "spacing_bottom" type= "int" setter= "set_spacing" getter= "get_spacing" default= "0" >
Extra spacing at the bottom of the line in pixels.
</member>
<member name= "spacing_glyph" type= "int" setter= "set_spacing" getter= "get_spacing" default= "0" >
2023-02-12 00:18:33 +08:00
Extra spacing between graphical glyphs.
2022-05-09 17:47:10 +08:00
</member>
<member name= "spacing_space" type= "int" setter= "set_spacing" getter= "get_spacing" default= "0" >
Extra width of the space glyphs.
</member>
<member name= "spacing_top" type= "int" setter= "set_spacing" getter= "get_spacing" default= "0" >
Extra spacing at the top of the line in pixels.
</member>
<member name= "variation_embolden" type= "float" setter= "set_variation_embolden" getter= "get_variation_embolden" default= "0.0" >
If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
[b]Note:[/b] Emboldened fonts might have self-intersecting outlines, which will prevent MSDF fonts and [TextMesh] from working correctly.
</member>
<member name= "variation_face_index" type= "int" setter= "set_variation_face_index" getter= "get_variation_face_index" default= "0" >
Active face index in the TrueType / OpenType collection file.
</member>
<member name= "variation_opentype" type= "Dictionary" setter= "set_variation_opentype" getter= "get_variation_opentype" default= "{}" >
Font OpenType variation coordinates. More info: [url=https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg]OpenType variation tags[/url].
2023-03-01 22:11:45 +08:00
[b]Note:[/b] This [Dictionary] uses OpenType tags as keys. Variation axes can be identified both by tags([code]int[/code]) and names ([code]string[/code]). Some axes might be accessible by multiple names. For example, [code]wght[/code] refers to the same axis as [code]weight[/code]. Tags on the other hand are unique. To convert between names and tags, use [method TextServer.name_to_tag] and [method TextServer.tag_to_name].
[b]Note:[/b] To get available variation axes of a font, use [method Font.get_supported_variation_list].
2022-05-09 17:47:10 +08:00
</member>
<member name= "variation_transform" type= "Transform2D" setter= "set_variation_transform" getter= "get_variation_transform" default= "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 [code]Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0)[/code].
</member>
</members>
</class>