class_fontfile.rst 82 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/FontFile.xml.
  6. .. _class_FontFile:
  7. FontFile
  8. ========
  9. **Inherits:** :ref:`Font<class_Font>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Holds font source data and prerendered glyph cache, imported from a dynamic or a bitmap font.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. **FontFile** contains a set of glyphs to represent Unicode characters imported from a font file, as well as a cache of rasterized glyphs, and a set of fallback :ref:`Font<class_Font>`\ s to use.
  15. Use :ref:`FontVariation<class_FontVariation>` to access specific OpenType variation of the font, create simulated bold / slanted version, and draw lines of text.
  16. For more complex text processing, use :ref:`FontVariation<class_FontVariation>` in conjunction with :ref:`TextLine<class_TextLine>` or :ref:`TextParagraph<class_TextParagraph>`.
  17. Supported font formats:
  18. - Dynamic font importer: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm).
  19. - Bitmap font importer: AngelCode BMFont (.fnt, .font), text and binary (version 3) format variants.
  20. - Monospace image font importer: All supported image formats.
  21. \ **Note:** A character is a symbol that represents an item (letter, digit etc.) in an abstract way.
  22. \ **Note:** A glyph is a bitmap or a shape used to draw one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source.
  23. \ **Note:** If none of the font data sources contain glyphs for a character used in a string, the character in question will be replaced with a box displaying its hexadecimal code.
  24. .. tabs::
  25. .. code-tab:: gdscript
  26. var f = load("res://BarlowCondensed-Bold.ttf")
  27. $Label.add_theme_font_override("font", f)
  28. $Label.add_theme_font_size_override("font_size", 64)
  29. .. code-tab:: csharp
  30. var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf");
  31. GetNode("Label").AddThemeFontOverride("font", f);
  32. GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
  33. .. rst-class:: classref-reftable-group
  34. Properties
  35. ----------
  36. .. table::
  37. :widths: auto
  38. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  39. | :ref:`bool<class_bool>` | :ref:`allow_system_fallback<class_FontFile_property_allow_system_fallback>` | ``true`` |
  40. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  41. | :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` | :ref:`antialiasing<class_FontFile_property_antialiasing>` | ``1`` |
  42. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  43. | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_FontFile_property_data>` | ``PackedByteArray()`` |
  44. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  45. | :ref:`int<class_int>` | :ref:`fixed_size<class_FontFile_property_fixed_size>` | ``0`` |
  46. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  47. | :ref:`String<class_String>` | :ref:`font_name<class_FontFile_property_font_name>` | ``""`` |
  48. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  49. | :ref:`int<class_int>` | :ref:`font_stretch<class_FontFile_property_font_stretch>` | ``100`` |
  50. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  51. | |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> | :ref:`font_style<class_FontFile_property_font_style>` | ``0`` |
  52. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  53. | :ref:`int<class_int>` | :ref:`font_weight<class_FontFile_property_font_weight>` | ``400`` |
  54. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  55. | :ref:`bool<class_bool>` | :ref:`force_autohinter<class_FontFile_property_force_autohinter>` | ``false`` |
  56. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  57. | :ref:`bool<class_bool>` | :ref:`generate_mipmaps<class_FontFile_property_generate_mipmaps>` | ``false`` |
  58. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  59. | :ref:`Hinting<enum_TextServer_Hinting>` | :ref:`hinting<class_FontFile_property_hinting>` | ``1`` |
  60. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  61. | :ref:`int<class_int>` | :ref:`msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` | ``16`` |
  62. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  63. | :ref:`int<class_int>` | :ref:`msdf_size<class_FontFile_property_msdf_size>` | ``48`` |
  64. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  65. | :ref:`bool<class_bool>` | :ref:`multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` | ``false`` |
  66. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  67. | :ref:`Dictionary<class_Dictionary>` | :ref:`opentype_feature_overrides<class_FontFile_property_opentype_feature_overrides>` | ``{}`` |
  68. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  69. | :ref:`float<class_float>` | :ref:`oversampling<class_FontFile_property_oversampling>` | ``0.0`` |
  70. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  71. | :ref:`String<class_String>` | :ref:`style_name<class_FontFile_property_style_name>` | ``""`` |
  72. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  73. | :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`subpixel_positioning<class_FontFile_property_subpixel_positioning>` | ``1`` |
  74. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  75. .. rst-class:: classref-reftable-group
  76. Methods
  77. -------
  78. .. table::
  79. :widths: auto
  80. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | void | :ref:`clear_cache<class_FontFile_method_clear_cache>` **(** **)** |
  82. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | void | :ref:`clear_glyphs<class_FontFile_method_clear_glyphs>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  84. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | void | :ref:`clear_kerning_map<class_FontFile_method_clear_kerning_map>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |
  86. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | void | :ref:`clear_size_cache<class_FontFile_method_clear_size_cache>` **(** :ref:`int<class_int>` cache_index **)** |
  88. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | void | :ref:`clear_textures<class_FontFile_method_clear_textures>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  90. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | :ref:`float<class_float>` | :ref:`get_cache_ascent<class_FontFile_method_get_cache_ascent>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  92. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :ref:`int<class_int>` | :ref:`get_cache_count<class_FontFile_method_get_cache_count>` **(** **)** |const| |
  94. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | :ref:`float<class_float>` | :ref:`get_cache_descent<class_FontFile_method_get_cache_descent>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  96. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | :ref:`float<class_float>` | :ref:`get_cache_scale<class_FontFile_method_get_cache_scale>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  98. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :ref:`float<class_float>` | :ref:`get_cache_underline_position<class_FontFile_method_get_cache_underline_position>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  100. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | :ref:`float<class_float>` | :ref:`get_cache_underline_thickness<class_FontFile_method_get_cache_underline_thickness>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  102. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | :ref:`int<class_int>` | :ref:`get_char_from_glyph_index<class_FontFile_method_get_char_from_glyph_index>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` glyph_index **)** |const| |
  104. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  105. | :ref:`float<class_float>` | :ref:`get_embolden<class_FontFile_method_get_embolden>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  106. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  107. | :ref:`int<class_int>` | :ref:`get_extra_spacing<class_FontFile_method_get_extra_spacing>` **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const| |
  108. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | :ref:`int<class_int>` | :ref:`get_face_index<class_FontFile_method_get_face_index>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  110. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | :ref:`Vector2<class_Vector2>` | :ref:`get_glyph_advance<class_FontFile_method_get_glyph_advance>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const| |
  112. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | :ref:`int<class_int>` | :ref:`get_glyph_index<class_FontFile_method_get_glyph_index>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |const| |
  114. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`get_glyph_list<class_FontFile_method_get_glyph_list>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const| |
  116. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | :ref:`Vector2<class_Vector2>` | :ref:`get_glyph_offset<class_FontFile_method_get_glyph_offset>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const| |
  118. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | :ref:`Vector2<class_Vector2>` | :ref:`get_glyph_size<class_FontFile_method_get_glyph_size>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const| |
  120. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | :ref:`int<class_int>` | :ref:`get_glyph_texture_idx<class_FontFile_method_get_glyph_texture_idx>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const| |
  122. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | :ref:`Rect2<class_Rect2>` | :ref:`get_glyph_uv_rect<class_FontFile_method_get_glyph_uv_rect>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const| |
  124. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | :ref:`Vector2<class_Vector2>` | :ref:`get_kerning<class_FontFile_method_get_kerning>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |const| |
  126. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | :ref:`Vector2i[]<class_Vector2i>` | :ref:`get_kerning_list<class_FontFile_method_get_kerning_list>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const| |
  128. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | :ref:`bool<class_bool>` | :ref:`get_language_support_override<class_FontFile_method_get_language_support_override>` **(** :ref:`String<class_String>` language **)** |const| |
  130. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_language_support_overrides<class_FontFile_method_get_language_support_overrides>` **(** **)** |const| |
  132. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | :ref:`bool<class_bool>` | :ref:`get_script_support_override<class_FontFile_method_get_script_support_override>` **(** :ref:`String<class_String>` script **)** |const| |
  134. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_script_support_overrides<class_FontFile_method_get_script_support_overrides>` **(** **)** |const| |
  136. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | :ref:`Vector2i[]<class_Vector2i>` | :ref:`get_size_cache_list<class_FontFile_method_get_size_cache_list>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  138. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | :ref:`int<class_int>` | :ref:`get_texture_count<class_FontFile_method_get_texture_count>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const| |
  140. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | :ref:`Image<class_Image>` | :ref:`get_texture_image<class_FontFile_method_get_texture_image>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const| |
  142. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`get_texture_offsets<class_FontFile_method_get_texture_offsets>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const| |
  144. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_FontFile_method_get_transform>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  146. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_variation_coordinates<class_FontFile_method_get_variation_coordinates>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  148. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_bitmap_font<class_FontFile_method_load_bitmap_font>` **(** :ref:`String<class_String>` path **)** |
  150. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_dynamic_font<class_FontFile_method_load_dynamic_font>` **(** :ref:`String<class_String>` path **)** |
  152. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | void | :ref:`remove_cache<class_FontFile_method_remove_cache>` **(** :ref:`int<class_int>` cache_index **)** |
  154. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | void | :ref:`remove_glyph<class_FontFile_method_remove_glyph>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |
  156. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | void | :ref:`remove_kerning<class_FontFile_method_remove_kerning>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |
  158. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | void | :ref:`remove_language_support_override<class_FontFile_method_remove_language_support_override>` **(** :ref:`String<class_String>` language **)** |
  160. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | void | :ref:`remove_script_support_override<class_FontFile_method_remove_script_support_override>` **(** :ref:`String<class_String>` script **)** |
  162. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | void | :ref:`remove_size_cache<class_FontFile_method_remove_size_cache>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  164. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. | void | :ref:`remove_texture<class_FontFile_method_remove_texture>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |
  166. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | void | :ref:`render_glyph<class_FontFile_method_render_glyph>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)** |
  168. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. | void | :ref:`render_range<class_FontFile_method_render_range>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |
  170. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. | void | :ref:`set_cache_ascent<class_FontFile_method_set_cache_ascent>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)** |
  172. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  173. | void | :ref:`set_cache_descent<class_FontFile_method_set_cache_descent>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)** |
  174. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  175. | void | :ref:`set_cache_scale<class_FontFile_method_set_cache_scale>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)** |
  176. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  177. | void | :ref:`set_cache_underline_position<class_FontFile_method_set_cache_underline_position>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)** |
  178. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  179. | void | :ref:`set_cache_underline_thickness<class_FontFile_method_set_cache_underline_thickness>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)** |
  180. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  181. | void | :ref:`set_embolden<class_FontFile_method_set_embolden>` **(** :ref:`int<class_int>` cache_index, :ref:`float<class_float>` strength **)** |
  182. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  183. | void | :ref:`set_extra_spacing<class_FontFile_method_set_extra_spacing>` **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |
  184. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  185. | void | :ref:`set_face_index<class_FontFile_method_set_face_index>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` face_index **)** |
  186. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  187. | void | :ref:`set_glyph_advance<class_FontFile_method_set_glyph_advance>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)** |
  188. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  189. | void | :ref:`set_glyph_offset<class_FontFile_method_set_glyph_offset>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)** |
  190. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  191. | void | :ref:`set_glyph_size<class_FontFile_method_set_glyph_size>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)** |
  192. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  193. | void | :ref:`set_glyph_texture_idx<class_FontFile_method_set_glyph_texture_idx>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)** |
  194. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  195. | void | :ref:`set_glyph_uv_rect<class_FontFile_method_set_glyph_uv_rect>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)** |
  196. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  197. | void | :ref:`set_kerning<class_FontFile_method_set_kerning>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)** |
  198. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  199. | void | :ref:`set_language_support_override<class_FontFile_method_set_language_support_override>` **(** :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)** |
  200. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  201. | void | :ref:`set_script_support_override<class_FontFile_method_set_script_support_override>` **(** :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)** |
  202. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  203. | void | :ref:`set_texture_image<class_FontFile_method_set_texture_image>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)** |
  204. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  205. | void | :ref:`set_texture_offsets<class_FontFile_method_set_texture_offsets>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)** |
  206. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  207. | void | :ref:`set_transform<class_FontFile_method_set_transform>` **(** :ref:`int<class_int>` cache_index, :ref:`Transform2D<class_Transform2D>` transform **)** |
  208. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  209. | void | :ref:`set_variation_coordinates<class_FontFile_method_set_variation_coordinates>` **(** :ref:`int<class_int>` cache_index, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)** |
  210. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  211. .. rst-class:: classref-section-separator
  212. ----
  213. .. rst-class:: classref-descriptions-group
  214. Property Descriptions
  215. ---------------------
  216. .. _class_FontFile_property_allow_system_fallback:
  217. .. rst-class:: classref-property
  218. :ref:`bool<class_bool>` **allow_system_fallback** = ``true``
  219. .. rst-class:: classref-property-setget
  220. - void **set_allow_system_fallback** **(** :ref:`bool<class_bool>` value **)**
  221. - :ref:`bool<class_bool>` **is_allow_system_fallback** **(** **)**
  222. If set to ``true``, system fonts can be automatically used as fallbacks.
  223. .. rst-class:: classref-item-separator
  224. ----
  225. .. _class_FontFile_property_antialiasing:
  226. .. rst-class:: classref-property
  227. :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` **antialiasing** = ``1``
  228. .. rst-class:: classref-property-setget
  229. - void **set_antialiasing** **(** :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` value **)**
  230. - :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` **get_antialiasing** **(** **)**
  231. Font anti-aliasing mode.
  232. .. rst-class:: classref-item-separator
  233. ----
  234. .. _class_FontFile_property_data:
  235. .. rst-class:: classref-property
  236. :ref:`PackedByteArray<class_PackedByteArray>` **data** = ``PackedByteArray()``
  237. .. rst-class:: classref-property-setget
  238. - void **set_data** **(** :ref:`PackedByteArray<class_PackedByteArray>` value **)**
  239. - :ref:`PackedByteArray<class_PackedByteArray>` **get_data** **(** **)**
  240. Contents of the dynamic font source file.
  241. .. rst-class:: classref-item-separator
  242. ----
  243. .. _class_FontFile_property_fixed_size:
  244. .. rst-class:: classref-property
  245. :ref:`int<class_int>` **fixed_size** = ``0``
  246. .. rst-class:: classref-property-setget
  247. - void **set_fixed_size** **(** :ref:`int<class_int>` value **)**
  248. - :ref:`int<class_int>` **get_fixed_size** **(** **)**
  249. Font size, used only for the bitmap fonts.
  250. .. rst-class:: classref-item-separator
  251. ----
  252. .. _class_FontFile_property_font_name:
  253. .. rst-class:: classref-property
  254. :ref:`String<class_String>` **font_name** = ``""``
  255. .. rst-class:: classref-property-setget
  256. - void **set_font_name** **(** :ref:`String<class_String>` value **)**
  257. - :ref:`String<class_String>` **get_font_name** **(** **)**
  258. Font family name.
  259. .. rst-class:: classref-item-separator
  260. ----
  261. .. _class_FontFile_property_font_stretch:
  262. .. rst-class:: classref-property
  263. :ref:`int<class_int>` **font_stretch** = ``100``
  264. .. rst-class:: classref-property-setget
  265. - void **set_font_stretch** **(** :ref:`int<class_int>` value **)**
  266. - :ref:`int<class_int>` **get_font_stretch** **(** **)**
  267. Font stretch amount, compared to a normal width. A percentage value between ``50%`` and ``200%``.
  268. .. rst-class:: classref-item-separator
  269. ----
  270. .. _class_FontFile_property_font_style:
  271. .. rst-class:: classref-property
  272. |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> **font_style** = ``0``
  273. .. rst-class:: classref-property-setget
  274. - void **set_font_style** **(** |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> value **)**
  275. - |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> **get_font_style** **(** **)**
  276. Font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
  277. .. rst-class:: classref-item-separator
  278. ----
  279. .. _class_FontFile_property_font_weight:
  280. .. rst-class:: classref-property
  281. :ref:`int<class_int>` **font_weight** = ``400``
  282. .. rst-class:: classref-property-setget
  283. - void **set_font_weight** **(** :ref:`int<class_int>` value **)**
  284. - :ref:`int<class_int>` **get_font_weight** **(** **)**
  285. Weight (boldness) of the font. A value in the ``100...999`` range, normal font weight is ``400``, bold font weight is ``700``.
  286. .. rst-class:: classref-item-separator
  287. ----
  288. .. _class_FontFile_property_force_autohinter:
  289. .. rst-class:: classref-property
  290. :ref:`bool<class_bool>` **force_autohinter** = ``false``
  291. .. rst-class:: classref-property-setget
  292. - void **set_force_autohinter** **(** :ref:`bool<class_bool>` value **)**
  293. - :ref:`bool<class_bool>` **is_force_autohinter** **(** **)**
  294. If set to ``true``, auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only (MSDF fonts don't support hinting).
  295. .. rst-class:: classref-item-separator
  296. ----
  297. .. _class_FontFile_property_generate_mipmaps:
  298. .. rst-class:: classref-property
  299. :ref:`bool<class_bool>` **generate_mipmaps** = ``false``
  300. .. rst-class:: classref-property-setget
  301. - void **set_generate_mipmaps** **(** :ref:`bool<class_bool>` value **)**
  302. - :ref:`bool<class_bool>` **get_generate_mipmaps** **(** **)**
  303. If set to ``true``, generate mipmaps for the font textures.
  304. .. rst-class:: classref-item-separator
  305. ----
  306. .. _class_FontFile_property_hinting:
  307. .. rst-class:: classref-property
  308. :ref:`Hinting<enum_TextServer_Hinting>` **hinting** = ``1``
  309. .. rst-class:: classref-property-setget
  310. - void **set_hinting** **(** :ref:`Hinting<enum_TextServer_Hinting>` value **)**
  311. - :ref:`Hinting<enum_TextServer_Hinting>` **get_hinting** **(** **)**
  312. Font hinting mode. Used by dynamic fonts only.
  313. .. rst-class:: classref-item-separator
  314. ----
  315. .. _class_FontFile_property_msdf_pixel_range:
  316. .. rst-class:: classref-property
  317. :ref:`int<class_int>` **msdf_pixel_range** = ``16``
  318. .. rst-class:: classref-property-setget
  319. - void **set_msdf_pixel_range** **(** :ref:`int<class_int>` value **)**
  320. - :ref:`int<class_int>` **get_msdf_pixel_range** **(** **)**
  321. The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, :ref:`msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` must be set to at least *twice* the size of the largest font outline. The default :ref:`msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` value of ``16`` allows outline sizes up to ``8`` to look correct.
  322. .. rst-class:: classref-item-separator
  323. ----
  324. .. _class_FontFile_property_msdf_size:
  325. .. rst-class:: classref-property
  326. :ref:`int<class_int>` **msdf_size** = ``48``
  327. .. rst-class:: classref-property-setget
  328. - void **set_msdf_size** **(** :ref:`int<class_int>` value **)**
  329. - :ref:`int<class_int>` **get_msdf_size** **(** **)**
  330. 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.
  331. .. rst-class:: classref-item-separator
  332. ----
  333. .. _class_FontFile_property_multichannel_signed_distance_field:
  334. .. rst-class:: classref-property
  335. :ref:`bool<class_bool>` **multichannel_signed_distance_field** = ``false``
  336. .. rst-class:: classref-property-setget
  337. - void **set_multichannel_signed_distance_field** **(** :ref:`bool<class_bool>` value **)**
  338. - :ref:`bool<class_bool>` **is_multichannel_signed_distance_field** **(** **)**
  339. If set to ``true``, glyphs of all sizes are rendered using single multichannel signed distance field (MSDF) generated from the dynamic font vector data. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for :ref:`Control<class_Control>`\ s that are scaled down (or for :ref:`Label3D<class_Label3D>`\ s viewed from a long distance). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes.
  340. \ **Note:** If using font outlines, :ref:`msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` must be set to at least *twice* the size of the largest font outline.
  341. \ **Note:** MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts.
  342. .. rst-class:: classref-item-separator
  343. ----
  344. .. _class_FontFile_property_opentype_feature_overrides:
  345. .. rst-class:: classref-property
  346. :ref:`Dictionary<class_Dictionary>` **opentype_feature_overrides** = ``{}``
  347. .. rst-class:: classref-property-setget
  348. - void **set_opentype_feature_overrides** **(** :ref:`Dictionary<class_Dictionary>` value **)**
  349. - :ref:`Dictionary<class_Dictionary>` **get_opentype_feature_overrides** **(** **)**
  350. Font OpenType feature set override.
  351. .. rst-class:: classref-item-separator
  352. ----
  353. .. _class_FontFile_property_oversampling:
  354. .. rst-class:: classref-property
  355. :ref:`float<class_float>` **oversampling** = ``0.0``
  356. .. rst-class:: classref-property-setget
  357. - void **set_oversampling** **(** :ref:`float<class_float>` value **)**
  358. - :ref:`float<class_float>` **get_oversampling** **(** **)**
  359. Font oversampling factor. If set to ``0.0``, the global oversampling factor is used instead. Used by dynamic fonts only (MSDF fonts ignore oversampling).
  360. .. rst-class:: classref-item-separator
  361. ----
  362. .. _class_FontFile_property_style_name:
  363. .. rst-class:: classref-property
  364. :ref:`String<class_String>` **style_name** = ``""``
  365. .. rst-class:: classref-property-setget
  366. - void **set_font_style_name** **(** :ref:`String<class_String>` value **)**
  367. - :ref:`String<class_String>` **get_font_style_name** **(** **)**
  368. Font style name.
  369. .. rst-class:: classref-item-separator
  370. ----
  371. .. _class_FontFile_property_subpixel_positioning:
  372. .. rst-class:: classref-property
  373. :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **subpixel_positioning** = ``1``
  374. .. rst-class:: classref-property-setget
  375. - void **set_subpixel_positioning** **(** :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` value **)**
  376. - :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **get_subpixel_positioning** **(** **)**
  377. Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of higher memory usage and lower font rasterization speed. Use :ref:`TextServer.SUBPIXEL_POSITIONING_AUTO<class_TextServer_constant_SUBPIXEL_POSITIONING_AUTO>` to automatically enable it based on the font size.
  378. .. rst-class:: classref-section-separator
  379. ----
  380. .. rst-class:: classref-descriptions-group
  381. Method Descriptions
  382. -------------------
  383. .. _class_FontFile_method_clear_cache:
  384. .. rst-class:: classref-method
  385. void **clear_cache** **(** **)**
  386. Removes all font cache entries.
  387. .. rst-class:: classref-item-separator
  388. ----
  389. .. _class_FontFile_method_clear_glyphs:
  390. .. rst-class:: classref-method
  391. void **clear_glyphs** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  392. Removes all rendered glyphs information from the cache entry.
  393. \ **Note:** This function will not remove textures associated with the glyphs, use :ref:`remove_texture<class_FontFile_method_remove_texture>` to remove them manually.
  394. .. rst-class:: classref-item-separator
  395. ----
  396. .. _class_FontFile_method_clear_kerning_map:
  397. .. rst-class:: classref-method
  398. void **clear_kerning_map** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)**
  399. Removes all kerning overrides.
  400. .. rst-class:: classref-item-separator
  401. ----
  402. .. _class_FontFile_method_clear_size_cache:
  403. .. rst-class:: classref-method
  404. void **clear_size_cache** **(** :ref:`int<class_int>` cache_index **)**
  405. Removes all font sizes from the cache entry
  406. .. rst-class:: classref-item-separator
  407. ----
  408. .. _class_FontFile_method_clear_textures:
  409. .. rst-class:: classref-method
  410. void **clear_textures** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  411. Removes all textures from font cache entry.
  412. \ **Note:** This function will not remove glyphs associated with the texture, use :ref:`remove_glyph<class_FontFile_method_remove_glyph>` to remove them manually.
  413. .. rst-class:: classref-item-separator
  414. ----
  415. .. _class_FontFile_method_get_cache_ascent:
  416. .. rst-class:: classref-method
  417. :ref:`float<class_float>` **get_cache_ascent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  418. Returns the font ascent (number of pixels above the baseline).
  419. .. rst-class:: classref-item-separator
  420. ----
  421. .. _class_FontFile_method_get_cache_count:
  422. .. rst-class:: classref-method
  423. :ref:`int<class_int>` **get_cache_count** **(** **)** |const|
  424. Returns number of the font cache entries.
  425. .. rst-class:: classref-item-separator
  426. ----
  427. .. _class_FontFile_method_get_cache_descent:
  428. .. rst-class:: classref-method
  429. :ref:`float<class_float>` **get_cache_descent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  430. Returns the font descent (number of pixels below the baseline).
  431. .. rst-class:: classref-item-separator
  432. ----
  433. .. _class_FontFile_method_get_cache_scale:
  434. .. rst-class:: classref-method
  435. :ref:`float<class_float>` **get_cache_scale** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  436. Returns scaling factor of the color bitmap font.
  437. .. rst-class:: classref-item-separator
  438. ----
  439. .. _class_FontFile_method_get_cache_underline_position:
  440. .. rst-class:: classref-method
  441. :ref:`float<class_float>` **get_cache_underline_position** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  442. Returns pixel offset of the underline below the baseline.
  443. .. rst-class:: classref-item-separator
  444. ----
  445. .. _class_FontFile_method_get_cache_underline_thickness:
  446. .. rst-class:: classref-method
  447. :ref:`float<class_float>` **get_cache_underline_thickness** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  448. Returns thickness of the underline in pixels.
  449. .. rst-class:: classref-item-separator
  450. ----
  451. .. _class_FontFile_method_get_char_from_glyph_index:
  452. .. rst-class:: classref-method
  453. :ref:`int<class_int>` **get_char_from_glyph_index** **(** :ref:`int<class_int>` size, :ref:`int<class_int>` glyph_index **)** |const|
  454. Returns character code associated with ``glyph_index``, or ``0`` if ``glyph_index`` is invalid. See :ref:`get_glyph_index<class_FontFile_method_get_glyph_index>`.
  455. .. rst-class:: classref-item-separator
  456. ----
  457. .. _class_FontFile_method_get_embolden:
  458. .. rst-class:: classref-method
  459. :ref:`float<class_float>` **get_embolden** **(** :ref:`int<class_int>` cache_index **)** |const|
  460. Returns embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
  461. .. rst-class:: classref-item-separator
  462. ----
  463. .. _class_FontFile_method_get_extra_spacing:
  464. .. rst-class:: classref-method
  465. :ref:`int<class_int>` **get_extra_spacing** **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|
  466. Returns spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) in pixels (not relative to the font size).
  467. .. rst-class:: classref-item-separator
  468. ----
  469. .. _class_FontFile_method_get_face_index:
  470. .. rst-class:: classref-method
  471. :ref:`int<class_int>` **get_face_index** **(** :ref:`int<class_int>` cache_index **)** |const|
  472. Returns an active face index in the TrueType / OpenType collection.
  473. .. rst-class:: classref-item-separator
  474. ----
  475. .. _class_FontFile_method_get_glyph_advance:
  476. .. rst-class:: classref-method
  477. :ref:`Vector2<class_Vector2>` **get_glyph_advance** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const|
  478. Returns glyph advance (offset of the next glyph).
  479. \ **Note:** Advance for glyphs outlines is the same as the base glyph advance and is not saved.
  480. .. rst-class:: classref-item-separator
  481. ----
  482. .. _class_FontFile_method_get_glyph_index:
  483. .. rst-class:: classref-method
  484. :ref:`int<class_int>` **get_glyph_index** **(** :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |const|
  485. Returns the glyph index of a ``char``, optionally modified by the ``variation_selector``.
  486. .. rst-class:: classref-item-separator
  487. ----
  488. .. _class_FontFile_method_get_glyph_list:
  489. .. rst-class:: classref-method
  490. :ref:`PackedInt32Array<class_PackedInt32Array>` **get_glyph_list** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const|
  491. Returns list of rendered glyphs in the cache entry.
  492. .. rst-class:: classref-item-separator
  493. ----
  494. .. _class_FontFile_method_get_glyph_offset:
  495. .. rst-class:: classref-method
  496. :ref:`Vector2<class_Vector2>` **get_glyph_offset** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  497. Returns glyph offset from the baseline.
  498. .. rst-class:: classref-item-separator
  499. ----
  500. .. _class_FontFile_method_get_glyph_size:
  501. .. rst-class:: classref-method
  502. :ref:`Vector2<class_Vector2>` **get_glyph_size** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  503. Returns glyph size.
  504. .. rst-class:: classref-item-separator
  505. ----
  506. .. _class_FontFile_method_get_glyph_texture_idx:
  507. .. rst-class:: classref-method
  508. :ref:`int<class_int>` **get_glyph_texture_idx** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  509. Returns index of the cache texture containing the glyph.
  510. .. rst-class:: classref-item-separator
  511. ----
  512. .. _class_FontFile_method_get_glyph_uv_rect:
  513. .. rst-class:: classref-method
  514. :ref:`Rect2<class_Rect2>` **get_glyph_uv_rect** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  515. Returns rectangle in the cache texture containing the glyph.
  516. .. rst-class:: classref-item-separator
  517. ----
  518. .. _class_FontFile_method_get_kerning:
  519. .. rst-class:: classref-method
  520. :ref:`Vector2<class_Vector2>` **get_kerning** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |const|
  521. Returns kerning for the pair of glyphs.
  522. .. rst-class:: classref-item-separator
  523. ----
  524. .. _class_FontFile_method_get_kerning_list:
  525. .. rst-class:: classref-method
  526. :ref:`Vector2i[]<class_Vector2i>` **get_kerning_list** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  527. Returns list of the kerning overrides.
  528. .. rst-class:: classref-item-separator
  529. ----
  530. .. _class_FontFile_method_get_language_support_override:
  531. .. rst-class:: classref-method
  532. :ref:`bool<class_bool>` **get_language_support_override** **(** :ref:`String<class_String>` language **)** |const|
  533. Returns ``true`` if support override is enabled for the ``language``.
  534. .. rst-class:: classref-item-separator
  535. ----
  536. .. _class_FontFile_method_get_language_support_overrides:
  537. .. rst-class:: classref-method
  538. :ref:`PackedStringArray<class_PackedStringArray>` **get_language_support_overrides** **(** **)** |const|
  539. Returns list of language support overrides.
  540. .. rst-class:: classref-item-separator
  541. ----
  542. .. _class_FontFile_method_get_script_support_override:
  543. .. rst-class:: classref-method
  544. :ref:`bool<class_bool>` **get_script_support_override** **(** :ref:`String<class_String>` script **)** |const|
  545. Returns ``true`` if support override is enabled for the ``script``.
  546. .. rst-class:: classref-item-separator
  547. ----
  548. .. _class_FontFile_method_get_script_support_overrides:
  549. .. rst-class:: classref-method
  550. :ref:`PackedStringArray<class_PackedStringArray>` **get_script_support_overrides** **(** **)** |const|
  551. Returns list of script support overrides.
  552. .. rst-class:: classref-item-separator
  553. ----
  554. .. _class_FontFile_method_get_size_cache_list:
  555. .. rst-class:: classref-method
  556. :ref:`Vector2i[]<class_Vector2i>` **get_size_cache_list** **(** :ref:`int<class_int>` cache_index **)** |const|
  557. Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
  558. .. rst-class:: classref-item-separator
  559. ----
  560. .. _class_FontFile_method_get_texture_count:
  561. .. rst-class:: classref-method
  562. :ref:`int<class_int>` **get_texture_count** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const|
  563. Returns number of textures used by font cache entry.
  564. .. rst-class:: classref-item-separator
  565. ----
  566. .. _class_FontFile_method_get_texture_image:
  567. .. rst-class:: classref-method
  568. :ref:`Image<class_Image>` **get_texture_image** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|
  569. Returns a copy of the font cache texture image.
  570. .. rst-class:: classref-item-separator
  571. ----
  572. .. _class_FontFile_method_get_texture_offsets:
  573. .. rst-class:: classref-method
  574. :ref:`PackedInt32Array<class_PackedInt32Array>` **get_texture_offsets** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|
  575. Returns a copy of the array containing glyph packing data.
  576. .. rst-class:: classref-item-separator
  577. ----
  578. .. _class_FontFile_method_get_transform:
  579. .. rst-class:: classref-method
  580. :ref:`Transform2D<class_Transform2D>` **get_transform** **(** :ref:`int<class_int>` cache_index **)** |const|
  581. Returns 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.
  582. .. rst-class:: classref-item-separator
  583. ----
  584. .. _class_FontFile_method_get_variation_coordinates:
  585. .. rst-class:: classref-method
  586. :ref:`Dictionary<class_Dictionary>` **get_variation_coordinates** **(** :ref:`int<class_int>` cache_index **)** |const|
  587. Returns variation coordinates for the specified font cache entry. See :ref:`Font.get_supported_variation_list<class_Font_method_get_supported_variation_list>` for more info.
  588. .. rst-class:: classref-item-separator
  589. ----
  590. .. _class_FontFile_method_load_bitmap_font:
  591. .. rst-class:: classref-method
  592. :ref:`Error<enum_@GlobalScope_Error>` **load_bitmap_font** **(** :ref:`String<class_String>` path **)**
  593. Loads an AngelCode BMFont (.fnt, .font) bitmap font from file ``path``.
  594. \ **Warning:** This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the ``user://`` directory.
  595. .. rst-class:: classref-item-separator
  596. ----
  597. .. _class_FontFile_method_load_dynamic_font:
  598. .. rst-class:: classref-method
  599. :ref:`Error<enum_@GlobalScope_Error>` **load_dynamic_font** **(** :ref:`String<class_String>` path **)**
  600. Loads a TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) or Type 1 (.pfb, .pfm) dynamic font from file ``path``.
  601. \ **Warning:** This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the ``user://`` directory.
  602. .. rst-class:: classref-item-separator
  603. ----
  604. .. _class_FontFile_method_remove_cache:
  605. .. rst-class:: classref-method
  606. void **remove_cache** **(** :ref:`int<class_int>` cache_index **)**
  607. Removes specified font cache entry.
  608. .. rst-class:: classref-item-separator
  609. ----
  610. .. _class_FontFile_method_remove_glyph:
  611. .. rst-class:: classref-method
  612. void **remove_glyph** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)**
  613. Removes specified rendered glyph information from the cache entry.
  614. \ **Note:** This function will not remove textures associated with the glyphs, use :ref:`remove_texture<class_FontFile_method_remove_texture>` to remove them manually.
  615. .. rst-class:: classref-item-separator
  616. ----
  617. .. _class_FontFile_method_remove_kerning:
  618. .. rst-class:: classref-method
  619. void **remove_kerning** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)**
  620. Removes kerning override for the pair of glyphs.
  621. .. rst-class:: classref-item-separator
  622. ----
  623. .. _class_FontFile_method_remove_language_support_override:
  624. .. rst-class:: classref-method
  625. void **remove_language_support_override** **(** :ref:`String<class_String>` language **)**
  626. Remove language support override.
  627. .. rst-class:: classref-item-separator
  628. ----
  629. .. _class_FontFile_method_remove_script_support_override:
  630. .. rst-class:: classref-method
  631. void **remove_script_support_override** **(** :ref:`String<class_String>` script **)**
  632. Removes script support override.
  633. .. rst-class:: classref-item-separator
  634. ----
  635. .. _class_FontFile_method_remove_size_cache:
  636. .. rst-class:: classref-method
  637. void **remove_size_cache** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  638. Removes specified font size from the cache entry.
  639. .. rst-class:: classref-item-separator
  640. ----
  641. .. _class_FontFile_method_remove_texture:
  642. .. rst-class:: classref-method
  643. void **remove_texture** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)**
  644. Removes specified texture from the cache entry.
  645. \ **Note:** This function will not remove glyphs associated with the texture. Remove them manually using :ref:`remove_glyph<class_FontFile_method_remove_glyph>`.
  646. .. rst-class:: classref-item-separator
  647. ----
  648. .. _class_FontFile_method_render_glyph:
  649. .. rst-class:: classref-method
  650. void **render_glyph** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)**
  651. Renders specified glyph to the font cache texture.
  652. .. rst-class:: classref-item-separator
  653. ----
  654. .. _class_FontFile_method_render_range:
  655. .. rst-class:: classref-method
  656. void **render_range** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)**
  657. Renders the range of characters to the font cache texture.
  658. .. rst-class:: classref-item-separator
  659. ----
  660. .. _class_FontFile_method_set_cache_ascent:
  661. .. rst-class:: classref-method
  662. void **set_cache_ascent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)**
  663. Sets the font ascent (number of pixels above the baseline).
  664. .. rst-class:: classref-item-separator
  665. ----
  666. .. _class_FontFile_method_set_cache_descent:
  667. .. rst-class:: classref-method
  668. void **set_cache_descent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)**
  669. Sets the font descent (number of pixels below the baseline).
  670. .. rst-class:: classref-item-separator
  671. ----
  672. .. _class_FontFile_method_set_cache_scale:
  673. .. rst-class:: classref-method
  674. void **set_cache_scale** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)**
  675. Sets scaling factor of the color bitmap font.
  676. .. rst-class:: classref-item-separator
  677. ----
  678. .. _class_FontFile_method_set_cache_underline_position:
  679. .. rst-class:: classref-method
  680. void **set_cache_underline_position** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)**
  681. Sets pixel offset of the underline below the baseline.
  682. .. rst-class:: classref-item-separator
  683. ----
  684. .. _class_FontFile_method_set_cache_underline_thickness:
  685. .. rst-class:: classref-method
  686. void **set_cache_underline_thickness** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)**
  687. Sets thickness of the underline in pixels.
  688. .. rst-class:: classref-item-separator
  689. ----
  690. .. _class_FontFile_method_set_embolden:
  691. .. rst-class:: classref-method
  692. void **set_embolden** **(** :ref:`int<class_int>` cache_index, :ref:`float<class_float>` strength **)**
  693. Sets embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
  694. .. rst-class:: classref-item-separator
  695. ----
  696. .. _class_FontFile_method_set_extra_spacing:
  697. .. rst-class:: classref-method
  698. void **set_extra_spacing** **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
  699. Sets the spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
  700. .. rst-class:: classref-item-separator
  701. ----
  702. .. _class_FontFile_method_set_face_index:
  703. .. rst-class:: classref-method
  704. void **set_face_index** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` face_index **)**
  705. Sets an active face index in the TrueType / OpenType collection.
  706. .. rst-class:: classref-item-separator
  707. ----
  708. .. _class_FontFile_method_set_glyph_advance:
  709. .. rst-class:: classref-method
  710. void **set_glyph_advance** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)**
  711. Sets glyph advance (offset of the next glyph).
  712. \ **Note:** Advance for glyphs outlines is the same as the base glyph advance and is not saved.
  713. .. rst-class:: classref-item-separator
  714. ----
  715. .. _class_FontFile_method_set_glyph_offset:
  716. .. rst-class:: classref-method
  717. void **set_glyph_offset** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)**
  718. Sets glyph offset from the baseline.
  719. .. rst-class:: classref-item-separator
  720. ----
  721. .. _class_FontFile_method_set_glyph_size:
  722. .. rst-class:: classref-method
  723. void **set_glyph_size** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)**
  724. Sets glyph size.
  725. .. rst-class:: classref-item-separator
  726. ----
  727. .. _class_FontFile_method_set_glyph_texture_idx:
  728. .. rst-class:: classref-method
  729. void **set_glyph_texture_idx** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)**
  730. Sets index of the cache texture containing the glyph.
  731. .. rst-class:: classref-item-separator
  732. ----
  733. .. _class_FontFile_method_set_glyph_uv_rect:
  734. .. rst-class:: classref-method
  735. void **set_glyph_uv_rect** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)**
  736. Sets rectangle in the cache texture containing the glyph.
  737. .. rst-class:: classref-item-separator
  738. ----
  739. .. _class_FontFile_method_set_kerning:
  740. .. rst-class:: classref-method
  741. void **set_kerning** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)**
  742. Sets kerning for the pair of glyphs.
  743. .. rst-class:: classref-item-separator
  744. ----
  745. .. _class_FontFile_method_set_language_support_override:
  746. .. rst-class:: classref-method
  747. void **set_language_support_override** **(** :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)**
  748. Adds override for :ref:`Font.is_language_supported<class_Font_method_is_language_supported>`.
  749. .. rst-class:: classref-item-separator
  750. ----
  751. .. _class_FontFile_method_set_script_support_override:
  752. .. rst-class:: classref-method
  753. void **set_script_support_override** **(** :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)**
  754. Adds override for :ref:`Font.is_script_supported<class_Font_method_is_script_supported>`.
  755. .. rst-class:: classref-item-separator
  756. ----
  757. .. _class_FontFile_method_set_texture_image:
  758. .. rst-class:: classref-method
  759. void **set_texture_image** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)**
  760. Sets font cache texture image.
  761. .. rst-class:: classref-item-separator
  762. ----
  763. .. _class_FontFile_method_set_texture_offsets:
  764. .. rst-class:: classref-method
  765. void **set_texture_offsets** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)**
  766. Sets array containing glyph packing data.
  767. .. rst-class:: classref-item-separator
  768. ----
  769. .. _class_FontFile_method_set_transform:
  770. .. rst-class:: classref-method
  771. void **set_transform** **(** :ref:`int<class_int>` cache_index, :ref:`Transform2D<class_Transform2D>` transform **)**
  772. Sets 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.
  773. .. rst-class:: classref-item-separator
  774. ----
  775. .. _class_FontFile_method_set_variation_coordinates:
  776. .. rst-class:: classref-method
  777. void **set_variation_coordinates** **(** :ref:`int<class_int>` cache_index, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)**
  778. Sets variation coordinates for the specified font cache entry. See :ref:`Font.get_supported_variation_list<class_Font_method_get_supported_variation_list>` for more info.
  779. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  780. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  781. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  782. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  783. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  784. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  785. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`