class_fontfile.rst 80 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  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. Font source data and prerendered glyph cache, imported from dynamic or 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 shape used to draw a one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source.
  23. \ **Note:** If a 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".set("custom_fonts/font", f)
  28. $"Label".set("custom_fonts/font_size", 64)
  29. .. code-tab:: csharp
  30. var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf");
  31. GetNode("Label").Set("custom_fonts/font", f);
  32. GetNode("Label").Set("custom_font_sizes/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:`Font[]<class_Font>` | :ref:`fallbacks<class_FontFile_property_fallbacks>` | ``[]`` |
  46. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  47. | :ref:`int<class_int>` | :ref:`fixed_size<class_FontFile_property_fixed_size>` | ``0`` |
  48. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  49. | :ref:`String<class_String>` | :ref:`font_name<class_FontFile_property_font_name>` | ``""`` |
  50. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  51. | :ref:`int<class_int>` | :ref:`font_stretch<class_FontFile_property_font_stretch>` | ``100`` |
  52. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  53. | :ref:`FontStyle<enum_TextServer_FontStyle>` | :ref:`font_style<class_FontFile_property_font_style>` | ``0`` |
  54. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  55. | :ref:`int<class_int>` | :ref:`font_weight<class_FontFile_property_font_weight>` | ``400`` |
  56. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  57. | :ref:`bool<class_bool>` | :ref:`force_autohinter<class_FontFile_property_force_autohinter>` | ``false`` |
  58. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  59. | :ref:`bool<class_bool>` | :ref:`generate_mipmaps<class_FontFile_property_generate_mipmaps>` | ``false`` |
  60. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  61. | :ref:`Hinting<enum_TextServer_Hinting>` | :ref:`hinting<class_FontFile_property_hinting>` | ``1`` |
  62. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  63. | :ref:`int<class_int>` | :ref:`msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` | ``16`` |
  64. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  65. | :ref:`int<class_int>` | :ref:`msdf_size<class_FontFile_property_msdf_size>` | ``48`` |
  66. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  67. | :ref:`bool<class_bool>` | :ref:`multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` | ``false`` |
  68. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  69. | :ref:`Dictionary<class_Dictionary>` | :ref:`opentype_feature_overrides<class_FontFile_property_opentype_feature_overrides>` | ``{}`` |
  70. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  71. | :ref:`float<class_float>` | :ref:`oversampling<class_FontFile_property_oversampling>` | ``0.0`` |
  72. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  73. | :ref:`String<class_String>` | :ref:`style_name<class_FontFile_property_style_name>` | ``""`` |
  74. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  75. | :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`subpixel_positioning<class_FontFile_property_subpixel_positioning>` | ``1`` |
  76. +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
  77. .. rst-class:: classref-reftable-group
  78. Methods
  79. -------
  80. .. table::
  81. :widths: auto
  82. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | void | :ref:`clear_cache<class_FontFile_method_clear_cache>` **(** **)** |
  84. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | void | :ref:`clear_glyphs<class_FontFile_method_clear_glyphs>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  86. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | void | :ref:`clear_kerning_map<class_FontFile_method_clear_kerning_map>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |
  88. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | void | :ref:`clear_size_cache<class_FontFile_method_clear_size_cache>` **(** :ref:`int<class_int>` cache_index **)** |
  90. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | void | :ref:`clear_textures<class_FontFile_method_clear_textures>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  92. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :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| |
  94. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | :ref:`int<class_int>` | :ref:`get_cache_count<class_FontFile_method_get_cache_count>` **(** **)** |const| |
  96. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | :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| |
  98. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :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| |
  100. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | :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| |
  102. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | :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| |
  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_face_index<class_FontFile_method_get_face_index>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  108. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | :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| |
  110. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | :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| |
  112. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | :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| |
  114. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | :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| |
  116. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | :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| |
  118. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | :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| |
  120. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | :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| |
  122. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | :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| |
  124. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | :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| |
  126. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | :ref:`bool<class_bool>` | :ref:`get_language_support_override<class_FontFile_method_get_language_support_override>` **(** :ref:`String<class_String>` language **)** |const| |
  128. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_language_support_overrides<class_FontFile_method_get_language_support_overrides>` **(** **)** |const| |
  130. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | :ref:`bool<class_bool>` | :ref:`get_script_support_override<class_FontFile_method_get_script_support_override>` **(** :ref:`String<class_String>` script **)** |const| |
  132. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_script_support_overrides<class_FontFile_method_get_script_support_overrides>` **(** **)** |const| |
  134. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | :ref:`Vector2i[]<class_Vector2i>` | :ref:`get_size_cache_list<class_FontFile_method_get_size_cache_list>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  136. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | :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| |
  138. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | :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| |
  140. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | :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| |
  142. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_FontFile_method_get_transform>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  144. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_variation_coordinates<class_FontFile_method_get_variation_coordinates>` **(** :ref:`int<class_int>` cache_index **)** |const| |
  146. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_bitmap_font<class_FontFile_method_load_bitmap_font>` **(** :ref:`String<class_String>` path **)** |
  148. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_dynamic_font<class_FontFile_method_load_dynamic_font>` **(** :ref:`String<class_String>` path **)** |
  150. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. | void | :ref:`remove_cache<class_FontFile_method_remove_cache>` **(** :ref:`int<class_int>` cache_index **)** |
  152. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | 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 **)** |
  154. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | 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 **)** |
  156. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | void | :ref:`remove_language_support_override<class_FontFile_method_remove_language_support_override>` **(** :ref:`String<class_String>` language **)** |
  158. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | void | :ref:`remove_script_support_override<class_FontFile_method_remove_script_support_override>` **(** :ref:`String<class_String>` script **)** |
  160. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | void | :ref:`remove_size_cache<class_FontFile_method_remove_size_cache>` **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |
  162. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | 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 **)** |
  164. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. | 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 **)** |
  166. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | 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 **)** |
  168. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. | 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 **)** |
  170. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. | 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 **)** |
  172. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  173. | 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 **)** |
  174. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  175. | 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 **)** |
  176. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  177. | 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 **)** |
  178. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  179. | void | :ref:`set_embolden<class_FontFile_method_set_embolden>` **(** :ref:`int<class_int>` cache_index, :ref:`float<class_float>` strength **)** |
  180. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  181. | void | :ref:`set_face_index<class_FontFile_method_set_face_index>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` face_index **)** |
  182. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  183. | 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 **)** |
  184. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  185. | 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 **)** |
  186. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  187. | 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 **)** |
  188. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  189. | 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 **)** |
  190. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  191. | 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 **)** |
  192. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  193. | 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 **)** |
  194. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  195. | void | :ref:`set_language_support_override<class_FontFile_method_set_language_support_override>` **(** :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)** |
  196. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  197. | void | :ref:`set_script_support_override<class_FontFile_method_set_script_support_override>` **(** :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)** |
  198. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  199. | 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 **)** |
  200. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  201. | 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 **)** |
  202. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  203. | void | :ref:`set_transform<class_FontFile_method_set_transform>` **(** :ref:`int<class_int>` cache_index, :ref:`Transform2D<class_Transform2D>` transform **)** |
  204. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  205. | void | :ref:`set_variation_coordinates<class_FontFile_method_set_variation_coordinates>` **(** :ref:`int<class_int>` cache_index, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)** |
  206. +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  207. .. rst-class:: classref-section-separator
  208. ----
  209. .. rst-class:: classref-descriptions-group
  210. Property Descriptions
  211. ---------------------
  212. .. _class_FontFile_property_allow_system_fallback:
  213. .. rst-class:: classref-property
  214. :ref:`bool<class_bool>` **allow_system_fallback** = ``true``
  215. .. rst-class:: classref-property-setget
  216. - void **set_allow_system_fallback** **(** :ref:`bool<class_bool>` value **)**
  217. - :ref:`bool<class_bool>` **is_allow_system_fallback** **(** **)**
  218. If set to ``true``, system fonts can be automatically used as fallbacks.
  219. .. rst-class:: classref-item-separator
  220. ----
  221. .. _class_FontFile_property_antialiasing:
  222. .. rst-class:: classref-property
  223. :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` **antialiasing** = ``1``
  224. .. rst-class:: classref-property-setget
  225. - void **set_antialiasing** **(** :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` value **)**
  226. - :ref:`FontAntialiasing<enum_TextServer_FontAntialiasing>` **get_antialiasing** **(** **)**
  227. Font anti-aliasing mode.
  228. .. rst-class:: classref-item-separator
  229. ----
  230. .. _class_FontFile_property_data:
  231. .. rst-class:: classref-property
  232. :ref:`PackedByteArray<class_PackedByteArray>` **data** = ``PackedByteArray()``
  233. .. rst-class:: classref-property-setget
  234. - void **set_data** **(** :ref:`PackedByteArray<class_PackedByteArray>` value **)**
  235. - :ref:`PackedByteArray<class_PackedByteArray>` **get_data** **(** **)**
  236. Contents of the dynamic font source file.
  237. .. rst-class:: classref-item-separator
  238. ----
  239. .. _class_FontFile_property_fallbacks:
  240. .. rst-class:: classref-property
  241. :ref:`Font[]<class_Font>` **fallbacks** = ``[]``
  242. .. rst-class:: classref-property-setget
  243. - void **set_fallbacks** **(** :ref:`Font[]<class_Font>` value **)**
  244. - :ref:`Font[]<class_Font>` **get_fallbacks** **(** **)**
  245. Array of fallback :ref:`Font<class_Font>`\ s.
  246. .. rst-class:: classref-item-separator
  247. ----
  248. .. _class_FontFile_property_fixed_size:
  249. .. rst-class:: classref-property
  250. :ref:`int<class_int>` **fixed_size** = ``0``
  251. .. rst-class:: classref-property-setget
  252. - void **set_fixed_size** **(** :ref:`int<class_int>` value **)**
  253. - :ref:`int<class_int>` **get_fixed_size** **(** **)**
  254. Font size, used only for the bitmap fonts.
  255. .. rst-class:: classref-item-separator
  256. ----
  257. .. _class_FontFile_property_font_name:
  258. .. rst-class:: classref-property
  259. :ref:`String<class_String>` **font_name** = ``""``
  260. .. rst-class:: classref-property-setget
  261. - void **set_font_name** **(** :ref:`String<class_String>` value **)**
  262. - :ref:`String<class_String>` **get_font_name** **(** **)**
  263. Font family name.
  264. .. rst-class:: classref-item-separator
  265. ----
  266. .. _class_FontFile_property_font_stretch:
  267. .. rst-class:: classref-property
  268. :ref:`int<class_int>` **font_stretch** = ``100``
  269. .. rst-class:: classref-property-setget
  270. - void **set_font_stretch** **(** :ref:`int<class_int>` value **)**
  271. - :ref:`int<class_int>` **get_font_stretch** **(** **)**
  272. Font stretch amount, compared to a normal width. A percentage value between ``50%`` and ``200%``.
  273. .. rst-class:: classref-item-separator
  274. ----
  275. .. _class_FontFile_property_font_style:
  276. .. rst-class:: classref-property
  277. :ref:`FontStyle<enum_TextServer_FontStyle>` **font_style** = ``0``
  278. .. rst-class:: classref-property-setget
  279. - void **set_font_style** **(** :ref:`FontStyle<enum_TextServer_FontStyle>` value **)**
  280. - :ref:`FontStyle<enum_TextServer_FontStyle>` **get_font_style** **(** **)**
  281. Font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
  282. .. rst-class:: classref-item-separator
  283. ----
  284. .. _class_FontFile_property_font_weight:
  285. .. rst-class:: classref-property
  286. :ref:`int<class_int>` **font_weight** = ``400``
  287. .. rst-class:: classref-property-setget
  288. - void **set_font_weight** **(** :ref:`int<class_int>` value **)**
  289. - :ref:`int<class_int>` **get_font_weight** **(** **)**
  290. Weight (boldness) of the font. A value in the ``100...999`` range, normal font weight is ``400``, bold font weight is ``700``.
  291. .. rst-class:: classref-item-separator
  292. ----
  293. .. _class_FontFile_property_force_autohinter:
  294. .. rst-class:: classref-property
  295. :ref:`bool<class_bool>` **force_autohinter** = ``false``
  296. .. rst-class:: classref-property-setget
  297. - void **set_force_autohinter** **(** :ref:`bool<class_bool>` value **)**
  298. - :ref:`bool<class_bool>` **is_force_autohinter** **(** **)**
  299. 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).
  300. .. rst-class:: classref-item-separator
  301. ----
  302. .. _class_FontFile_property_generate_mipmaps:
  303. .. rst-class:: classref-property
  304. :ref:`bool<class_bool>` **generate_mipmaps** = ``false``
  305. .. rst-class:: classref-property-setget
  306. - void **set_generate_mipmaps** **(** :ref:`bool<class_bool>` value **)**
  307. - :ref:`bool<class_bool>` **get_generate_mipmaps** **(** **)**
  308. If set to ``true``, generate mipmaps for the font textures.
  309. .. rst-class:: classref-item-separator
  310. ----
  311. .. _class_FontFile_property_hinting:
  312. .. rst-class:: classref-property
  313. :ref:`Hinting<enum_TextServer_Hinting>` **hinting** = ``1``
  314. .. rst-class:: classref-property-setget
  315. - void **set_hinting** **(** :ref:`Hinting<enum_TextServer_Hinting>` value **)**
  316. - :ref:`Hinting<enum_TextServer_Hinting>` **get_hinting** **(** **)**
  317. Font hinting mode. Used by dynamic fonts only.
  318. .. rst-class:: classref-item-separator
  319. ----
  320. .. _class_FontFile_property_msdf_pixel_range:
  321. .. rst-class:: classref-property
  322. :ref:`int<class_int>` **msdf_pixel_range** = ``16``
  323. .. rst-class:: classref-property-setget
  324. - void **set_msdf_pixel_range** **(** :ref:`int<class_int>` value **)**
  325. - :ref:`int<class_int>` **get_msdf_pixel_range** **(** **)**
  326. 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.
  327. .. rst-class:: classref-item-separator
  328. ----
  329. .. _class_FontFile_property_msdf_size:
  330. .. rst-class:: classref-property
  331. :ref:`int<class_int>` **msdf_size** = ``48``
  332. .. rst-class:: classref-property-setget
  333. - void **set_msdf_size** **(** :ref:`int<class_int>` value **)**
  334. - :ref:`int<class_int>` **get_msdf_size** **(** **)**
  335. 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.
  336. .. rst-class:: classref-item-separator
  337. ----
  338. .. _class_FontFile_property_multichannel_signed_distance_field:
  339. .. rst-class:: classref-property
  340. :ref:`bool<class_bool>` **multichannel_signed_distance_field** = ``false``
  341. .. rst-class:: classref-property-setget
  342. - void **set_multichannel_signed_distance_field** **(** :ref:`bool<class_bool>` value **)**
  343. - :ref:`bool<class_bool>` **is_multichannel_signed_distance_field** **(** **)**
  344. 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.
  345. \ **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.
  346. \ **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.
  347. .. rst-class:: classref-item-separator
  348. ----
  349. .. _class_FontFile_property_opentype_feature_overrides:
  350. .. rst-class:: classref-property
  351. :ref:`Dictionary<class_Dictionary>` **opentype_feature_overrides** = ``{}``
  352. .. rst-class:: classref-property-setget
  353. - void **set_opentype_feature_overrides** **(** :ref:`Dictionary<class_Dictionary>` value **)**
  354. - :ref:`Dictionary<class_Dictionary>` **get_opentype_feature_overrides** **(** **)**
  355. Font OpenType feature set override.
  356. .. rst-class:: classref-item-separator
  357. ----
  358. .. _class_FontFile_property_oversampling:
  359. .. rst-class:: classref-property
  360. :ref:`float<class_float>` **oversampling** = ``0.0``
  361. .. rst-class:: classref-property-setget
  362. - void **set_oversampling** **(** :ref:`float<class_float>` value **)**
  363. - :ref:`float<class_float>` **get_oversampling** **(** **)**
  364. Font oversampling factor. If set to ``0.0``, the global oversampling factor is used instead. Used by dynamic fonts only (MSDF fonts ignore oversampling).
  365. .. rst-class:: classref-item-separator
  366. ----
  367. .. _class_FontFile_property_style_name:
  368. .. rst-class:: classref-property
  369. :ref:`String<class_String>` **style_name** = ``""``
  370. .. rst-class:: classref-property-setget
  371. - void **set_font_style_name** **(** :ref:`String<class_String>` value **)**
  372. - :ref:`String<class_String>` **get_font_style_name** **(** **)**
  373. Font style name.
  374. .. rst-class:: classref-item-separator
  375. ----
  376. .. _class_FontFile_property_subpixel_positioning:
  377. .. rst-class:: classref-property
  378. :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **subpixel_positioning** = ``1``
  379. .. rst-class:: classref-property-setget
  380. - void **set_subpixel_positioning** **(** :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` value **)**
  381. - :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **get_subpixel_positioning** **(** **)**
  382. 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.
  383. .. rst-class:: classref-section-separator
  384. ----
  385. .. rst-class:: classref-descriptions-group
  386. Method Descriptions
  387. -------------------
  388. .. _class_FontFile_method_clear_cache:
  389. .. rst-class:: classref-method
  390. void **clear_cache** **(** **)**
  391. Removes all font cache entries.
  392. .. rst-class:: classref-item-separator
  393. ----
  394. .. _class_FontFile_method_clear_glyphs:
  395. .. rst-class:: classref-method
  396. void **clear_glyphs** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  397. Removes all rendered glyphs information from the cache entry.
  398. \ **Note:** This function will not remove textures associated with the glyphs, use :ref:`remove_texture<class_FontFile_method_remove_texture>` to remove them manually.
  399. .. rst-class:: classref-item-separator
  400. ----
  401. .. _class_FontFile_method_clear_kerning_map:
  402. .. rst-class:: classref-method
  403. void **clear_kerning_map** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)**
  404. Removes all kerning overrides.
  405. .. rst-class:: classref-item-separator
  406. ----
  407. .. _class_FontFile_method_clear_size_cache:
  408. .. rst-class:: classref-method
  409. void **clear_size_cache** **(** :ref:`int<class_int>` cache_index **)**
  410. Removes all font sizes from the cache entry
  411. .. rst-class:: classref-item-separator
  412. ----
  413. .. _class_FontFile_method_clear_textures:
  414. .. rst-class:: classref-method
  415. void **clear_textures** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  416. Removes all textures from font cache entry.
  417. \ **Note:** This function will not remove glyphs associated with the texture, use :ref:`remove_glyph<class_FontFile_method_remove_glyph>` to remove them manually.
  418. .. rst-class:: classref-item-separator
  419. ----
  420. .. _class_FontFile_method_get_cache_ascent:
  421. .. rst-class:: classref-method
  422. :ref:`float<class_float>` **get_cache_ascent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  423. Returns the font ascent (number of pixels above the baseline).
  424. .. rst-class:: classref-item-separator
  425. ----
  426. .. _class_FontFile_method_get_cache_count:
  427. .. rst-class:: classref-method
  428. :ref:`int<class_int>` **get_cache_count** **(** **)** |const|
  429. Returns number of the font cache entries.
  430. .. rst-class:: classref-item-separator
  431. ----
  432. .. _class_FontFile_method_get_cache_descent:
  433. .. rst-class:: classref-method
  434. :ref:`float<class_float>` **get_cache_descent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  435. .. container:: contribute
  436. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  437. .. rst-class:: classref-item-separator
  438. ----
  439. .. _class_FontFile_method_get_cache_scale:
  440. .. rst-class:: classref-method
  441. :ref:`float<class_float>` **get_cache_scale** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  442. .. container:: contribute
  443. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  444. .. rst-class:: classref-item-separator
  445. ----
  446. .. _class_FontFile_method_get_cache_underline_position:
  447. .. rst-class:: classref-method
  448. :ref:`float<class_float>` **get_cache_underline_position** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  449. .. container:: contribute
  450. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  451. .. rst-class:: classref-item-separator
  452. ----
  453. .. _class_FontFile_method_get_cache_underline_thickness:
  454. .. rst-class:: classref-method
  455. :ref:`float<class_float>` **get_cache_underline_thickness** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  456. .. container:: contribute
  457. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  458. .. rst-class:: classref-item-separator
  459. ----
  460. .. _class_FontFile_method_get_embolden:
  461. .. rst-class:: classref-method
  462. :ref:`float<class_float>` **get_embolden** **(** :ref:`int<class_int>` cache_index **)** |const|
  463. Returns embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
  464. .. rst-class:: classref-item-separator
  465. ----
  466. .. _class_FontFile_method_get_face_index:
  467. .. rst-class:: classref-method
  468. :ref:`int<class_int>` **get_face_index** **(** :ref:`int<class_int>` cache_index **)** |const|
  469. Recturns an active face index in the TrueType / OpenType collection.
  470. .. rst-class:: classref-item-separator
  471. ----
  472. .. _class_FontFile_method_get_glyph_advance:
  473. .. rst-class:: classref-method
  474. :ref:`Vector2<class_Vector2>` **get_glyph_advance** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const|
  475. Returns glyph advance (offset of the next glyph).
  476. \ **Note:** Advance for glyphs outlines is the same as the base glyph advance and is not saved.
  477. .. rst-class:: classref-item-separator
  478. ----
  479. .. _class_FontFile_method_get_glyph_index:
  480. .. rst-class:: classref-method
  481. :ref:`int<class_int>` **get_glyph_index** **(** :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |const|
  482. Returns the glyph index of a ``char``, optionally modified by the ``variation_selector``.
  483. .. rst-class:: classref-item-separator
  484. ----
  485. .. _class_FontFile_method_get_glyph_list:
  486. .. rst-class:: classref-method
  487. :ref:`PackedInt32Array<class_PackedInt32Array>` **get_glyph_list** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const|
  488. Returns list of rendered glyphs in the cache entry.
  489. .. rst-class:: classref-item-separator
  490. ----
  491. .. _class_FontFile_method_get_glyph_offset:
  492. .. rst-class:: classref-method
  493. :ref:`Vector2<class_Vector2>` **get_glyph_offset** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  494. Returns glyph offset from the baseline.
  495. .. rst-class:: classref-item-separator
  496. ----
  497. .. _class_FontFile_method_get_glyph_size:
  498. .. rst-class:: classref-method
  499. :ref:`Vector2<class_Vector2>` **get_glyph_size** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|
  500. Returns glyph size.
  501. .. rst-class:: classref-item-separator
  502. ----
  503. .. _class_FontFile_method_get_glyph_texture_idx:
  504. .. rst-class:: classref-method
  505. :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|
  506. Returns index of the cache texture containing the glyph.
  507. .. rst-class:: classref-item-separator
  508. ----
  509. .. _class_FontFile_method_get_glyph_uv_rect:
  510. .. rst-class:: classref-method
  511. :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|
  512. Returns rectangle in the cache texture containing the glyph.
  513. .. rst-class:: classref-item-separator
  514. ----
  515. .. _class_FontFile_method_get_kerning:
  516. .. rst-class:: classref-method
  517. :ref:`Vector2<class_Vector2>` **get_kerning** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |const|
  518. Returns kerning for the pair of glyphs.
  519. .. rst-class:: classref-item-separator
  520. ----
  521. .. _class_FontFile_method_get_kerning_list:
  522. .. rst-class:: classref-method
  523. :ref:`Vector2i[]<class_Vector2i>` **get_kerning_list** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size **)** |const|
  524. Returns list of the kerning overrides.
  525. .. rst-class:: classref-item-separator
  526. ----
  527. .. _class_FontFile_method_get_language_support_override:
  528. .. rst-class:: classref-method
  529. :ref:`bool<class_bool>` **get_language_support_override** **(** :ref:`String<class_String>` language **)** |const|
  530. Returns ``true`` if support override is enabled for the ``language``.
  531. .. rst-class:: classref-item-separator
  532. ----
  533. .. _class_FontFile_method_get_language_support_overrides:
  534. .. rst-class:: classref-method
  535. :ref:`PackedStringArray<class_PackedStringArray>` **get_language_support_overrides** **(** **)** |const|
  536. Returns list of language support overrides.
  537. .. rst-class:: classref-item-separator
  538. ----
  539. .. _class_FontFile_method_get_script_support_override:
  540. .. rst-class:: classref-method
  541. :ref:`bool<class_bool>` **get_script_support_override** **(** :ref:`String<class_String>` script **)** |const|
  542. Returns ``true`` if support override is enabled for the ``script``.
  543. .. rst-class:: classref-item-separator
  544. ----
  545. .. _class_FontFile_method_get_script_support_overrides:
  546. .. rst-class:: classref-method
  547. :ref:`PackedStringArray<class_PackedStringArray>` **get_script_support_overrides** **(** **)** |const|
  548. Returns list of script support overrides.
  549. .. rst-class:: classref-item-separator
  550. ----
  551. .. _class_FontFile_method_get_size_cache_list:
  552. .. rst-class:: classref-method
  553. :ref:`Vector2i[]<class_Vector2i>` **get_size_cache_list** **(** :ref:`int<class_int>` cache_index **)** |const|
  554. Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
  555. .. rst-class:: classref-item-separator
  556. ----
  557. .. _class_FontFile_method_get_texture_count:
  558. .. rst-class:: classref-method
  559. :ref:`int<class_int>` **get_texture_count** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)** |const|
  560. Returns number of textures used by font cache entry.
  561. .. rst-class:: classref-item-separator
  562. ----
  563. .. _class_FontFile_method_get_texture_image:
  564. .. rst-class:: classref-method
  565. :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|
  566. Returns a copy of the font cache texture image.
  567. .. rst-class:: classref-item-separator
  568. ----
  569. .. _class_FontFile_method_get_texture_offsets:
  570. .. rst-class:: classref-method
  571. :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|
  572. Returns a copy of the array containing glyph packing data.
  573. .. rst-class:: classref-item-separator
  574. ----
  575. .. _class_FontFile_method_get_transform:
  576. .. rst-class:: classref-method
  577. :ref:`Transform2D<class_Transform2D>` **get_transform** **(** :ref:`int<class_int>` cache_index **)** |const|
  578. Returns 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.
  579. .. rst-class:: classref-item-separator
  580. ----
  581. .. _class_FontFile_method_get_variation_coordinates:
  582. .. rst-class:: classref-method
  583. :ref:`Dictionary<class_Dictionary>` **get_variation_coordinates** **(** :ref:`int<class_int>` cache_index **)** |const|
  584. 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.
  585. .. rst-class:: classref-item-separator
  586. ----
  587. .. _class_FontFile_method_load_bitmap_font:
  588. .. rst-class:: classref-method
  589. :ref:`Error<enum_@GlobalScope_Error>` **load_bitmap_font** **(** :ref:`String<class_String>` path **)**
  590. Loads an AngelCode BMFont (.fnt, .font) bitmap font from file ``path``.
  591. \ **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.
  592. .. rst-class:: classref-item-separator
  593. ----
  594. .. _class_FontFile_method_load_dynamic_font:
  595. .. rst-class:: classref-method
  596. :ref:`Error<enum_@GlobalScope_Error>` **load_dynamic_font** **(** :ref:`String<class_String>` path **)**
  597. Loads a TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) or Type 1 (.pfb, .pfm) dynamic font from file ``path``.
  598. \ **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.
  599. .. rst-class:: classref-item-separator
  600. ----
  601. .. _class_FontFile_method_remove_cache:
  602. .. rst-class:: classref-method
  603. void **remove_cache** **(** :ref:`int<class_int>` cache_index **)**
  604. Removes specified font cache entry.
  605. .. rst-class:: classref-item-separator
  606. ----
  607. .. _class_FontFile_method_remove_glyph:
  608. .. rst-class:: classref-method
  609. void **remove_glyph** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)**
  610. Removes specified rendered glyph information from the cache entry.
  611. \ **Note:** This function will not remove textures associated with the glyphs, use :ref:`remove_texture<class_FontFile_method_remove_texture>` to remove them manually.
  612. .. rst-class:: classref-item-separator
  613. ----
  614. .. _class_FontFile_method_remove_kerning:
  615. .. rst-class:: classref-method
  616. void **remove_kerning** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)**
  617. Removes kerning override for the pair of glyphs.
  618. .. rst-class:: classref-item-separator
  619. ----
  620. .. _class_FontFile_method_remove_language_support_override:
  621. .. rst-class:: classref-method
  622. void **remove_language_support_override** **(** :ref:`String<class_String>` language **)**
  623. Remove language support override.
  624. .. rst-class:: classref-item-separator
  625. ----
  626. .. _class_FontFile_method_remove_script_support_override:
  627. .. rst-class:: classref-method
  628. void **remove_script_support_override** **(** :ref:`String<class_String>` script **)**
  629. Removes script support override.
  630. .. rst-class:: classref-item-separator
  631. ----
  632. .. _class_FontFile_method_remove_size_cache:
  633. .. rst-class:: classref-method
  634. void **remove_size_cache** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size **)**
  635. Removes specified font size from the cache entry.
  636. .. rst-class:: classref-item-separator
  637. ----
  638. .. _class_FontFile_method_remove_texture:
  639. .. rst-class:: classref-method
  640. void **remove_texture** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)**
  641. Removes specified texture from the cache entry.
  642. \ **Note:** This function will not remove glyphs associated with the texture. Remove them manually using :ref:`remove_glyph<class_FontFile_method_remove_glyph>`.
  643. .. rst-class:: classref-item-separator
  644. ----
  645. .. _class_FontFile_method_render_glyph:
  646. .. rst-class:: classref-method
  647. void **render_glyph** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)**
  648. Renders specified glyph to the font cache texture.
  649. .. rst-class:: classref-item-separator
  650. ----
  651. .. _class_FontFile_method_render_range:
  652. .. rst-class:: classref-method
  653. void **render_range** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)**
  654. Renders the range of characters to the font cache texture.
  655. .. rst-class:: classref-item-separator
  656. ----
  657. .. _class_FontFile_method_set_cache_ascent:
  658. .. rst-class:: classref-method
  659. void **set_cache_ascent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)**
  660. .. container:: contribute
  661. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  662. .. rst-class:: classref-item-separator
  663. ----
  664. .. _class_FontFile_method_set_cache_descent:
  665. .. rst-class:: classref-method
  666. void **set_cache_descent** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)**
  667. .. container:: contribute
  668. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  669. .. rst-class:: classref-item-separator
  670. ----
  671. .. _class_FontFile_method_set_cache_scale:
  672. .. rst-class:: classref-method
  673. void **set_cache_scale** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)**
  674. .. container:: contribute
  675. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  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. .. container:: contribute
  682. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  683. .. rst-class:: classref-item-separator
  684. ----
  685. .. _class_FontFile_method_set_cache_underline_thickness:
  686. .. rst-class:: classref-method
  687. void **set_cache_underline_thickness** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)**
  688. .. container:: contribute
  689. There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
  690. .. rst-class:: classref-item-separator
  691. ----
  692. .. _class_FontFile_method_set_embolden:
  693. .. rst-class:: classref-method
  694. void **set_embolden** **(** :ref:`int<class_int>` cache_index, :ref:`float<class_float>` strength **)**
  695. Sets embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
  696. .. rst-class:: classref-item-separator
  697. ----
  698. .. _class_FontFile_method_set_face_index:
  699. .. rst-class:: classref-method
  700. void **set_face_index** **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` face_index **)**
  701. Sets an active face index in the TrueType / OpenType collection.
  702. .. rst-class:: classref-item-separator
  703. ----
  704. .. _class_FontFile_method_set_glyph_advance:
  705. .. rst-class:: classref-method
  706. 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 **)**
  707. Sets glyph advance (offset of the next glyph).
  708. \ **Note:** Advance for glyphs outlines is the same as the base glyph advance and is not saved.
  709. .. rst-class:: classref-item-separator
  710. ----
  711. .. _class_FontFile_method_set_glyph_offset:
  712. .. rst-class:: classref-method
  713. 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 **)**
  714. Sets glyph offset from the baseline.
  715. .. rst-class:: classref-item-separator
  716. ----
  717. .. _class_FontFile_method_set_glyph_size:
  718. .. rst-class:: classref-method
  719. 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 **)**
  720. Sets glyph size.
  721. .. rst-class:: classref-item-separator
  722. ----
  723. .. _class_FontFile_method_set_glyph_texture_idx:
  724. .. rst-class:: classref-method
  725. 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 **)**
  726. Sets index of the cache texture containing the glyph.
  727. .. rst-class:: classref-item-separator
  728. ----
  729. .. _class_FontFile_method_set_glyph_uv_rect:
  730. .. rst-class:: classref-method
  731. 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 **)**
  732. Sets rectangle in the cache texture containing the glyph.
  733. .. rst-class:: classref-item-separator
  734. ----
  735. .. _class_FontFile_method_set_kerning:
  736. .. rst-class:: classref-method
  737. 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 **)**
  738. Sets kerning for the pair of glyphs.
  739. .. rst-class:: classref-item-separator
  740. ----
  741. .. _class_FontFile_method_set_language_support_override:
  742. .. rst-class:: classref-method
  743. void **set_language_support_override** **(** :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)**
  744. Adds override for :ref:`Font.is_language_supported<class_Font_method_is_language_supported>`.
  745. .. rst-class:: classref-item-separator
  746. ----
  747. .. _class_FontFile_method_set_script_support_override:
  748. .. rst-class:: classref-method
  749. void **set_script_support_override** **(** :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)**
  750. Adds override for :ref:`Font.is_script_supported<class_Font_method_is_script_supported>`.
  751. .. rst-class:: classref-item-separator
  752. ----
  753. .. _class_FontFile_method_set_texture_image:
  754. .. rst-class:: classref-method
  755. 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 **)**
  756. Sets font cache texture image.
  757. .. rst-class:: classref-item-separator
  758. ----
  759. .. _class_FontFile_method_set_texture_offsets:
  760. .. rst-class:: classref-method
  761. 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 **)**
  762. Sets array containing glyph packing data.
  763. .. rst-class:: classref-item-separator
  764. ----
  765. .. _class_FontFile_method_set_transform:
  766. .. rst-class:: classref-method
  767. void **set_transform** **(** :ref:`int<class_int>` cache_index, :ref:`Transform2D<class_Transform2D>` transform **)**
  768. Sets 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.
  769. .. rst-class:: classref-item-separator
  770. ----
  771. .. _class_FontFile_method_set_variation_coordinates:
  772. .. rst-class:: classref-method
  773. void **set_variation_coordinates** **(** :ref:`int<class_int>` cache_index, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)**
  774. 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.
  775. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  776. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  777. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  778. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  779. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  780. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`