reckfellENGINE

FontVariation

Вариант общего шрифта: оси, синтетическое начертание, интервалы и цветовая палитра.

На этой странице
class FontVariationReckfellSharpНаследует Font

FontVariation ссылается на BaseFont и задаёт отдельные настройки начертания. Он не клонирует файл шрифта и не является Entity. Несколько вариантов могут использовать один FontFile; изменение общего BaseFont способно затронуть все варианты. Задавайте базовый ресурс явно для воспроизводимого экспорта. Если BaseFont не назначен, при использовании ищется шрифт темы/fallback; GetBaseFont при этом всё ещё может вернуть null. Не создавайте циклические цепочки BaseFont.

VariationOpentype задаёт оси variable font, OpentypeFeatures — функции shaping, например лигатуры. Это разные таблицы. Сначала получите доступные оси и их диапазоны через BaseFont.GetSupportedVariationList. Для веса используйте числовой ключ, полученный выражением TextServerManager.GetPrimaryInterface().NameToTag("wght"). В 1.0.0 строка "wght" может сохраниться в Dictionary, но при подборе кэша не отличить вариант от обычного начертания. Числовой тег или поддержанное каноническое имя устраняют неоднозначность. Не добавляйте ось статическому шрифту в ожидании настоящего нового начертания.

VariationOpentype и OpentypeFeatures копируют плоскую Dictionary и при назначении, и при чтении. Изменение полученной таблицы не меняет ресурс: назначьте её обратно. Это отличается от низкоуровневых FontFile.GetVariationCoordinates и GetOpentypeFeatureOverrides, возвращающих общую таблицу. Изменённые настройки FontVariation сбрасывают его кэши и отправляют Changed; повтор того же значения обычно не отправляет сигнал. Прямые изменения кэша FontFile Changed не отправляют.

VariationEmbolden и VariationTransform синтезируют форму контура; они не заменяют нарисованный дизайнером bold/italic. SpacingTop/Bottom/Space/Glyph — дополнительные пиксели, BaselineOffset — доля высоты шрифта. Ни одно из этих полей не задаёт font_size Control. Проверяйте переносы, clipping и высоту строк после изменений.

PaletteIndex и PaletteCustomColors работают для поддержанных цветных палитр конкретного шрифта и backend. Индекс 0 — первая палитра, прозрачный Color(0,0,0,0) в массиве оставляет соответствующий исходный цвет. Массив цветов в C# копируется; назначьте изменения обратно. Настройки палитры не окрашивают обычный монохромный шрифт и не доказывают поддержку color emoji.

Практический пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

FontVariationКонструктор
# FontVariation
C#
public FontVariation();

Создаёт вариант без явно назначенного BaseFont: оси/функции пустые, интервалы и утолщение 0, матрица Identity, палитра 0. Для предсказуемого результата задайте BaseFont.

Свойства13

BaseFontСвойство
# BaseFont
C#
public Font BaseFont { get; set; }

Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы.

BaselineOffsetСвойство
# BaselineOffset
C#
public float BaselineOffset { get; set; }

Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание.

OpentypeFeaturesСвойство
# OpentypeFeatures
C#
public Reckfell.Collections.Dictionary OpentypeFeatures { get; set; }

Функции shaping, например liga/kern, с целыми значениями; не координаты осей. Setter/getter копируют Dictionary. Наличие тега не подтверждает поддержку файлом; после изменения копии назначьте её обратно.

PaletteCustomColorsСвойство
# PaletteCustomColors
C#
public Color[] PaletteCustomColors { get; set; }

Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт.

PaletteIndexСвойство
# PaletteIndex
C#
public long PaletteIndex { get; set; }

Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку.

SpacingBottomСвойство
# SpacingBottom
C#
public int SpacingBottom { get; set; }

Дополнительный интервал под строкой в пикселях, по умолчанию 0. Не масштаб всего шрифта.

SpacingGlyphСвойство
# SpacingGlyph
C#
public int SpacingGlyph { get; set; }

Дополнительный интервал между графическими глифами в пикселях, по умолчанию 0. Не масштаб всего шрифта.

SpacingSpaceСвойство
# SpacingSpace
C#
public int SpacingSpace { get; set; }

Дополнительный интервал к ширине пробела в пикселях, по умолчанию 0. Не масштаб всего шрифта.

SpacingTopСвойство
# SpacingTop
C#
public int SpacingTop { get; set; }

Дополнительный интервал над строкой в пикселях, по умолчанию 0. Не масштаб всего шрифта.

VariationEmboldenСвойство
# VariationEmbolden
C#
public float VariationEmbolden { get; set; }

Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания.

VariationFaceIndexСвойство
# VariationFaceIndex
C#
public int VariationFaceIndex { get; set; }

Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша.

VariationOpentypeСвойство
# VariationOpentype
C#
public Reckfell.Collections.Dictionary VariationOpentype { get; set; }

Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern.

VariationTransformСвойство
# VariationTransform
C#
public Transform2D VariationTransform { get; set; }

Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла.

Методы19

GetBaseFontFont
# GetBaseFont
C#
public Font GetBaseFont();

Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы.

Возвращает Font

Общая явно назначенная ссылка Font либо null; не копия.

GetBaselineOffsetfloat
# GetBaselineOffset
C#
public float GetBaselineOffset();

Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание.

Возвращает float

Текущее сохранённое значение; не проверка визуального результата.

GetPaletteCustomColorsColor[]
# GetPaletteCustomColors
C#
public Color[] GetPaletteCustomColors();

Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт.

Возвращает Color[]

Новый Color[]; изменение результата само не меняет ресурс.

GetPaletteIndexlong
# GetPaletteIndex
C#
public long GetPaletteIndex();

Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку.

Возвращает long

Текущее сохранённое значение; не проверка визуального результата.

GetVariationEmboldenfloat
# GetVariationEmbolden
C#
public float GetVariationEmbolden();

Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания.

Возвращает float

Текущее сохранённое значение; не проверка визуального результата.

GetVariationFaceIndexint
# GetVariationFaceIndex
C#
public int GetVariationFaceIndex();

Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша.

Возвращает int

Текущее сохранённое значение; не проверка визуального результата.

GetVariationOpentypeReckfell.Collections.Dictionary
# GetVariationOpentype
C#
public Reckfell.Collections.Dictionary GetVariationOpentype();

Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern.

Возвращает Reckfell.Collections.Dictionary

Новая плоская Dictionary координат; изменённую таблицу назначьте обратно.

GetVariationTransformTransform2D
# GetVariationTransform
C#
public Transform2D GetVariationTransform();

Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла.

Возвращает Transform2D

Текущее сохранённое значение; не проверка визуального результата.

SetBaseFontvoid
# SetBaseFont
C#
public void SetBaseFont(Font font);

Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
fontFont—
font

Общий Font либо null для выбора темы/fallback; не создавайте циклы BaseFont.

SetBaselineOffsetvoid
# SetBaselineOffset
C#
public void SetBaselineOffset(float baselineOffset);

Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
baselineOffsetfloat—
baselineOffset

Конечная доля высоты шрифта, 0 без дополнительного смещения.

SetOpentypeFeaturesvoid
# SetOpentypeFeatures
C#
public void SetOpentypeFeatures(Reckfell.Collections.Dictionary features);

Функции shaping, например liga/kern, с целыми значениями; не координаты осей. Setter/getter копируют Dictionary. Наличие тега не подтверждает поддержку файлом; после изменения копии назначьте её обратно. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
featuresReckfell.Collections.Dictionary—
features

Плоская Dictionary функция OpenType → целое значение. Setter копирует её.

SetPaletteCustomColors2 перегрузки
# SetPaletteCustomColors · 1/2
C#
public void SetPaletteCustomColors(Color[] colors);

Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
colorsColor[]—
colors

Массив цветов по индексам палитры; прозрачный элемент оставляет исходный цвет. Вход копируется.

# SetPaletteCustomColors · 2/2
C#
public void SetPaletteCustomColors(ReadOnlySpan<Color> colors);

Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
colorsReadOnlySpan<Color>—
colors

Массив цветов по индексам палитры; прозрачный элемент оставляет исходный цвет. Вход копируется.

SetPaletteIndexvoid
# SetPaletteIndex
C#
public void SetPaletteIndex(long paletteIndex);

Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
paletteIndexlong—
paletteIndex

Неотрицательный индекс существующей палитры шрифта; 0 — первая.

SetSpacingvoid
# SetSpacing
C#
public void SetSpacing(TextServer.SpacingType spacing, int value);

Задаёт дополнительные пиксели для Glyph, Space, Top или Bottom. Не процент font_size и не парный кернинг. Изменение инвалидирует кэш варианта и отправляет Changed.

Параметры
ИмяТипПо умолчанию
spacingTextServer.SpacingType—
valueint—
spacing

Glyph, Space, Top или Bottom из TextServer.SpacingType.

value

Дополнительное целое число пикселей; отрицательные значения могут вызвать наложение.

SetVariationEmboldenvoid
# SetVariationEmbolden
C#
public void SetVariationEmbolden(float strength);

Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
strengthfloat—
strength

Конечная сила синтетического утолщения; 0 без изменения.

SetVariationFaceIndexvoid
# SetVariationFaceIndex
C#
public void SetVariationFaceIndex(int faceIndex);

Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
faceIndexint—
faceIndex

Индекс существующего начертания коллекции; обычно 0. Не передавайте отрицательные/несуществующие индексы.

SetVariationOpentypevoid
# SetVariationOpentype
C#
public void SetVariationOpentype(Reckfell.Collections.Dictionary coords);

Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
coordsReckfell.Collections.Dictionary—
coords

Плоская Dictionary числовой тег оси → число; получайте теги через NameToTag, диапазоны — из файла.

SetVariationTransformvoid
# SetVariationTransform
C#
public void SetVariationTransform(Transform2D transform);

Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла. Изменённое значение отправляет Changed; то же значение не отправляет.

Параметры
ИмяТипПо умолчанию
transformTransform2D—
transform

Конечная матрица контура; Identity без изменения.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.