FontFile
Наследует: Font < Resource < RefCounted < Object
Содержит исходные данные шрифта и кэш предварительно отрисованных глифов, импортированных из динамического или растрового шрифта.
Описание
FontFile содержит набор глифов для представления символов Unicode, импортированных из файла шрифта, а также кэш растрированных глифов и набор резервных Font-ов для использования.
Используйте FontVariation для доступа к определенной вариации шрифта OpenType, создания имитации жирного/наклонного начертания и рисования строк текста.
Для более сложной обработки текста используйте FontVariation вместе с TextLine или TextParagraph.
Поддерживаемые форматы шрифтов:
Динамический импортер шрифтов: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm).
Импортер растровых шрифтов: AngelCode BMFont (.fnt, .font), текстовые и двоичные (версия 3) форматы.
Импортер шрифтов моноширинных изображений: все поддерживаемые форматы изображений.
Примечание: Символ — это символ, который представляет элемент (букву, цифру и т. д.) абстрактным образом.
Примечание: Глиф — это битовая карта или форма, используемая для рисования одного или нескольких символов в зависимости от контекста. Индексы глифов привязаны к определенному источнику данных шрифта.
Примечание: Если ни один из источников данных шрифта не содержит глифов для символа, используемого в строке, рассматриваемый символ будет заменен полем, отображающим его шестнадцатеричный код.
var f = load("res://BarlowCondensed-Bold.ttf")
$Label.add_theme_font_override("font", f)
$Label.add_theme_font_size_override("font_size", 64)
var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf");
GetNode("Label").AddThemeFontOverride("font", f);
GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
BitField[FontStyle] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
void |
|
void |
clear_glyphs(cache_index: int, size: Vector2i) |
void |
clear_kerning_map(cache_index: int, size: int) |
void |
clear_size_cache(cache_index: int) |
void |
clear_textures(cache_index: int, size: Vector2i) |
get_cache_ascent(cache_index: int, size: int) const |
|
get_cache_count() const |
|
get_cache_descent(cache_index: int, size: int) const |
|
get_cache_scale(cache_index: int, size: int) const |
|
get_cache_underline_position(cache_index: int, size: int) const |
|
get_cache_underline_thickness(cache_index: int, size: int) const |
|
get_char_from_glyph_index(size: int, glyph_index: int) const |
|
get_embolden(cache_index: int) const |
|
get_extra_baseline_offset(cache_index: int) const |
|
get_extra_spacing(cache_index: int, spacing: SpacingType) const |
|
get_face_index(cache_index: int) const |
|
get_glyph_advance(cache_index: int, size: int, glyph: int) const |
|
get_glyph_index(size: int, char: int, variation_selector: int) const |
|
get_glyph_list(cache_index: int, size: Vector2i) const |
|
get_glyph_offset(cache_index: int, size: Vector2i, glyph: int) const |
|
get_glyph_size(cache_index: int, size: Vector2i, glyph: int) const |
|
get_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int) const |
|
get_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int) const |
|
get_kerning(cache_index: int, size: int, glyph_pair: Vector2i) const |
|
get_kerning_list(cache_index: int, size: int) const |
|
get_language_support_override(language: String) const |
|
get_language_support_overrides() const |
|
get_script_support_override(script: String) const |
|
get_script_support_overrides() const |
|
get_size_cache_list(cache_index: int) const |
|
get_texture_count(cache_index: int, size: Vector2i) const |
|
get_texture_image(cache_index: int, size: Vector2i, texture_index: int) const |
|
get_texture_offsets(cache_index: int, size: Vector2i, texture_index: int) const |
|
get_transform(cache_index: int) const |
|
get_variation_coordinates(cache_index: int) const |
|
load_bitmap_font(path: String) |
|
load_dynamic_font(path: String) |
|
void |
remove_cache(cache_index: int) |
void |
remove_glyph(cache_index: int, size: Vector2i, glyph: int) |
void |
remove_kerning(cache_index: int, size: int, glyph_pair: Vector2i) |
void |
remove_language_support_override(language: String) |
void |
remove_script_support_override(script: String) |
void |
remove_size_cache(cache_index: int, size: Vector2i) |
void |
remove_texture(cache_index: int, size: Vector2i, texture_index: int) |
void |
render_glyph(cache_index: int, size: Vector2i, index: int) |
void |
render_range(cache_index: int, size: Vector2i, start: int, end: int) |
void |
set_cache_ascent(cache_index: int, size: int, ascent: float) |
void |
set_cache_descent(cache_index: int, size: int, descent: float) |
void |
set_cache_scale(cache_index: int, size: int, scale: float) |
void |
set_cache_underline_position(cache_index: int, size: int, underline_position: float) |
void |
set_cache_underline_thickness(cache_index: int, size: int, underline_thickness: float) |
void |
set_embolden(cache_index: int, strength: float) |
void |
set_extra_baseline_offset(cache_index: int, baseline_offset: float) |
void |
set_extra_spacing(cache_index: int, spacing: SpacingType, value: int) |
void |
set_face_index(cache_index: int, face_index: int) |
void |
set_glyph_advance(cache_index: int, size: int, glyph: int, advance: Vector2) |
void |
set_glyph_offset(cache_index: int, size: Vector2i, glyph: int, offset: Vector2) |
void |
set_glyph_size(cache_index: int, size: Vector2i, glyph: int, gl_size: Vector2) |
void |
set_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int, texture_idx: int) |
void |
set_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int, uv_rect: Rect2) |
void |
set_kerning(cache_index: int, size: int, glyph_pair: Vector2i, kerning: Vector2) |
void |
set_language_support_override(language: String, supported: bool) |
void |
set_script_support_override(script: String, supported: bool) |
void |
set_texture_image(cache_index: int, size: Vector2i, texture_index: int, image: Image) |
void |
set_texture_offsets(cache_index: int, size: Vector2i, texture_index: int, offset: PackedInt32Array) |
void |
set_transform(cache_index: int, transform: Transform2D) |
void |
set_variation_coordinates(cache_index: int, variation_coordinates: Dictionary) |
Описания свойств
bool allow_system_fallback = true 🔗
Если задано значение true, системные шрифты могут автоматически использоваться в качестве резервных.
FontAntialiasing antialiasing = 1 🔗
void set_antialiasing(value: FontAntialiasing)
FontAntialiasing get_antialiasing()
Способ сглаживания шрифтов.
PackedByteArray data = PackedByteArray() 🔗
void set_data(value: PackedByteArray)
PackedByteArray get_data()
Содержимое исходного файла динамического шрифта.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedByteArray for more details.
bool disable_embedded_bitmaps = true 🔗
Если задано значение true, загрузка встроенного растрового изображения шрифта отключена (только растровые и цветные шрифты игнорируют это свойство).
Размер шрифта, используется только для растровых шрифтов.
FixedSizeScaleMode fixed_size_scale_mode = 0 🔗
void set_fixed_size_scale_mode(value: FixedSizeScaleMode)
FixedSizeScaleMode get_fixed_size_scale_mode()
Режим масштабирования, используемый только для растровых шрифтов с fixed_size больше нуля.
Название семейства шрифтов.
Степень растяжения шрифта по сравнению с нормальной шириной. Процентное значение между 50% и 200%.
BitField[FontStyle] font_style = 0 🔗
Флаги стилей шрифта.
Насыщенность (жирность) шрифта. Значение в диапазоне 100...999, нормальная насыщенность шрифта 400, полужирная насыщенность шрифта 700.
bool force_autohinter = false 🔗
Если установлено значение true, поддерживается и предпочтительнее встроенного хинтинга шрифта. Используется только динамическими шрифтами (шрифты MSDF не поддерживают хинтинг).
bool generate_mipmaps = false 🔗
Если установлено значение true, будут сгенерированы MIP-текстуры для текстур шрифтов.
Режим подсказки шрифта. Используется только для шрифтов диктора.
bool keep_rounding_remainders = true 🔗
Если установлено значение true, при выравнивании глифов по границам пикселей остатки округления накапливаются для обеспечения более равномерного распределения глифов. Этот параметр не действует, если включено субпиксельное позиционирование.
bool modulate_color_glyphs = false 🔗
Если установлено значение true, цветовая модуляция применяется при рисовании цветных глифов, в противном случае она применяется только к монохромным глифам.
Ширина диапазона вокруг фигуры между минимальным и максимальным представимым расстоянием со знаком. При использовании контуров шрифта msdf_pixel_range должен быть установлен как минимум в дважды размера самого большого контура шрифта. Значение msdf_pixel_range по умолчанию 16 позволяет контурам размером до 8 выглядеть правильно.
Исходный размер шрифта, используемый для генерации текстур MSDF. Более высокие значения обеспечивают большую точность, но медленнее отрисовываются и требуют больше памяти. Увеличивайте это значение только в том случае, если вы заметили видимую неточность в отрисовке глифов.
bool multichannel_signed_distance_field = false 🔗
void set_multichannel_signed_distance_field(value: bool)
bool is_multichannel_signed_distance_field()
Если установлено значение true, глифы всех размеров визуализируются с использованием одного многоканального поля знакового расстояния (MSDF), сгенерированного из динамических векторных данных шрифта. Поскольку этот подход не полагается на растеризацию шрифта каждый раз при изменении его размера, это позволяет изменять размер шрифта в реальном времени без потери производительности. Текст также не будет выглядеть зернистым для Control, которые масштабируются в уменьшенном масштабе (или для Label3D, просматриваемых с большого расстояния). Недостатком является то, что хинтинг шрифтов недоступен в MSDF. Отсутствие хинтингов шрифтов может привести к менее четким и менее читаемым шрифтам при малых размерах.
Примечание: При использовании контуров шрифтов msdf_pixel_range должен быть установлен как минимум в двойной размер самого большого контура шрифта.
Примечание: Рендеринг шрифтов MSDF некорректно визуализирует глифы с перекрывающимися фигурами. Перекрывающиеся формы недопустимы по стандарту OpenType, но все еще часто встречаются во многих файлах шрифтов, особенно в тех, которые конвертируются Google Fonts. Чтобы избежать проблем с перекрывающимися глифами, рассмотрите возможность загрузки файла шрифта непосредственно из типографского цеха, а не полагайтесь на Google Fonts.
Dictionary opentype_feature_overrides = {} 🔗
void set_opentype_feature_overrides(value: Dictionary)
Dictionary get_opentype_feature_overrides()
Переопределение набора функций шрифта OpenType.
Положительное значение переопределяет коэффициент передискретизации области просмотра, в которой используется этот шрифт. См. Viewport.oversampling. Это значение не переопределяет параметр oversampling методов draw_*.
Имя стиля шрифта.
SubpixelPositioning subpixel_positioning = 1 🔗
void set_subpixel_positioning(value: SubpixelPositioning)
SubpixelPositioning get_subpixel_positioning()
Режим субпиксельного позиционирования глифа шрифта. Субпиксельное позиционирование обеспечивает более четкий текст и лучший кернинг для шрифтов меньшего размера за счет более высокого использования памяти и более низкой скорости растеризации шрифта. Используйте TextServer.SUBPIXEL_POSITIONING_AUTO для автоматического включения на основе размера шрифта.
Описания метода
void clear_cache() 🔗
Удаляет все записи кэша шрифтов.
void clear_glyphs(cache_index: int, size: Vector2i) 🔗
Удаляет всю визуализированную информацию о глифах из записи кэша.
Примечание: Эта функция не удалит текстуры, связанные с глифами, используйте remove_texture(), чтобы удалить их вручную.
void clear_kerning_map(cache_index: int, size: int) 🔗
Удаляет все переопределения кернинга.
void clear_size_cache(cache_index: int) 🔗
Удаляет все размеры шрифтов из записи кэша.
void clear_textures(cache_index: int, size: Vector2i) 🔗
Удаляет все текстуры из записи кэша шрифтов.
Примечание: Эта функция не удалит глифы, связанные с текстурой, используйте remove_glyph(), чтобы удалить их вручную.
float get_cache_ascent(cache_index: int, size: int) const 🔗
Возвращает высоту шрифта (количество пикселей над базовой линией).
Возвращает количество записей кэша шрифтов.
float get_cache_descent(cache_index: int, size: int) const 🔗
Возвращает спуск шрифта (количество пикселей ниже базовой линии).
float get_cache_scale(cache_index: int, size: int) const 🔗
Возвращает коэффициент масштабирования цветного растрового шрифта.
float get_cache_underline_position(cache_index: int, size: int) const 🔗
Возвращает смещение подчеркивания в пикселях относительно базовой линии.
float get_cache_underline_thickness(cache_index: int, size: int) const 🔗
Возвращает толщину подчеркивания в пикселях.
int get_char_from_glyph_index(size: int, glyph_index: int) const 🔗
Возвращает код символа, связанный с glyph_index, или 0, если glyph_index недействителен. См. get_glyph_index().
float get_embolden(cache_index: int) const 🔗
Возвращает жирность, если не равно нулю, жирнее контуры шрифта. Отрицательные значения уменьшают толщину контура.
float get_extra_baseline_offset(cache_index: int) const 🔗
Возвращает дополнительное смещение базовой линии (как долю высоты шрифта).
int get_extra_spacing(cache_index: int, spacing: SpacingType) const 🔗
Возвращает интервал для spacing в пикселях (не относительно размера шрифта).
int get_face_index(cache_index: int) const 🔗
Возвращает активный индекс начертания в коллекции TrueType / OpenType.
Vector2 get_glyph_advance(cache_index: int, size: int, glyph: int) const 🔗
Возвращает продвижение глифа (смещение следующего глифа).
Примечание: Продвижение для контуров глифов такое же, как и базовое продвижение глифа, и не сохраняется.
int get_glyph_index(size: int, char: int, variation_selector: int) const 🔗
Возвращает индекс глифа char, при необходимости измененный variation_selector.
PackedInt32Array get_glyph_list(cache_index: int, size: Vector2i) const 🔗
Возвращает список отрисованных глифов в записи кэша.
Vector2 get_glyph_offset(cache_index: int, size: Vector2i, glyph: int) const 🔗
Возвращает смещение глифа от базовой линии.
Vector2 get_glyph_size(cache_index: int, size: Vector2i, glyph: int) const 🔗
Возвращает размер глифа.
int get_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int) const 🔗
Возвращает индекс кэшированной текстуры, содержащей глиф.
Rect2 get_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int) const 🔗
Возвращает прямоугольник в кэшированной текстуре, содержащий глиф.
Vector2 get_kerning(cache_index: int, size: int, glyph_pair: Vector2i) const 🔗
Возвращает кернинг для пары глифов.
Array[Vector2i] get_kerning_list(cache_index: int, size: int) const 🔗
Возвращает список переопределений кернинга.
bool get_language_support_override(language: String) const 🔗
Возвращает true, если для language включена поддержка переопределения.
PackedStringArray get_language_support_overrides() const 🔗
Возвращает список переопределений поддержки языка.
bool get_script_support_override(script: String) const 🔗
Возвращает true, если для script включена поддержка переопределения.
PackedStringArray get_script_support_overrides() const 🔗
Возвращает список переопределений поддержки скриптов.
Array[Vector2i] get_size_cache_list(cache_index: int) const 🔗
Возвращает список размеров шрифтов в кэше. Каждый размер — Vector2i с размером шрифта и размером контура.
int get_texture_count(cache_index: int, size: Vector2i) const 🔗
Возвращает количество текстур, используемых записью кэша шрифтов.
Image get_texture_image(cache_index: int, size: Vector2i, texture_index: int) const 🔗
Возвращает копию изображения текстуры кэша шрифта.
PackedInt32Array get_texture_offsets(cache_index: int, size: Vector2i, texture_index: int) const 🔗
Возвращает копию массива, содержащего данные упаковки глифов.
Transform2D get_transform(cache_index: int) const 🔗
Возвращает 2D-преобразование, применяемое к контурам шрифта, может использоваться для наклона, переворачивания и поворота глифов.
Dictionary get_variation_coordinates(cache_index: int) const 🔗
Возвращает координаты вариации для указанной записи кэша шрифта. См. Font.get_supported_variation_list() для получения дополнительной информации.
Error load_bitmap_font(path: String) 🔗
Загружает растровый шрифт AngelCode BMFont (.fnt, .font) из файла path.
Предупреждение: Этот метод следует использовать только в редакторе или в случаях, когда вам нужно загрузить внешние шрифты во время выполнения, например шрифты, расположенные в каталоге user://.
Error load_dynamic_font(path: String) 🔗
Загружает динамический шрифт TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) или Type 1 (.pfb, .pfm) из файла path.
Предупреждение: Этот метод следует использовать только в редакторе или в случаях, когда вам нужно загрузить внешние шрифты во время выполнения, например шрифты, расположенные в каталоге user://.
void remove_cache(cache_index: int) 🔗
Удаляет указанную запись кэша шрифтов.
void remove_glyph(cache_index: int, size: Vector2i, glyph: int) 🔗
Удаляет указанную визуализированную информацию о глифах из записи кэша.
Примечание: Эта функция не удалит текстуры, связанные с глифами, используйте remove_texture(), чтобы удалить их вручную.
void remove_kerning(cache_index: int, size: int, glyph_pair: Vector2i) 🔗
Удаляет переопределение кернинга для пары глифов.
void remove_language_support_override(language: String) 🔗
Удалить переопределение языковой поддержки.
void remove_script_support_override(script: String) 🔗
Удаляет переопределение поддержки скриптов.
void remove_size_cache(cache_index: int, size: Vector2i) 🔗
Удаляет указанный размер шрифта из записи кэша.
void remove_texture(cache_index: int, size: Vector2i, texture_index: int) 🔗
Удаляет указанную текстуру из записи кэша.
Примечание: Эта функция не удалит глифы, связанные с текстурой. Удалите их вручную с помощью remove_glyph().
void render_glyph(cache_index: int, size: Vector2i, index: int) 🔗
Отображает указанный глиф в текстуре кэша шрифта.
void render_range(cache_index: int, size: Vector2i, start: int, end: int) 🔗
Отображает диапазон символов в текстуру кэша шрифта.
void set_cache_ascent(cache_index: int, size: int, ascent: float) 🔗
Устанавливает высоту шрифта (количество пикселей над базовой линией).
void set_cache_descent(cache_index: int, size: int, descent: float) 🔗
Устанавливает спуск шрифта (количество пикселей ниже базовой линии).
void set_cache_scale(cache_index: int, size: int, scale: float) 🔗
Устанавливает коэффициент масштабирования цветного растрового шрифта.
void set_cache_underline_position(cache_index: int, size: int, underline_position: float) 🔗
Устанавливает смещение подчеркивания в пикселях относительно базовой линии.
void set_cache_underline_thickness(cache_index: int, size: int, underline_thickness: float) 🔗
Задает толщину подчеркивания в пикселях.
void set_embolden(cache_index: int, strength: float) 🔗
Устанавливает жирность, если не равно нулю, жирнее контуры шрифта. Отрицательные значения уменьшают толщину контура.
void set_extra_baseline_offset(cache_index: int, baseline_offset: float) 🔗
Устанавливает дополнительное смещение базовой линии (как часть высоты шрифта).
void set_extra_spacing(cache_index: int, spacing: SpacingType, value: int) 🔗
Устанавливает интервал для spacing на value в пикселях (не относительно размера шрифта).
void set_face_index(cache_index: int, face_index: int) 🔗
Устанавливает активный индекс начертания в коллекции TrueType / OpenType.
void set_glyph_advance(cache_index: int, size: int, glyph: int, advance: Vector2) 🔗
Устанавливает смещение глифа (смещение следующего глифа).
Примечание: Смещение для контуров глифов такое же, как и базовое смещение глифа, и не сохраняется.
void set_glyph_offset(cache_index: int, size: Vector2i, glyph: int, offset: Vector2) 🔗
Устанавливает смещение глифа от базовой линии.
void set_glyph_size(cache_index: int, size: Vector2i, glyph: int, gl_size: Vector2) 🔗
Задает размер глифа.
void set_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int, texture_idx: int) 🔗
Устанавливает индекс кэшированной текстуры, содержащей глиф.
void set_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int, uv_rect: Rect2) 🔗
Устанавливает прямоугольник в кэшированной текстуре, содержащей глиф.
void set_kerning(cache_index: int, size: int, glyph_pair: Vector2i, kerning: Vector2) 🔗
Устанавливает кернинг для пары глифов.
void set_language_support_override(language: String, supported: bool) 🔗
Добавляет переопределение для Font.is_language_supported().
void set_script_support_override(script: String, supported: bool) 🔗
Добавляет переопределение для Font.is_script_supported().
void set_texture_image(cache_index: int, size: Vector2i, texture_index: int, image: Image) 🔗
Устанавливает изображение текстуры кэша шрифта.
void set_texture_offsets(cache_index: int, size: Vector2i, texture_index: int, offset: PackedInt32Array) 🔗
Устанавливает массив, содержащий данные упаковки глифов.
void set_transform(cache_index: int, transform: Transform2D) 🔗
Задает 2D-преобразование, применяемое к контурам шрифта, может использоваться для наклона, переворачивания и поворота глифов.
void set_variation_coordinates(cache_index: int, variation_coordinates: Dictionary) 🔗
Устанавливает координаты вариации для указанной записи кэша шрифта. См. Font.get_supported_variation_list() для получения дополнительной информации.