SystemFont

继承: Font < Resource < RefCounted < Object

从系统字体加载的字体。如果未在宿主操作系统上实现,则回退到默认主题字体。

描述

SystemFont 会从系统字体中加载一个字体,该字体是名称能与 font_names 匹配的第一个字体。

会尝试匹配字体样式,但是并不保证。

返回的字体可能属于某个字体合集,也可能是设置了 OpenType“字重”“宽度”和/或“斜体”特性的可变字体。

你可以创建系统字体的 FontVariation,以便对其特征进行精细控制。

注意:这个类在 iOS、Linux、macOS、Windows 上实现,在其他平台上会回退到默认主题字体。

属性

bool

allow_system_fallback

true

FontAntialiasing

antialiasing

1

bool

disable_embedded_bitmaps

true

bool

font_italic

false

PackedStringArray

font_names

PackedStringArray()

int

font_stretch

100

int

font_weight

400

bool

force_autohinter

false

bool

generate_mipmaps

false

Hinting

hinting

1

int

msdf_pixel_range

16

int

msdf_size

48

bool

multichannel_signed_distance_field

false

float

oversampling

0.0

SubpixelPositioning

subpixel_positioning

1


属性说明

bool allow_system_fallback = true 🔗

  • void set_allow_system_fallback(value: bool)

  • bool is_allow_system_fallback()

如果设置为 true,则可以自动将系统字体作为回退使用。


FontAntialiasing antialiasing = 1 🔗

字体抗锯齿模式。


bool disable_embedded_bitmaps = true 🔗

  • void set_disable_embedded_bitmaps(value: bool)

  • bool get_disable_embedded_bitmaps()

如果为 true,则会禁用内嵌字体位图的加载(仅包含位图的字体以及彩色字体会禁用该属性)。


bool font_italic = false 🔗

  • void set_font_italic(value: bool)

  • bool get_font_italic()

如果设置为 true,则优先使用斜体(italic)或伪斜体(oblique)。


PackedStringArray font_names = PackedStringArray() 🔗

要搜索的字体家族名称数组,会使用第一个与之匹配的字体。

Note: The returned array is copied and any changes to it will not update the original property value. See PackedStringArray for more details.


int font_stretch = 100 🔗

  • void set_font_stretch(value: int)

  • int get_font_stretch()

字体优先使用的拉伸量,相对于正常宽度。介于 50%200% 之间的百分比。


int font_weight = 400 🔗

  • void set_font_weight(value: int)

  • int get_font_weight()

字体优先使用的字重(粗度)。在 100...999 范围内的值,正常字重为 400,粗体字重为 700


bool force_autohinter = false 🔗

  • void set_force_autohinter(value: bool)

  • bool is_force_autohinter()

如果设置为 true,则支持自动微调,优先于字体内置微调。


bool generate_mipmaps = false 🔗

  • void set_generate_mipmaps(value: bool)

  • bool get_generate_mipmaps()

如果设置为 true,则为字体纹理生成 mipmap。


Hinting hinting = 1 🔗

字体微调模式。


int msdf_pixel_range = 16 🔗

  • void set_msdf_pixel_range(value: int)

  • int get_msdf_pixel_range()

最小和最大可表示的有符号距离之间的形状周围的范围宽度。如果使用字体轮廓,msdf_pixel_range 必须至少设置为最大字体轮廓大小的两倍msdf_pixel_range 的默认值为 16,允许大小最大到 8 的轮廓看起来正确。


int msdf_size = 48 🔗

  • void set_msdf_size(value: int)

  • int get_msdf_size()

用于生成 MSDF 纹理的源字体大小。较高的值允许更高的精度,但渲染速度较慢并且需要更多内存。只有当注意到字形渲染中明显缺乏精度时,才增加该属性的值。


bool multichannel_signed_distance_field = false 🔗

  • void set_multichannel_signed_distance_field(value: bool)

  • bool is_multichannel_signed_distance_field()

如果设置为 true,则所有大小的字形都将使用从动态字体矢量数据生成的单个多通道带符号距离场渲染。


float oversampling = 0.0 🔗

  • void set_oversampling(value: float)

  • float get_oversampling()

字体过采样系数,如果设置为 0.0 则使用全局过采样系数。


SubpixelPositioning subpixel_positioning = 1 🔗

字体字形的次像素定位模式。次像素定位为较小的字体提供了更清晰的文本和更好的字偶距,但会牺牲内存占用和字体栅格化速度。使用 TextServer.SUBPIXEL_POSITIONING_AUTO 可以根据字体大小自动启用。