Font

Наследует: Resource < RefCounted < Object

Наследуется от: FontFile, FontVariation, SystemFont

Абстрактный базовый класс для шрифтов и вариаций шрифтов.

Описание

Абстрактный базовый класс для разных типов шрифтов. Имеет методы для рисования текста и интроспекции символов шрифта.

Свойства

Array[Font]

fallbacks

[]

Методы

float

draw_char(canvas_item: RID, pos: Vector2, char: int, font_size: int, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const

float

draw_char_outline(canvas_item: RID, pos: Vector2, char: int, font_size: int, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const

void

draw_multiline_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const

void

draw_multiline_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const

void

draw_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const

void

draw_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const

RID

find_variation(variation_coordinates: Dictionary, face_index: int = 0, strength: float = 0.0, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), spacing_top: int = 0, spacing_bottom: int = 0, spacing_space: int = 0, spacing_glyph: int = 0, baseline_offset: float = 0.0) const

float

get_ascent(font_size: int = 16) const

Vector2

get_char_size(char: int, font_size: int) const

float

get_descent(font_size: int = 16) const

int

get_face_count() const

String

get_font_name() const

int

get_font_stretch() const

BitField[FontStyle]

get_font_style() const

String

get_font_style_name() const

int

get_font_weight() const

float

get_height(font_size: int = 16) const

Vector2

get_multiline_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const

Dictionary

get_opentype_features() const

Dictionary

get_ot_name_strings() const

Array[RID]

get_rids() const

int

get_spacing(spacing: SpacingType) const

Vector2

get_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const

String

get_supported_chars() const

Dictionary

get_supported_feature_list() const

Dictionary

get_supported_variation_list() const

float

get_underline_position(font_size: int = 16) const

float

get_underline_thickness(font_size: int = 16) const

bool

has_char(char: int) const

bool

is_language_supported(language: String) const

bool

is_script_supported(script: String) const

void

set_cache_capacity(single_line: int, multi_line: int)


Описания свойств

Array[Font] fallbacks = [] 🔗

Массив резервных Font для использования в качестве замены, если глиф не найден в текущем Font.

Если этот массив пуст в FontVariation, вместо него используются резервные FontVariation.base_font.


Описания метода

float draw_char(canvas_item: RID, pos: Vector2, char: int, font_size: int, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗

Нарисуйте один символ Unicode char на элементе холста, используя шрифт, в заданной позиции, с цветом modulate. pos указывает базовую линию, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

Примечание: Не используйте эту функцию для рисования строк посимвольно, используйте вместо этого draw_string() или TextLine.


float draw_char_outline(canvas_item: RID, pos: Vector2, char: int, font_size: int, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗

Нарисуйте контур одного символа Unicode char в элементе холста, используя шрифт, в заданной позиции, с цветом modulate и размером контура size. pos указывает базовую линию, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

Примечание: Не используйте эту функцию для рисования строк посимвольно, вместо этого используйте draw_string() или TextLine.


void draw_multiline_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗

Разбивает text на строки, используя правила, заданные brk_flags, и рисует его в элементе холста, используя шрифт, в заданной позиции, с цветом modulate, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию первой строки, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

См. также CanvasItem.draw_multiline_string().


void draw_multiline_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗

Разбивает text на строки, используя правила, заданные brk_flags, и рисует контур текста в элементе холста, используя шрифт, в заданной позиции, с цветом modulate и размером контура size, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию первой строки, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

См. также CanvasItem.draw_multiline_string_outline().


void draw_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗

Нарисуйте text на элементе холста, используя шрифт, в заданной позиции, с modulate цветом, опционально обрезав ширину и выровняв по горизонтали. pos указывает базовую линию, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

См. также CanvasItem.draw_string().


void draw_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗

Нарисовать text контур в элементе холста, используя шрифт, в заданной позиции, с modulate цветом и size размером контура, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.

См. также CanvasItem.draw_string_outline().


RID find_variation(variation_coordinates: Dictionary, face_index: int = 0, strength: float = 0.0, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), spacing_top: int = 0, spacing_bottom: int = 0, spacing_space: int = 0, spacing_glyph: int = 0, baseline_offset: float = 0.0) const 🔗

Возвращает TextServer RID кэша шрифтов для определенной вариации.


float get_ascent(font_size: int = 16) const 🔗

Возвращает средний подъем шрифта (количество пикселей над базовой линией).

Примечание: Реальный подъем строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку (например, как подъем пустой строки).


Vector2 get_char_size(char: int, font_size: int) const 🔗

Возвращает размер символа. Не учитывает кернинг.

Примечание: Не используйте эту функцию для вычисления ширины строки символ за символом, вместо этого используйте get_string_size() или TextLine. Возвращаемая высота — это высота шрифта (см. также get_height()) и не имеет отношения к высоте глифа.


float get_descent(font_size: int = 16) const 🔗

Возвращает средний спуск шрифта (количество пикселей ниже базовой линии).

Примечание: Реальный спуск строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку (например, как спуск пустой строки).


int get_face_count() const 🔗

Возвращает количество шрифтов в коллекции TrueType / OpenType.


String get_font_name() const 🔗

Возвращает имя семейства шрифтов.


int get_font_stretch() const 🔗

Возвращает величину растяжения шрифта по сравнению с нормальной шириной. Процентное значение между 50% и 200%.


BitField[FontStyle] get_font_style() const 🔗

Возвращает флаги стиля шрифта.


String get_font_style_name() const 🔗

Возвращает имя стиля шрифта.


int get_font_weight() const 🔗

Возвращает жирность (начертание) шрифта. Значение в диапазоне 100...999, нормальный шрифт — 400, жирный шрифт — 700.


float get_height(font_size: int = 16) const 🔗

Возвращает общую среднюю высоту шрифта (подъем плюс спуск) в пикселях.

Примечание: Реальная высота строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте ее только как грубую оценку (например, как высоту пустой строки).


Vector2 get_multiline_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const 🔗

Возвращает размер ограничивающего прямоугольника строки, разбитой на строки, с учетом кернинга и продвижения.

См. также draw multiline string().


Dictionary get_opentype_features() const 🔗

Возвращает набор тегов функций OpenType. Дополнительная информация: Теги функций OpenType.


Dictionary get_ot_name_strings() const 🔗

Возвращает Dictionary со строками названий шрифтов OpenType (локализованные названия шрифтов, версия, описание, информация о лицензии, пример текста и т. д.).


Array[RID] get_rids() const 🔗

Возвращает Array допустимых Font RID, которые можно передать методам TextServer.


int get_spacing(spacing: SpacingType) const 🔗

Возвращает величину интервала для заданного типа spacing.


Vector2 get_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const 🔗

Возвращает размер ограничивающего прямоугольника однострочной строки с учетом кернинга, продвижения и субпиксельного позиционирования. См. также get_multiline_string_size() и draw_string().

Например, чтобы получить размер строки, отображаемый однострочной меткой (Label), используйте:

var string_size = $Label.get_theme_font("font").get_string_size($Label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label.get_theme_font_size("font_size"))

Примечание: Поскольку кернинг, продвижение и субпиксельное позиционирование учитываются get_string_size(), использование отдельных вызовов get_string_size() для подстрок строки, а затем сложение результатов вернет другой результат по сравнению с использованием одного вызова get_string_size() для всей строки.

Примечание: Реальная высота строки зависит от контекста и может значительно отличаться от значения, возвращаемого get_height().


String get_supported_chars() const 🔗

Возвращает строку, содержащую все символы, доступные в шрифте.

Если заданный символ включен в более чем один источник данных шрифта, он появляется только один раз в возвращаемой строке.


Dictionary get_supported_feature_list() const 🔗

Возвращает список функций OpenType, поддерживаемых шрифтом.


Dictionary get_supported_variation_list() const 🔗

Возвращает список поддерживаемых координат вариантов, каждая координата возвращается как tag: Vector3i(min_value,max_value,default_value).

Вариации шрифта позволяют непрерывно изменять характеристики глифов вдоль некоторой заданной оси дизайна, такой как толщина, ширина или наклон.

Чтобы распечатать доступные оси вариаций переменного шрифта:

var fv = FontVariation.new()
fv.base_font = load("res://RobotoFlex.ttf")
var variation_list = fv.get_supported_variation_list()
for tag in variation_list:
    var name = TextServerManager.get_primary_interface().tag_to_name(tag)
    var values = variation_list[tag]
    print("variation axis: %s (%d)\n\tmin, max, default: %s" % [name, tag, values])

Примечание: Чтобы задать и получить координаты вариации FontVariation, используйте FontVariation.variation_opentype.


float get_underline_position(font_size: int = 16) const 🔗

Возвращает среднее смещение подчеркивания в пикселях ниже базовой линии.

Примечание: Реальное положение подчеркивания строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку.


float get_underline_thickness(font_size: int = 16) const 🔗

Возвращает среднюю толщину подчеркивания.

Примечание: Реальная толщина подчеркивания строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте ее только как грубую оценку.


bool has_char(char: int) const 🔗

Возвращает true, если в шрифте доступен символ Unicode char.


bool is_language_supported(language: String) const 🔗

Возвращает true, если шрифт поддерживает указанный язык (в виде кода ISO 639).


bool is_script_supported(script: String) const 🔗

Возвращает true, если шрифт поддерживает указанный шрифт (в виде кода ISO 15924).


void set_cache_capacity(single_line: int, multi_line: int) 🔗

Устанавливает емкость кэша LRU для методов draw_*.