summaryrefslogtreecommitdiff
path: root/doc/classes/FontVariation.xml
blob: abe282db7e447edaa3626d96462e3a76a4a907d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?xml version="1.0" encoding="UTF-8" ?>
<class name="FontVariation" inherits="Font" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Variation of the [Font].
	</brief_description>
	<description>
		OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.
		To use simulated bold font variant:
		[codeblocks]
		[gdscript]
		var fv = FontVariation.new()
		fv.set_base_font(load("res://BarlowCondensed-Regular.ttf"))
		fv.set_variation_embolden(1.2)
		$Label.add_theme_font_override("font", fv)
		$Label.add_theme_font_size_override("font_size", 64)
		[/gdscript]
		[csharp]
		var fv = new FontVariation();
		fv.SetBaseFont(ResourceLoader.Load&lt;FontFile&gt;("res://BarlowCondensed-Regular.ttf"));
		fv.SetVariationEmbolden(1.2);
		GetNode("Label").AddThemeFontOverride("font", fv);
		GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
		[/csharp]
		[/codeblocks]
		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]
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="set_spacing">
			<return type="void" />
			<param index="0" name="spacing" type="int" enum="TextServer.SpacingType" />
			<param index="1" name="value" type="int" />
			<description>
				Sets the spacing for [code]type[/code] (see [enum TextServer.SpacingType]) to [param value] in pixels (not relative to the font size).
			</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="[]">
			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.
		</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">
			Extra spacing between graphical glyphs.
		</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].
			[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].
		</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>