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, то [member FontVariation. JavaScript licenses API Веб-сайт Go1.13.8.


Описи методів

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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію першого рядка, а не верхнього. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію першого рядка, а не верхнього. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.


Dictionary get_ot_name_strings() const 🔗

Повернення Dictionary з рядками імен верхнього шрифту OpenType (розмірні імена шрифтів, версія, опис, інформація про ліцензію, текст зразка тощо).


Array[RID] get_rids() const 🔗

Повертаємо вашу увагу на те, що TextServer діє 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().

Наприклад, щоб отримати розмір рядка, який відображається однорядковою міткою, використовуйте:

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 🔗

Повертає список підтримуваних варіантних координат, кожна координата повертається як тег: 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()
для тегу в variation_list:
    var name = TextServerManager.get_primary_interface().tag_to_name(tag)
    var valve = variation_list[тег]
    print("вісь варіації: %s (%d)\n\tmin, max, за замовчуванням: %s" % [назва, тег, значення])

Примітка: щоб установити та отримати координати варіації 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_*.