:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/SystemFont.xml. .. _class_SystemFont: SystemFont ========== **Inherits:** :ref:`Font` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` A font loaded from a system font. Falls back to a default theme font if not implemented on the host OS. .. rst-class:: classref-introduction-group Description ----------- **SystemFont** loads a font from a system font with the first matching name from :ref:`font_names`. It will attempt to match font style, but it's not guaranteed. The returned font might be part of a font collection or be a variable font with OpenType "weight", "width" and/or "italic" features set. You can create :ref:`FontVariation` of the system font for precise control over its features. \ **Note:** This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`allow_system_fallback` | ``true`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`FontAntialiasing` | :ref:`antialiasing` | ``1`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`disable_embedded_bitmaps` | ``true`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`font_italic` | ``false`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`PackedStringArray` | :ref:`font_names` | ``PackedStringArray()`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`int` | :ref:`font_stretch` | ``100`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`int` | :ref:`font_weight` | ``400`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`force_autohinter` | ``false`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`generate_mipmaps` | ``false`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`Hinting` | :ref:`hinting` | ``1`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`keep_rounding_remainders` | ``true`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`modulate_color_glyphs` | ``false`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`int` | :ref:`msdf_pixel_range` | ``16`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`int` | :ref:`msdf_size` | ``48`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`bool` | :ref:`multichannel_signed_distance_field` | ``false`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`float` | :ref:`oversampling` | ``0.0`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`SubpixelPositioning` | :ref:`subpixel_positioning` | ``1`` | +-----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_SystemFont_property_allow_system_fallback: .. rst-class:: classref-property :ref:`bool` **allow_system_fallback** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_allow_system_fallback**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_allow_system_fallback**\ (\ ) If set to ``true``, system fonts can be automatically used as fallbacks. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_antialiasing: .. rst-class:: classref-property :ref:`FontAntialiasing` **antialiasing** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_antialiasing**\ (\ value\: :ref:`FontAntialiasing`\ ) - :ref:`FontAntialiasing` **get_antialiasing**\ (\ ) Font anti-aliasing mode. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_disable_embedded_bitmaps: .. rst-class:: classref-property :ref:`bool` **disable_embedded_bitmaps** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_disable_embedded_bitmaps**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_disable_embedded_bitmaps**\ (\ ) If set to ``true``, embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_font_italic: .. rst-class:: classref-property :ref:`bool` **font_italic** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_font_italic**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_font_italic**\ (\ ) If set to ``true``, italic or oblique font is preferred. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_font_names: .. rst-class:: classref-property :ref:`PackedStringArray` **font_names** = ``PackedStringArray()`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_font_names**\ (\ value\: :ref:`PackedStringArray`\ ) - :ref:`PackedStringArray` **get_font_names**\ (\ ) Array of font family names to search, first matching font found is used. **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedStringArray` for more details. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_font_stretch: .. rst-class:: classref-property :ref:`int` **font_stretch** = ``100`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_font_stretch**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_font_stretch**\ (\ ) Preferred font stretch amount, compared to a normal width. A percentage value between ``50%`` and ``200%``. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_font_weight: .. rst-class:: classref-property :ref:`int` **font_weight** = ``400`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_font_weight**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_font_weight**\ (\ ) Preferred weight (boldness) of the font. A value in the ``100...999`` range, normal font weight is ``400``, bold font weight is ``700``. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_force_autohinter: .. rst-class:: classref-property :ref:`bool` **force_autohinter** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_force_autohinter**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_force_autohinter**\ (\ ) If set to ``true``, auto-hinting is supported and preferred over font built-in hinting. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_generate_mipmaps: .. rst-class:: classref-property :ref:`bool` **generate_mipmaps** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_generate_mipmaps**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_generate_mipmaps**\ (\ ) If set to ``true``, generate mipmaps for the font textures. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_hinting: .. rst-class:: classref-property :ref:`Hinting` **hinting** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_hinting**\ (\ value\: :ref:`Hinting`\ ) - :ref:`Hinting` **get_hinting**\ (\ ) Font hinting mode. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_keep_rounding_remainders: .. rst-class:: classref-property :ref:`bool` **keep_rounding_remainders** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_keep_rounding_remainders**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_keep_rounding_remainders**\ (\ ) If set to ``true``, when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_modulate_color_glyphs: .. rst-class:: classref-property :ref:`bool` **modulate_color_glyphs** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_modulate_color_glyphs**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_modulate_color_glyphs**\ (\ ) If set to ``true``, color modulation is applied when drawing colored glyphs, otherwise it's applied to the monochrome glyphs only. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_msdf_pixel_range: .. rst-class:: classref-property :ref:`int` **msdf_pixel_range** = ``16`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_msdf_pixel_range**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_msdf_pixel_range**\ (\ ) The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, :ref:`msdf_pixel_range` must be set to at least *twice* the size of the largest font outline. The default :ref:`msdf_pixel_range` value of ``16`` allows outline sizes up to ``8`` to look correct. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_msdf_size: .. rst-class:: classref-property :ref:`int` **msdf_size** = ``48`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_msdf_size**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_msdf_size**\ (\ ) Source font size used to generate MSDF textures. Higher values allow for more precision, but are slower to render and require more memory. Only increase this value if you notice a visible lack of precision in glyph rendering. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_multichannel_signed_distance_field: .. rst-class:: classref-property :ref:`bool` **multichannel_signed_distance_field** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_multichannel_signed_distance_field**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_multichannel_signed_distance_field**\ (\ ) If set to ``true``, glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_oversampling: .. rst-class:: classref-property :ref:`float` **oversampling** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_oversampling**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_oversampling**\ (\ ) If set to a positive value, overrides the oversampling factor of the viewport this font is used in. See :ref:`Viewport.oversampling`. This value doesn't override the ``oversampling`` parameter of ``draw_*`` methods. .. rst-class:: classref-item-separator ---- .. _class_SystemFont_property_subpixel_positioning: .. rst-class:: classref-property :ref:`SubpixelPositioning` **subpixel_positioning** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_subpixel_positioning**\ (\ value\: :ref:`SubpixelPositioning`\ ) - :ref:`SubpixelPositioning` **get_subpixel_positioning**\ (\ ) Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of memory usage and font rasterization speed. Use :ref:`TextServer.SUBPIXEL_POSITIONING_AUTO` to automatically enable it based on the font size. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`